Ejemplo n.º 1
0
        void ResetResources()
        {
            if (_bulkMesh == null)
            {
                _bulkMesh = new BulkMesh(_shapes, InstancePerDraw);
            }
            else
            {
                _bulkMesh.Rebuild(_shapes, InstancePerDraw);
            }

            if (_positionBuffer)
            {
                DestroyImmediate(_positionBuffer);
            }
            if (_rotationBuffer)
            {
                DestroyImmediate(_rotationBuffer);
            }
            if (_scaleBuffer)
            {
                DestroyImmediate(_scaleBuffer);
            }

            _positionBuffer = CreateBuffer();
            _rotationBuffer = CreateBuffer();
            _scaleBuffer    = CreateBuffer();

            if (!_kernelMaterial)
            {
                _kernelMaterial = CreateMaterial(_kernelShader);
            }
        }
Ejemplo n.º 2
0
        void ResetResources()
        {
            UpdateColumnAndRowCounts();

            if (_bulkMesh == null)
                _bulkMesh = new BulkMesh(_slices, _stacksPerSegment, _totalStacks);
            else
                _bulkMesh.Rebuild(_slices, _stacksPerSegment, _totalStacks);

            if (_positionBuffer) DestroyImmediate(_positionBuffer);
            if (_normalBuffer1)  DestroyImmediate(_normalBuffer1);
            if (_normalBuffer2)  DestroyImmediate(_normalBuffer2);

            _positionBuffer = CreateBuffer();
            _normalBuffer1  = CreateBuffer();
            _normalBuffer2  = CreateBuffer();

            if (!_kernelMaterial) _kernelMaterial = CreateMaterial(_kernelShader);
            if (!_lineMaterial)   _lineMaterial   = CreateMaterial(_lineShader);
            if (!_debugMaterial)  _debugMaterial  = CreateMaterial(_debugShader);

            _lineMaterial.SetTexture("_PositionBuffer", _positionBuffer);

            _needsReset = false;
        }
Ejemplo n.º 3
0
    private void ResetResource()
    {
        if (this.m_BulkMesh == null)
        {
            this.m_BulkMesh = new BulkMesh(this.m_Shape_r, 320);
        }
        else
        {
            this.m_BulkMesh.Rebuild(this.m_Shape_r);
        }

        if (this.m_PositionBuffer1)
        {
            DestroyImmediate(this.m_PositionBuffer1);
        }
        this.m_PositionBuffer1 = this.CreateBuffer();

        if (this.m_PositionBuffer2)
        {
            DestroyImmediate(this.m_PositionBuffer2);
        }
        this.m_PositionBuffer2 = this.CreateBuffer();

        if (!this.m_MaterialKernel)
        {
            this.m_MaterialKernel = this.CreateMaterial(this.m_ShaderKernel);
        }

        this.InitBuffer();

        this.m_IsNeedReset = false;
    }
Ejemplo n.º 4
0
        void ResetResources()
        {
            if (_bulkMesh == null)
            {
                _bulkMesh = new BulkMesh(_shapes);
            }
            else
            {
                _bulkMesh.Rebuild(_shapes);
            }

            if (_positionBuffer1)
            {
                DestroyImmediate(_positionBuffer1);
            }
            if (_positionBuffer2)
            {
                DestroyImmediate(_positionBuffer2);
            }
            if (_velocityBuffer1)
            {
                DestroyImmediate(_velocityBuffer1);
            }
            if (_velocityBuffer2)
            {
                DestroyImmediate(_velocityBuffer2);
            }
            if (_rotationBuffer1)
            {
                DestroyImmediate(_rotationBuffer1);
            }
            if (_rotationBuffer2)
            {
                DestroyImmediate(_rotationBuffer2);
            }

            _positionBuffer1 = CreateBuffer();
            _positionBuffer2 = CreateBuffer();
            _velocityBuffer1 = CreateBuffer();
            _velocityBuffer2 = CreateBuffer();
            _rotationBuffer1 = CreateBuffer();
            _rotationBuffer2 = CreateBuffer();

            if (!_kernelMaterial)
            {
                _kernelMaterial = CreateMaterial(_kernelShader);
            }
            if (!_debugMaterial)
            {
                _debugMaterial = CreateMaterial(_debugShader);
            }

            // Warming up
            InitializeAndPrewarmBuffers();

            _needsReset = false;
        }
