void ApplyCompute( ComputeShader compute, int trianglePerThread, float amplitude, ComputeBuffer inputBuffer, ComputeBuffer outputBuffer) { var kernel = compute.FindKernel("Main"); compute.SetBuffer(kernel, "PositionSource", _positionSource); compute.SetBuffer(kernel, "NormalSource", _normalSource); compute.SetBuffer(kernel, "TangentSource", _tangentSource); compute.SetBuffer(kernel, "PositionInput", inputBuffer); compute.SetBuffer(kernel, "PositionOutput", outputBuffer); compute.SetInt("TriangleCount", _data.triangleCount); compute.SetFloat("Amplitude", amplitude); compute.SetFloat("RandomSeed", _randomSeed); compute.SetFloat("Time", globalTime); var c = compute.GetKernelThreadGroupSizeX(kernel) * trianglePerThread; compute.Dispatch(kernel, (_data.triangleCount + c - 1) / c, 1, 1); }