Esempio n. 1
0
HRESULT ForwardPlusRenderer::RenderFrame(const RenderTarget& renderTarget, const RenderView& view)
{
    HRESULT hr = S_OK;

    if (RTWidth != renderTarget.Texture->GetDesc().Width ||
        RTHeight != renderTarget.Texture->GetDesc().Height)
    {
        hr = RecreateSurfaces(renderTarget.Texture->GetDesc().Width, renderTarget.Texture->GetDesc().Height, MsaaEnabled ? 4 : 1);
        CHECKHR(hr);
    }

    // Scene traversal once, used for multiple passes
    Scene->GetVisibleVisuals(view, &Visuals);
    Scene->GetVisibleLights(view, &Lights);

    RenderZPrePass(view);
    CullLights(view);
    RenderFinal(view, renderTarget);

    return S_OK;
}
void CLightingManager::LightSetup( const CViewSetup &setup )
{
	PrepareLights();

#if DEBUG
	m_bVolatileLists = true;
#endif

	CullLights();

#if DEFCFG_USE_SSE
	BuildLightSortDataBuffer();
#endif

	SortLights();

	if ( deferred_lightmanager_debug.GetInt() >= 2 )
	{
		DebugLights_Draw_Boundingboxes();
	}
}