Ejemplo n.º 5
0
        void ResetResources()
        {
            // Mesh object.
            if (_bulkMesh == null)
            {
                _bulkMesh = new BulkMesh(_shapes);
            }
            else
            {
                _bulkMesh.Rebuild(_shapes);
            }

            // GPGPU buffers.
            if (_positionBuffer1)
            {
                DestroyImmediate(_positionBuffer1);
            }
            if (_positionBuffer2)
            {
                DestroyImmediate(_positionBuffer2);
            }
            if (_rotationBuffer1)
            {
                DestroyImmediate(_rotationBuffer1);
            }
            if (_rotationBuffer2)
            {
                DestroyImmediate(_rotationBuffer2);
            }

            _positionBuffer1 = CreateBuffer();
            _positionBuffer2 = CreateBuffer();
            _rotationBuffer1 = CreateBuffer();
            _rotationBuffer2 = CreateBuffer();

            // Shader materials.
            if (!_kernelMaterial)
            {
                _kernelMaterial = CreateMaterial(_kernelShader);
            }
            if (!_surfaceMaterial)
            {
                _surfaceMaterial = CreateMaterial(_surfaceShader);
            }
            if (!_debugMaterial)
            {
                _debugMaterial = CreateMaterial(_debugShader);
            }

            // GPGPU buffer Initialization.
            ApplyKernelParameters();
            Graphics.Blit(null, _positionBuffer2, _kernelMaterial, 0);
            Graphics.Blit(null, _rotationBuffer2, _kernelMaterial, 1);

            _needsReset = false;
        }
Ejemplo n.º 6
0
        void ResetResources()
        {
            UpdateColumnAndRowCounts();

            if (_bulkMesh == null)
            {
                _bulkMesh = new BulkMesh(_columns, _rowsPerSegment, _totalRows);
            }
            else
            {
                _bulkMesh.Rebuild(_columns, _rowsPerSegment, _totalRows);
            }

            if (_positionBuffer)
            {
                DestroyImmediate(_positionBuffer);
            }
            if (_normalBuffer1)
            {
                DestroyImmediate(_normalBuffer1);
            }
            if (_normalBuffer2)
            {
                DestroyImmediate(_normalBuffer2);
            }

            _positionBuffer = CreateBuffer();
            _normalBuffer1  = CreateBuffer();
            _normalBuffer2  = CreateBuffer();

            if (!_kernelMaterial)
            {
                _kernelMaterial = CreateMaterial(_kernelShader);
            }
            if (!_lineMaterial)
            {
                _lineMaterial = CreateMaterial(_lineShader);
            }
            if (!_debugMaterial)
            {
                _debugMaterial = CreateMaterial(_debugShader);
            }

            _lineMaterial.SetTexture("_PositionBuffer", _positionBuffer);

            _needsReset = false;
        }
Ejemplo n.º 7
0
        void ResetResources()
        {
            if (_bulkMesh == null)
            {
                _bulkMesh = new BulkMesh(SourceShapes, _columns);
            }
            else
            {
                _bulkMesh.Rebuild(SourceShapes, _columns);
            }

            if (_positionBuffer)
            {
                DestroyImmediate(_positionBuffer);
            }
            if (_rotationBuffer)
            {
                DestroyImmediate(_rotationBuffer);
            }
            if (_scaleBuffer)
            {
                DestroyImmediate(_scaleBuffer);
            }

            _positionBuffer = CreateBuffer();
            _rotationBuffer = CreateBuffer();
            _scaleBuffer    = CreateBuffer();

//            if (!_kernelMaterial) _kernelMaterial = CreateMaterial(_kernelShader);
            if (!_kernelMaterial)
            {
                if (noiseMaterial != null)
                {
                    _kernelMaterial = noiseMaterial;
                }
                else
                {
                    _kernelMaterial = CreateMaterial(_kernelShader);
                }
            }
            if (!_debugMaterial)
            {
                _debugMaterial = CreateMaterial(_debugShader);
            }

            _needsReset = false;
        }
