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

Method PrepareRaytracedShadows

trinity/Eve/EveSpaceScene.cpp:1525–1565  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1523}
1524
1525void EveSpaceScene::PrepareRaytracedShadows( Tr2RenderContext& renderContext )
1526{
1527 if( m_objects.empty() )
1528 {
1529 return;
1530 }
1531
1532 if( !m_rtManager )
1533 {
1534 return;
1535 }
1536
1537 CCP_STATS_SCOPED_TIME( raytracedShadowsTime );
1538 m_rtManager->GetGeometry().BeginSceneUpdate();
1539
1540 ProcessOutdatedRTAnimations( renderContext );
1541
1542 auto& shadowCasters = m_componentRegistry->GetComponents<IEveShadowCaster>();
1543 Tr2ParallelDo( begin( shadowCasters ), end( shadowCasters ), [&]( auto caster ) {
1544 caster->PushRtGeometry( *m_rtManager );
1545 } );
1546
1547 Tr2RtShaderTableDescriptionAL* shaderTableDescs[3];
1548 Tr2RaytracingPipelineStateManager* pipelineManagers[3];
1549 shaderTableDescs[0] = &m_rtManager->m_shaderTableDesc;
1550 pipelineManagers[0] = &m_rtManager->m_pipelineManager;
1551 int i = 1;
1552 if( auto lightManager = Tr2LightManager::GetInstance() )
1553 {
1554 shaderTableDescs[i] = lightManager->GetRaytracingShaderTableDesc();
1555 pipelineManagers[i] = lightManager->GetRaytracingPipelineManager();
1556 i++;
1557 }
1558 if( m_volumetricsRenderer )
1559 {
1560 shaderTableDescs[i] = &m_volumetricsRenderer->m_shaderTableDesc;
1561 pipelineManagers[i] = &m_volumetricsRenderer->m_pipelineManager;
1562 i++;
1563 }
1564 m_rtManager->GetGeometry().EndSceneUpdate( renderContext, i, shaderTableDescs, pipelineManagers );
1565}
1566
1567void EveSpaceScene::UpdateImpostors( Tr2RenderContext& renderContext )
1568{

Callers

nothing calls this directly

Calls 8

emptyMethod · 0.80
BeginSceneUpdateMethod · 0.80
EndSceneUpdateMethod · 0.80
beginFunction · 0.50
endFunction · 0.50
PushRtGeometryMethod · 0.45

Tested by

no test coverage detected