// initialize the depth buffer to depth-test the low-res particles against
void SceneRenderer::renderLowResSceneDepth(const MatrixStorage& mats)
{
    if (m_params.useDepthPrepass && glBlitFramebufferFunc)
        downsampleSceneDepth(mats, m_fbos->m_sceneFbo, m_fbos->m_particleFbo);

    if (getParticleParams()->render)
        renderSceneDepth(mats, m_fbos->m_particleFbo);

    CHECK_GL_ERROR();
}
Example #2
0
// initialize the depth buffer to depth-test the low-res particles against
void SceneRenderer::renderLowResSceneDepth()
{
    // if the scene-resolution depth buffer can be used as a depth pre-pass
    // to speedup the forward shading passes, then it may make sense to
    // render the opaque geometry in full resolution first, and then
    // downsample the full-resolution depths to the particle resolution.

    if (m_params.useDepthPrepass)
    {
        renderSceneDepth(m_fbos->m_sceneFbo);

        downsampleSceneDepth(m_fbos->m_sceneFbo, m_fbos->m_particleFbo);
    }
    else
    {
        renderSceneDepth(m_fbos->m_particleFbo);
    }
}