@@ -118,6 +118,7 @@ namespace Lux
118118 out << YAML ::Key << " Rendering" << YAML ::Value;
119119 out << YAML ::BeginMap;
120120 out << YAML ::Key << " FrustumCulling" << YAML ::Value << settings.EnableFrustumCulling ;
121+ out << YAML ::Key << " OcclusionCulling" << YAML ::Value << settings.EnableOcclusionCulling ;
121122 out << YAML ::Key << " GPUDrivenRendering" << YAML ::Value << settings.EnableGPUDrivenRendering ;
122123 out << YAML ::Key << " GTAO" << YAML ::Value << settings.EnableGTAO ;
123124 out << YAML ::Key << " GTAOBentNormals" << YAML ::Value << settings.GTAOBentNormals ;
@@ -130,6 +131,7 @@ namespace Lux
130131 out << YAML ::Key << " Shadows" << YAML ::Value;
131132 out << YAML ::BeginMap;
132133 out << YAML ::Key << " SoftShadows" << YAML ::Value << settings.SoftShadows ;
134+ out << YAML ::Key << " ShadowCulling" << YAML ::Value << settings.EnableShadowCulling ;
133135 out << YAML ::Key << " MaxDistance" << YAML ::Value << settings.MaxShadowDistance ;
134136 out << YAML ::Key << " DistanceFade" << YAML ::Value << settings.ShadowFade ;
135137 out << YAML ::Key << " SplitLambda" << YAML ::Value << settings.ShadowCascadeSplitLambda ;
@@ -177,6 +179,7 @@ namespace Lux
177179 if (auto rendering = node[" Rendering" ])
178180 {
179181 settings.EnableFrustumCulling = rendering[" FrustumCulling" ].as <bool >(settings.EnableFrustumCulling );
182+ settings.EnableOcclusionCulling = rendering[" OcclusionCulling" ].as <bool >(settings.EnableOcclusionCulling );
180183 settings.EnableGPUDrivenRendering = rendering[" GPUDrivenRendering" ].as <bool >(settings.EnableGPUDrivenRendering );
181184 settings.EnableGTAO = rendering[" GTAO" ].as <bool >(settings.EnableGTAO );
182185 settings.GTAOBentNormals = rendering[" GTAOBentNormals" ].as <bool >(settings.GTAOBentNormals );
@@ -189,6 +192,7 @@ namespace Lux
189192 if (auto shadows = node[" Shadows" ])
190193 {
191194 settings.SoftShadows = shadows[" SoftShadows" ].as <bool >(settings.SoftShadows );
195+ settings.EnableShadowCulling = shadows[" ShadowCulling" ].as <bool >(settings.EnableShadowCulling );
192196 settings.MaxShadowDistance = shadows[" MaxDistance" ].as <float >(settings.MaxShadowDistance );
193197 settings.ShadowFade = shadows[" DistanceFade" ].as <float >(settings.ShadowFade );
194198 settings.ShadowCascadeSplitLambda = shadows[" SplitLambda" ].as <float >(settings.ShadowCascadeSplitLambda );
@@ -229,6 +233,7 @@ namespace Lux
229233 void WriteSceneRendererRuntimeSettings (FileStreamWriter& serializer, const ProjectSceneRendererSettings& settings)
230234 {
231235 serializer.WriteRaw (settings.EnableFrustumCulling );
236+ serializer.WriteRaw (settings.EnableOcclusionCulling );
232237 serializer.WriteRaw (settings.EnableGPUDrivenRendering );
233238 serializer.WriteRaw (settings.EnableGTAO );
234239 serializer.WriteRaw (settings.GTAOBentNormals );
@@ -238,6 +243,7 @@ namespace Lux
238243 serializer.WriteRaw (settings.EnableJumpFlood );
239244
240245 serializer.WriteRaw (settings.SoftShadows );
246+ serializer.WriteRaw (settings.EnableShadowCulling );
241247 serializer.WriteRaw (settings.MaxShadowDistance );
242248 serializer.WriteRaw (settings.ShadowFade );
243249 serializer.WriteRaw (settings.ShadowCascadeSplitLambda );
@@ -262,9 +268,11 @@ namespace Lux
262268 serializer.WriteRaw (settings.SSRDepthTolerance );
263269 }
264270
265- void ReadSceneRendererRuntimeSettings (FileStreamReader& stream, ProjectSceneRendererSettings& settings)
271+ void ReadSceneRendererRuntimeSettings (FileStreamReader& stream, ProjectSceneRendererSettings& settings, uint32_t version )
266272 {
267273 stream.ReadRaw (settings.EnableFrustumCulling );
274+ if (version >= 3 )
275+ stream.ReadRaw (settings.EnableOcclusionCulling );
268276 stream.ReadRaw (settings.EnableGPUDrivenRendering );
269277 stream.ReadRaw (settings.EnableGTAO );
270278 stream.ReadRaw (settings.GTAOBentNormals );
@@ -274,6 +282,8 @@ namespace Lux
274282 stream.ReadRaw (settings.EnableJumpFlood );
275283
276284 stream.ReadRaw (settings.SoftShadows );
285+ if (version >= 3 )
286+ stream.ReadRaw (settings.EnableShadowCulling );
277287 stream.ReadRaw (settings.MaxShadowDistance );
278288 stream.ReadRaw (settings.ShadowFade );
279289 stream.ReadRaw (settings.ShadowCascadeSplitLambda );
@@ -663,7 +673,7 @@ namespace Lux
663673 }
664674
665675 if (projectInfo.HeaderData .Version >= 2 )
666- ReadSceneRendererRuntimeSettings (stream, config.SceneRenderer );
676+ ReadSceneRendererRuntimeSettings (stream, config.SceneRenderer , projectInfo. HeaderData . Version );
667677
668678 const std::filesystem::path overridesFile = filepath.parent_path () / " Project.yaml" ;
669679 if (std::filesystem::exists (overridesFile))
0 commit comments