void PRenderer::render(PRenderState *renderState) { PASSERT(m_scene->mainCamera() != P_NULL); // Create a default render pass if none exists if (m_renderPassArray.isEmpty()) { PRenderPass *renderPass = PNEW(PRenderPass("default", m_scene)); renderPass->setCamera(m_scene->mainCamera()); renderPass->queue()->addNodes(m_scene->root()); renderPass->target()->setColorClearValue(m_backgroundColor); PShadowPass *shadowPass = PNEW(PShadowPass("shadow", m_scene)); addRenderPass(shadowPass); addRenderPass(renderPass); } if (m_renderPassArray.isEmpty()) { PLOG_WARNING("There is no valid render pass existing."); return ; } for (puint32 i = 0; i < m_renderPassArray.size(); ++i) { m_renderPassArray[i]->render(renderState); } }
void MainCamera00::resetRenderPasses() { ComponentCamera::resetRenderPasses(); lfw::s32 passIndex; passIndex = findRenderPass(lfw::graph::RenderPassID_GBuffer); RenderPassTerrain* renderPassTerrain = LNEW debug::RenderPassTerrain; renderPassTerrain->set(debug::RenderPassTerrain::Type_Land); reinterpret_cast<lfw::graph::RenderPassGBuffer*>(getRenderPass(passIndex))->addSubPass(renderPassTerrain); passIndex = findRenderPass(lfw::graph::RenderPassID_Transparent); renderPass_ = LNEW debug::RenderPassProcedural; renderPass_->set(debug::RenderPassProcedural::Type_Space); addRenderPass(passIndex, renderPass_); }