void OnEnable() { _bc = new BufferCreator(GetComponent <Camera>()); foreach (var config in configs) { var rt = GpuUtils.GetScreenRenderTexture(24, false, config.format); _bc.Add(config.shader, config.name, config.tag, rt); } }
void OnEnable() { uint[] args = new uint[5] { instanceMesh.GetIndexCount(0), (uint)(num.x * num.y), 0, 0, 0 }; argsBuffer = new ComputeBuffer(1, args.Length * sizeof(uint), ComputeBufferType.IndirectArguments); argsBuffer.SetData(args); system = new ComputeSystem(shader); system.AddKernel("Do", new Vector3Int(num.x, num.y, 1)); system.data.AddRenderTexture("u", GpuUtils.GetRenderTexture(num.x, num.y, 0, true, RenderTextureFormat.RFloat)); system.data.AddRenderTexture("v", GpuUtils.GetRenderTexture(num.x, num.y, 0, true, RenderTextureFormat.RFloat)); system.data.AddBuffer("buff", num.x * num.y, sizeof(float) * 4 * 2); system.data.AddBuffer("test", 1, sizeof(float)); system.BindComputeData(); // instanceMat.SetBuffer("buff", system.data.GetBuffer("buff")); //AAAA Time.fixedDeltaTime = 0.015f; }
public RenderSystemTest() { cam = new GameObject().AddComponent <Camera>(); cam.CopyFrom(Controller.currentCamera); cam.enabled = false; var computeShader = GameObject.Instantiate <ComputeShader>(Finder.Find <ComputeShader>("RenderTest")); computeSystem = new ComputeSystem(computeShader); mrtCam = new MRTCamera <DefferredBufferID>(cam); // mrtCam = new MRTCamera(cam, new DefferredBufferID()); mrtCam.GatherBuffers(); render = GpuUtils.GetScreenRenderTexture(0, true); deferredBuffers.Add(DefferredBufferID.Normals, new ComputeBuffer(Screen.width * Screen.height, sizeof(float) * 4)); deferredBuffers.Add(DefferredBufferID.Position, new ComputeBuffer(Screen.width * Screen.height, sizeof(float) * 4)); deferredBuffers.Add(DefferredBufferID.RenderIDs, new ComputeBuffer(Screen.width * Screen.height, sizeof(float) * 4)); //int Set(); }
public void Add(Shader shader, string name, string tag) => Add(shader, name, tag, GpuUtils.GetScreenRenderTexture(32));