public override void Render(Camera[] cameras, RenderLoop renderLoop) { foreach (var camera in cameras) { CullResults cullResults; CullingParameters cullingParams; if (!CullResults.GetCullingParameters(camera, out cullingParams)) { continue; } m_ShadowPass.UpdateCullingParameters(ref cullingParams); cullResults = CullResults.Cull(ref cullingParams, renderLoop); ShadowOutput shadows; m_ShadowPass.Render(renderLoop, cullResults, out shadows); renderLoop.SetupCameraProperties(camera); UpdateLightConstants(cullResults.visibleLights, ref shadows); var settings = new DrawRendererSettings(cullResults, camera, new ShaderPassName("ForwardBase")); settings.rendererConfiguration = RendererConfiguration.PerObjectLightProbe | RendererConfiguration.PerObjectReflectionProbes; settings.sorting.sortOptions = SortOptions.SortByMaterialThenMesh; renderLoop.DrawRenderers(ref settings); renderLoop.Submit(); } // Post effects }
public static void Render(RenderLoopWrapper wrapper, Camera[] cameras, RenderLoop renderLoop) { foreach (var camera in cameras) { CullingParameters cullingParams; bool gotCullingParams = CullResults.GetCullingParameters(camera, out cullingParams); Assert.IsTrue(gotCullingParams); CullResults cullResults = CullResults.Cull(ref cullingParams, renderLoop); s_Callback(camera, cullResults, renderLoop); } renderLoop.Submit(); }
public override void Render(Camera[] cameras, RenderLoop renderLoop) { if (!m_LitRenderLoop.isInit) { m_LitRenderLoop.RenderInit(renderLoop); } // Do anything we need to do upon a new frame. NewFrame(); // Set Frame constant buffer // TODO... foreach (var camera in cameras) { // Set camera constant buffer // TODO... CullingParameters cullingParams; if (!CullResults.GetCullingParameters(camera, out cullingParams)) { continue; } //m_ShadowPass.UpdateCullingParameters (ref cullingParams); var cullResults = CullResults.Cull(ref cullingParams, renderLoop); //ShadowOutput shadows; //m_ShadowPass.Render (renderLoop, cullResults, out shadows); renderLoop.SetupCameraProperties(camera); //UpdateLightConstants(cullResults.visibleLights /*, ref shadows */); UpdatePunctualLights(cullResults.visibleLights); UpdateReflectionProbes(cullResults.visibleReflectionProbes); InitAndClearBuffer(camera, renderLoop); RenderGBuffer(cullResults, camera, renderLoop); if (debugParameters.debugViewMaterial != 0) { RenderDebugViewMaterial(cullResults, camera, renderLoop); } else { RenderDeferredLighting(camera, renderLoop); RenderForward(cullResults, camera, renderLoop); RenderForwardUnlit(cullResults, camera, renderLoop); FinalPass(renderLoop); } renderLoop.Submit(); } // Post effects }