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); }
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); }