protected override void DoInitialize() { { IBufferable model = new ParticleModel(); var shaderCodes = new ShaderCode[2]; shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\ParticleSimulatorRenderer\particleSimulator.vert"), ShaderType.VertexShader); shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\ParticleSimulatorRenderer\particleSimulator.frag"), ShaderType.FragmentShader); var map = new AttributeMap(); map.Add("position", ParticleModel.strPosition); var particleRenderer = new ParticleRenderer(model, shaderCodes, map, new DepthTestState(false), new BlendState(BlendingSourceFactor.One, BlendingDestinationFactor.One)); particleRenderer.Initialize(); this.particleRenderer = particleRenderer; } { var particleComputeRenderer = new ParticleComputeRenderer( this.particleRenderer.PositionBuffer, this.particleRenderer.VelocityBuffer); particleComputeRenderer.Initialize(); this.particleComputeRenderer = particleComputeRenderer; } }
protected override void DoInitialize() { { IBufferable bufferable = new ParticleModel(); var shaderCodes = new ShaderCode[2]; shaderCodes[0] = new ShaderCode(File.ReadAllText(@"05ParticleSimulator\particleSimulator.vert"), ShaderType.VertexShader); shaderCodes[1] = new ShaderCode(File.ReadAllText(@"05ParticleSimulator\particleSimulator.frag"), ShaderType.FragmentShader); var map = new PropertyNameMap(); map.Add("position", ParticleModel.strPosition); var particleRenderer = new ParticleRenderer(bufferable, shaderCodes, map, new DepthTestSwitch(false), new BlendSwitch(BlendingSourceFactor.One, BlendingDestinationFactor.One)); particleRenderer.Initialize(); this.particleRenderer = particleRenderer; } { var particleComputeRenderer = new ParticleComputeRenderer( this.particleRenderer.PositionBufferPtr.BufferId, this.particleRenderer.VelocityBufferPtrId); particleComputeRenderer.Initialize(); this.particleComputeRenderer = particleComputeRenderer; } }