public void Next(ComputeBuffer u1, ComputeBuffer u0, ComputeBuffer v, int count, float dt) { var cap = cs.DispatchSize(K_NEXT, new Vector3Int(count, 1, 1)); cs.SetInt(P_COUNT, count); cs.SetVector(P_Params, Params(dt)); cs.SetBuffer(K_NEXT, P_V, v); cs.SetBuffer(K_NEXT, P_U0, u0); cs.SetBuffer(K_NEXT, P_U1, u1); cs.Dispatch(K_NEXT, cap.x, cap.y, cap.z); }
public void Next(RenderTexture u1, Texture u0, RenderTexture v, RenderTexture b) { cs.SetInt(P_COUNT, u1.width); cs.SetVector(P_Params, Params()); cs.SetTexture(K_NEXT, P_B, b); cs.SetTexture(K_NEXT, P_V, v); cs.SetTexture(K_NEXT, P_U0, u0); cs.SetTexture(K_NEXT, P_U1, u1); var cap = cs.DispatchSize(K_NEXT, new Vector3Int(u1.width, 1, 1)); cs.Dispatch(K_NEXT, cap.x, cap.y, cap.z); }
public static void DispatchThread(this ComputeShader cs, int kernel, params int[] totalThreads) { var vThreads = Vector3Int.one; var i = 0; foreach (var t in totalThreads) { vThreads[i++] = t; } var disp = cs.DispatchSize(kernel, vThreads); cs.Dispatch(kernel, disp.x, disp.y, disp.z); }
public static Vector3Int DispatchSize(this ComputeShader cs, int kernel, int x, int y = 1, int z = 1) { return(cs.DispatchSize(kernel, new Vector3Int(x, y, z))); }