// Function that returns a mip offset (for caustics) based on the simulation resolution static internal int EvaluateNormalMipOffset(WaterSimulationResolution resolution) { switch (resolution) { case WaterSimulationResolution.Ultra512: return(3); case WaterSimulationResolution.High256: return(2); case WaterSimulationResolution.Medium128: return(1); case WaterSimulationResolution.Low64: return(0); } return(0); }
static internal int EvaluateWaterNoiseSampleOffset(WaterSimulationResolution resolution) { switch (resolution) { case WaterSimulationResolution.Ultra512: return(0); case WaterSimulationResolution.High256: return(128); case WaterSimulationResolution.Medium128: return(192); case WaterSimulationResolution.Low64: return(224); default: return(0); } }
static internal void GetFFTKernels(ComputeShader fourierTransformCS, WaterSimulationResolution resolution, out int rowKernel, out int columnKernel) { switch (resolution) { case WaterSimulationResolution.Ultra512: { rowKernel = fourierTransformCS.FindKernel("RowPassTi_512"); columnKernel = fourierTransformCS.FindKernel("ColPassTi_512"); } break; case WaterSimulationResolution.High256: { rowKernel = fourierTransformCS.FindKernel("RowPassTi_256"); columnKernel = fourierTransformCS.FindKernel("ColPassTi_256"); } break; case WaterSimulationResolution.Medium128: { rowKernel = fourierTransformCS.FindKernel("RowPassTi_128"); columnKernel = fourierTransformCS.FindKernel("ColPassTi_128"); } break; case WaterSimulationResolution.Low64: { rowKernel = fourierTransformCS.FindKernel("RowPassTi_64"); columnKernel = fourierTransformCS.FindKernel("ColPassTi_64"); } break; default: { rowKernel = fourierTransformCS.FindKernel("RowPassTi_64"); columnKernel = fourierTransformCS.FindKernel("ColPassTi_64"); } break; } }