public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) { Downsampling downSamplingMethod = UniversalRenderPipeline.asset.opaqueDownsampling; var cameraColorTarget = renderer.cameraColorTarget; var clearRenderPass = new ClearColorPass(RenderPassEvent.BeforeRenderingOpaques, cameraColorTarget); var copyBeforeOpaquePass = new CopyColorPass(RenderPassEvent.BeforeRenderingOpaques, m_SamplingMaterial); copyBeforeOpaquePass.Setup(cameraColorTarget, beforeAll, downSamplingMethod); var copyAfterOpaquePass = new CopyColorPass(RenderPassEvent.AfterRenderingOpaques, m_SamplingMaterial); copyAfterOpaquePass.Setup(cameraColorTarget, afterOpaque, downSamplingMethod); var copyAfterSkyboxPass = new CopyColorPass(RenderPassEvent.AfterRenderingSkybox, m_SamplingMaterial); copyAfterSkyboxPass.Setup(cameraColorTarget, afterSkybox, downSamplingMethod); var copyAfterSkyboxPass2 = new CopyColorPass(RenderPassEvent.AfterRenderingSkybox, m_SamplingMaterial); copyAfterSkyboxPass.Setup(cameraColorTarget, afterSkybox2, downSamplingMethod); var copyAfterTransparents = new CopyColorPass(RenderPassEvent.AfterRenderingTransparents, m_SamplingMaterial); copyAfterTransparents.Setup(cameraColorTarget, afterTransparent, downSamplingMethod); var copyAfterEverything = new CopyColorPass(RenderPassEvent.AfterRenderingPostProcessing, m_SamplingMaterial); copyAfterEverything.Setup(afterPost.id, afterAll, downSamplingMethod); if (m_BlitRenderPassesToScreen == null) { m_BlitRenderPassesToScreen = new BlitPass(RenderPassEvent.AfterRendering, cameraColorTarget); } // Inserts out of order so we also test render passes sort correctly renderer.EnqueuePass(copyAfterEverything); renderer.EnqueuePass(m_BlitRenderPassesToScreen); renderer.EnqueuePass(copyAfterOpaquePass); renderer.EnqueuePass(copyAfterSkyboxPass); renderer.EnqueuePass(copyAfterSkyboxPass2); renderer.EnqueuePass(copyAfterTransparents); renderer.EnqueuePass(clearRenderPass); renderer.EnqueuePass(copyBeforeOpaquePass); }
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) { var cameraColorTarget = renderer.cameraColorTarget; var clearRenderPass = new ClearColorPass(RenderPassEvent.BeforeRenderingOpaques, cameraColorTarget); var copyBeforeOpaquePass = new CopyColorPass(RenderPassEvent.BeforeRenderingOpaques, m_SamplingMaterial, m_DownsamplingMethod); copyBeforeOpaquePass.Setup(cameraColorTarget, beforeAll); var copyAfterOpaquePass = new CopyColorPass(RenderPassEvent.AfterRenderingOpaques, m_SamplingMaterial, m_DownsamplingMethod); copyAfterOpaquePass.Setup(cameraColorTarget, afterOpaque); var copyAfterSkyboxPass = new CopyColorPass(RenderPassEvent.AfterRenderingSkybox, m_SamplingMaterial, m_DownsamplingMethod); copyAfterSkyboxPass.Setup(cameraColorTarget, afterSkybox); var copyAfterSkyboxPass2 = new CopyColorPass(RenderPassEvent.AfterRenderingSkybox, m_SamplingMaterial, m_DownsamplingMethod); copyAfterSkyboxPass.Setup(cameraColorTarget, afterSkybox2); var copyAfterTransparents = new CopyColorPass(RenderPassEvent.AfterRenderingTransparents, m_SamplingMaterial, m_DownsamplingMethod); copyAfterTransparents.Setup(cameraColorTarget, afterTransparent); var copyAfterEverything = new CopyColorPass(RenderPassEvent.AfterRendering, m_SamplingMaterial, m_DownsamplingMethod); copyAfterEverything.Setup(cameraColorTarget, afterAll); var BlitRenderPassesToScreen = new BlitPass(RenderPassEvent.AfterRendering, cameraColorTarget); // Inserts out of order so we also test render passes sort correctly renderer.EnqueuePass(copyAfterEverything); renderer.EnqueuePass(BlitRenderPassesToScreen); renderer.EnqueuePass(copyAfterOpaquePass); renderer.EnqueuePass(copyAfterSkyboxPass); renderer.EnqueuePass(copyAfterSkyboxPass2); renderer.EnqueuePass(copyAfterTransparents); renderer.EnqueuePass(clearRenderPass); renderer.EnqueuePass(copyBeforeOpaquePass); }