MCPcopy Create free account
hub / github.com/carbonengine/trinity / DrawToShadowMapResult

Method DrawToShadowMapResult

trinity/Tr2ShadowMap.cpp:278–306  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

276}
277
278Tr2GpuResourcePool::Texture Tr2ShadowMap::DrawToShadowMapResult( Tr2RenderContext& renderContext, Tr2GpuResourcePool& gpuResourcePool, const Tr2TextureAL& depthMap, const Tr2TextureAL& cascadedShadowDepth, float upscaling )
279{
280 CCP_STATS_ZONE( __FUNCTION__ );
281
282 auto shadowMapResult = gpuResourcePool.GetTempTexture( "shadowMapResult", depthMap.GetWidth(), depthMap.GetHeight(), PixelFormat::PIXEL_FORMAT_R8_UNORM, Tr2GpuUsage::RENDER_TARGET | Tr2GpuUsage::SHADER_RESOURCE );
283
284 GPU_REGION( renderContext, "Denoising" );
285 renderContext.m_esm.PushRenderTarget( shadowMapResult );
286 renderContext.m_esm.PushDepthStencilBuffer( Tr2TextureAL() );
287
288 m_shadowEffect->SetParameter( BlueSharedString( "EveSpaceSceneCascadedShadowMap" ), cascadedShadowDepth );
289 m_shadowEffect->SetParameter( BlueSharedString( "DepthMap" ), depthMap );
290 Tr2Renderer::DrawScreenQuad( renderContext, m_shadowEffect );
291 m_shadowEffect->SetParameter( BlueSharedString( "EveSpaceSceneCascadedShadowMap" ), Tr2TextureAL{} );
292 m_shadowEffect->SetParameter( BlueSharedString( "DepthMap" ), Tr2TextureAL{} );
293
294 {
295 CCP_STATS_ZONE( "DO_DENOISER" );
296 if( m_denoiser && m_useDenoiser && depthMap.IsValid() )
297 {
298 shadowMapResult = m_denoiser->Apply( std::move( shadowMapResult ), depthMap, {}, Tr2Renderer::GetReversedDepthProjectionTransform(), upscaling, gpuResourcePool, renderContext );
299 }
300 }
301
302 renderContext.m_esm.PopRenderTarget();
303 renderContext.m_esm.PopDepthStencilBuffer();
304
305 return shadowMapResult;
306}
307
308const unsigned int Tr2ShadowMap::GetShadowSplitCount() const
309{

Callers 1

SetupCascadedShadowsMethod · 0.80

Calls 11

GetTempTextureMethod · 0.80
PopDepthStencilBufferMethod · 0.80
Tr2TextureALClass · 0.70
GetWidthMethod · 0.45
GetHeightMethod · 0.45
PushRenderTargetMethod · 0.45
SetParameterMethod · 0.45
IsValidMethod · 0.45
ApplyMethod · 0.45
PopRenderTargetMethod · 0.45

Tested by

no test coverage detected