@babylonjs/core 7.53.2 → 7.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AudioV2/abstractAudio/abstractSound.d.ts +1 -1
- package/AudioV2/abstractAudio/abstractSound.js +12 -12
- package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
- package/AudioV2/abstractAudio/audioEngineV2.d.ts +11 -1
- package/AudioV2/abstractAudio/audioEngineV2.js +14 -1
- package/AudioV2/abstractAudio/audioEngineV2.js.map +1 -1
- package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.d.ts +15 -8
- package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js +23 -11
- package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js.map +1 -1
- package/AudioV2/abstractAudio/staticSound.js +8 -0
- package/AudioV2/abstractAudio/staticSound.js.map +1 -1
- package/AudioV2/abstractAudio/staticSoundInstance.d.ts +2 -0
- package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.d.ts +4 -4
- package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.js +3 -3
- package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +23 -16
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +3 -3
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.d.ts +13 -6
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/spatialAudio.d.ts +13 -8
- package/AudioV2/abstractAudio/subProperties/spatialAudio.js +18 -14
- package/AudioV2/abstractAudio/subProperties/spatialAudio.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/spatialAudioListener.d.ts +10 -6
- package/AudioV2/abstractAudio/subProperties/spatialAudioListener.js +7 -3
- package/AudioV2/abstractAudio/subProperties/spatialAudioListener.js.map +1 -1
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +7 -5
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +15 -15
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
- package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.d.ts +3 -0
- package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.js +4 -2
- package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.js.map +1 -1
- package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.d.ts +3 -0
- package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.js +4 -2
- package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.js.map +1 -1
- package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +14 -13
- package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
- package/AudioV2/webAudio/webAudioEngine.d.ts +12 -0
- package/AudioV2/webAudio/webAudioEngine.js +16 -2
- package/AudioV2/webAudio/webAudioEngine.js.map +1 -1
- package/AudioV2/webAudio/webAudioMainOut.d.ts +3 -0
- package/AudioV2/webAudio/webAudioMainOut.js +4 -2
- package/AudioV2/webAudio/webAudioMainOut.js.map +1 -1
- package/AudioV2/webAudio/webAudioStaticSound.d.ts +4 -0
- package/AudioV2/webAudio/webAudioStaticSound.js +14 -0
- package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioUnmuteUI.d.ts +15 -0
- package/AudioV2/webAudio/webAudioUnmuteUI.js +45 -0
- package/AudioV2/webAudio/webAudioUnmuteUI.js.map +1 -0
- package/Behaviors/Meshes/pointerDragBehavior.js +10 -0
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.d.ts +4 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +10 -7
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.js +21 -3
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/abstractEngine.js +2 -3
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/thinEngine.d.ts +2 -1
- package/Engines/thinEngine.js +10 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +2 -1
- package/Engines/webgpuEngine.js +3 -2
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js +3 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.d.ts +16 -1
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js +33 -1
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js +4 -4
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.js +4 -4
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/anaglyphPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/anaglyphPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +4 -4
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.js +25 -15
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +6 -6
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +4 -2
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js +2 -0
- package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.js +2 -0
- package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.js +4 -2
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/clearBlock.js +4 -4
- package/FrameGraph/Node/Blocks/Textures/clearBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js +4 -4
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.js +2 -2
- package/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/{Rendering/cullObjectsBlock.d.ts → cullObjectsBlock.d.ts} +3 -3
- package/FrameGraph/Node/Blocks/{Rendering/cullObjectsBlock.js → cullObjectsBlock.js} +4 -4
- package/FrameGraph/Node/Blocks/cullObjectsBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/executeBlock.js +1 -2
- package/FrameGraph/Node/Blocks/executeBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/index.d.ts +1 -1
- package/FrameGraph/Node/Blocks/index.js +1 -1
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Node/Blocks/resourceContainerBlock.js +16 -16
- package/FrameGraph/Node/Blocks/resourceContainerBlock.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.d.ts +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.js +5 -4
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
- package/FrameGraph/Tasks/Layers/baseLayerTask.js +4 -4
- package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js +2 -2
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js +2 -2
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js +4 -4
- package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js.map +1 -1
- package/FrameGraph/index.d.ts +1 -1
- package/FrameGraph/index.js +1 -1
- package/FrameGraph/index.js.map +1 -1
- package/Gizmos/gizmo.js +25 -17
- package/Gizmos/gizmo.js.map +1 -1
- package/Lights/IES/iesLoader.d.ts +1 -1
- package/Lights/IES/iesLoader.js +1 -1
- package/Lights/IES/iesLoader.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +2 -2
- package/Lights/Shadows/shadowGenerator.js +2 -2
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/spotLight.d.ts +1 -1
- package/Lights/spotLight.js +1 -1
- package/Lights/spotLight.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +2 -2
- package/Materials/PBR/pbrBaseMaterial.js +2 -2
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +1 -0
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +3 -0
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/Loaders/basisTextureLoader.d.ts +1 -0
- package/Materials/Textures/Loaders/basisTextureLoader.js +1 -0
- package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/exrTextureLoader.d.ts +5 -4
- package/Materials/Textures/Loaders/exrTextureLoader.js +5 -4
- package/Materials/Textures/Loaders/exrTextureLoader.js.map +1 -1
- package/Materials/material.js +1 -1
- package/Materials/material.js.map +1 -1
- package/Maths/math.scalar.d.ts +1 -0
- package/Maths/math.scalar.functions.d.ts +9 -0
- package/Maths/math.scalar.functions.js +11 -0
- package/Maths/math.scalar.functions.js.map +1 -1
- package/Meshes/Node/Blocks/conditionBlock.d.ts +4 -0
- package/Meshes/Node/Blocks/conditionBlock.js +19 -8
- package/Meshes/Node/Blocks/conditionBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryEaseBlock.d.ts +96 -0
- package/Meshes/Node/Blocks/geometryEaseBlock.js +318 -0
- package/Meshes/Node/Blocks/geometryEaseBlock.js.map +1 -0
- package/Meshes/Node/index.d.ts +1 -0
- package/Meshes/Node/index.js +1 -0
- package/Meshes/Node/index.js.map +1 -1
- package/Meshes/csg2.d.ts +3 -3
- package/Meshes/csg2.js +3 -3
- package/Meshes/csg2.js.map +1 -1
- package/Meshes/lattice.d.ts +2 -2
- package/Meshes/lattice.js +5 -4
- package/Meshes/lattice.js.map +1 -1
- package/Meshes/lattice.material.d.ts +2 -2
- package/Meshes/lattice.material.js +2 -2
- package/Meshes/lattice.material.js.map +1 -1
- package/Meshes/mesh.d.ts +2 -2
- package/Meshes/mesh.js +2 -2
- package/Meshes/mesh.js.map +1 -1
- package/Misc/decorators.js +2 -2
- package/Misc/decorators.js.map +1 -1
- package/Misc/fileTools.d.ts +1 -1
- package/Misc/fileTools.js +1 -1
- package/Misc/fileTools.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.js +1 -0
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/PostProcesses/subSurfaceScatteringPostProcess.d.ts +3 -0
- package/PostProcesses/subSurfaceScatteringPostProcess.js +16 -1
- package/PostProcesses/subSurfaceScatteringPostProcess.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +4 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +11 -16
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +6 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +7 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.js +5 -1
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.js +3 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +3 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js +3 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js +3 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js +3 -1
- package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragment.js +3 -1
- package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js +3 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +3 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js +3 -1
- package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.js +3 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +3 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.js +3 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +3 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/decalFragment.js +3 -1
- package/Shaders/ShadersInclude/decalFragment.js.map +1 -1
- package/Shaders/ShadersInclude/decalFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/decalFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/decalVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/decalVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/depthPrePass.js +3 -1
- package/Shaders/ShadersInclude/depthPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.js +3 -1
- package/Shaders/ShadersInclude/diffusionProfile.js.map +1 -1
- package/Shaders/ShadersInclude/fibonacci.js +3 -2
- package/Shaders/ShadersInclude/fibonacci.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragment.js +3 -1
- package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertex.js +3 -1
- package/Shaders/ShadersInclude/fogVertex.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.js +3 -1
- package/Shaders/ShadersInclude/fresnelFunction.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js +3 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/gaussianSplattingFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.js +3 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +3 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +3 -1
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js +3 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js +3 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js +3 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js +3 -1
- package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js +3 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/instancesVertex.js +3 -1
- package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/intersectionFunctions.js +3 -1
- package/Shaders/ShadersInclude/intersectionFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.js +3 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.js +3 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js +3 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.js +3 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +3 -1
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +3 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/lineUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/lineUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lineVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/lineVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js +3 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.js +3 -1
- package/Shaders/ShadersInclude/logDepthFragment.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.js +3 -1
- package/Shaders/ShadersInclude/logDepthVertex.js.map +1 -1
- package/Shaders/ShadersInclude/ltcHelperFunctions.js +3 -1
- package/Shaders/ShadersInclude/ltcHelperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +3 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js +3 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +3 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +3 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js +3 -1
- package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitFragment.js +3 -1
- package/Shaders/ShadersInclude/oitFragment.js.map +1 -1
- package/Shaders/ShadersInclude/packingFunctions.js +3 -1
- package/Shaders/ShadersInclude/packingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +3 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +5 -2
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js +3 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +3 -1
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +3 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +3 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +3 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +3 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js +3 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js +3 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js +3 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +3 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js +3 -1
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.js +3 -1
- package/Shaders/ShadersInclude/reflectionFunction.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +3 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.js +3 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.js.map +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +3 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/screenSpaceRayTrace.js +3 -1
- package/Shaders/ShadersInclude/screenSpaceRayTrace.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.js +3 -1
- package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +3 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +3 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +3 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js +3 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +3 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js +3 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +3 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +3 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.js +3 -1
- package/Shaders/ShadersInclude/shadowsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +3 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js +3 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.js +3 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/vertexColorMixing.js +3 -1
- package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
- package/Shaders/anaglyph.fragment.js +3 -1
- package/Shaders/anaglyph.fragment.js.map +1 -1
- package/Shaders/background.fragment.js +3 -1
- package/Shaders/background.fragment.js.map +1 -1
- package/Shaders/background.vertex.js +3 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/bilateralBlur.fragment.js +3 -1
- package/Shaders/bilateralBlur.fragment.js.map +1 -1
- package/Shaders/bilateralBlurQuality.fragment.js +3 -1
- package/Shaders/bilateralBlurQuality.fragment.js.map +1 -1
- package/Shaders/blackAndWhite.fragment.js +3 -1
- package/Shaders/blackAndWhite.fragment.js.map +1 -1
- package/Shaders/bloomMerge.fragment.js +3 -1
- package/Shaders/bloomMerge.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js +3 -1
- package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js +3 -1
- package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
- package/Shaders/chromaticAberration.fragment.js +3 -1
- package/Shaders/chromaticAberration.fragment.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.js +3 -1
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Shaders/color.fragment.js +3 -1
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.js +3 -1
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/colorCorrection.fragment.js +3 -1
- package/Shaders/colorCorrection.fragment.js.map +1 -1
- package/Shaders/convolution.fragment.js +3 -1
- package/Shaders/convolution.fragment.js.map +1 -1
- package/Shaders/copyTexture3DLayerToTexture.fragment.js +3 -1
- package/Shaders/copyTexture3DLayerToTexture.fragment.js.map +1 -1
- package/Shaders/copyTextureToTexture.fragment.js +3 -1
- package/Shaders/copyTextureToTexture.fragment.js.map +1 -1
- package/Shaders/default.fragment.js +3 -1
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.js +3 -1
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/depth.fragment.js +3 -1
- package/Shaders/depth.fragment.js.map +1 -1
- package/Shaders/depth.vertex.js +3 -1
- package/Shaders/depth.vertex.js.map +1 -1
- package/Shaders/depthBoxBlur.fragment.js +3 -1
- package/Shaders/depthBoxBlur.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.js +3 -1
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js +3 -1
- package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
- package/Shaders/displayPass.fragment.js +3 -1
- package/Shaders/displayPass.fragment.js.map +1 -1
- package/Shaders/equirectangularPanorama.fragment.js +3 -1
- package/Shaders/equirectangularPanorama.fragment.js.map +1 -1
- package/Shaders/extractHighlights.fragment.js +3 -1
- package/Shaders/extractHighlights.fragment.js.map +1 -1
- package/Shaders/filter.fragment.js +3 -1
- package/Shaders/filter.fragment.js.map +1 -1
- package/Shaders/fluidRenderingBilateralBlur.fragment.js +3 -1
- package/Shaders/fluidRenderingBilateralBlur.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.fragment.js +3 -1
- package/Shaders/fluidRenderingParticleDepth.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js +3 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleDiffuse.fragment.js +3 -1
- package/Shaders/fluidRenderingParticleDiffuse.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDiffuse.vertex.js +3 -1
- package/Shaders/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleThickness.fragment.js +3 -1
- package/Shaders/fluidRenderingParticleThickness.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js +3 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/Shaders/fluidRenderingRender.fragment.js +3 -1
- package/Shaders/fluidRenderingRender.fragment.js.map +1 -1
- package/Shaders/fluidRenderingStandardBlur.fragment.js +3 -1
- package/Shaders/fluidRenderingStandardBlur.fragment.js.map +1 -1
- package/Shaders/fxaa.fragment.js +3 -1
- package/Shaders/fxaa.fragment.js.map +1 -1
- package/Shaders/fxaa.vertex.js +3 -1
- package/Shaders/fxaa.vertex.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +3 -1
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +3 -1
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.js +3 -1
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/geometry.vertex.js +3 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js +3 -1
- package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.fragment.js +3 -1
- package/Shaders/glowMapGeneration.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.vertex.js +3 -1
- package/Shaders/glowMapGeneration.vertex.js.map +1 -1
- package/Shaders/glowMapMerge.fragment.js +3 -1
- package/Shaders/glowMapMerge.fragment.js.map +1 -1
- package/Shaders/glowMapMerge.vertex.js +3 -1
- package/Shaders/glowMapMerge.vertex.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.js +3 -1
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.js +3 -1
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/gpuTransform.fragment.js +3 -1
- package/Shaders/gpuTransform.fragment.js.map +1 -1
- package/Shaders/gpuTransform.vertex.js +3 -1
- package/Shaders/gpuTransform.vertex.js.map +1 -1
- package/Shaders/gpuUpdateParticles.fragment.js +3 -1
- package/Shaders/gpuUpdateParticles.fragment.js.map +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js +3 -1
- package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
- package/Shaders/grain.fragment.js +3 -1
- package/Shaders/grain.fragment.js.map +1 -1
- package/Shaders/greasedLine.fragment.js +3 -1
- package/Shaders/greasedLine.fragment.js.map +1 -1
- package/Shaders/greasedLine.vertex.js +3 -1
- package/Shaders/greasedLine.vertex.js.map +1 -1
- package/Shaders/hdrFiltering.fragment.js +3 -1
- package/Shaders/hdrFiltering.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.vertex.js +3 -1
- package/Shaders/hdrFiltering.vertex.js.map +1 -1
- package/Shaders/hdrIrradianceFiltering.fragment.js +3 -1
- package/Shaders/hdrIrradianceFiltering.fragment.js.map +1 -1
- package/Shaders/hdrIrradianceFiltering.vertex.js +3 -1
- package/Shaders/hdrIrradianceFiltering.vertex.js.map +1 -1
- package/Shaders/highlights.fragment.js +3 -1
- package/Shaders/highlights.fragment.js.map +1 -1
- package/Shaders/iblCdfDebug.fragment.js +3 -1
- package/Shaders/iblCdfDebug.fragment.js.map +1 -1
- package/Shaders/iblCdfx.fragment.js +3 -1
- package/Shaders/iblCdfx.fragment.js.map +1 -1
- package/Shaders/iblCdfy.fragment.js +3 -1
- package/Shaders/iblCdfy.fragment.js.map +1 -1
- package/Shaders/iblCombineVoxelGrids.fragment.js +3 -1
- package/Shaders/iblCombineVoxelGrids.fragment.js.map +1 -1
- package/Shaders/iblGenerateVoxelMip.fragment.js +3 -1
- package/Shaders/iblGenerateVoxelMip.fragment.js.map +1 -1
- package/Shaders/iblIcdf.fragment.js +3 -1
- package/Shaders/iblIcdf.fragment.js.map +1 -1
- package/Shaders/iblScaledLuminance.fragment.js +3 -1
- package/Shaders/iblScaledLuminance.fragment.js.map +1 -1
- package/Shaders/iblShadowAccumulation.fragment.js +3 -1
- package/Shaders/iblShadowAccumulation.fragment.js.map +1 -1
- package/Shaders/iblShadowDebug.fragment.js +3 -1
- package/Shaders/iblShadowDebug.fragment.js.map +1 -1
- package/Shaders/iblShadowGBufferDebug.fragment.js +3 -1
- package/Shaders/iblShadowGBufferDebug.fragment.js.map +1 -1
- package/Shaders/iblShadowSpatialBlur.fragment.js +3 -1
- package/Shaders/iblShadowSpatialBlur.fragment.js.map +1 -1
- package/Shaders/iblShadowVoxelTracing.fragment.js +3 -1
- package/Shaders/iblShadowVoxelTracing.fragment.js.map +1 -1
- package/Shaders/iblShadowsCombine.fragment.js +3 -1
- package/Shaders/iblShadowsCombine.fragment.js.map +1 -1
- package/Shaders/iblVoxelGrid.fragment.js +3 -1
- package/Shaders/iblVoxelGrid.fragment.js.map +1 -1
- package/Shaders/iblVoxelGrid.vertex.js +3 -1
- package/Shaders/iblVoxelGrid.vertex.js.map +1 -1
- package/Shaders/iblVoxelGrid2dArrayDebug.fragment.js +3 -1
- package/Shaders/iblVoxelGrid2dArrayDebug.fragment.js.map +1 -1
- package/Shaders/iblVoxelGrid3dDebug.fragment.js +3 -1
- package/Shaders/iblVoxelGrid3dDebug.fragment.js.map +1 -1
- package/Shaders/iblVoxelSlabDebug.fragment.js +3 -1
- package/Shaders/iblVoxelSlabDebug.fragment.js.map +1 -1
- package/Shaders/iblVoxelSlabDebug.vertex.js +3 -1
- package/Shaders/iblVoxelSlabDebug.vertex.js.map +1 -1
- package/Shaders/imageProcessing.fragment.js +3 -1
- package/Shaders/imageProcessing.fragment.js.map +1 -1
- package/Shaders/kernelBlur.fragment.js +3 -1
- package/Shaders/kernelBlur.fragment.js.map +1 -1
- package/Shaders/kernelBlur.vertex.js +3 -1
- package/Shaders/kernelBlur.vertex.js.map +1 -1
- package/Shaders/layer.fragment.js +3 -1
- package/Shaders/layer.fragment.js.map +1 -1
- package/Shaders/layer.vertex.js +3 -1
- package/Shaders/layer.vertex.js.map +1 -1
- package/Shaders/lensFlare.fragment.js +3 -1
- package/Shaders/lensFlare.fragment.js.map +1 -1
- package/Shaders/lensFlare.vertex.js +3 -1
- package/Shaders/lensFlare.vertex.js.map +1 -1
- package/Shaders/lensHighlights.fragment.js +3 -1
- package/Shaders/lensHighlights.fragment.js.map +1 -1
- package/Shaders/line.fragment.js +3 -1
- package/Shaders/line.fragment.js.map +1 -1
- package/Shaders/line.vertex.js +3 -1
- package/Shaders/line.vertex.js.map +1 -1
- package/Shaders/lod.fragment.js +3 -1
- package/Shaders/lod.fragment.js.map +1 -1
- package/Shaders/lodCube.fragment.js +3 -1
- package/Shaders/lodCube.fragment.js.map +1 -1
- package/Shaders/meshUVSpaceRenderer.fragment.js +3 -1
- package/Shaders/meshUVSpaceRenderer.fragment.js.map +1 -1
- package/Shaders/meshUVSpaceRenderer.vertex.js +3 -1
- package/Shaders/meshUVSpaceRenderer.vertex.js.map +1 -1
- package/Shaders/meshUVSpaceRendererFinaliser.fragment.js +3 -1
- package/Shaders/meshUVSpaceRendererFinaliser.fragment.js.map +1 -1
- package/Shaders/meshUVSpaceRendererFinaliser.vertex.js +3 -1
- package/Shaders/meshUVSpaceRendererFinaliser.vertex.js.map +1 -1
- package/Shaders/meshUVSpaceRendererMasker.fragment.js +3 -1
- package/Shaders/meshUVSpaceRendererMasker.fragment.js.map +1 -1
- package/Shaders/meshUVSpaceRendererMasker.vertex.js +3 -1
- package/Shaders/meshUVSpaceRendererMasker.vertex.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.js +3 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/motionBlur.fragment.js +3 -1
- package/Shaders/motionBlur.fragment.js.map +1 -1
- package/Shaders/noise.fragment.js +3 -1
- package/Shaders/noise.fragment.js.map +1 -1
- package/Shaders/oitBackBlend.fragment.js +3 -1
- package/Shaders/oitBackBlend.fragment.js.map +1 -1
- package/Shaders/oitFinal.fragment.js +3 -1
- package/Shaders/oitFinal.fragment.js.map +1 -1
- package/Shaders/outline.fragment.js +3 -1
- package/Shaders/outline.fragment.js.map +1 -1
- package/Shaders/outline.vertex.js +3 -1
- package/Shaders/outline.vertex.js.map +1 -1
- package/Shaders/particles.fragment.js +3 -1
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.js +3 -1
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/pass.fragment.js +3 -1
- package/Shaders/pass.fragment.js.map +1 -1
- package/Shaders/passCube.fragment.js +3 -1
- package/Shaders/passCube.fragment.js.map +1 -1
- package/Shaders/pbr.fragment.js +6 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.js +3 -1
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/picking.fragment.js +3 -1
- package/Shaders/picking.fragment.js.map +1 -1
- package/Shaders/picking.vertex.js +3 -1
- package/Shaders/picking.vertex.js.map +1 -1
- package/Shaders/postprocess.vertex.js +3 -1
- package/Shaders/postprocess.vertex.js.map +1 -1
- package/Shaders/procedural.vertex.js +3 -1
- package/Shaders/procedural.vertex.js.map +1 -1
- package/Shaders/refraction.fragment.js +3 -1
- package/Shaders/refraction.fragment.js.map +1 -1
- package/Shaders/rgbdDecode.fragment.js +3 -1
- package/Shaders/rgbdDecode.fragment.js.map +1 -1
- package/Shaders/rgbdEncode.fragment.js +3 -1
- package/Shaders/rgbdEncode.fragment.js.map +1 -1
- package/Shaders/rsmFullGlobalIllumination.fragment.js +3 -1
- package/Shaders/rsmFullGlobalIllumination.fragment.js.map +1 -1
- package/Shaders/rsmGlobalIllumination.fragment.js +3 -1
- package/Shaders/rsmGlobalIllumination.fragment.js.map +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js +3 -1
- package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection.fragment.js +3 -1
- package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection2.fragment.js +3 -1
- package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection2Blur.fragment.js +3 -1
- package/Shaders/screenSpaceReflection2Blur.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js +3 -1
- package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js.map +1 -1
- package/Shaders/shadowMap.fragment.js +3 -1
- package/Shaders/shadowMap.fragment.js.map +1 -1
- package/Shaders/shadowMap.vertex.js +3 -1
- package/Shaders/shadowMap.vertex.js.map +1 -1
- package/Shaders/sharpen.fragment.js +3 -1
- package/Shaders/sharpen.fragment.js.map +1 -1
- package/Shaders/spriteMap.fragment.js +3 -1
- package/Shaders/spriteMap.fragment.js.map +1 -1
- package/Shaders/spriteMap.vertex.js +3 -1
- package/Shaders/spriteMap.vertex.js.map +1 -1
- package/Shaders/sprites.fragment.js +3 -1
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.js +3 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/Shaders/ssao.fragment.js +3 -1
- package/Shaders/ssao.fragment.js.map +1 -1
- package/Shaders/ssao2.fragment.js +3 -1
- package/Shaders/ssao2.fragment.js.map +1 -1
- package/Shaders/ssaoCombine.fragment.js +3 -1
- package/Shaders/ssaoCombine.fragment.js.map +1 -1
- package/Shaders/standard.fragment.js +3 -1
- package/Shaders/standard.fragment.js.map +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js +3 -1
- package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
- package/Shaders/subSurfaceScattering.fragment.d.ts +1 -1
- package/Shaders/subSurfaceScattering.fragment.js +8 -6
- package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
- package/Shaders/taa.fragment.js +3 -1
- package/Shaders/taa.fragment.js.map +1 -1
- package/Shaders/tonemap.fragment.js +3 -1
- package/Shaders/tonemap.fragment.js.map +1 -1
- package/Shaders/velocity.fragment.js +3 -1
- package/Shaders/velocity.fragment.js.map +1 -1
- package/Shaders/velocity.vertex.js +3 -1
- package/Shaders/velocity.vertex.js.map +1 -1
- package/Shaders/volumetricLightScattering.fragment.js +3 -1
- package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js +3 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js +3 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js +3 -1
- package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js +3 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +3 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bumpFragment.js +3 -1
- package/ShadersWGSL/ShadersInclude/bumpFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bumpFragmentFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bumpVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/bumpVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +3 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/decalFragment.js +3 -1
- package/ShadersWGSL/ShadersInclude/decalFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/decalFragmentDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/decalFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/decalVertexDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/decalVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/depthPrePass.js +3 -1
- package/ShadersWGSL/ShadersInclude/depthPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/diffusionProfile.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/diffusionProfile.js +12 -0
- package/ShadersWGSL/ShadersInclude/diffusionProfile.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/fibonacci.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/fibonacci.js +17 -0
- package/ShadersWGSL/ShadersInclude/fibonacci.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/fogFragment.js +3 -1
- package/ShadersWGSL/ShadersInclude/fogFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/fogFragmentDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/fogVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/fogVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/fresnelFunction.js +3 -1
- package/ShadersWGSL/ShadersInclude/fresnelFunction.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingVertexDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/helperFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingCompatibility.js +3 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/importanceSampling.js +3 -1
- package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/intersectionFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/intersectionFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js +3 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js +3 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js +3 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/logDepthDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/logDepthDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/logDepthFragment.js +3 -1
- package/ShadersWGSL/ShadersInclude/logDepthFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/logDepthVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/logDepthVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/ltcHelperFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/ltcHelperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/mainUVVaryingDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +3 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/oitDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/oitDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/oitFragment.js +3 -1
- package/ShadersWGSL/ShadersInclude/oitFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/packingFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/packingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js +5 -2
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockNormalGeometric.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pointCloudVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/pointCloudVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pointCloudVertexDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/prePassVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/reflectionFunction.js +3 -1
- package/ShadersWGSL/ShadersInclude/reflectionFunction.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/samplerFragmentAlternateDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/samplerFragmentDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/samplerVertexDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/samplerVertexImplementation.js +3 -1
- package/ShadersWGSL/ShadersInclude/samplerVertexImplementation.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/screenSpaceRayTrace.js +3 -1
- package/ShadersWGSL/ShadersInclude/screenSpaceRayTrace.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragment.js +3 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +3 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js +3 -1
- package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js +3 -1
- package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowsVertex.js +3 -1
- package/ShadersWGSL/ShadersInclude/shadowsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/subSurfaceScatteringFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/uvAttributeDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/uvVariableDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/uvVariableDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/vertexColorMixing.js +3 -1
- package/ShadersWGSL/ShadersInclude/vertexColorMixing.js.map +1 -1
- package/ShadersWGSL/anaglyph.fragment.js +3 -1
- package/ShadersWGSL/anaglyph.fragment.js.map +1 -1
- package/ShadersWGSL/background.fragment.js +3 -1
- package/ShadersWGSL/background.fragment.js.map +1 -1
- package/ShadersWGSL/background.vertex.js +3 -1
- package/ShadersWGSL/background.vertex.js.map +1 -1
- package/ShadersWGSL/bilateralBlur.fragment.js +3 -1
- package/ShadersWGSL/bilateralBlur.fragment.js.map +1 -1
- package/ShadersWGSL/bilateralBlurQuality.fragment.js +3 -1
- package/ShadersWGSL/bilateralBlurQuality.fragment.js.map +1 -1
- package/ShadersWGSL/blackAndWhite.fragment.js +3 -1
- package/ShadersWGSL/blackAndWhite.fragment.js.map +1 -1
- package/ShadersWGSL/bloomMerge.fragment.js +3 -1
- package/ShadersWGSL/bloomMerge.fragment.js.map +1 -1
- package/ShadersWGSL/boundingBoxRenderer.fragment.js +3 -1
- package/ShadersWGSL/boundingBoxRenderer.fragment.js.map +1 -1
- package/ShadersWGSL/boundingBoxRenderer.vertex.js +3 -1
- package/ShadersWGSL/boundingBoxRenderer.vertex.js.map +1 -1
- package/ShadersWGSL/boundingInfo.compute.js +3 -1
- package/ShadersWGSL/boundingInfo.compute.js.map +1 -1
- package/ShadersWGSL/chromaticAberration.fragment.js +3 -1
- package/ShadersWGSL/chromaticAberration.fragment.js.map +1 -1
- package/ShadersWGSL/circleOfConfusion.fragment.js +3 -1
- package/ShadersWGSL/circleOfConfusion.fragment.js.map +1 -1
- package/ShadersWGSL/clearQuad.fragment.js +3 -1
- package/ShadersWGSL/clearQuad.fragment.js.map +1 -1
- package/ShadersWGSL/clearQuad.vertex.js +3 -1
- package/ShadersWGSL/clearQuad.vertex.js.map +1 -1
- package/ShadersWGSL/color.fragment.js +3 -1
- package/ShadersWGSL/color.fragment.js.map +1 -1
- package/ShadersWGSL/color.vertex.js +3 -1
- package/ShadersWGSL/color.vertex.js.map +1 -1
- package/ShadersWGSL/colorCorrection.fragment.js +3 -1
- package/ShadersWGSL/colorCorrection.fragment.js.map +1 -1
- package/ShadersWGSL/convolution.fragment.js +3 -1
- package/ShadersWGSL/convolution.fragment.js.map +1 -1
- package/ShadersWGSL/copyTexture3DLayerToTexture.fragment.js +3 -1
- package/ShadersWGSL/copyTexture3DLayerToTexture.fragment.js.map +1 -1
- package/ShadersWGSL/copyTextureToTexture.fragment.js +3 -1
- package/ShadersWGSL/copyTextureToTexture.fragment.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +3 -1
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/default.vertex.js +3 -1
- package/ShadersWGSL/default.vertex.js.map +1 -1
- package/ShadersWGSL/depth.fragment.js +3 -1
- package/ShadersWGSL/depth.fragment.js.map +1 -1
- package/ShadersWGSL/depth.vertex.js +3 -1
- package/ShadersWGSL/depth.vertex.js.map +1 -1
- package/ShadersWGSL/depthBoxBlur.fragment.js +3 -1
- package/ShadersWGSL/depthBoxBlur.fragment.js.map +1 -1
- package/ShadersWGSL/depthOfFieldMerge.fragment.js +3 -1
- package/ShadersWGSL/depthOfFieldMerge.fragment.js.map +1 -1
- package/ShadersWGSL/displayPass.fragment.js +3 -1
- package/ShadersWGSL/displayPass.fragment.js.map +1 -1
- package/ShadersWGSL/extractHighlights.fragment.js +3 -1
- package/ShadersWGSL/extractHighlights.fragment.js.map +1 -1
- package/ShadersWGSL/filter.fragment.js +3 -1
- package/ShadersWGSL/filter.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingBilateralBlur.fragment.js +3 -1
- package/ShadersWGSL/fluidRenderingBilateralBlur.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDepth.fragment.js +3 -1
- package/ShadersWGSL/fluidRenderingParticleDepth.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +3 -1
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDiffuse.fragment.js +3 -1
- package/ShadersWGSL/fluidRenderingParticleDiffuse.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDiffuse.vertex.js +3 -1
- package/ShadersWGSL/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleThickness.fragment.js +3 -1
- package/ShadersWGSL/fluidRenderingParticleThickness.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +3 -1
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/ShadersWGSL/fluidRenderingRender.fragment.js +3 -1
- package/ShadersWGSL/fluidRenderingRender.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingStandardBlur.fragment.js +3 -1
- package/ShadersWGSL/fluidRenderingStandardBlur.fragment.js.map +1 -1
- package/ShadersWGSL/fxaa.fragment.js +3 -1
- package/ShadersWGSL/fxaa.fragment.js.map +1 -1
- package/ShadersWGSL/fxaa.vertex.js +3 -1
- package/ShadersWGSL/fxaa.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js +3 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +3 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/geometry.fragment.js +3 -1
- package/ShadersWGSL/geometry.fragment.js.map +1 -1
- package/ShadersWGSL/geometry.vertex.js +3 -1
- package/ShadersWGSL/geometry.vertex.js.map +1 -1
- package/ShadersWGSL/glowBlurPostProcess.fragment.js +3 -1
- package/ShadersWGSL/glowBlurPostProcess.fragment.js.map +1 -1
- package/ShadersWGSL/glowMapGeneration.fragment.js +3 -1
- package/ShadersWGSL/glowMapGeneration.fragment.js.map +1 -1
- package/ShadersWGSL/glowMapGeneration.vertex.js +3 -1
- package/ShadersWGSL/glowMapGeneration.vertex.js.map +1 -1
- package/ShadersWGSL/glowMapMerge.fragment.js +3 -1
- package/ShadersWGSL/glowMapMerge.fragment.js.map +1 -1
- package/ShadersWGSL/glowMapMerge.vertex.js +3 -1
- package/ShadersWGSL/glowMapMerge.vertex.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +3 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/ShadersWGSL/grain.fragment.js +3 -1
- package/ShadersWGSL/grain.fragment.js.map +1 -1
- package/ShadersWGSL/greasedLine.fragment.js +3 -1
- package/ShadersWGSL/greasedLine.fragment.js.map +1 -1
- package/ShadersWGSL/greasedLine.vertex.js +3 -1
- package/ShadersWGSL/greasedLine.vertex.js.map +1 -1
- package/ShadersWGSL/hdrFiltering.fragment.js +3 -1
- package/ShadersWGSL/hdrFiltering.fragment.js.map +1 -1
- package/ShadersWGSL/hdrFiltering.vertex.js +3 -1
- package/ShadersWGSL/hdrFiltering.vertex.js.map +1 -1
- package/ShadersWGSL/hdrIrradianceFiltering.fragment.js +3 -1
- package/ShadersWGSL/hdrIrradianceFiltering.fragment.js.map +1 -1
- package/ShadersWGSL/hdrIrradianceFiltering.vertex.js +3 -1
- package/ShadersWGSL/hdrIrradianceFiltering.vertex.js.map +1 -1
- package/ShadersWGSL/highlights.fragment.js +3 -1
- package/ShadersWGSL/highlights.fragment.js.map +1 -1
- package/ShadersWGSL/iblCdfDebug.fragment.js +3 -1
- package/ShadersWGSL/iblCdfDebug.fragment.js.map +1 -1
- package/ShadersWGSL/iblCdfx.fragment.js +3 -1
- package/ShadersWGSL/iblCdfx.fragment.js.map +1 -1
- package/ShadersWGSL/iblCdfy.fragment.js +3 -1
- package/ShadersWGSL/iblCdfy.fragment.js.map +1 -1
- package/ShadersWGSL/iblCombineVoxelGrids.fragment.js +3 -1
- package/ShadersWGSL/iblCombineVoxelGrids.fragment.js.map +1 -1
- package/ShadersWGSL/iblGenerateVoxelMip.fragment.js +3 -1
- package/ShadersWGSL/iblGenerateVoxelMip.fragment.js.map +1 -1
- package/ShadersWGSL/iblIcdf.fragment.js +3 -1
- package/ShadersWGSL/iblIcdf.fragment.js.map +1 -1
- package/ShadersWGSL/iblScaledLuminance.fragment.js +3 -1
- package/ShadersWGSL/iblScaledLuminance.fragment.js.map +1 -1
- package/ShadersWGSL/iblShadowAccumulation.fragment.js +3 -1
- package/ShadersWGSL/iblShadowAccumulation.fragment.js.map +1 -1
- package/ShadersWGSL/iblShadowDebug.fragment.js +3 -1
- package/ShadersWGSL/iblShadowDebug.fragment.js.map +1 -1
- package/ShadersWGSL/iblShadowGBufferDebug.fragment.js +3 -1
- package/ShadersWGSL/iblShadowGBufferDebug.fragment.js.map +1 -1
- package/ShadersWGSL/iblShadowSpatialBlur.fragment.js +3 -1
- package/ShadersWGSL/iblShadowSpatialBlur.fragment.js.map +1 -1
- package/ShadersWGSL/iblShadowVoxelTracing.fragment.js +3 -1
- package/ShadersWGSL/iblShadowVoxelTracing.fragment.js.map +1 -1
- package/ShadersWGSL/iblShadowsCombine.fragment.js +3 -1
- package/ShadersWGSL/iblShadowsCombine.fragment.js.map +1 -1
- package/ShadersWGSL/iblVoxelGrid.fragment.js +3 -1
- package/ShadersWGSL/iblVoxelGrid.fragment.js.map +1 -1
- package/ShadersWGSL/iblVoxelGrid.vertex.js +3 -1
- package/ShadersWGSL/iblVoxelGrid.vertex.js.map +1 -1
- package/ShadersWGSL/iblVoxelGrid2dArrayDebug.fragment.js +3 -1
- package/ShadersWGSL/iblVoxelGrid2dArrayDebug.fragment.js.map +1 -1
- package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js +3 -1
- package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js.map +1 -1
- package/ShadersWGSL/iblVoxelSlabDebug.fragment.js +3 -1
- package/ShadersWGSL/iblVoxelSlabDebug.fragment.js.map +1 -1
- package/ShadersWGSL/iblVoxelSlabDebug.vertex.js +3 -1
- package/ShadersWGSL/iblVoxelSlabDebug.vertex.js.map +1 -1
- package/ShadersWGSL/imageProcessing.fragment.js +3 -1
- package/ShadersWGSL/imageProcessing.fragment.js.map +1 -1
- package/ShadersWGSL/kernelBlur.fragment.js +3 -1
- package/ShadersWGSL/kernelBlur.fragment.js.map +1 -1
- package/ShadersWGSL/kernelBlur.vertex.js +3 -1
- package/ShadersWGSL/kernelBlur.vertex.js.map +1 -1
- package/ShadersWGSL/layer.fragment.js +3 -1
- package/ShadersWGSL/layer.fragment.js.map +1 -1
- package/ShadersWGSL/layer.vertex.js +3 -1
- package/ShadersWGSL/layer.vertex.js.map +1 -1
- package/ShadersWGSL/lensFlare.fragment.js +3 -1
- package/ShadersWGSL/lensFlare.fragment.js.map +1 -1
- package/ShadersWGSL/lensFlare.vertex.js +3 -1
- package/ShadersWGSL/lensFlare.vertex.js.map +1 -1
- package/ShadersWGSL/line.fragment.js +3 -1
- package/ShadersWGSL/line.fragment.js.map +1 -1
- package/ShadersWGSL/line.vertex.js +3 -1
- package/ShadersWGSL/line.vertex.js.map +1 -1
- package/ShadersWGSL/lod.fragment.js +3 -1
- package/ShadersWGSL/lod.fragment.js.map +1 -1
- package/ShadersWGSL/lodCube.fragment.js +3 -1
- package/ShadersWGSL/lodCube.fragment.js.map +1 -1
- package/ShadersWGSL/meshUVSpaceRenderer.fragment.js +3 -1
- package/ShadersWGSL/meshUVSpaceRenderer.fragment.js.map +1 -1
- package/ShadersWGSL/meshUVSpaceRenderer.vertex.js +3 -1
- package/ShadersWGSL/meshUVSpaceRenderer.vertex.js.map +1 -1
- package/ShadersWGSL/meshUVSpaceRendererFinaliser.fragment.js +3 -1
- package/ShadersWGSL/meshUVSpaceRendererFinaliser.fragment.js.map +1 -1
- package/ShadersWGSL/meshUVSpaceRendererFinaliser.vertex.js +3 -1
- package/ShadersWGSL/meshUVSpaceRendererFinaliser.vertex.js.map +1 -1
- package/ShadersWGSL/meshUVSpaceRendererMasker.fragment.js +3 -1
- package/ShadersWGSL/meshUVSpaceRendererMasker.fragment.js.map +1 -1
- package/ShadersWGSL/meshUVSpaceRendererMasker.vertex.js +3 -1
- package/ShadersWGSL/meshUVSpaceRendererMasker.vertex.js.map +1 -1
- package/ShadersWGSL/motionBlur.fragment.js +3 -1
- package/ShadersWGSL/motionBlur.fragment.js.map +1 -1
- package/ShadersWGSL/oitBackBlend.fragment.js +3 -1
- package/ShadersWGSL/oitBackBlend.fragment.js.map +1 -1
- package/ShadersWGSL/oitFinal.fragment.js +3 -1
- package/ShadersWGSL/oitFinal.fragment.js.map +1 -1
- package/ShadersWGSL/outline.fragment.js +3 -1
- package/ShadersWGSL/outline.fragment.js.map +1 -1
- package/ShadersWGSL/outline.vertex.js +3 -1
- package/ShadersWGSL/outline.vertex.js.map +1 -1
- package/ShadersWGSL/particles.fragment.js +3 -1
- package/ShadersWGSL/particles.fragment.js.map +1 -1
- package/ShadersWGSL/particles.vertex.js +3 -1
- package/ShadersWGSL/particles.vertex.js.map +1 -1
- package/ShadersWGSL/pass.fragment.js +3 -1
- package/ShadersWGSL/pass.fragment.js.map +1 -1
- package/ShadersWGSL/passCube.fragment.js +3 -1
- package/ShadersWGSL/passCube.fragment.js.map +1 -1
- package/ShadersWGSL/pbr.fragment.js +6 -1
- package/ShadersWGSL/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/pbr.vertex.js +3 -1
- package/ShadersWGSL/pbr.vertex.js.map +1 -1
- package/ShadersWGSL/picking.fragment.js +3 -1
- package/ShadersWGSL/picking.fragment.js.map +1 -1
- package/ShadersWGSL/picking.vertex.js +3 -1
- package/ShadersWGSL/picking.vertex.js.map +1 -1
- package/ShadersWGSL/postprocess.vertex.js +3 -1
- package/ShadersWGSL/postprocess.vertex.js.map +1 -1
- package/ShadersWGSL/procedural.vertex.js +3 -1
- package/ShadersWGSL/procedural.vertex.js.map +1 -1
- package/ShadersWGSL/rgbdDecode.fragment.js +3 -1
- package/ShadersWGSL/rgbdDecode.fragment.js.map +1 -1
- package/ShadersWGSL/rgbdEncode.fragment.js +3 -1
- package/ShadersWGSL/rgbdEncode.fragment.js.map +1 -1
- package/ShadersWGSL/rsmFullGlobalIllumination.fragment.js +3 -1
- package/ShadersWGSL/rsmFullGlobalIllumination.fragment.js.map +1 -1
- package/ShadersWGSL/rsmGlobalIllumination.fragment.js +3 -1
- package/ShadersWGSL/rsmGlobalIllumination.fragment.js.map +1 -1
- package/ShadersWGSL/screenSpaceReflection2.fragment.js +3 -1
- package/ShadersWGSL/screenSpaceReflection2.fragment.js.map +1 -1
- package/ShadersWGSL/screenSpaceReflection2Blur.fragment.js +3 -1
- package/ShadersWGSL/screenSpaceReflection2Blur.fragment.js.map +1 -1
- package/ShadersWGSL/screenSpaceReflection2BlurCombiner.fragment.js +3 -1
- package/ShadersWGSL/screenSpaceReflection2BlurCombiner.fragment.js.map +1 -1
- package/ShadersWGSL/shadowMap.fragment.js +3 -1
- package/ShadersWGSL/shadowMap.fragment.js.map +1 -1
- package/ShadersWGSL/shadowMap.vertex.js +3 -1
- package/ShadersWGSL/shadowMap.vertex.js.map +1 -1
- package/ShadersWGSL/sharpen.fragment.js +3 -1
- package/ShadersWGSL/sharpen.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.fragment.js +3 -1
- package/ShadersWGSL/sprites.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.vertex.js +3 -1
- package/ShadersWGSL/sprites.vertex.js.map +1 -1
- package/ShadersWGSL/ssao2.fragment.js +3 -1
- package/ShadersWGSL/ssao2.fragment.js.map +1 -1
- package/ShadersWGSL/ssaoCombine.fragment.js +3 -1
- package/ShadersWGSL/ssaoCombine.fragment.js.map +1 -1
- package/ShadersWGSL/subSurfaceScattering.fragment.d.ts +9 -0
- package/ShadersWGSL/subSurfaceScattering.fragment.js +77 -0
- package/ShadersWGSL/subSurfaceScattering.fragment.js.map +1 -0
- package/ShadersWGSL/taa.fragment.js +3 -1
- package/ShadersWGSL/taa.fragment.js.map +1 -1
- package/ShadersWGSL/tonemap.fragment.js +3 -1
- package/ShadersWGSL/tonemap.fragment.js.map +1 -1
- package/ShadersWGSL/vrDistortionCorrection.fragment.js +3 -1
- package/ShadersWGSL/vrDistortionCorrection.fragment.js.map +1 -1
- package/package.json +1 -1
- package/FrameGraph/Node/Blocks/Rendering/cullObjectsBlock.js.map +0 -1
- package/FrameGraph/Tasks/Rendering/cullObjectsTask.js.map +0 -1
- /package/FrameGraph/Tasks/{Rendering → Misc}/cullObjectsTask.d.ts +0 -0
- /package/FrameGraph/Tasks/{Rendering → Misc}/cullObjectsTask.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basePostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wCAAwC,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAA0B,MAAM,sCAAsC,CAAC;AAStG;;GAEG;AACH,MAAM,OAAO,mCAAoC,SAAQ,oBAAoB;IAGzE;;;;;OAKG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY;QACjE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,wCAAwC,CAAC,
|
|
1
|
+
{"version":3,"file":"basePostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraphTextureHandle, FrameGraph, FrameGraphTask } from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\n\r\ninterface IPostProcessLike {\r\n sourceSamplingMode: number;\r\n sourceTexture: FrameGraphTextureHandle;\r\n targetTexture?: FrameGraphTextureHandle;\r\n outputTexture: FrameGraphTextureHandle;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class NodeRenderGraphBasePostProcessBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: IPostProcessLike & FrameGraphTask;\r\n\r\n /**\r\n * Create a new NodeRenderGraphBasePostProcessBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"target\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n\r\n this.source.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\r\n this.target.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\r\n }\r\n\r\n protected _finalizeInputOutputRegistering() {\r\n this._addDependenciesInput();\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this.output._typeConnectionSource = () => {\r\n return this.target.isConnected ? this.target : this.source;\r\n };\r\n }\r\n\r\n /** Sampling mode used to sample from the source texture */\r\n @editableInPropertyPage(\"Source sampling mode\", PropertyTypeForEdition.SamplingMode, \"PROPERTIES\")\r\n public get sourceSamplingMode() {\r\n return this._frameGraphTask.sourceSamplingMode;\r\n }\r\n\r\n public set sourceSamplingMode(value: number) {\r\n this._frameGraphTask.sourceSamplingMode = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphBasePostProcessBlock\";\r\n }\r\n\r\n /**\r\n * Gets the source input component\r\n */\r\n public get source(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the target input component\r\n */\r\n public get target(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture;\r\n\r\n this._frameGraphTask.sourceTexture = this.source.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.targetTexture = this.target.connectedPoint?.value as FrameGraphTextureHandle;\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.sourceSamplingMode = ${this.sourceSamplingMode};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.sourceSamplingMode = this.sourceSamplingMode;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.sourceSamplingMode = serializationObject.sourceSamplingMode;\r\n }\r\n}\r\n"]}
|
|
@@ -26,13 +26,13 @@ export class NodeRenderGraphSSRPostProcessBlock extends NodeRenderGraphBasePostP
|
|
|
26
26
|
super(name, frameGraph, scene);
|
|
27
27
|
this._additionalConstructionParameters = [textureType];
|
|
28
28
|
this.registerInput("camera", NodeRenderGraphBlockConnectionPointTypes.Camera);
|
|
29
|
-
this.registerInput("geomDepth", NodeRenderGraphBlockConnectionPointTypes.
|
|
30
|
-
this.registerInput("geomNormal", NodeRenderGraphBlockConnectionPointTypes.
|
|
29
|
+
this.registerInput("geomDepth", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);
|
|
30
|
+
this.registerInput("geomNormal", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);
|
|
31
31
|
this.registerInput("geomReflectivity", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);
|
|
32
|
-
this.registerInput("geomBackDepth", NodeRenderGraphBlockConnectionPointTypes.
|
|
33
|
-
this.geomNormal.
|
|
34
|
-
this.geomDepth.
|
|
35
|
-
this.geomBackDepth.
|
|
32
|
+
this.registerInput("geomBackDepth", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);
|
|
33
|
+
this.geomNormal.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal | NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);
|
|
34
|
+
this.geomDepth.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth | NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);
|
|
35
|
+
this.geomBackDepth.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth | NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);
|
|
36
36
|
this._finalizeInputOutputRegistering();
|
|
37
37
|
this._frameGraphTask = new FrameGraphSSRRenderingPipelineTask(this.name, frameGraph, textureType);
|
|
38
38
|
}
|
|
@@ -314,12 +314,22 @@ export class NodeRenderGraphSSRPostProcessBlock extends NodeRenderGraphBasePostP
|
|
|
314
314
|
if (!this._frameGraphTask.backDepthTexture) {
|
|
315
315
|
throw new Error(`SSR post process "${this.name}": Automatic thickness computation requires a back depth texture to be connected!`);
|
|
316
316
|
}
|
|
317
|
-
const
|
|
318
|
-
if (
|
|
319
|
-
const
|
|
320
|
-
if (!
|
|
317
|
+
const geomBackDepthOwnerBlock = this.geomBackDepth.connectedPoint.ownerBlock;
|
|
318
|
+
if (geomBackDepthOwnerBlock.getClassName() === "NodeRenderGraphGeometryRendererBlock") {
|
|
319
|
+
const geometryBackFaceRendererBlock = geomBackDepthOwnerBlock;
|
|
320
|
+
if (!geometryBackFaceRendererBlock.reverseCulling) {
|
|
321
321
|
throw new Error(`SSR post process "${this.name}": Automatic thickness computation requires the geometry renderer block for the back depth texture to have reverse culling enabled!`);
|
|
322
322
|
}
|
|
323
|
+
if (this._frameGraphTask.depthTexture) {
|
|
324
|
+
const geomDepthOwnerBlock = this.geomDepth.connectedPoint.ownerBlock;
|
|
325
|
+
if (geomDepthOwnerBlock.getClassName() === "NodeRenderGraphGeometryRendererBlock") {
|
|
326
|
+
const geomDepthConnectionPointType = this.geomDepth.connectedPoint.type;
|
|
327
|
+
const geomBackDepthConnectionPointType = this.geomBackDepth.connectedPoint.type;
|
|
328
|
+
if (geomDepthConnectionPointType !== geomBackDepthConnectionPointType) {
|
|
329
|
+
throw new Error(`SSR post process "${this.name}": Automatic thickness computation requires that geomDepth and geomBackDepth have the same type (view or screen space depth)!`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
323
333
|
}
|
|
324
334
|
}
|
|
325
335
|
if (this.geomNormal.connectedPoint) {
|
|
@@ -473,19 +483,19 @@ __decorate([
|
|
|
473
483
|
editableInPropertyPage("Blur downsample", 2 /* PropertyTypeForEdition.Int */, "Blur", { min: 0, max: 5 })
|
|
474
484
|
], NodeRenderGraphSSRPostProcessBlock.prototype, "blurDownsample", null);
|
|
475
485
|
__decorate([
|
|
476
|
-
editableInPropertyPage("Screen borders", 0 /* PropertyTypeForEdition.Boolean */, "
|
|
486
|
+
editableInPropertyPage("Screen borders", 0 /* PropertyTypeForEdition.Boolean */, "Attenuations")
|
|
477
487
|
], NodeRenderGraphSSRPostProcessBlock.prototype, "attenuateScreenBorders", null);
|
|
478
488
|
__decorate([
|
|
479
|
-
editableInPropertyPage("Distance", 0 /* PropertyTypeForEdition.Boolean */, "
|
|
489
|
+
editableInPropertyPage("Distance", 0 /* PropertyTypeForEdition.Boolean */, "Attenuations")
|
|
480
490
|
], NodeRenderGraphSSRPostProcessBlock.prototype, "attenuateIntersectionDistance", null);
|
|
481
491
|
__decorate([
|
|
482
|
-
editableInPropertyPage("Step iterations", 0 /* PropertyTypeForEdition.Boolean */, "
|
|
492
|
+
editableInPropertyPage("Step iterations", 0 /* PropertyTypeForEdition.Boolean */, "Attenuations")
|
|
483
493
|
], NodeRenderGraphSSRPostProcessBlock.prototype, "attenuateIntersectionIterations", null);
|
|
484
494
|
__decorate([
|
|
485
|
-
editableInPropertyPage("Facing camera", 0 /* PropertyTypeForEdition.Boolean */, "
|
|
495
|
+
editableInPropertyPage("Facing camera", 0 /* PropertyTypeForEdition.Boolean */, "Attenuations")
|
|
486
496
|
], NodeRenderGraphSSRPostProcessBlock.prototype, "attenuateFacingCamera", null);
|
|
487
497
|
__decorate([
|
|
488
|
-
editableInPropertyPage("Backface reflections", 0 /* PropertyTypeForEdition.Boolean */, "
|
|
498
|
+
editableInPropertyPage("Backface reflections", 0 /* PropertyTypeForEdition.Boolean */, "Attenuations")
|
|
489
499
|
], NodeRenderGraphSSRPostProcessBlock.prototype, "attenuateBackfaceReflection", null);
|
|
490
500
|
__decorate([
|
|
491
501
|
editableInPropertyPage("Input is in gamma space", 0 /* PropertyTypeForEdition.Boolean */, "Color space")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssrPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.ts"],"names":[],"mappings":";AAUA,OAAO,EAAE,SAAS,EAAE,yCAA+B;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wCAAwC,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAA0B,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,kCAAkC,EAAE,MAAM,uDAAuD,CAAC;AAC3G,OAAO,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAC;AAE7E;;GAEG;AACH,MAAM,OAAO,kCAAmC,SAAQ,mCAAmC;IAGvF;;OAEG;IACH,IAAoB,IAAI;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY,EAAE,WAAW,GAAG,SAAS,CAAC,yBAAyB;QACpH,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,iCAAiC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEvD,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,wCAAwC,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,wCAAwC,CAAC,gBAAgB,CAAC,CAAC;QAC3F,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,wCAAwC,CAAC,iBAAiB,CAAC,CAAC;QAC7F,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,wCAAwC,CAAC,mBAAmB,CAAC,CAAC;QACrG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,wCAAwC,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAErG,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,wCAAwC,CAAC,kBAAkB,CAAC,CAAC;QAC7G,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,wCAAwC,CAAC,kBAAkB,CAAC,CAAC;QAC5G,IAAI,CAAC,aAAa,CAAC,+BAA+B,CAAC,wCAAwC,CAAC,kBAAkB,CAAC,CAAC;QAEhH,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEvC,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACtG,CAAC;IAEO,WAAW,CAAC,WAAmB;QACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,iCAAiC,GAAG,IAAI,CAAC,iCAAiC,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACvD,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAC7D,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC3D,MAAM,6BAA6B,GAAG,IAAI,CAAC,6BAA6B,CAAC;QACzE,MAAM,+BAA+B,GAAG,IAAI,CAAC,+BAA+B,CAAC;QAC7E,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACzD,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAAC;QACrE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,MAAM,mCAAmC,GAAG,IAAI,CAAC,mCAAmC,CAAC;QACrF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,+BAA+B,GAAG,IAAI,CAAC,+BAA+B,CAAC;QAC7E,MAAM,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAExG,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,iCAAiC,GAAG,iCAAiC,CAAC;QAC3E,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;QACnE,IAAI,CAAC,+BAA+B,GAAG,+BAA+B,CAAC;QACvE,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,mCAAmC,GAAG,mCAAmC,CAAC;QAC/E,IAAI,CAAC,+BAA+B,GAAG,+BAA+B,CAAC;QACvE,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,iCAAiC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED,2EAA2E;IAE3E,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAChC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,uFAAuF;IAEvF,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,IAAW,KAAK,CAAC,KAAc;QAC3B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3C,CAAC;IAED,gIAAgI;IAEhI,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,IAAW,QAAQ,CAAC,KAAa;QAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED,2HAA2H;IAE3H,IAAW,iCAAiC;QACxC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iCAAiC,CAAC;IACtE,CAAC;IAED,IAAW,iCAAiC,CAAC,KAAa;QACtD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iCAAiC,GAAG,KAAK,CAAC;IACvE,CAAC;IAED,kHAAkH;IAElH,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC1D,CAAC;IAED,IAAW,qBAAqB,CAAC,KAAa;QAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC3D,CAAC;IAED,iIAAiI;IAEjI,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/C,CAAC;IAED,4GAA4G;IAE5G,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,IAAW,IAAI,CAAC,KAAa;QACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAC1C,CAAC;IAED,mEAAmE;IAEnE,IAAW,uBAAuB;QAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC5D,CAAC;IAED,IAAW,uBAAuB,CAAC,KAAc;QAC7C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,uBAAuB,GAAG,KAAK,CAAC;IAC7D,CAAC;IAED,yHAAyH;IAEzH,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,IAAW,QAAQ,CAAC,KAAa;QAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED,+HAA+H;IAE/H,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;IAChD,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;IACjD,CAAC;IAED,+DAA+D;IAE/D,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC;IACpD,CAAC;IAED,IAAW,eAAe,CAAC,KAAa;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;IACrD,CAAC;IAED,sFAAsF;IAEtF,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACzD,CAAC;IAED,IAAW,oBAAoB,CAAC,KAAa;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,GAAG,KAAK,CAAC;IAC1D,CAAC;IAED,qHAAqH;IAErH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC;IAClD,CAAC;IAED,IAAW,aAAa,CAAC,KAAa;QAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IACnD,CAAC;IAED,oFAAoF;IAEpF,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC;IAClD,CAAC;IAED,IAAW,aAAa,CAAC,KAAc;QACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IACnD,CAAC;IAED,6FAA6F;IAE7F,IAAW,mCAAmC;QAC1C,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mCAAmC,CAAC;IACxE,CAAC;IAED,IAAW,mCAAmC,CAAC,KAAc;QACzD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mCAAmC,GAAG,KAAK,CAAC;IACzE,CAAC;IAED,gKAAgK;IAEhK,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;IAC/C,CAAC;IAED,IAAW,UAAU,CAAC,KAAc;QAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;IAChD,CAAC;IAED,yFAAyF;IAEzF,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC3D,CAAC;IAED,IAAW,sBAAsB,CAAC,KAAa;QAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,GAAG,KAAK,CAAC;IAC5D,CAAC;IAED,oHAAoH;IAEpH,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;IACnD,CAAC;IAED,IAAW,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;IACpD,CAAC;IAED,sGAAsG;IAEtG,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC3D,CAAC;IAED,IAAW,sBAAsB,CAAC,KAAc;QAC5C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,GAAG,KAAK,CAAC;IAC5D,CAAC;IAED,8HAA8H;IAE9H,IAAW,6BAA6B;QACpC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAClE,CAAC;IAED,IAAW,6BAA6B,CAAC,KAAc;QACnD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,6BAA6B,GAAG,KAAK,CAAC;IACnE,CAAC;IAED,yJAAyJ;IAEzJ,IAAW,+BAA+B;QACtC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,+BAA+B,CAAC;IACpE,CAAC;IAED,IAAW,+BAA+B,CAAC,KAAc;QACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,+BAA+B,GAAG,KAAK,CAAC;IACrE,CAAC;IAED,kJAAkJ;IAElJ,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC1D,CAAC;IAED,IAAW,qBAAqB,CAAC,KAAc;QAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC3D,CAAC;IAED,yFAAyF;IAEzF,IAAW,2BAA2B;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAChE,CAAC;IAED,IAAW,2BAA2B,CAAC,KAAc;QACjD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,2BAA2B,GAAG,KAAK,CAAC;IACjE,CAAC;IAED,mFAAmF;IAEnF,IAAW,+BAA+B;QACtC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,+BAA+B,CAAC;IACpE,CAAC;IAED,IAAW,+BAA+B,CAAC,KAAc;QACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,+BAA+B,GAAG,KAAK,CAAC;IACrE,CAAC;IAED,yHAAyH;IAEzH,IAAW,0BAA0B;QACjC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,0BAA0B,CAAC;IAC/D,CAAC;IAED,IAAW,0BAA0B,CAAC,KAAc;QAChD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,0BAA0B,GAAG,KAAK,CAAC;IAChE,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,oCAAoC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAEkB,WAAW,CAAC,KAAgC;QAC3D,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,KAAgC,CAAC;QACtG,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,KAAgC,CAAC;QACpG,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAgC,CAAC;QAClH,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,KAAgC,CAAC;QAC5G,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAe,CAAC;QAE1E,IAAI,IAAI,CAAC,mCAAmC,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,IAAI,mFAAmF,CAAC,CAAC;YACvI,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAe,CAAC,UAAW,CAAC;YAClE,IAAI,UAAU,CAAC,YAAY,EAAE,KAAK,sCAAsC,EAAE,CAAC;gBACvE,MAAM,qBAAqB,GAAG,UAAkD,CAAC;gBACjF,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CACX,qBAAqB,IAAI,CAAC,IAAI,qIAAqI,CACtK,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,KAAK,wCAAwC,CAAC,kBAAkB,EAAE,CAAC;gBACtG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACvD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACvD,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,KAAK,wCAAwC,CAAC,kBAAkB,EAAE,CAAC;gBACrG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC;YACxD,CAAC;QACL,CAAC;IACL,CAAC;IAEkB,mBAAmB;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,YAAY,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,eAAe,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,wCAAwC,IAAI,CAAC,iCAAiC,GAAG,CAAC,CAAC;QACvH,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,4BAA4B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,gBAAgB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,8BAA8B,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACnG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,eAAe,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,kBAAkB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,sBAAsB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,2BAA2B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,oBAAoB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,oBAAoB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,iBAAiB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,0CAA0C,IAAI,CAAC,mCAAmC,GAAG,CAAC,CAAC;QAC3H,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,6BAA6B,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,6BAA6B,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,oCAAoC,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC;QAC/G,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,sCAAsC,IAAI,CAAC,+BAA+B,GAAG,CAAC,CAAC;QACnH,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,4BAA4B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,kCAAkC,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;QAC3G,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,sCAAsC,IAAI,CAAC,+BAA+B,GAAG,CAAC,CAAC;QACnH,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,iCAAiC,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;QACzG,OAAO,KAAK,CAAC,mBAAmB,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEe,SAAS;QACrB,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9C,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7C,mBAAmB,CAAC,iCAAiC,GAAG,IAAI,CAAC,iCAAiC,CAAC;QAC/F,mBAAmB,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACvE,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/C,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,mBAAmB,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAC3E,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7C,mBAAmB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACnD,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3D,mBAAmB,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACrE,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACvD,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACvD,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjD,mBAAmB,CAAC,mCAAmC,GAAG,IAAI,CAAC,mCAAmC,CAAC;QACnG,mBAAmB,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACzE,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACzD,mBAAmB,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACzE,mBAAmB,CAAC,6BAA6B,GAAG,IAAI,CAAC,6BAA6B,CAAC;QACvF,mBAAmB,CAAC,+BAA+B,GAAG,IAAI,CAAC,+BAA+B,CAAC;QAC3F,mBAAmB,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACvE,mBAAmB,CAAC,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAAC;QACnF,mBAAmB,CAAC,+BAA+B,GAAG,IAAI,CAAC,+BAA+B,CAAC;QAC3F,mBAAmB,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC;QACjF,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEe,YAAY,CAAC,mBAAwB;QACjD,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,iCAAiC,GAAG,mBAAmB,CAAC,iCAAiC,CAAC;QAC/F,IAAI,CAAC,qBAAqB,GAAG,mBAAmB,CAAC,qBAAqB,CAAC;QACvE,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,uBAAuB,GAAG,mBAAmB,CAAC,uBAAuB,CAAC;QAC3E,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;QAC3D,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,oBAAoB,CAAC;QACrE,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,aAAa,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,aAAa,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC;QACjD,IAAI,CAAC,mCAAmC,GAAG,mBAAmB,CAAC,mCAAmC,CAAC;QACnG,IAAI,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,sBAAsB,CAAC;QACzE,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;QACzD,IAAI,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,sBAAsB,CAAC;QACzE,IAAI,CAAC,6BAA6B,GAAG,mBAAmB,CAAC,6BAA6B,CAAC;QACvF,IAAI,CAAC,+BAA+B,GAAG,mBAAmB,CAAC,+BAA+B,CAAC;QAC3F,IAAI,CAAC,qBAAqB,GAAG,mBAAmB,CAAC,qBAAqB,CAAC;QACvE,IAAI,CAAC,2BAA2B,GAAG,mBAAmB,CAAC,2BAA2B,CAAC;QACnF,IAAI,CAAC,+BAA+B,GAAG,mBAAmB,CAAC,+BAA+B,CAAC;QAC3F,IAAI,CAAC,0BAA0B,GAAG,mBAAmB,CAAC,0BAA0B,CAAC;IACrF,CAAC;CACJ;AA9ZG;IADC,sBAAsB,CAAC,cAAc,8CAAsC,KAAK,CAAC;qEAGjF;AAQD;IADC,sBAAsB,CAAC,OAAO,0CAAkC,KAAK,CAAC;+DAGtE;AAQD;IADC,sBAAsB,CAAC,UAAU,wCAAgC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;kEAG3F;AAQD;IADC,sBAAsB,CAAC,qBAAqB,wCAAgC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;2FAGtG;AAQD;IADC,sBAAsB,CAAC,wBAAwB,wCAAgC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;+EAGzG;AAQD;IADC,sBAAsB,CAAC,WAAW,wCAAgC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;mEAG7F;AAQD;IADC,sBAAsB,CAAC,MAAM,sCAA8B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;8DAGtF;AAQD;IADC,sBAAsB,CAAC,oBAAoB,0CAAkC,KAAK,CAAC;iFAGnF;AAQD;IADC,sBAAsB,CAAC,WAAW,sCAA8B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;kEAG7F;AAQD;IADC,sBAAsB,CAAC,cAAc,wCAAgC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;qEAGlG;AAQD;IADC,sBAAsB,CAAC,kBAAkB,wCAAgC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;yEAGnG;AAQD;IADC,sBAAsB,CAAC,sBAAsB,sCAA8B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;8EAGtG;AAQD;IADC,sBAAsB,CAAC,gBAAgB,sCAA8B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;uEAG/F;AAQD;IADC,sBAAsB,CAAC,iBAAiB,0CAAkC,KAAK,CAAC;uEAGhF;AAQD;IADC,sBAAsB,CAAC,iCAAiC,0CAAkC,KAAK,CAAC;6FAGhG;AAQD;IADC,sBAAsB,CAAC,aAAa,0CAAkC,KAAK,CAAC;oEAG5E;AAQD;IADC,sBAAsB,CAAC,UAAU,wCAAgC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gFAG/F;AAQD;IADC,sBAAsB,CAAC,iBAAiB,sCAA8B,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;wEAGjG;AAQD;IADC,sBAAsB,CAAC,gBAAgB,0CAAkC,cAAc,CAAC;gFAGxF;AAQD;IADC,sBAAsB,CAAC,UAAU,0CAAkC,cAAc,CAAC;uFAGlF;AAQD;IADC,sBAAsB,CAAC,iBAAiB,0CAAkC,cAAc,CAAC;yFAGzF;AAQD;IADC,sBAAsB,CAAC,eAAe,0CAAkC,cAAc,CAAC;+EAGvF;AAQD;IADC,sBAAsB,CAAC,sBAAsB,0CAAkC,cAAc,CAAC;qFAG9F;AAQD;IADC,sBAAsB,CAAC,yBAAyB,0CAAkC,aAAa,CAAC;yFAGhG;AAQD;IADC,sBAAsB,CAAC,uBAAuB,0CAAkC,aAAa,CAAC;oFAG9F;AA8KL,aAAa,CAAC,4CAA4C,EAAE,kCAAkC,CAAC,CAAC","sourcesContent":["import type {\r\n Scene,\r\n FrameGraph,\r\n NodeRenderGraphConnectionPoint,\r\n NodeRenderGraphBuildState,\r\n FrameGraphTextureHandle,\r\n Camera,\r\n NodeRenderGraphGeometryRendererBlock,\r\n // eslint-disable-next-line import/no-internal-modules\r\n} from \"core/index\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphSSRRenderingPipelineTask } from \"../../../Tasks/PostProcesses/ssrRenderingPipelineTask\";\r\nimport { NodeRenderGraphBasePostProcessBlock } from \"./basePostProcessBlock\";\r\n\r\n/**\r\n * Block that implements the SSR post process\r\n */\r\nexport class NodeRenderGraphSSRPostProcessBlock extends NodeRenderGraphBasePostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphSSRRenderingPipelineTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphSSRPostProcessBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n * @param textureType The texture type used by the different post processes created by SSR (default: Constants.TEXTURETYPE_UNSIGNED_BYTE)\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [textureType];\r\n\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"geomDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\r\n this.registerInput(\"geomNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\r\n this.registerInput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\r\n this.registerInput(\"geomBackDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth, true);\r\n\r\n this.geomNormal.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal);\r\n this.geomDepth.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\r\n this.geomBackDepth.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphSSRRenderingPipelineTask(this.name, frameGraph, textureType);\r\n }\r\n\r\n private _createTask(textureType: number) {\r\n const sourceSamplingMode = this.sourceSamplingMode;\r\n const maxDistance = this.maxDistance;\r\n const step = this.step;\r\n const thickness = this.thickness;\r\n const strength = this.strength;\r\n const reflectionSpecularFalloffExponent = this.reflectionSpecularFalloffExponent;\r\n const maxSteps = this.maxSteps;\r\n const roughnessFactor = this.roughnessFactor;\r\n const selfCollisionNumSkip = this.selfCollisionNumSkip;\r\n const reflectivityThreshold = this.reflectivityThreshold;\r\n const ssrDownsample = this.ssrDownsample;\r\n const blurDispersionStrength = this.blurDispersionStrength;\r\n const blurDownsample = this.blurDownsample;\r\n const enableSmoothReflections = this.enableSmoothReflections;\r\n const attenuateScreenBorders = this.attenuateScreenBorders;\r\n const attenuateIntersectionDistance = this.attenuateIntersectionDistance;\r\n const attenuateIntersectionIterations = this.attenuateIntersectionIterations;\r\n const attenuateFacingCamera = this.attenuateFacingCamera;\r\n const attenuateBackfaceReflection = this.attenuateBackfaceReflection;\r\n const clipToFrustum = this.clipToFrustum;\r\n const enableAutomaticThicknessComputation = this.enableAutomaticThicknessComputation;\r\n const useFresnel = this.useFresnel;\r\n const inputTextureColorIsInGammaSpace = this.inputTextureColorIsInGammaSpace;\r\n const generateOutputInGammaSpace = this.generateOutputInGammaSpace;\r\n const debug = this.debug;\r\n\r\n this._frameGraphTask.dispose();\r\n this._frameGraphTask = new FrameGraphSSRRenderingPipelineTask(this.name, this._frameGraph, textureType);\r\n\r\n this.sourceSamplingMode = sourceSamplingMode;\r\n this.maxDistance = maxDistance;\r\n this.step = step;\r\n this.thickness = thickness;\r\n this.strength = strength;\r\n this.reflectionSpecularFalloffExponent = reflectionSpecularFalloffExponent;\r\n this.maxSteps = maxSteps;\r\n this.roughnessFactor = roughnessFactor;\r\n this.selfCollisionNumSkip = selfCollisionNumSkip;\r\n this.reflectivityThreshold = reflectivityThreshold;\r\n this.ssrDownsample = ssrDownsample;\r\n this.blurDispersionStrength = blurDispersionStrength;\r\n this.blurDownsample = blurDownsample;\r\n this.enableSmoothReflections = enableSmoothReflections;\r\n this.attenuateScreenBorders = attenuateScreenBorders;\r\n this.attenuateIntersectionDistance = attenuateIntersectionDistance;\r\n this.attenuateIntersectionIterations = attenuateIntersectionIterations;\r\n this.attenuateFacingCamera = attenuateFacingCamera;\r\n this.attenuateBackfaceReflection = attenuateBackfaceReflection;\r\n this.clipToFrustum = clipToFrustum;\r\n this.useFresnel = useFresnel;\r\n this.enableAutomaticThicknessComputation = enableAutomaticThicknessComputation;\r\n this.inputTextureColorIsInGammaSpace = inputTextureColorIsInGammaSpace;\r\n this.generateOutputInGammaSpace = generateOutputInGammaSpace;\r\n this.debug = debug;\r\n\r\n this._additionalConstructionParameters = [textureType];\r\n }\r\n\r\n /** The texture type used by the different post processes created by SSR */\r\n @editableInPropertyPage(\"Texture type\", PropertyTypeForEdition.TextureType, \"SSR\")\r\n public get textureType() {\r\n return this._frameGraphTask.textureType;\r\n }\r\n\r\n public set textureType(value: number) {\r\n this._createTask(value);\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the effect should be rendered in debug mode */\r\n @editableInPropertyPage(\"Debug\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get debug() {\r\n return this._frameGraphTask.ssr.debug;\r\n }\r\n\r\n public set debug(value: boolean) {\r\n this._frameGraphTask.ssr.debug = value;\r\n }\r\n\r\n /** Gets or sets the current reflection strength. 1.0 is an ideal value but can be increased/decreased for particular results */\r\n @editableInPropertyPage(\"Strength\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 5 })\r\n public get strength() {\r\n return this._frameGraphTask.ssr.strength;\r\n }\r\n\r\n public set strength(value: number) {\r\n this._frameGraphTask.ssr.strength = value;\r\n }\r\n\r\n /** Gets or sets the falloff exponent used to compute the reflection strength. Higher values lead to fainter reflections */\r\n @editableInPropertyPage(\"Reflection exponent\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 5 })\r\n public get reflectionSpecularFalloffExponent() {\r\n return this._frameGraphTask.ssr.reflectionSpecularFalloffExponent;\r\n }\r\n\r\n public set reflectionSpecularFalloffExponent(value: number) {\r\n this._frameGraphTask.ssr.reflectionSpecularFalloffExponent = value;\r\n }\r\n\r\n /** Gets or sets the minimum value for one of the reflectivity component of the material to consider it for SSR */\r\n @editableInPropertyPage(\"Reflectivity threshold\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 1 })\r\n public get reflectivityThreshold() {\r\n return this._frameGraphTask.ssr.reflectivityThreshold;\r\n }\r\n\r\n public set reflectivityThreshold(value: number) {\r\n this._frameGraphTask.ssr.reflectivityThreshold = value;\r\n }\r\n\r\n /** Gets or sets the thickness value used as tolerance when computing the intersection between the reflected ray and the scene */\r\n @editableInPropertyPage(\"Thickness\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 10 })\r\n public get thickness() {\r\n return this._frameGraphTask.ssr.thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n this._frameGraphTask.ssr.thickness = value;\r\n }\r\n\r\n /** Gets or sets the step size used to iterate until the effect finds the color of the reflection's pixel */\r\n @editableInPropertyPage(\"Step\", PropertyTypeForEdition.Int, \"SSR\", { min: 1, max: 50 })\r\n public get step() {\r\n return this._frameGraphTask.ssr.step;\r\n }\r\n\r\n public set step(value: number) {\r\n this._frameGraphTask.ssr.step = value;\r\n }\r\n\r\n /** Gets or sets whether or not smoothing reflections is enabled */\r\n @editableInPropertyPage(\"Smooth reflections\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get enableSmoothReflections() {\r\n return this._frameGraphTask.ssr.enableSmoothReflections;\r\n }\r\n\r\n public set enableSmoothReflections(value: boolean) {\r\n this._frameGraphTask.ssr.enableSmoothReflections = value;\r\n }\r\n\r\n /** Maximum number of steps during the ray marching process after which we consider an intersection could not be found */\r\n @editableInPropertyPage(\"Max steps\", PropertyTypeForEdition.Int, \"SSR\", { min: 1, max: 3000 })\r\n public get maxSteps() {\r\n return this._frameGraphTask.ssr.maxSteps;\r\n }\r\n\r\n public set maxSteps(value: number) {\r\n this._frameGraphTask.ssr.maxSteps = value;\r\n }\r\n\r\n /** Gets or sets the max distance used to define how far we look for reflection during the ray-marching on the reflected ray */\r\n @editableInPropertyPage(\"Max distance\", PropertyTypeForEdition.Float, \"SSR\", { min: 1, max: 3000 })\r\n public get maxDistance() {\r\n return this._frameGraphTask.ssr.maxDistance;\r\n }\r\n\r\n public set maxDistance(value: number) {\r\n this._frameGraphTask.ssr.maxDistance = value;\r\n }\r\n\r\n /** Gets or sets the factor applied when computing roughness */\r\n @editableInPropertyPage(\"Roughness factor\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 1 })\r\n public get roughnessFactor() {\r\n return this._frameGraphTask.ssr.roughnessFactor;\r\n }\r\n\r\n public set roughnessFactor(value: number) {\r\n this._frameGraphTask.ssr.roughnessFactor = value;\r\n }\r\n\r\n /** Number of steps to skip at start when marching the ray to avoid self collisions */\r\n @editableInPropertyPage(\"Self collision skips\", PropertyTypeForEdition.Int, \"SSR\", { min: 1, max: 10 })\r\n public get selfCollisionNumSkip() {\r\n return this._frameGraphTask.ssr.selfCollisionNumSkip;\r\n }\r\n\r\n public set selfCollisionNumSkip(value: number) {\r\n this._frameGraphTask.ssr.selfCollisionNumSkip = value;\r\n }\r\n\r\n /** Gets or sets the downsample factor used to reduce the size of the texture used to compute the SSR contribution */\r\n @editableInPropertyPage(\"SSR downsample\", PropertyTypeForEdition.Int, \"SSR\", { min: 0, max: 5 })\r\n public get ssrDownsample() {\r\n return this._frameGraphTask.ssr.ssrDownsample;\r\n }\r\n\r\n public set ssrDownsample(value: number) {\r\n this._frameGraphTask.ssr.ssrDownsample = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the ray should be clipped to the frustum */\r\n @editableInPropertyPage(\"Clip to frustum\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get clipToFrustum() {\r\n return this._frameGraphTask.ssr.clipToFrustum;\r\n }\r\n\r\n public set clipToFrustum(value: boolean) {\r\n this._frameGraphTask.ssr.clipToFrustum = value;\r\n }\r\n\r\n /** Gets or sets a boolean defining if geometry thickness should be computed automatically */\r\n @editableInPropertyPage(\"Automatic thickness computation\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get enableAutomaticThicknessComputation() {\r\n return this._frameGraphTask.ssr.enableAutomaticThicknessComputation;\r\n }\r\n\r\n public set enableAutomaticThicknessComputation(value: boolean) {\r\n this._frameGraphTask.ssr.enableAutomaticThicknessComputation = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating whether the blending between the current color pixel and the reflection color should be done with a Fresnel coefficient */\r\n @editableInPropertyPage(\"Use Fresnel\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get useFresnel() {\r\n return this._frameGraphTask.ssr.useFresnel;\r\n }\r\n\r\n public set useFresnel(value: boolean) {\r\n this._frameGraphTask.ssr.useFresnel = value;\r\n }\r\n\r\n /** Gets or sets the blur dispersion strength. Set this value to 0 to disable blurring */\r\n @editableInPropertyPage(\"Strength\", PropertyTypeForEdition.Float, \"Blur\", { min: 0, max: 0.15 })\r\n public get blurDispersionStrength() {\r\n return this._frameGraphTask.ssr.blurDispersionStrength;\r\n }\r\n\r\n public set blurDispersionStrength(value: number) {\r\n this._frameGraphTask.ssr.blurDispersionStrength = value;\r\n }\r\n\r\n /** Gets or sets the downsample factor used to reduce the size of the textures used to blur the reflection effect */\r\n @editableInPropertyPage(\"Blur downsample\", PropertyTypeForEdition.Int, \"Blur\", { min: 0, max: 5 })\r\n public get blurDownsample() {\r\n return this._frameGraphTask.ssr.blurDownsample;\r\n }\r\n\r\n public set blurDownsample(value: number) {\r\n this._frameGraphTask.ssr.blurDownsample = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the reflections should be attenuated at the screen borders */\r\n @editableInPropertyPage(\"Screen borders\", PropertyTypeForEdition.Boolean, \"ATTENUATIONS\")\r\n public get attenuateScreenBorders() {\r\n return this._frameGraphTask.ssr.attenuateScreenBorders;\r\n }\r\n\r\n public set attenuateScreenBorders(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateScreenBorders = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the reflections should be attenuated according to the distance of the intersection */\r\n @editableInPropertyPage(\"Distance\", PropertyTypeForEdition.Boolean, \"ATTENUATIONS\")\r\n public get attenuateIntersectionDistance() {\r\n return this._frameGraphTask.ssr.attenuateIntersectionDistance;\r\n }\r\n\r\n public set attenuateIntersectionDistance(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateIntersectionDistance = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the reflections should be attenuated according to the number of iterations performed to find the intersection */\r\n @editableInPropertyPage(\"Step iterations\", PropertyTypeForEdition.Boolean, \"ATTENUATIONS\")\r\n public get attenuateIntersectionIterations() {\r\n return this._frameGraphTask.ssr.attenuateIntersectionIterations;\r\n }\r\n\r\n public set attenuateIntersectionIterations(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateIntersectionIterations = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the reflections should be attenuated when the reflection ray is facing the camera (the view direction) */\r\n @editableInPropertyPage(\"Facing camera\", PropertyTypeForEdition.Boolean, \"ATTENUATIONS\")\r\n public get attenuateFacingCamera() {\r\n return this._frameGraphTask.ssr.attenuateFacingCamera;\r\n }\r\n\r\n public set attenuateFacingCamera(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateFacingCamera = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the backface reflections should be attenuated */\r\n @editableInPropertyPage(\"Backface reflections\", PropertyTypeForEdition.Boolean, \"ATTENUATIONS\")\r\n public get attenuateBackfaceReflection() {\r\n return this._frameGraphTask.ssr.attenuateBackfaceReflection;\r\n }\r\n\r\n public set attenuateBackfaceReflection(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateBackfaceReflection = value;\r\n }\r\n\r\n /** Gets or sets a boolean defining if the input color texture is in gamma space */\r\n @editableInPropertyPage(\"Input is in gamma space\", PropertyTypeForEdition.Boolean, \"Color space\")\r\n public get inputTextureColorIsInGammaSpace() {\r\n return this._frameGraphTask.ssr.inputTextureColorIsInGammaSpace;\r\n }\r\n\r\n public set inputTextureColorIsInGammaSpace(value: boolean) {\r\n this._frameGraphTask.ssr.inputTextureColorIsInGammaSpace = value;\r\n }\r\n\r\n /** Gets or sets a boolean defining if the output color texture generated by the SSR pipeline should be in gamma space */\r\n @editableInPropertyPage(\"Output to gamma space\", PropertyTypeForEdition.Boolean, \"Color space\")\r\n public get generateOutputInGammaSpace() {\r\n return this._frameGraphTask.ssr.generateOutputInGammaSpace;\r\n }\r\n\r\n public set generateOutputInGammaSpace(value: boolean) {\r\n this._frameGraphTask.ssr.generateOutputInGammaSpace = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphSSRPostProcessBlock\";\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the geometry depth input component\r\n */\r\n public get geomDepth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the geometry normal input component\r\n */\r\n public get geomNormal(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the geometry reflectivity input component\r\n */\r\n public get geomReflectivity(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the geometry back depth input component\r\n */\r\n public get geomBackDepth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[6];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._frameGraphTask.normalTexture = this.geomNormal.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.depthTexture = this.geomDepth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.reflectivityTexture = this.geomReflectivity.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.backDepthTexture = this.geomBackDepth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n\r\n if (this.enableAutomaticThicknessComputation) {\r\n if (!this._frameGraphTask.backDepthTexture) {\r\n throw new Error(`SSR post process \"${this.name}\": Automatic thickness computation requires a back depth texture to be connected!`);\r\n }\r\n\r\n const ownerBlock = this.geomBackDepth.connectedPoint!.ownerBlock!;\r\n if (ownerBlock.getClassName() === \"NodeRenderGraphGeometryRendererBlock\") {\r\n const geometryRendererBlock = ownerBlock as NodeRenderGraphGeometryRendererBlock;\r\n if (!geometryRendererBlock.reverseCulling) {\r\n throw new Error(\r\n `SSR post process \"${this.name}\": Automatic thickness computation requires the geometry renderer block for the back depth texture to have reverse culling enabled!`\r\n );\r\n }\r\n }\r\n }\r\n\r\n if (this.geomNormal.connectedPoint) {\r\n if (this.geomNormal.connectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal) {\r\n this._frameGraphTask.ssr.normalsAreInWorldSpace = true;\r\n this._frameGraphTask.ssr.normalsAreUnsigned = true;\r\n }\r\n }\r\n if (this.geomDepth.connectedPoint) {\r\n if (this.geomDepth.connectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth) {\r\n this._frameGraphTask.ssr.useScreenspaceDepth = true;\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.debug = ${this.debug};`);\r\n codes.push(`${this._codeVariableName}.strength = ${this.strength};`);\r\n codes.push(`${this._codeVariableName}.reflectionSpecularFalloffExponent = ${this.reflectionSpecularFalloffExponent};`);\r\n codes.push(`${this._codeVariableName}.reflectivityThreshold = ${this.reflectivityThreshold};`);\r\n codes.push(`${this._codeVariableName}.thickness = ${this.thickness};`);\r\n codes.push(`${this._codeVariableName}.step = ${this.step};`);\r\n codes.push(`${this._codeVariableName}.enableSmoothReflections = ${this.enableSmoothReflections};`);\r\n codes.push(`${this._codeVariableName}.maxSteps = ${this.maxSteps};`);\r\n codes.push(`${this._codeVariableName}.maxDistance = ${this.maxDistance};`);\r\n codes.push(`${this._codeVariableName}.roughnessFactor = ${this.roughnessFactor};`);\r\n codes.push(`${this._codeVariableName}.selfCollisionNumSkip = ${this.selfCollisionNumSkip};`);\r\n codes.push(`${this._codeVariableName}.ssrDownsample = ${this.ssrDownsample};`);\r\n codes.push(`${this._codeVariableName}.clipToFrustum = ${this.clipToFrustum};`);\r\n codes.push(`${this._codeVariableName}.useFresnel = ${this.useFresnel};`);\r\n codes.push(`${this._codeVariableName}.enableAutomaticThicknessComputation = ${this.enableAutomaticThicknessComputation};`);\r\n codes.push(`${this._codeVariableName}.blurDispersionStrength = ${this.blurDispersionStrength};`);\r\n codes.push(`${this._codeVariableName}.blurDownsample = ${this.blurDownsample};`);\r\n codes.push(`${this._codeVariableName}.attenuateScreenBorders = ${this.attenuateScreenBorders};`);\r\n codes.push(`${this._codeVariableName}.attenuateIntersectionDistance = ${this.attenuateIntersectionDistance};`);\r\n codes.push(`${this._codeVariableName}.attenuateIntersectionIterations = ${this.attenuateIntersectionIterations};`);\r\n codes.push(`${this._codeVariableName}.attenuateFacingCamera = ${this.attenuateFacingCamera};`);\r\n codes.push(`${this._codeVariableName}.attenuateBackfaceReflection = ${this.attenuateBackfaceReflection};`);\r\n codes.push(`${this._codeVariableName}.inputTextureColorIsInGammaSpace = ${this.inputTextureColorIsInGammaSpace};`);\r\n codes.push(`${this._codeVariableName}.generateOutputInGammaSpace = ${this.generateOutputInGammaSpace};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.debug = this.debug;\r\n serializationObject.strength = this.strength;\r\n serializationObject.reflectionSpecularFalloffExponent = this.reflectionSpecularFalloffExponent;\r\n serializationObject.reflectivityThreshold = this.reflectivityThreshold;\r\n serializationObject.thickness = this.thickness;\r\n serializationObject.step = this.step;\r\n serializationObject.enableSmoothReflections = this.enableSmoothReflections;\r\n serializationObject.maxSteps = this.maxSteps;\r\n serializationObject.maxDistance = this.maxDistance;\r\n serializationObject.roughnessFactor = this.roughnessFactor;\r\n serializationObject.selfCollisionNumSkip = this.selfCollisionNumSkip;\r\n serializationObject.ssrDownsample = this.ssrDownsample;\r\n serializationObject.clipToFrustum = this.clipToFrustum;\r\n serializationObject.useFresnel = this.useFresnel;\r\n serializationObject.enableAutomaticThicknessComputation = this.enableAutomaticThicknessComputation;\r\n serializationObject.blurDispersionStrength = this.blurDispersionStrength;\r\n serializationObject.blurDownsample = this.blurDownsample;\r\n serializationObject.attenuateScreenBorders = this.attenuateScreenBorders;\r\n serializationObject.attenuateIntersectionDistance = this.attenuateIntersectionDistance;\r\n serializationObject.attenuateIntersectionIterations = this.attenuateIntersectionIterations;\r\n serializationObject.attenuateFacingCamera = this.attenuateFacingCamera;\r\n serializationObject.attenuateBackfaceReflection = this.attenuateBackfaceReflection;\r\n serializationObject.inputTextureColorIsInGammaSpace = this.inputTextureColorIsInGammaSpace;\r\n serializationObject.generateOutputInGammaSpace = this.generateOutputInGammaSpace;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.debug = serializationObject.debug;\r\n this.strength = serializationObject.strength;\r\n this.reflectionSpecularFalloffExponent = serializationObject.reflectionSpecularFalloffExponent;\r\n this.reflectivityThreshold = serializationObject.reflectivityThreshold;\r\n this.thickness = serializationObject.thickness;\r\n this.step = serializationObject.step;\r\n this.enableSmoothReflections = serializationObject.enableSmoothReflections;\r\n this.maxSteps = serializationObject.maxSteps;\r\n this.maxDistance = serializationObject.maxDistance;\r\n this.roughnessFactor = serializationObject.roughnessFactor;\r\n this.selfCollisionNumSkip = serializationObject.selfCollisionNumSkip;\r\n this.ssrDownsample = serializationObject.ssrDownsample;\r\n this.clipToFrustum = serializationObject.clipToFrustum;\r\n this.useFresnel = serializationObject.useFresnel;\r\n this.enableAutomaticThicknessComputation = serializationObject.enableAutomaticThicknessComputation;\r\n this.blurDispersionStrength = serializationObject.blurDispersionStrength;\r\n this.blurDownsample = serializationObject.blurDownsample;\r\n this.attenuateScreenBorders = serializationObject.attenuateScreenBorders;\r\n this.attenuateIntersectionDistance = serializationObject.attenuateIntersectionDistance;\r\n this.attenuateIntersectionIterations = serializationObject.attenuateIntersectionIterations;\r\n this.attenuateFacingCamera = serializationObject.attenuateFacingCamera;\r\n this.attenuateBackfaceReflection = serializationObject.attenuateBackfaceReflection;\r\n this.inputTextureColorIsInGammaSpace = serializationObject.inputTextureColorIsInGammaSpace;\r\n this.generateOutputInGammaSpace = serializationObject.generateOutputInGammaSpace;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphSSRPostProcessBlock\", NodeRenderGraphSSRPostProcessBlock);\r\n"]}
|
|
1
|
+
{"version":3,"file":"ssrPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\r\n Scene,\r\n FrameGraph,\r\n NodeRenderGraphConnectionPoint,\r\n NodeRenderGraphBuildState,\r\n FrameGraphTextureHandle,\r\n Camera,\r\n NodeRenderGraphGeometryRendererBlock,\r\n // eslint-disable-next-line import/no-internal-modules\r\n} from \"core/index\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphSSRRenderingPipelineTask } from \"../../../Tasks/PostProcesses/ssrRenderingPipelineTask\";\r\nimport { NodeRenderGraphBasePostProcessBlock } from \"./basePostProcessBlock\";\r\n\r\n/**\r\n * Block that implements the SSR post process\r\n */\r\nexport class NodeRenderGraphSSRPostProcessBlock extends NodeRenderGraphBasePostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphSSRRenderingPipelineTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphSSRPostProcessBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n * @param textureType The texture type used by the different post processes created by SSR (default: Constants.TEXTURETYPE_UNSIGNED_BYTE)\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [textureType];\r\n\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"geomDepth\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"geomNormal\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\r\n this.registerInput(\"geomBackDepth\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n\r\n this.geomNormal.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal | NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal\r\n );\r\n this.geomDepth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth | NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth\r\n );\r\n this.geomBackDepth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth | NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth\r\n );\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphSSRRenderingPipelineTask(this.name, frameGraph, textureType);\r\n }\r\n\r\n private _createTask(textureType: number) {\r\n const sourceSamplingMode = this.sourceSamplingMode;\r\n const maxDistance = this.maxDistance;\r\n const step = this.step;\r\n const thickness = this.thickness;\r\n const strength = this.strength;\r\n const reflectionSpecularFalloffExponent = this.reflectionSpecularFalloffExponent;\r\n const maxSteps = this.maxSteps;\r\n const roughnessFactor = this.roughnessFactor;\r\n const selfCollisionNumSkip = this.selfCollisionNumSkip;\r\n const reflectivityThreshold = this.reflectivityThreshold;\r\n const ssrDownsample = this.ssrDownsample;\r\n const blurDispersionStrength = this.blurDispersionStrength;\r\n const blurDownsample = this.blurDownsample;\r\n const enableSmoothReflections = this.enableSmoothReflections;\r\n const attenuateScreenBorders = this.attenuateScreenBorders;\r\n const attenuateIntersectionDistance = this.attenuateIntersectionDistance;\r\n const attenuateIntersectionIterations = this.attenuateIntersectionIterations;\r\n const attenuateFacingCamera = this.attenuateFacingCamera;\r\n const attenuateBackfaceReflection = this.attenuateBackfaceReflection;\r\n const clipToFrustum = this.clipToFrustum;\r\n const enableAutomaticThicknessComputation = this.enableAutomaticThicknessComputation;\r\n const useFresnel = this.useFresnel;\r\n const inputTextureColorIsInGammaSpace = this.inputTextureColorIsInGammaSpace;\r\n const generateOutputInGammaSpace = this.generateOutputInGammaSpace;\r\n const debug = this.debug;\r\n\r\n this._frameGraphTask.dispose();\r\n this._frameGraphTask = new FrameGraphSSRRenderingPipelineTask(this.name, this._frameGraph, textureType);\r\n\r\n this.sourceSamplingMode = sourceSamplingMode;\r\n this.maxDistance = maxDistance;\r\n this.step = step;\r\n this.thickness = thickness;\r\n this.strength = strength;\r\n this.reflectionSpecularFalloffExponent = reflectionSpecularFalloffExponent;\r\n this.maxSteps = maxSteps;\r\n this.roughnessFactor = roughnessFactor;\r\n this.selfCollisionNumSkip = selfCollisionNumSkip;\r\n this.reflectivityThreshold = reflectivityThreshold;\r\n this.ssrDownsample = ssrDownsample;\r\n this.blurDispersionStrength = blurDispersionStrength;\r\n this.blurDownsample = blurDownsample;\r\n this.enableSmoothReflections = enableSmoothReflections;\r\n this.attenuateScreenBorders = attenuateScreenBorders;\r\n this.attenuateIntersectionDistance = attenuateIntersectionDistance;\r\n this.attenuateIntersectionIterations = attenuateIntersectionIterations;\r\n this.attenuateFacingCamera = attenuateFacingCamera;\r\n this.attenuateBackfaceReflection = attenuateBackfaceReflection;\r\n this.clipToFrustum = clipToFrustum;\r\n this.useFresnel = useFresnel;\r\n this.enableAutomaticThicknessComputation = enableAutomaticThicknessComputation;\r\n this.inputTextureColorIsInGammaSpace = inputTextureColorIsInGammaSpace;\r\n this.generateOutputInGammaSpace = generateOutputInGammaSpace;\r\n this.debug = debug;\r\n\r\n this._additionalConstructionParameters = [textureType];\r\n }\r\n\r\n /** The texture type used by the different post processes created by SSR */\r\n @editableInPropertyPage(\"Texture type\", PropertyTypeForEdition.TextureType, \"SSR\")\r\n public get textureType() {\r\n return this._frameGraphTask.textureType;\r\n }\r\n\r\n public set textureType(value: number) {\r\n this._createTask(value);\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the effect should be rendered in debug mode */\r\n @editableInPropertyPage(\"Debug\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get debug() {\r\n return this._frameGraphTask.ssr.debug;\r\n }\r\n\r\n public set debug(value: boolean) {\r\n this._frameGraphTask.ssr.debug = value;\r\n }\r\n\r\n /** Gets or sets the current reflection strength. 1.0 is an ideal value but can be increased/decreased for particular results */\r\n @editableInPropertyPage(\"Strength\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 5 })\r\n public get strength() {\r\n return this._frameGraphTask.ssr.strength;\r\n }\r\n\r\n public set strength(value: number) {\r\n this._frameGraphTask.ssr.strength = value;\r\n }\r\n\r\n /** Gets or sets the falloff exponent used to compute the reflection strength. Higher values lead to fainter reflections */\r\n @editableInPropertyPage(\"Reflection exponent\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 5 })\r\n public get reflectionSpecularFalloffExponent() {\r\n return this._frameGraphTask.ssr.reflectionSpecularFalloffExponent;\r\n }\r\n\r\n public set reflectionSpecularFalloffExponent(value: number) {\r\n this._frameGraphTask.ssr.reflectionSpecularFalloffExponent = value;\r\n }\r\n\r\n /** Gets or sets the minimum value for one of the reflectivity component of the material to consider it for SSR */\r\n @editableInPropertyPage(\"Reflectivity threshold\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 1 })\r\n public get reflectivityThreshold() {\r\n return this._frameGraphTask.ssr.reflectivityThreshold;\r\n }\r\n\r\n public set reflectivityThreshold(value: number) {\r\n this._frameGraphTask.ssr.reflectivityThreshold = value;\r\n }\r\n\r\n /** Gets or sets the thickness value used as tolerance when computing the intersection between the reflected ray and the scene */\r\n @editableInPropertyPage(\"Thickness\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 10 })\r\n public get thickness() {\r\n return this._frameGraphTask.ssr.thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n this._frameGraphTask.ssr.thickness = value;\r\n }\r\n\r\n /** Gets or sets the step size used to iterate until the effect finds the color of the reflection's pixel */\r\n @editableInPropertyPage(\"Step\", PropertyTypeForEdition.Int, \"SSR\", { min: 1, max: 50 })\r\n public get step() {\r\n return this._frameGraphTask.ssr.step;\r\n }\r\n\r\n public set step(value: number) {\r\n this._frameGraphTask.ssr.step = value;\r\n }\r\n\r\n /** Gets or sets whether or not smoothing reflections is enabled */\r\n @editableInPropertyPage(\"Smooth reflections\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get enableSmoothReflections() {\r\n return this._frameGraphTask.ssr.enableSmoothReflections;\r\n }\r\n\r\n public set enableSmoothReflections(value: boolean) {\r\n this._frameGraphTask.ssr.enableSmoothReflections = value;\r\n }\r\n\r\n /** Maximum number of steps during the ray marching process after which we consider an intersection could not be found */\r\n @editableInPropertyPage(\"Max steps\", PropertyTypeForEdition.Int, \"SSR\", { min: 1, max: 3000 })\r\n public get maxSteps() {\r\n return this._frameGraphTask.ssr.maxSteps;\r\n }\r\n\r\n public set maxSteps(value: number) {\r\n this._frameGraphTask.ssr.maxSteps = value;\r\n }\r\n\r\n /** Gets or sets the max distance used to define how far we look for reflection during the ray-marching on the reflected ray */\r\n @editableInPropertyPage(\"Max distance\", PropertyTypeForEdition.Float, \"SSR\", { min: 1, max: 3000 })\r\n public get maxDistance() {\r\n return this._frameGraphTask.ssr.maxDistance;\r\n }\r\n\r\n public set maxDistance(value: number) {\r\n this._frameGraphTask.ssr.maxDistance = value;\r\n }\r\n\r\n /** Gets or sets the factor applied when computing roughness */\r\n @editableInPropertyPage(\"Roughness factor\", PropertyTypeForEdition.Float, \"SSR\", { min: 0, max: 1 })\r\n public get roughnessFactor() {\r\n return this._frameGraphTask.ssr.roughnessFactor;\r\n }\r\n\r\n public set roughnessFactor(value: number) {\r\n this._frameGraphTask.ssr.roughnessFactor = value;\r\n }\r\n\r\n /** Number of steps to skip at start when marching the ray to avoid self collisions */\r\n @editableInPropertyPage(\"Self collision skips\", PropertyTypeForEdition.Int, \"SSR\", { min: 1, max: 10 })\r\n public get selfCollisionNumSkip() {\r\n return this._frameGraphTask.ssr.selfCollisionNumSkip;\r\n }\r\n\r\n public set selfCollisionNumSkip(value: number) {\r\n this._frameGraphTask.ssr.selfCollisionNumSkip = value;\r\n }\r\n\r\n /** Gets or sets the downsample factor used to reduce the size of the texture used to compute the SSR contribution */\r\n @editableInPropertyPage(\"SSR downsample\", PropertyTypeForEdition.Int, \"SSR\", { min: 0, max: 5 })\r\n public get ssrDownsample() {\r\n return this._frameGraphTask.ssr.ssrDownsample;\r\n }\r\n\r\n public set ssrDownsample(value: number) {\r\n this._frameGraphTask.ssr.ssrDownsample = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the ray should be clipped to the frustum */\r\n @editableInPropertyPage(\"Clip to frustum\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get clipToFrustum() {\r\n return this._frameGraphTask.ssr.clipToFrustum;\r\n }\r\n\r\n public set clipToFrustum(value: boolean) {\r\n this._frameGraphTask.ssr.clipToFrustum = value;\r\n }\r\n\r\n /** Gets or sets a boolean defining if geometry thickness should be computed automatically */\r\n @editableInPropertyPage(\"Automatic thickness computation\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get enableAutomaticThicknessComputation() {\r\n return this._frameGraphTask.ssr.enableAutomaticThicknessComputation;\r\n }\r\n\r\n public set enableAutomaticThicknessComputation(value: boolean) {\r\n this._frameGraphTask.ssr.enableAutomaticThicknessComputation = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating whether the blending between the current color pixel and the reflection color should be done with a Fresnel coefficient */\r\n @editableInPropertyPage(\"Use Fresnel\", PropertyTypeForEdition.Boolean, \"SSR\")\r\n public get useFresnel() {\r\n return this._frameGraphTask.ssr.useFresnel;\r\n }\r\n\r\n public set useFresnel(value: boolean) {\r\n this._frameGraphTask.ssr.useFresnel = value;\r\n }\r\n\r\n /** Gets or sets the blur dispersion strength. Set this value to 0 to disable blurring */\r\n @editableInPropertyPage(\"Strength\", PropertyTypeForEdition.Float, \"Blur\", { min: 0, max: 0.15 })\r\n public get blurDispersionStrength() {\r\n return this._frameGraphTask.ssr.blurDispersionStrength;\r\n }\r\n\r\n public set blurDispersionStrength(value: number) {\r\n this._frameGraphTask.ssr.blurDispersionStrength = value;\r\n }\r\n\r\n /** Gets or sets the downsample factor used to reduce the size of the textures used to blur the reflection effect */\r\n @editableInPropertyPage(\"Blur downsample\", PropertyTypeForEdition.Int, \"Blur\", { min: 0, max: 5 })\r\n public get blurDownsample() {\r\n return this._frameGraphTask.ssr.blurDownsample;\r\n }\r\n\r\n public set blurDownsample(value: number) {\r\n this._frameGraphTask.ssr.blurDownsample = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the reflections should be attenuated at the screen borders */\r\n @editableInPropertyPage(\"Screen borders\", PropertyTypeForEdition.Boolean, \"Attenuations\")\r\n public get attenuateScreenBorders() {\r\n return this._frameGraphTask.ssr.attenuateScreenBorders;\r\n }\r\n\r\n public set attenuateScreenBorders(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateScreenBorders = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the reflections should be attenuated according to the distance of the intersection */\r\n @editableInPropertyPage(\"Distance\", PropertyTypeForEdition.Boolean, \"Attenuations\")\r\n public get attenuateIntersectionDistance() {\r\n return this._frameGraphTask.ssr.attenuateIntersectionDistance;\r\n }\r\n\r\n public set attenuateIntersectionDistance(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateIntersectionDistance = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the reflections should be attenuated according to the number of iterations performed to find the intersection */\r\n @editableInPropertyPage(\"Step iterations\", PropertyTypeForEdition.Boolean, \"Attenuations\")\r\n public get attenuateIntersectionIterations() {\r\n return this._frameGraphTask.ssr.attenuateIntersectionIterations;\r\n }\r\n\r\n public set attenuateIntersectionIterations(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateIntersectionIterations = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the reflections should be attenuated when the reflection ray is facing the camera (the view direction) */\r\n @editableInPropertyPage(\"Facing camera\", PropertyTypeForEdition.Boolean, \"Attenuations\")\r\n public get attenuateFacingCamera() {\r\n return this._frameGraphTask.ssr.attenuateFacingCamera;\r\n }\r\n\r\n public set attenuateFacingCamera(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateFacingCamera = value;\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the backface reflections should be attenuated */\r\n @editableInPropertyPage(\"Backface reflections\", PropertyTypeForEdition.Boolean, \"Attenuations\")\r\n public get attenuateBackfaceReflection() {\r\n return this._frameGraphTask.ssr.attenuateBackfaceReflection;\r\n }\r\n\r\n public set attenuateBackfaceReflection(value: boolean) {\r\n this._frameGraphTask.ssr.attenuateBackfaceReflection = value;\r\n }\r\n\r\n /** Gets or sets a boolean defining if the input color texture is in gamma space */\r\n @editableInPropertyPage(\"Input is in gamma space\", PropertyTypeForEdition.Boolean, \"Color space\")\r\n public get inputTextureColorIsInGammaSpace() {\r\n return this._frameGraphTask.ssr.inputTextureColorIsInGammaSpace;\r\n }\r\n\r\n public set inputTextureColorIsInGammaSpace(value: boolean) {\r\n this._frameGraphTask.ssr.inputTextureColorIsInGammaSpace = value;\r\n }\r\n\r\n /** Gets or sets a boolean defining if the output color texture generated by the SSR pipeline should be in gamma space */\r\n @editableInPropertyPage(\"Output to gamma space\", PropertyTypeForEdition.Boolean, \"Color space\")\r\n public get generateOutputInGammaSpace() {\r\n return this._frameGraphTask.ssr.generateOutputInGammaSpace;\r\n }\r\n\r\n public set generateOutputInGammaSpace(value: boolean) {\r\n this._frameGraphTask.ssr.generateOutputInGammaSpace = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphSSRPostProcessBlock\";\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the geometry depth input component\r\n */\r\n public get geomDepth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the geometry normal input component\r\n */\r\n public get geomNormal(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the geometry reflectivity input component\r\n */\r\n public get geomReflectivity(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the geometry back depth input component\r\n */\r\n public get geomBackDepth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[6];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._frameGraphTask.normalTexture = this.geomNormal.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.depthTexture = this.geomDepth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.reflectivityTexture = this.geomReflectivity.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.backDepthTexture = this.geomBackDepth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n\r\n if (this.enableAutomaticThicknessComputation) {\r\n if (!this._frameGraphTask.backDepthTexture) {\r\n throw new Error(`SSR post process \"${this.name}\": Automatic thickness computation requires a back depth texture to be connected!`);\r\n }\r\n\r\n const geomBackDepthOwnerBlock = this.geomBackDepth.connectedPoint!.ownerBlock!;\r\n if (geomBackDepthOwnerBlock.getClassName() === \"NodeRenderGraphGeometryRendererBlock\") {\r\n const geometryBackFaceRendererBlock = geomBackDepthOwnerBlock as NodeRenderGraphGeometryRendererBlock;\r\n if (!geometryBackFaceRendererBlock.reverseCulling) {\r\n throw new Error(\r\n `SSR post process \"${this.name}\": Automatic thickness computation requires the geometry renderer block for the back depth texture to have reverse culling enabled!`\r\n );\r\n }\r\n\r\n if (this._frameGraphTask.depthTexture) {\r\n const geomDepthOwnerBlock = this.geomDepth.connectedPoint!.ownerBlock!;\r\n if (geomDepthOwnerBlock.getClassName() === \"NodeRenderGraphGeometryRendererBlock\") {\r\n const geomDepthConnectionPointType = this.geomDepth.connectedPoint!.type;\r\n const geomBackDepthConnectionPointType = this.geomBackDepth.connectedPoint!.type;\r\n\r\n if (geomDepthConnectionPointType !== geomBackDepthConnectionPointType) {\r\n throw new Error(\r\n `SSR post process \"${this.name}\": Automatic thickness computation requires that geomDepth and geomBackDepth have the same type (view or screen space depth)!`\r\n );\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.geomNormal.connectedPoint) {\r\n if (this.geomNormal.connectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal) {\r\n this._frameGraphTask.ssr.normalsAreInWorldSpace = true;\r\n this._frameGraphTask.ssr.normalsAreUnsigned = true;\r\n }\r\n }\r\n if (this.geomDepth.connectedPoint) {\r\n if (this.geomDepth.connectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth) {\r\n this._frameGraphTask.ssr.useScreenspaceDepth = true;\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.debug = ${this.debug};`);\r\n codes.push(`${this._codeVariableName}.strength = ${this.strength};`);\r\n codes.push(`${this._codeVariableName}.reflectionSpecularFalloffExponent = ${this.reflectionSpecularFalloffExponent};`);\r\n codes.push(`${this._codeVariableName}.reflectivityThreshold = ${this.reflectivityThreshold};`);\r\n codes.push(`${this._codeVariableName}.thickness = ${this.thickness};`);\r\n codes.push(`${this._codeVariableName}.step = ${this.step};`);\r\n codes.push(`${this._codeVariableName}.enableSmoothReflections = ${this.enableSmoothReflections};`);\r\n codes.push(`${this._codeVariableName}.maxSteps = ${this.maxSteps};`);\r\n codes.push(`${this._codeVariableName}.maxDistance = ${this.maxDistance};`);\r\n codes.push(`${this._codeVariableName}.roughnessFactor = ${this.roughnessFactor};`);\r\n codes.push(`${this._codeVariableName}.selfCollisionNumSkip = ${this.selfCollisionNumSkip};`);\r\n codes.push(`${this._codeVariableName}.ssrDownsample = ${this.ssrDownsample};`);\r\n codes.push(`${this._codeVariableName}.clipToFrustum = ${this.clipToFrustum};`);\r\n codes.push(`${this._codeVariableName}.useFresnel = ${this.useFresnel};`);\r\n codes.push(`${this._codeVariableName}.enableAutomaticThicknessComputation = ${this.enableAutomaticThicknessComputation};`);\r\n codes.push(`${this._codeVariableName}.blurDispersionStrength = ${this.blurDispersionStrength};`);\r\n codes.push(`${this._codeVariableName}.blurDownsample = ${this.blurDownsample};`);\r\n codes.push(`${this._codeVariableName}.attenuateScreenBorders = ${this.attenuateScreenBorders};`);\r\n codes.push(`${this._codeVariableName}.attenuateIntersectionDistance = ${this.attenuateIntersectionDistance};`);\r\n codes.push(`${this._codeVariableName}.attenuateIntersectionIterations = ${this.attenuateIntersectionIterations};`);\r\n codes.push(`${this._codeVariableName}.attenuateFacingCamera = ${this.attenuateFacingCamera};`);\r\n codes.push(`${this._codeVariableName}.attenuateBackfaceReflection = ${this.attenuateBackfaceReflection};`);\r\n codes.push(`${this._codeVariableName}.inputTextureColorIsInGammaSpace = ${this.inputTextureColorIsInGammaSpace};`);\r\n codes.push(`${this._codeVariableName}.generateOutputInGammaSpace = ${this.generateOutputInGammaSpace};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.debug = this.debug;\r\n serializationObject.strength = this.strength;\r\n serializationObject.reflectionSpecularFalloffExponent = this.reflectionSpecularFalloffExponent;\r\n serializationObject.reflectivityThreshold = this.reflectivityThreshold;\r\n serializationObject.thickness = this.thickness;\r\n serializationObject.step = this.step;\r\n serializationObject.enableSmoothReflections = this.enableSmoothReflections;\r\n serializationObject.maxSteps = this.maxSteps;\r\n serializationObject.maxDistance = this.maxDistance;\r\n serializationObject.roughnessFactor = this.roughnessFactor;\r\n serializationObject.selfCollisionNumSkip = this.selfCollisionNumSkip;\r\n serializationObject.ssrDownsample = this.ssrDownsample;\r\n serializationObject.clipToFrustum = this.clipToFrustum;\r\n serializationObject.useFresnel = this.useFresnel;\r\n serializationObject.enableAutomaticThicknessComputation = this.enableAutomaticThicknessComputation;\r\n serializationObject.blurDispersionStrength = this.blurDispersionStrength;\r\n serializationObject.blurDownsample = this.blurDownsample;\r\n serializationObject.attenuateScreenBorders = this.attenuateScreenBorders;\r\n serializationObject.attenuateIntersectionDistance = this.attenuateIntersectionDistance;\r\n serializationObject.attenuateIntersectionIterations = this.attenuateIntersectionIterations;\r\n serializationObject.attenuateFacingCamera = this.attenuateFacingCamera;\r\n serializationObject.attenuateBackfaceReflection = this.attenuateBackfaceReflection;\r\n serializationObject.inputTextureColorIsInGammaSpace = this.inputTextureColorIsInGammaSpace;\r\n serializationObject.generateOutputInGammaSpace = this.generateOutputInGammaSpace;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.debug = serializationObject.debug;\r\n this.strength = serializationObject.strength;\r\n this.reflectionSpecularFalloffExponent = serializationObject.reflectionSpecularFalloffExponent;\r\n this.reflectivityThreshold = serializationObject.reflectivityThreshold;\r\n this.thickness = serializationObject.thickness;\r\n this.step = serializationObject.step;\r\n this.enableSmoothReflections = serializationObject.enableSmoothReflections;\r\n this.maxSteps = serializationObject.maxSteps;\r\n this.maxDistance = serializationObject.maxDistance;\r\n this.roughnessFactor = serializationObject.roughnessFactor;\r\n this.selfCollisionNumSkip = serializationObject.selfCollisionNumSkip;\r\n this.ssrDownsample = serializationObject.ssrDownsample;\r\n this.clipToFrustum = serializationObject.clipToFrustum;\r\n this.useFresnel = serializationObject.useFresnel;\r\n this.enableAutomaticThicknessComputation = serializationObject.enableAutomaticThicknessComputation;\r\n this.blurDispersionStrength = serializationObject.blurDispersionStrength;\r\n this.blurDownsample = serializationObject.blurDownsample;\r\n this.attenuateScreenBorders = serializationObject.attenuateScreenBorders;\r\n this.attenuateIntersectionDistance = serializationObject.attenuateIntersectionDistance;\r\n this.attenuateIntersectionIterations = serializationObject.attenuateIntersectionIterations;\r\n this.attenuateFacingCamera = serializationObject.attenuateFacingCamera;\r\n this.attenuateBackfaceReflection = serializationObject.attenuateBackfaceReflection;\r\n this.inputTextureColorIsInGammaSpace = serializationObject.inputTextureColorIsInGammaSpace;\r\n this.generateOutputInGammaSpace = serializationObject.generateOutputInGammaSpace;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphSSRPostProcessBlock\", NodeRenderGraphSSRPostProcessBlock);\r\n"]}
|
|
@@ -22,18 +22,18 @@ export class NodeRenderGraphBaseObjectRendererBlock extends NodeRenderGraphBlock
|
|
|
22
22
|
*/
|
|
23
23
|
constructor(name, frameGraph, scene) {
|
|
24
24
|
super(name, frameGraph, scene);
|
|
25
|
-
this.registerInput("target", NodeRenderGraphBlockConnectionPointTypes.
|
|
26
|
-
this.registerInput("depth", NodeRenderGraphBlockConnectionPointTypes.
|
|
25
|
+
this.registerInput("target", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);
|
|
26
|
+
this.registerInput("depth", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);
|
|
27
27
|
this.registerInput("camera", NodeRenderGraphBlockConnectionPointTypes.Camera);
|
|
28
28
|
this.registerInput("objects", NodeRenderGraphBlockConnectionPointTypes.ObjectList);
|
|
29
29
|
this._addDependenciesInput();
|
|
30
|
-
this.registerInput("shadowGenerators", NodeRenderGraphBlockConnectionPointTypes.
|
|
30
|
+
this.registerInput("shadowGenerators", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);
|
|
31
31
|
this.registerOutput("output", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);
|
|
32
32
|
this.registerOutput("outputDepth", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);
|
|
33
33
|
this.registerOutput("objectRenderer", NodeRenderGraphBlockConnectionPointTypes.Object, new NodeRenderGraphConnectionPointCustomObject("objectRenderer", this, 1 /* NodeRenderGraphConnectionPointDirection.Output */, NodeRenderGraphBaseObjectRendererBlock, "NodeRenderGraphBaseObjectRendererBlock"));
|
|
34
|
-
this.target.
|
|
35
|
-
this.depth.
|
|
36
|
-
this.shadowGenerators.
|
|
34
|
+
this.target.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil);
|
|
35
|
+
this.depth.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment);
|
|
36
|
+
this.shadowGenerators.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator | NodeRenderGraphBlockConnectionPointTypes.ResourceContainer);
|
|
37
37
|
this.output._typeConnectionSource = this.target;
|
|
38
38
|
this.outputDepth._typeConnectionSource = this.depth;
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseObjectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\r\n Scene,\r\n NodeRenderGraphBuildState,\r\n FrameGraph,\r\n FrameGraphTextureHandle,\r\n FrameGraphObjectList,\r\n Camera,\r\n FrameGraphObjectRendererTask,\r\n NodeRenderGraphResourceContainerBlock,\r\n FrameGraphShadowGeneratorTask,\r\n // eslint-disable-next-line import/no-internal-modules\r\n} from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes, NodeRenderGraphConnectionPointDirection } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { NodeRenderGraphConnectionPoint } from \"../../nodeRenderGraphBlockConnectionPoint\";\r\nimport { NodeRenderGraphConnectionPointCustomObject } from \"../../nodeRenderGraphConnectionPointCustomObject\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class NodeRenderGraphBaseObjectRendererBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphObjectRendererTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphBaseObjectRendererBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"target\", NodeRenderGraphBlockConnectionPointTypes.Texture);\r\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment, true);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this._addDependenciesInput();\r\n this.registerInput(\"shadowGenerators\", NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator, true);\r\n\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\r\n \"objectRenderer\",\r\n NodeRenderGraphBlockConnectionPointTypes.Object,\r\n new NodeRenderGraphConnectionPointCustomObject(\r\n \"objectRenderer\",\r\n this,\r\n NodeRenderGraphConnectionPointDirection.Output,\r\n NodeRenderGraphBaseObjectRendererBlock,\r\n \"NodeRenderGraphBaseObjectRendererBlock\"\r\n )\r\n );\r\n\r\n this.target.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil);\r\n this.depth.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment);\r\n this.shadowGenerators.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.ResourceContainer);\r\n\r\n this.output._typeConnectionSource = this.target;\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /** Indicates if shadows must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable shadows\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get disableShadows() {\r\n return this._frameGraphTask.disableShadows;\r\n }\r\n\r\n public set disableShadows(value: boolean) {\r\n this._frameGraphTask.disableShadows = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphBaseObjectRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the target texture input component\r\n */\r\n public get target(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the dependencies input component\r\n */\r\n public get dependencies(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the shadowGenerators input component\r\n */\r\n public get shadowGenerators(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output depth component\r\n */\r\n public get outputDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the objectRenderer component\r\n */\r\n public get objectRenderer(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\r\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture; // the value of the outputDepth connection point is the \"outputDepth\" texture of the task\r\n this.objectRenderer.value = this._frameGraphTask; // the value of the objectRenderer connection point is the task itself\r\n\r\n this._frameGraphTask.targetTexture = this.target.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.depthTexture = this.depth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n\r\n this._frameGraphTask.shadowGenerators = [];\r\n\r\n const shadowGeneratorsConnectedPoint = this.shadowGenerators.connectedPoint;\r\n if (shadowGeneratorsConnectedPoint) {\r\n if (shadowGeneratorsConnectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.ResourceContainer) {\r\n const container = shadowGeneratorsConnectedPoint.ownerBlock as NodeRenderGraphResourceContainerBlock;\r\n container.inputs.forEach((input) => {\r\n if (input.connectedPoint && input.connectedPoint.value !== undefined && NodeRenderGraphConnectionPoint.IsShadowGenerator(input.connectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators!.push(input.connectedPoint.value as FrameGraphShadowGeneratorTask);\r\n }\r\n });\r\n } else if (NodeRenderGraphConnectionPoint.IsShadowGenerator(shadowGeneratorsConnectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators[0] = shadowGeneratorsConnectedPoint.value as FrameGraphShadowGeneratorTask;\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\r\n codes.push(`${this._codeVariableName}.disableShadows = ${this.disableShadows};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.disableShadows = this.disableShadows;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.disableShadows = serializationObject.disableShadows;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"baseObjectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\r\n Scene,\r\n NodeRenderGraphBuildState,\r\n FrameGraph,\r\n FrameGraphTextureHandle,\r\n FrameGraphObjectList,\r\n Camera,\r\n FrameGraphObjectRendererTask,\r\n NodeRenderGraphResourceContainerBlock,\r\n FrameGraphShadowGeneratorTask,\r\n // eslint-disable-next-line import/no-internal-modules\r\n} from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes, NodeRenderGraphConnectionPointDirection } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { NodeRenderGraphConnectionPoint } from \"../../nodeRenderGraphBlockConnectionPoint\";\r\nimport { NodeRenderGraphConnectionPointCustomObject } from \"../../nodeRenderGraphConnectionPointCustomObject\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class NodeRenderGraphBaseObjectRendererBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphObjectRendererTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphBaseObjectRendererBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"target\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this._addDependenciesInput();\r\n this.registerInput(\"shadowGenerators\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\r\n \"objectRenderer\",\r\n NodeRenderGraphBlockConnectionPointTypes.Object,\r\n new NodeRenderGraphConnectionPointCustomObject(\r\n \"objectRenderer\",\r\n this,\r\n NodeRenderGraphConnectionPointDirection.Output,\r\n NodeRenderGraphBaseObjectRendererBlock,\r\n \"NodeRenderGraphBaseObjectRendererBlock\"\r\n )\r\n );\r\n\r\n this.target.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil);\r\n this.depth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment\r\n );\r\n this.shadowGenerators.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator | NodeRenderGraphBlockConnectionPointTypes.ResourceContainer\r\n );\r\n\r\n this.output._typeConnectionSource = this.target;\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /** Indicates if shadows must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable shadows\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get disableShadows() {\r\n return this._frameGraphTask.disableShadows;\r\n }\r\n\r\n public set disableShadows(value: boolean) {\r\n this._frameGraphTask.disableShadows = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphBaseObjectRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the target texture input component\r\n */\r\n public get target(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the dependencies input component\r\n */\r\n public get dependencies(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the shadowGenerators input component\r\n */\r\n public get shadowGenerators(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output depth component\r\n */\r\n public get outputDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the objectRenderer component\r\n */\r\n public get objectRenderer(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\r\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture; // the value of the outputDepth connection point is the \"outputDepth\" texture of the task\r\n this.objectRenderer.value = this._frameGraphTask; // the value of the objectRenderer connection point is the task itself\r\n\r\n this._frameGraphTask.targetTexture = this.target.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.depthTexture = this.depth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n\r\n this._frameGraphTask.shadowGenerators = [];\r\n\r\n const shadowGeneratorsConnectedPoint = this.shadowGenerators.connectedPoint;\r\n if (shadowGeneratorsConnectedPoint) {\r\n if (shadowGeneratorsConnectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.ResourceContainer) {\r\n const container = shadowGeneratorsConnectedPoint.ownerBlock as NodeRenderGraphResourceContainerBlock;\r\n container.inputs.forEach((input) => {\r\n if (input.connectedPoint && input.connectedPoint.value !== undefined && NodeRenderGraphConnectionPoint.IsShadowGenerator(input.connectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators!.push(input.connectedPoint.value as FrameGraphShadowGeneratorTask);\r\n }\r\n });\r\n } else if (NodeRenderGraphConnectionPoint.IsShadowGenerator(shadowGeneratorsConnectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators[0] = shadowGeneratorsConnectedPoint.value as FrameGraphShadowGeneratorTask;\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\r\n codes.push(`${this._codeVariableName}.disableShadows = ${this.disableShadows};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.disableShadows = this.disableShadows;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.disableShadows = serializationObject.disableShadows;\r\n }\r\n}\r\n"]}
|
|
@@ -55,7 +55,7 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
55
55
|
this.linearVelocityFormat = 5;
|
|
56
56
|
this.linearVelocityType = 0;
|
|
57
57
|
this._additionalConstructionParameters = [doNotChangeAspectRatio];
|
|
58
|
-
this.registerInput("depth", NodeRenderGraphBlockConnectionPointTypes.
|
|
58
|
+
this.registerInput("depth", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);
|
|
59
59
|
this.registerInput("camera", NodeRenderGraphBlockConnectionPointTypes.Camera);
|
|
60
60
|
this.registerInput("objects", NodeRenderGraphBlockConnectionPointTypes.ObjectList);
|
|
61
61
|
this._addDependenciesInput();
|
|
@@ -70,7 +70,7 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
70
70
|
this.registerOutput("geomReflectivity", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);
|
|
71
71
|
this.registerOutput("geomVelocity", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);
|
|
72
72
|
this.registerOutput("geomLinearVelocity", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);
|
|
73
|
-
this.depth.
|
|
73
|
+
this.depth.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment);
|
|
74
74
|
this.outputDepth._typeConnectionSource = this.depth;
|
|
75
75
|
this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });
|
|
76
76
|
}
|
|
@@ -93,9 +93,11 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
93
93
|
return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;
|
|
94
94
|
}
|
|
95
95
|
set doNotChangeAspectRatio(value) {
|
|
96
|
+
const disabled = this._frameGraphTask.disabled;
|
|
96
97
|
this._frameGraphTask.dispose();
|
|
97
98
|
this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });
|
|
98
99
|
this._additionalConstructionParameters = [value];
|
|
100
|
+
this._frameGraphTask.disabled = disabled;
|
|
99
101
|
}
|
|
100
102
|
/** Width of the geometry texture */
|
|
101
103
|
get width() {
|