@@ -129,6 +129,11 @@ bool RaytraceSceneRequiresWorldSpaceBuffers(frame::LevelInterface& level)
129129 return false ;
130130}
131131
132+ bool HasRaytracingSourceMeshes (frame::LevelInterface& level)
133+ {
134+ return !GetRaytracingSourceMeshMaterials (level).empty ();
135+ }
136+
132137std::vector<std::pair<EntityId, std::string>> GetActiveTextureBindings (
133138 const MaterialInterface& material,
134139 const ProgramInterface& program)
@@ -617,7 +622,7 @@ void Renderer::UpdateRaytraceBuffersIfNeeded(SkinnedMesh& skinned_mesh)
617622 }
618623 }
619624
620- if (RaytraceSceneRequiresWorldSpaceBuffers (level_))
625+ if (HasRaytracingSourceMeshes (level_))
621626 {
622627 UpdateAggregateRaytraceSceneBuffers ();
623628 }
@@ -1106,7 +1111,9 @@ void Renderer::PreRender()
11061111 render_time_ = proto::NodeMesh::PRE_RENDER_TIME ;
11071112 // This will ensure that it is only true once.
11081113 auto first_render = std::exchange (first_render_, false );
1109- auto preprocess_entry = [&](const std::pair<EntityId, EntityId>& p) {
1114+ auto preprocess_entry = [&](
1115+ const std::pair<EntityId, EntityId>& p,
1116+ bool preprocess_every_frame) {
11101117 auto & node = level_.GetSceneNodeFromId (p.first );
11111118 if (node.GetLocalMesh ())
11121119 {
@@ -1118,7 +1125,7 @@ void Renderer::PreRender()
11181125 UpdateRaytraceBuffersIfNeeded (*gl_skinned_mesh);
11191126 }
11201127 }
1121- if (!first_render)
1128+ if (!first_render && !preprocess_every_frame )
11221129 {
11231130 return ;
11241131 }
@@ -1203,7 +1210,7 @@ void Renderer::PreRender()
12031210 for (const auto & p : level_.GetMeshMaterialIds (
12041211 proto::NodeMesh::PRE_RENDER_TIME ))
12051212 {
1206- preprocess_entry (p);
1213+ preprocess_entry (p, false );
12071214 }
12081215 for (const auto & p : level_.GetMeshMaterialIds (
12091216 proto::NodeMesh::SCENE_RENDER_TIME ))
@@ -1212,7 +1219,7 @@ void Renderer::PreRender()
12121219 {
12131220 continue ;
12141221 }
1215- preprocess_entry (p);
1222+ preprocess_entry (p, true );
12161223 }
12171224 if (RaytraceSceneRequiresWorldSpaceBuffers (level_))
12181225 {
0 commit comments