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); } }
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; }
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; }
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; }
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; }
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; }
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; }