Esempio n. 1
0
    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));