|
|
|
@ -19,7 +19,7 @@ namespace UltraCombos |
|
|
|
[SerializeField] |
|
|
|
[SerializeField] |
|
|
|
ComputeShader updateShader; |
|
|
|
ComputeShader updateShader; |
|
|
|
[SerializeField] |
|
|
|
[SerializeField] |
|
|
|
ComputeShader clearShader; |
|
|
|
ComputeShader applyShader; |
|
|
|
ComputeBuffer clear_grid_buffer_args_buffer = null; |
|
|
|
ComputeBuffer clear_grid_buffer_args_buffer = null; |
|
|
|
ComputeBuffer args_buffer = null; |
|
|
|
ComputeBuffer args_buffer = null; |
|
|
|
|
|
|
|
|
|
|
|
@ -118,22 +118,22 @@ namespace UltraCombos |
|
|
|
clear_grid_buffer_args_buffer.SetData(args); |
|
|
|
clear_grid_buffer_args_buffer.SetData(args); |
|
|
|
#else |
|
|
|
#else |
|
|
|
Vector3Int dim = Vector3Int.FloorToInt(fluidSimulation.GridDim); |
|
|
|
Vector3Int dim = Vector3Int.FloorToInt(fluidSimulation.GridDim); |
|
|
|
clear_grid_buffer_args_buffer = clearShader.CreateIndirectComputeArgsBuffer(dim.x, dim.y, dim.z); |
|
|
|
clear_grid_buffer_args_buffer = applyShader.CreateIndirectComputeArgsBuffer(dim.x, dim.y, dim.z); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
clearShader.SetVector("FluidDim", fluidSimulation.GridDim); |
|
|
|
applyShader.SetVector("FluidDim", fluidSimulation.GridDim); |
|
|
|
clearShader.SetBuffer(0, "VelocityBuffer", fluidSimulation.VelocityBuffer); |
|
|
|
applyShader.SetBuffer(0, "VelocityBuffer", fluidSimulation.VelocityBuffer); |
|
|
|
clearShader.SetBuffer(0, "TemperatureBuffer", fluidSimulation.TemperatureBuffer); |
|
|
|
applyShader.SetBuffer(0, "TemperatureBuffer", fluidSimulation.TemperatureBuffer); |
|
|
|
clearShader.SetBuffer(0, "ObstacleBuffer", fluidSimulation.ObstacleBuffer); |
|
|
|
applyShader.SetBuffer(0, "ObstacleBuffer", fluidSimulation.ObstacleBuffer); |
|
|
|
clearShader.SetBuffer(0, "DensityBuffer", fluidSimulation.DensityBuffer); |
|
|
|
applyShader.SetBuffer(0, "DensityBuffer", fluidSimulation.DensityBuffer); |
|
|
|
clearShader.SetFloat("timeStep", Time.fixedDeltaTime); |
|
|
|
applyShader.SetFloat("timeStep", Time.fixedDeltaTime); |
|
|
|
clearShader.SetFloat("temperatureAmount", fluidSimulation.m_temperatureAmount); |
|
|
|
applyShader.SetFloat("temperatureAmount", fluidSimulation.m_temperatureAmount); |
|
|
|
clearShader.SetFloat("densityAmount", fluidSimulation.m_densityAmount); |
|
|
|
applyShader.SetFloat("densityAmount", fluidSimulation.m_densityAmount); |
|
|
|
clearShader.SetFloat("kinectAmount", kinectAmount); |
|
|
|
applyShader.SetFloat("kinectAmount", kinectAmount); |
|
|
|
clearShader.SetBuffer(0, "KinectGridBuffer", kinect_grid_buffer); |
|
|
|
applyShader.SetBuffer(0, "KinectGridBuffer", kinect_grid_buffer); |
|
|
|
clearShader.DispatchIndirect(0, clear_grid_buffer_args_buffer); |
|
|
|
applyShader.DispatchIndirect(0, clear_grid_buffer_args_buffer); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|