コード例 #1
0
ファイル: VXGI.cs プロジェクト: Hengle/Voxel2019.3.9
    public void Render(ScriptableRenderContext renderContext, Camera camera, VXGIRenderer renderer)
    {
        VXGIRenderPipeline.TriggerCameraCallback(camera, "OnPreRender", Camera.onPreRender);

        _command.BeginSample(_command.name);
        renderContext.ExecuteCommandBuffer(_command);
        _command.Clear();

        UpdateResolution();

        float realtime         = Time.realtimeSinceStartup;
        bool  tracingThrottled = throttleTracing;

        if (tracingThrottled)
        {
            if (_previousTrace + 1f / tracingRate < realtime)
            {
                _previousTrace = realtime;

                PrePass(renderContext, renderer);
            }
        }
        else
        {
            PrePass(renderContext, renderer);
        }

        renderContext.SetupCameraProperties(camera);

        _command.ClearRenderTarget(
            (camera.clearFlags & CameraClearFlags.Depth) != 0,
            camera.clearFlags == CameraClearFlags.Color,
            camera.backgroundColor
            );
        renderContext.ExecuteCommandBuffer(_command);
        _command.Clear();

        SetupShader(renderContext);

        VXGIRenderPipeline.TriggerCameraCallback(camera, "OnPreCull", Camera.onPreCull);

        renderer.RenderDeferred(renderContext, camera, this);

        _command.EndSample(_command.name);
        renderContext.ExecuteCommandBuffer(_command);
        _command.Clear();

        VXGIRenderPipeline.TriggerCameraCallback(camera, "OnPostRender", Camera.onPostRender);
    }
コード例 #2
0
    public void Render(ScriptableRenderContext renderContext, Camera camera, VXGIRenderer renderer)
    {
        VXGIRenderPipeline.TriggerCameraCallback(Camera, "OnPreRender", Camera.onPreRender);

        _command.BeginSample(_command.name);
        renderContext.ExecuteCommandBuffer(_command);
        _command.Clear();

        UpdateResolution();

        var time = Time.realtimeSinceStartup;

        if (!limitRefreshRate || (_previousRefresh + 1f / refreshRate < time))
        {
            _previousRefresh = time;

            PrePass(renderContext, renderer);
        }

        renderContext.SetupCameraProperties(camera);

        _command.ClearRenderTarget(
            (camera.clearFlags & CameraClearFlags.Depth) != 0,
            camera.clearFlags == CameraClearFlags.Color,
            camera.backgroundColor
            );
        renderContext.ExecuteCommandBuffer(_command);
        _command.Clear();

        SetupShader(renderContext);

        VXGIRenderPipeline.TriggerCameraCallback(Camera, "OnPreCull", Camera.onPreCull);

        renderer.RenderDeferred(renderContext, camera, this);

        _command.EndSample(_command.name);
        renderContext.ExecuteCommandBuffer(_command);
        _command.Clear();

        VXGIRenderPipeline.TriggerCameraCallback(Camera, "OnPostRender", Camera.onPostRender);
    }