diff --git a/src/document/scene-document-validation.ts b/src/document/scene-document-validation.ts index 8e3ac16c..3f7c9548 100644 --- a/src/document/scene-document-validation.ts +++ b/src/document/scene-document-validation.ts @@ -82,6 +82,7 @@ import { } from "./terrains"; import { isAdvancedRenderingWaterReflectionMode, + isAdvancedRenderingDynamicGlobalIlluminationQuality, isAdvancedRenderingShadowMapSize, isAdvancedRenderingShadowType, isBoxVolumeRenderPath, @@ -941,6 +942,60 @@ function validateWorldSettings( ); } + if (!isBoolean(advancedRendering.dynamicGlobalIllumination.enabled)) { + diagnostics.push( + createDiagnostic( + "error", + "invalid-advanced-rendering-dynamic-gi-enabled", + "Advanced rendering dynamic global illumination enabled must be a boolean.", + "world.advancedRendering.dynamicGlobalIllumination.enabled" + ) + ); + } + + if ( + !isNonNegativeFiniteNumber( + advancedRendering.dynamicGlobalIllumination.intensity + ) + ) { + diagnostics.push( + createDiagnostic( + "error", + "invalid-advanced-rendering-dynamic-gi-intensity", + "Advanced rendering dynamic global illumination intensity must be a non-negative finite number.", + "world.advancedRendering.dynamicGlobalIllumination.intensity" + ) + ); + } + + if ( + !isNonNegativeFiniteNumber(advancedRendering.dynamicGlobalIllumination.radius) + ) { + diagnostics.push( + createDiagnostic( + "error", + "invalid-advanced-rendering-dynamic-gi-radius", + "Advanced rendering dynamic global illumination radius must be a non-negative finite number.", + "world.advancedRendering.dynamicGlobalIllumination.radius" + ) + ); + } + + if ( + !isAdvancedRenderingDynamicGlobalIlluminationQuality( + advancedRendering.dynamicGlobalIllumination.quality + ) + ) { + diagnostics.push( + createDiagnostic( + "error", + "invalid-advanced-rendering-dynamic-gi-quality", + "Advanced rendering dynamic global illumination quality must be low or medium.", + "world.advancedRendering.dynamicGlobalIllumination.quality" + ) + ); + } + if (!isBoolean(advancedRendering.bloom.enabled)) { diagnostics.push( createDiagnostic(