void RenderDebugViewMaterial(CullResults cull, HDCamera hdCamera, ScriptableRenderContext renderContext) { using (new Utilities.ProfilingSample("DebugView Material Mode Pass", renderContext)) // Render Opaque forward { Utilities.SetRenderTarget(renderContext, m_CameraColorBufferRT, m_CameraDepthStencilBufferRT, Utilities.kClearAll, Color.black); Shader.SetGlobalInt("_DebugViewMaterial", (int)debugParameters.debugViewMaterial); RenderOpaqueRenderList(cull, hdCamera.camera, renderContext, "DebugViewMaterial", Utilities.kRendererConfigurationBakedLighting); } // Render GBuffer opaque if (!debugParameters.ShouldUseForwardRenderingOnly()) { Utilities.SetupMaterialHDCamera(hdCamera, m_DebugViewMaterialGBuffer); m_DebugViewMaterialGBuffer.SetFloat("_DebugViewMaterial", (float)debugParameters.debugViewMaterial); // m_gbufferManager.BindBuffers(m_DebugViewMaterialGBuffer); // TODO: Bind depth textures var cmd = new CommandBuffer { name = "GBuffer Debug Pass" }; cmd.Blit(null, m_CameraColorBufferRT, m_DebugViewMaterialGBuffer, 0); renderContext.ExecuteCommandBuffer(cmd); cmd.Dispose(); } // Render forward transparent { RenderTransparentRenderList(cull, hdCamera.camera, renderContext, "DebugViewMaterial", Utilities.kRendererConfigurationBakedLighting); } // Last blit { var cmd = new CommandBuffer { name = "Blit DebugView Material Debug" }; cmd.Blit(m_CameraColorBufferRT, BuiltinRenderTextureType.CameraTarget); renderContext.ExecuteCommandBuffer(cmd); cmd.Dispose(); } }