Ejemplo n.º 8
0
        void ResetResources()
        {
            if (bulkMesh == null)
            {
                bulkMesh = new BulkMesh(shapes, 320);
            }
            else
            {
                bulkMesh.Rebuild(shapes);
            }

            if (positionBuffer1)
            {
                DestroyImmediate(positionBuffer1);
            }
            if (positionBuffer2)
            {
                DestroyImmediate(positionBuffer2);
            }

            positionBuffer1 = CreateBuffer();
            positionBuffer2 = CreateBuffer();

            if (!kernelMaterial)
            {
                kernelMaterial = CreateMaterial(kernelShader);
            }
            if (!debugMaterial)
            {
                debugMaterial = CreateMaterial(debugShader);
            }

            InitializeBuffers();

            needsReset = false;
        }
Ejemplo n.º 9
0
        void ResetResources()
        {
            if (_bulkMesh == null)
                _bulkMesh = new BulkMesh(SourceShapes, _columns);
            else
                _bulkMesh.Rebuild(SourceShapes, _columns);

            if (_positionBuffer) DestroyImmediate(_positionBuffer);
            if (_rotationBuffer) DestroyImmediate(_rotationBuffer);
            if (_scaleBuffer) DestroyImmediate(_scaleBuffer);

            _positionBuffer = CreateBuffer();
            _rotationBuffer = CreateBuffer();
            _scaleBuffer = CreateBuffer();

            if (!_kernelMaterial) _kernelMaterial = CreateMaterial(_kernelShader);
            if (!_debugMaterial) _debugMaterial = CreateMaterial(_debugShader);

            _needsReset = false;
        }
Ejemplo n.º 10
0
        void ResetResources()
        {
            UpdateColumnAndRowCounts();

            if (_bulkMesh == null)
                _bulkMesh = new BulkMesh(_slices, _stacksPerSegment, _totalStacks);
            else
                _bulkMesh.Rebuild(_slices, _stacksPerSegment, _totalStacks);

            if (_positionBuffer) DestroyImmediate(_positionBuffer);
            if (_normalBuffer1)  DestroyImmediate(_normalBuffer1);
            if (_normalBuffer2)  DestroyImmediate(_normalBuffer2);

            _positionBuffer = CreateBuffer();
            _normalBuffer1  = CreateBuffer();
            _normalBuffer2  = CreateBuffer();

            if (!_kernelMaterial) _kernelMaterial = CreateMaterial(_kernelShader);
            if (!_lineMaterial)   _lineMaterial   = CreateMaterial(_lineShader);
            if (!_debugMaterial)  _debugMaterial  = CreateMaterial(_debugShader);

            _lineMaterial.SetTexture("_PositionBuffer", _positionBuffer);

            _needsReset = false;
        }
Ejemplo n.º 11
0
        void ResetResources()
        {
            if (_bulkMesh == null)
                _bulkMesh = new BulkMesh(_shapes);
            else
                _bulkMesh.Rebuild(_shapes);

            if (_positionBuffer1) DestroyImmediate(_positionBuffer1);
            if (_positionBuffer2) DestroyImmediate(_positionBuffer2);
            if (_rotationBuffer1) DestroyImmediate(_rotationBuffer1);
            if (_rotationBuffer2) DestroyImmediate(_rotationBuffer2);

            _positionBuffer1 = CreateBuffer();
            _positionBuffer2 = CreateBuffer();
            _rotationBuffer1 = CreateBuffer();
            _rotationBuffer2 = CreateBuffer();

            if (!_kernelMaterial)  _kernelMaterial  = CreateMaterial(_kernelShader);
            if (!_debugMaterial)   _debugMaterial   = CreateMaterial(_debugShader);

            // Warming up
            UpdateKernelShader();
            InitializeAndPrewarmBuffers();

            _needsReset = false;
        }
Ejemplo n.º 12
0
        void ResetResources()
        {
            if (_bulkMesh == null)
                _bulkMesh = new BulkMesh(_shapes, InstancePerDraw);
            else
                _bulkMesh.Rebuild(_shapes, InstancePerDraw);

            if (_positionBuffer) DestroyImmediate(_positionBuffer);
            if (_rotationBuffer) DestroyImmediate(_rotationBuffer);
            if (_scaleBuffer) DestroyImmediate(_scaleBuffer);

            _positionBuffer = CreateBuffer();
            _rotationBuffer = CreateBuffer();
            _scaleBuffer = CreateBuffer();

            if (!_kernelMaterial) _kernelMaterial = CreateMaterial(_kernelShader);
        }