public void StepKernel(float time, float deltaTime, RhoBuffer buffer ) { // GPGPU buffer swap buffer.Swap(); Material m = kernel.material; m.SetVector("_TimeParams", new Vector2(time, deltaTime)); // velocity update m.SetTexture("_PositionTex", buffer.positionIn); m.SetTexture("_VelocityTex", buffer.velocityIn); Graphics.Blit(null, buffer.velocityOut, m, 1); // position update m.SetTexture("_VelocityTex", buffer.velocityOut); Graphics.Blit(null, buffer.positionOut, m, 0); }
public void StepKernel(float time, float deltaTime, RhoBuffer buffer) { // GPGPU buffer swap buffer.Swap(); Material m = kernel.material; m.SetVector("_TimeParams", new Vector2(time, deltaTime)); // velocity update m.SetTexture("_PositionTex", buffer.positionIn); m.SetTexture("_VelocityTex", buffer.velocityIn); Graphics.Blit(null, buffer.velocityOut, m, 1); // position update m.SetTexture("_VelocityTex", buffer.velocityOut); Graphics.Blit(null, buffer.positionOut, m, 0); }
void StepKernel(float time, float deltaTime) { buffer.Swap(); Material m = kernel.material; m.SetVector("_Direction", direction); m.SetFloat("_Drag", drag); m.SetFloat("_Speed", speed); m.SetFloat("_RandomSeed", _randomSeed); m.SetFloat("_Rate", rate); m.SetVector("_TimeParams", new Vector2(time, deltaTime)); // velocity update m.SetTexture("_PositionTex", buffer.positionIn); m.SetTexture("_VelocityTex", buffer.velocityIn); Graphics.Blit(null, buffer.velocityOut, m, 3); // position update m.SetTexture("_VelocityTex", buffer.velocityOut); Graphics.Blit(null, buffer.positionOut, m, 2); }