本文整理汇总了C++中Light::IsInitialized方法的典型用法代码示例。如果您正苦于以下问题:C++ Light::IsInitialized方法的具体用法?C++ Light::IsInitialized怎么用?C++ Light::IsInitialized使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Light
的用法示例。
在下文中一共展示了Light::IsInitialized方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: VGenerateShadowMaps
///////////////////////////////////////////////
//Shadowing
///////////////////////////////////////////////
AVOID DeferredRenderer::VGenerateShadowMaps()
{
if (m_bVarianceShadows)
{
//m_pVarianceShadowsShaders->VBind();
//m_pShadowsShaders->VBind();
}
else
{
//m_pShadowsShaders->VBind();
}
m_pShadowCubeShaders->VBind();
//Set rendering states
m_pDepthEnableStencilDisableStandard->Set(1);
for (LightList::iterator lit = m_lights.begin(); lit != m_lights.end(); lit++)
{
Light* pLight = (*lit);
//initialize light if it hasn't been yet
if (!pLight->IsInitialized())
pLight->VInitialize(m_pLayout);
//clear shadow map before generating new one
pLight->VClearShadowMap();
Mesh * pMesh;
m_queue.Reset();
while (pMesh = m_queue.Next())
{
//pMesh->VPreRender(this, view, viewProj);
pLight->VPrepareToGenerateShadowMap(pMesh->GetWorldTransform(), this);
pMesh->GenerateShadowMap();
}
pLight->VFinishShadowMapGeneration(this);
}
}
示例2: VRender
AVOID DeferredRenderer::VRender()
{
/*** Render Scene For Each Camera ***/
//for (CameraPtr pCamera : m_cameras)
for (Cameras::iterator it = m_cameras.begin(); it != m_cameras.end(); it++)
{
CameraPtr pCamera = (*it);
//Keep track of current view and projection matrices
Mat4x4 view = pCamera->GetView();
Mat4x4 projection = pCamera->GetProjection();
Mat4x4 viewProj = view * projection; //calculate view * projection matrix
VRenderSky(pCamera, viewProj);
// Rendering to g-buffer
m_gbuffer.BindForWriting(m_pDepthDSV);
// ===================================================== //
// Go through sorted render queue and render each mesh //
// ===================================================== //
PrepareForGeometryPass(pCamera);
VSetStateForGBuffer();
m_pDepthEnableStencilDisableStandard->Set(1);
Mesh * pMesh;
m_queue.Reset();
while (pMesh = m_queue.Next())
{
//set states needed for rendering current mesh
pMesh->VPreRender(this, view, viewProj);
//finally render it
pMesh->VRender(this);
//remove previous states
pMesh->VPostRender(this);
}
//unbind g-buffer views
m_gbuffer.UnbindFromWriting();
// ========================================= //
// Generate Shadow Maps //
// ========================================= //
VGenerateShadowMaps();
// ========================================= //
// Generate velocity map //
// ========================================= //
//VGenerateVelocityMap(pCamera, this, viewProj);
//clear meshes queue
m_queue.Clear();
//m_pDepthDisableStencilDisable->Set(0);
//filter variance shadow maps
if (m_bVarianceShadows)
{
for (LightList::iterator lit = m_lights.begin(); lit != m_lights.end(); lit++)
{
Light* pLight = (*lit);
for (int i =0; i < 1; i++)
{
//FilterImage(pLight->GetVarianceShadowMapSRV(), pLight->GetVarianceShadowUAV(), pLight->GetTempSRV(), pLight->GetTempUAV(), SCREEN_WIDTH, SCREEN_HEIGHT, FT_Gaussian);
}
}
}
// ========================================= //
// Calculate ambient occlusion //
// ========================================= //
//CalculateAmbientOcclusion(pCamera);
//FilterImage(m_pSSAOSRV, m_pSSAOBlurredUAV, FT_Gaussian);
//m_pSSAOSRV->Set(5, ST_Pixel);
// ========================================= //
// Time for light pass - Render all lights //
// ========================================= //
//set g-buffer for reading and set back buffer as render target
m_gbuffer.BindForReading(0);
//SetRenderTargetView();
m_pTempRTV->Set();
PrepareForLightPass(pCamera);
//for (Light * pLight : m_lights)
for (LightList::iterator lit = m_lights.begin(); lit != m_lights.end(); lit++)
{
Light* pLight = (*lit);
//initialize light if it hasn't been yet
if (!pLight->IsInitialized())
pLight->VInitialize(m_pLayout);
//set states needed for rendering current light
pLight->VPreRender(this);
//scissor test optimization
pLight->VSetScissorRect(this, pCamera);
//finally render it
//.........这里部分代码省略.........