@onerjs/core 8.56.4 → 9.0.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/Animations/animatable.core.js +36 -0
- package/Animations/animatable.core.js.map +1 -1
- package/Animations/animationGroup.pure.d.ts +61 -1
- package/Animations/animationGroup.pure.js +191 -2
- package/Animations/animationGroup.pure.js.map +1 -1
- package/Animations/index.d.ts +1 -0
- package/Animations/index.js +1 -0
- package/Animations/index.js.map +1 -1
- package/Animations/pure.d.ts +1 -0
- package/Animations/pure.js +1 -0
- package/Animations/pure.js.map +1 -1
- package/Animations/rootMotion.d.ts +560 -0
- package/Animations/rootMotion.js +1709 -0
- package/Animations/rootMotion.js.map +1 -0
- package/Animations/runtimeAnimation.d.ts +57 -0
- package/Animations/runtimeAnimation.js +127 -3
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.d.ts +2 -0
- package/Cameras/arcRotateCamera.pure.js +2 -0
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +2 -0
- package/Cameras/targetCamera.pure.js +7 -1
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.js +5 -5
- package/Collisions/gpuPicker.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.query.pure.js +4 -2
- package/Engines/AbstractEngine/abstractEngine.query.pure.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.query.types.d.ts +11 -2
- package/Engines/AbstractEngine/abstractEngine.query.types.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js +1 -0
- package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.pure.js +63 -0
- package/Engines/Extensions/engine.multiRender.pure.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.types.d.ts +13 -0
- package/Engines/Extensions/engine.multiRender.types.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js +2 -2
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.types.d.ts +2 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.types.js.map +1 -1
- package/Engines/Extensions/index.d.ts +1 -0
- package/Engines/Extensions/index.js +1 -0
- package/Engines/Extensions/index.js.map +1 -1
- package/Engines/Extensions/pure.d.ts +1 -1
- package/Engines/Extensions/pure.js +1 -1
- package/Engines/Extensions/pure.js.map +1 -1
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js +88 -39
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js.map +1 -1
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.d.ts +20 -2
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js +4 -0
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.types.d.ts +13 -0
- package/Engines/WebGPU/Extensions/engine.multiRender.types.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.query.pure.js +11 -3
- package/Engines/WebGPU/Extensions/engine.query.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/index.d.ts +1 -0
- package/Engines/WebGPU/Extensions/index.js +1 -0
- package/Engines/WebGPU/Extensions/index.js.map +1 -1
- package/Engines/WebGPU/Extensions/pure.d.ts +1 -1
- package/Engines/WebGPU/Extensions/pure.js +1 -1
- package/Engines/WebGPU/Extensions/pure.js.map +1 -1
- package/Engines/WebGPU/webgpuBundleList.d.ts +2 -0
- package/Engines/WebGPU/webgpuBundleList.js +4 -0
- package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -2
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js +3 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +4 -0
- package/Engines/WebGPU/webgpuSnapshotRendering.js +40 -7
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +2 -2
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +2 -0
- package/Engines/WebGPU/webgpuTextureManager.js +286 -13
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +2 -0
- package/Engines/abstractEngine.pure.js +7 -3
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/constants.d.ts +4 -0
- package/Engines/constants.js +4 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/thinEngine.pure.d.ts +14 -0
- package/Engines/thinEngine.pure.js +48 -12
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +1 -0
- package/Engines/thinNativeEngine.pure.js +7 -1
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/thinWebGPUEngine.d.ts +4 -0
- package/Engines/thinWebGPUEngine.js +10 -1
- package/Engines/thinWebGPUEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +5 -2
- package/Engines/webgpuEngine.pure.js +48 -13
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js +2 -2
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.d.ts +11 -2
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.d.ts +9 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js +6 -8
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.d.ts +9 -0
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js +34 -9
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js +4 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js +4 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js +19 -7
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.d.ts +20 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js +53 -10
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.d.ts +16 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js +64 -14
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js +64 -16
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js.map +1 -1
- package/FlowGraph/flowGraph.d.ts +4 -0
- package/FlowGraph/flowGraph.js +38 -7
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphBlock.js +3 -0
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphConnection.d.ts +7 -0
- package/FlowGraph/flowGraphConnection.js +7 -0
- package/FlowGraph/flowGraphConnection.js.map +1 -1
- package/FlowGraph/flowGraphContext.d.ts +2 -1
- package/FlowGraph/flowGraphContext.js +4 -3
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.d.ts +15 -1
- package/FlowGraph/flowGraphCoordinator.js +47 -16
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphEventBlock.d.ts +5 -0
- package/FlowGraph/flowGraphEventBlock.js +7 -0
- package/FlowGraph/flowGraphEventBlock.js.map +1 -1
- package/FlowGraph/flowGraphHostResolver.d.ts +2 -1
- package/FlowGraph/flowGraphHostResolver.js.map +1 -1
- package/FlowGraph/flowGraphParser.js +60 -2
- package/FlowGraph/flowGraphParser.js.map +1 -1
- package/FlowGraph/serialization.d.ts +2 -0
- package/FlowGraph/serialization.js +10 -22
- package/FlowGraph/serialization.js.map +1 -1
- package/FlowGraph/typeDefinitions.d.ts +8 -0
- package/FlowGraph/typeDefinitions.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.d.ts +5 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js +8 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.d.ts +87 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js +295 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.d.ts +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.js +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +4 -4
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.d.ts +5 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +13 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/allBlocks.pure.js +2 -0
- package/FrameGraph/Node/Blocks/allBlocks.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/index.d.ts +1 -0
- package/FrameGraph/Node/Blocks/index.js +1 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +20 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/pure.d.ts +1 -0
- package/FrameGraph/Node/Blocks/pure.js +1 -0
- package/FrameGraph/Node/Blocks/pure.js.map +1 -1
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +4 -2
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +4 -2
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Tasks/Layers/selectionOutlineTask.js +1 -0
- package/FrameGraph/Tasks/Layers/selectionOutlineTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js +5 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +1 -0
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.d.ts +69 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js +223 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +25 -3
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +69 -33
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +3 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/frameGraphObjectList.d.ts +6 -1
- package/FrameGraph/frameGraphObjectList.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +3 -1
- package/FrameGraph/frameGraphRenderContext.js +5 -5
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/index.d.ts +1 -0
- package/FrameGraph/index.js +1 -0
- package/FrameGraph/index.js.map +1 -1
- package/FrameGraph/pure.d.ts +1 -0
- package/FrameGraph/pure.js +1 -0
- package/FrameGraph/pure.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +4 -0
- package/Inputs/scene.inputManager.js +50 -8
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js +5 -5
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +5 -5
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +26 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +151 -47
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +5 -5
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +11 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +17 -2
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +2 -2
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.d.ts +4 -0
- package/Materials/Node/nodeMaterial.pure.js +4 -0
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +25 -3
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.pure.d.ts +2 -0
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +2 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.d.ts +13 -14
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +6 -6
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/baseTexture.pure.js +3 -0
- package/Materials/Textures/baseTexture.pure.js.map +1 -1
- package/Materials/Textures/cubeTexture.pure.js +1 -1
- package/Materials/Textures/cubeTexture.pure.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +8 -1
- package/Materials/Textures/internalTexture.js +9 -2
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/rawTexture2DArray.functions.d.ts +3 -3
- package/Materials/Textures/rawTexture2DArray.functions.js.map +1 -1
- package/Materials/Textures/rawTexture3D.d.ts +1 -1
- package/Materials/Textures/rawTexture3D.js +1 -1
- package/Materials/Textures/rawTexture3D.js.map +1 -1
- package/Materials/Textures/textureHelper.functions.d.ts +14 -0
- package/Materials/Textures/textureHelper.functions.js +24 -0
- package/Materials/Textures/textureHelper.functions.js.map +1 -1
- package/Materials/ditheredTileFadeMaterialPlugin.d.ts +210 -0
- package/Materials/ditheredTileFadeMaterialPlugin.js +509 -0
- package/Materials/ditheredTileFadeMaterialPlugin.js.map +1 -0
- package/Materials/index.d.ts +1 -0
- package/Materials/index.js +1 -0
- package/Materials/index.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.d.ts +46 -1
- package/Materials/materialHelper.geometryrendering.js +105 -8
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/prepass.defines.d.ts +2 -0
- package/Materials/prepass.defines.js +2 -0
- package/Materials/prepass.defines.js.map +1 -1
- package/Materials/pure.d.ts +1 -0
- package/Materials/pure.js +1 -0
- package/Materials/pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +2 -0
- package/Materials/standardMaterial.pure.js +6 -3
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.pure.d.ts +4 -0
- package/Meshes/Builders/polygonBuilder.pure.js +4 -1
- package/Meshes/Builders/polygonBuilder.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.d.ts +19 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.js +23 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +3 -14
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +20 -24
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +2 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +11 -4
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/abstractMesh.pure.d.ts +18 -0
- package/Meshes/abstractMesh.pure.js +22 -0
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/index.d.ts +1 -0
- package/Meshes/index.js +1 -0
- package/Meshes/index.js.map +1 -1
- package/Meshes/instancedMesh.pure.d.ts +5 -0
- package/Meshes/instancedMesh.pure.js +12 -0
- package/Meshes/instancedMesh.pure.js.map +1 -1
- package/Meshes/mesh.pure.js +23 -8
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/meshBlendingTag.d.ts +47 -0
- package/Meshes/meshBlendingTag.js +64 -0
- package/Meshes/meshBlendingTag.js.map +1 -0
- package/Meshes/polygonMesh.js +2 -2
- package/Meshes/polygonMesh.js.map +1 -1
- package/Meshes/pure.d.ts +1 -0
- package/Meshes/pure.js +1 -0
- package/Meshes/pure.js.map +1 -1
- package/Misc/fileTools.pure.js +21 -0
- package/Misc/fileTools.pure.js.map +1 -1
- package/Misc/snapshotRenderingHelper.js +2 -2
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +2 -0
- package/Particles/gpuParticleSystem.pure.js +89 -28
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/thinParticleSystem.pure.d.ts +2 -0
- package/Particles/thinParticleSystem.pure.js +84 -19
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/Particles/webgl2ParticleSystem.pure.d.ts +1 -0
- package/Particles/webgl2ParticleSystem.pure.js +12 -4
- package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js +7 -0
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/index.d.ts +2 -0
- package/PostProcesses/index.js +2 -0
- package/PostProcesses/index.js.map +1 -1
- package/PostProcesses/meshBlendingBlueNoise.d.ts +15 -0
- package/PostProcesses/meshBlendingBlueNoise.js +77 -0
- package/PostProcesses/meshBlendingBlueNoise.js.map +1 -0
- package/PostProcesses/meshBlendingPostProcess.d.ts +131 -0
- package/PostProcesses/meshBlendingPostProcess.js +315 -0
- package/PostProcesses/meshBlendingPostProcess.js.map +1 -0
- package/PostProcesses/pure.d.ts +2 -0
- package/PostProcesses/pure.js +2 -0
- package/PostProcesses/pure.js.map +1 -1
- package/PostProcesses/thinMeshBlendingPostProcess.d.ts +339 -0
- package/PostProcesses/thinMeshBlendingPostProcess.js +771 -0
- package/PostProcesses/thinMeshBlendingPostProcess.js.map +1 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +6 -6
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +8 -8
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/boundingBoxRenderer.pure.js +2 -1
- package/Rendering/boundingBoxRenderer.pure.js.map +1 -1
- package/Rendering/depthRenderer.pure.js +3 -4
- package/Rendering/depthRenderer.pure.js.map +1 -1
- package/Rendering/edgesRenderer.pure.d.ts +4 -2
- package/Rendering/edgesRenderer.pure.js +11 -2
- package/Rendering/edgesRenderer.pure.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +10 -0
- package/Rendering/fluidRenderer/fluidRenderingObject.js +20 -0
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +9 -3
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +14 -9
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
- package/Rendering/geometryBufferRenderer.pure.d.ts +38 -4
- package/Rendering/geometryBufferRenderer.pure.js +126 -17
- package/Rendering/geometryBufferRenderer.pure.js.map +1 -1
- package/Rendering/objectRenderer.d.ts +7 -1
- package/Rendering/objectRenderer.js +45 -7
- package/Rendering/objectRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.pure.js +6 -2
- package/Rendering/outlineRenderer.pure.js.map +1 -1
- package/Rendering/renderingManager.d.ts +1 -1
- package/Rendering/renderingManager.js +5 -4
- package/Rendering/renderingManager.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
- package/Shaders/ShadersInclude/defaultFragmentAlpha.js +34 -0
- package/Shaders/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +5 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/geometryRenderingFragment.d.ts +5 -0
- package/Shaders/ShadersInclude/geometryRenderingFragment.js +74 -0
- package/Shaders/ShadersInclude/geometryRenderingFragment.js.map +1 -0
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +89 -0
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js +24 -17
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +27 -20
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +6 -2
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +95 -2
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/default.fragment.js +31 -40
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.js +13 -9
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js +16 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js +16 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +63 -3
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +80 -0
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.js +17 -11
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.js +43 -1
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.js +96 -16
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/meshBlending.fragment.d.ts +5 -0
- package/Shaders/meshBlending.fragment.js +519 -0
- package/Shaders/meshBlending.fragment.js.map +1 -0
- package/Shaders/particles.fragment.js +43 -1
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.js +84 -3
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/sprites.fragment.js +52 -2
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.js +62 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js +33 -0
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.d.ts +6 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js +76 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/lightFragment.js +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js +18 -0
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js +11 -25
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +11 -25
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js +5 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +6 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +17 -48
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +15 -2
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +15 -2
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js +63 -2
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +80 -0
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/geometry.fragment.js +37 -2
- package/ShadersWGSL/geometry.fragment.js.map +1 -1
- package/ShadersWGSL/gpuRenderParticles.fragment.js +47 -2
- package/ShadersWGSL/gpuRenderParticles.fragment.js.map +1 -1
- package/ShadersWGSL/gpuRenderParticles.vertex.js +110 -7
- package/ShadersWGSL/gpuRenderParticles.vertex.js.map +1 -1
- package/ShadersWGSL/meshBlending.fragment.d.ts +5 -0
- package/ShadersWGSL/meshBlending.fragment.js +576 -0
- package/ShadersWGSL/meshBlending.fragment.js.map +1 -0
- package/ShadersWGSL/openpbr.fragment.js +2 -1
- package/ShadersWGSL/openpbr.fragment.js.map +1 -1
- package/ShadersWGSL/particles.fragment.js +45 -1
- package/ShadersWGSL/particles.fragment.js.map +1 -1
- package/ShadersWGSL/particles.vertex.js +86 -4
- package/ShadersWGSL/particles.vertex.js.map +1 -1
- package/ShadersWGSL/pbr.fragment.js +2 -1
- package/ShadersWGSL/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.fragment.js +56 -2
- package/ShadersWGSL/sprites.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.vertex.js +62 -1
- package/ShadersWGSL/sprites.vertex.js.map +1 -1
- package/Sprites/spriteManager.d.ts +13 -0
- package/Sprites/spriteManager.js +15 -0
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteRenderer.d.ts +24 -1
- package/Sprites/spriteRenderer.js +368 -50
- package/Sprites/spriteRenderer.js.map +1 -1
- package/Sprites/thinSprite.d.ts +4 -0
- package/Sprites/thinSprite.js +4 -0
- package/Sprites/thinSprite.js.map +1 -1
- package/States/alphaCullingState.d.ts +3 -1
- package/States/alphaCullingState.js +18 -3
- package/States/alphaCullingState.js.map +1 -1
- package/XR/webXRDefaultExperience.d.ts +5 -1
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXREnterExitUI.d.ts +2 -1
- package/XR/webXREnterExitUI.js.map +1 -1
- package/package.json +1 -1
- package/scene.pure.d.ts +23 -0
- package/scene.pure.js +35 -0
- package/scene.pure.js.map +1 -1
|
@@ -13,6 +13,7 @@ export * from "./filterPostProcessBlock.pure.js";
|
|
|
13
13
|
export * from "./fxaaPostProcessBlock.pure.js";
|
|
14
14
|
export * from "./grainPostProcessBlock.pure.js";
|
|
15
15
|
export * from "./imageProcessingPostProcessBlock.pure.js";
|
|
16
|
+
export * from "./meshBlendingPostProcessBlock.pure.js";
|
|
16
17
|
export * from "./motionBlurPostProcessBlock.pure.js";
|
|
17
18
|
export * from "./passPostProcessBlock.pure.js";
|
|
18
19
|
export * from "./screenSpaceCurvaturePostProcessBlock.pure.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\nexport * from \"./anaglyphPostProcessBlock.pure\";\nexport * from \"./blackAndWhitePostProcessBlock.pure\";\nexport * from \"./bloomPostProcessBlock.pure\";\nexport * from \"./blurPostProcessBlock.pure\";\nexport * from \"./chromaticAberrationPostProcessBlock.pure\";\nexport * from \"./circleOfConfusionPostProcessBlock.pure\";\nexport * from \"./colorCorrectionPostProcessBlock.pure\";\nexport * from \"./convolutionPostProcessBlock.pure\";\nexport * from \"./depthOfFieldPostProcessBlock.pure\";\nexport * from \"./extractHighlightsPostProcessBlock.pure\";\nexport * from \"./filterPostProcessBlock.pure\";\nexport * from \"./fxaaPostProcessBlock.pure\";\nexport * from \"./grainPostProcessBlock.pure\";\nexport * from \"./imageProcessingPostProcessBlock.pure\";\nexport * from \"./motionBlurPostProcessBlock.pure\";\nexport * from \"./passPostProcessBlock.pure\";\nexport * from \"./screenSpaceCurvaturePostProcessBlock.pure\";\nexport * from \"./sharpenPostProcessBlock.pure\";\nexport * from \"./ssao2PostProcessBlock.pure\";\nexport * from \"./ssrPostProcessBlock.pure\";\nexport * from \"./taaPostProcessBlock.pure\";\nexport * from \"./tonemapPostProcessBlock.pure\";\nexport * from \"./volumetricLightingBlock.pure\";\n"]}
|
|
1
|
+
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\nexport * from \"./anaglyphPostProcessBlock.pure\";\nexport * from \"./blackAndWhitePostProcessBlock.pure\";\nexport * from \"./bloomPostProcessBlock.pure\";\nexport * from \"./blurPostProcessBlock.pure\";\nexport * from \"./chromaticAberrationPostProcessBlock.pure\";\nexport * from \"./circleOfConfusionPostProcessBlock.pure\";\nexport * from \"./colorCorrectionPostProcessBlock.pure\";\nexport * from \"./convolutionPostProcessBlock.pure\";\nexport * from \"./depthOfFieldPostProcessBlock.pure\";\nexport * from \"./extractHighlightsPostProcessBlock.pure\";\nexport * from \"./filterPostProcessBlock.pure\";\nexport * from \"./fxaaPostProcessBlock.pure\";\nexport * from \"./grainPostProcessBlock.pure\";\nexport * from \"./imageProcessingPostProcessBlock.pure\";\nexport * from \"./meshBlendingPostProcessBlock.pure\";\nexport * from \"./motionBlurPostProcessBlock.pure\";\nexport * from \"./passPostProcessBlock.pure\";\nexport * from \"./screenSpaceCurvaturePostProcessBlock.pure\";\nexport * from \"./sharpenPostProcessBlock.pure\";\nexport * from \"./ssao2PostProcessBlock.pure\";\nexport * from \"./ssrPostProcessBlock.pure\";\nexport * from \"./taaPostProcessBlock.pure\";\nexport * from \"./tonemapPostProcessBlock.pure\";\nexport * from \"./volumetricLightingBlock.pure\";\n"]}
|
|
@@ -412,11 +412,11 @@ let NodeRenderGraphBaseObjectRendererBlock = (() => {
|
|
|
412
412
|
this.renderTransparentMeshes = serializationObject.renderTransparentMeshes ?? true;
|
|
413
413
|
this.useOITForTransparentMeshes = serializationObject.useOITForTransparentMeshes ?? false;
|
|
414
414
|
this.oitPassCount = serializationObject.oitPassCount ?? 5;
|
|
415
|
-
this.renderParticles = serializationObject.renderParticles ??
|
|
416
|
-
this.renderSprites = serializationObject.renderSprites ??
|
|
415
|
+
this.renderParticles = serializationObject.renderParticles ?? this.renderParticles;
|
|
416
|
+
this.renderSprites = serializationObject.renderSprites ?? this.renderSprites;
|
|
417
417
|
this.forceLayerMaskCheck = serializationObject.forceLayerMaskCheck ?? true;
|
|
418
|
-
this.enableBoundingBoxRendering = serializationObject.enableBoundingBoxRendering ??
|
|
419
|
-
this.enableOutlineRendering = serializationObject.enableOutlineRendering ??
|
|
418
|
+
this.enableBoundingBoxRendering = serializationObject.enableBoundingBoxRendering ?? this.enableBoundingBoxRendering;
|
|
419
|
+
this.enableOutlineRendering = serializationObject.enableOutlineRendering ?? this.enableOutlineRendering;
|
|
420
420
|
this.disableShadows = serializationObject.disableShadows;
|
|
421
421
|
this.renderInLinearSpace = !!serializationObject.renderInLinearSpace;
|
|
422
422
|
this.resolveMSAAColors = serializationObject.resolveMSAAColors ?? true;
|
|
@@ -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 {\r\n type Scene,\r\n type NodeRenderGraphBuildState,\r\n type FrameGraph,\r\n type FrameGraphTextureHandle,\r\n type FrameGraphObjectList,\r\n type Camera,\r\n type NodeRenderGraphResourceContainerBlock,\r\n type FrameGraphShadowGeneratorTask,\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\nimport { FrameGraphObjectRendererTask } from \"core/FrameGraph/Tasks/Rendering/objectRendererTask\";\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 public override _additionalConstructionParameters: [boolean, boolean];\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 * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\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(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil | NodeRenderGraphBlockConnectionPointTypes.ResourceContainer\r\n );\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 this._createFrameGraphObject();\r\n }\r\n\r\n protected _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphObjectRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected _saveState(state: { [key: string]: any }) {\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderMeshes = this.renderMeshes;\r\n state.renderDepthOnlyMeshes = this.renderDepthOnlyMeshes;\r\n state.renderOpaqueMeshes = this.renderOpaqueMeshes;\r\n state.renderAlphaTestMeshes = this.renderAlphaTestMeshes;\r\n state.renderTransparentMeshes = this.renderTransparentMeshes;\r\n state.useOITForTransparentMeshes = this.useOITForTransparentMeshes;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n }\r\n\r\n protected _restoreState(state: { [key: string]: any }) {\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderMeshes = state.renderMeshes;\r\n this.renderDepthOnlyMeshes = state.renderDepthOnlyMeshes;\r\n this.renderOpaqueMeshes = state.renderOpaqueMeshes;\r\n this.renderAlphaTestMeshes = state.renderAlphaTestMeshes;\r\n this.renderTransparentMeshes = state.renderTransparentMeshes;\r\n this.useOITForTransparentMeshes = state.useOITForTransparentMeshes;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n }\r\n\r\n protected _createFrameGraphObjectWithState(doNotChangeAspectRatio: boolean, enableClusteredLights: boolean): void {\r\n const state: { [key: string]: any } = {};\r\n\r\n this._saveState(state);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\r\n\r\n this._createFrameGraphObject();\r\n\r\n this._restoreState(state);\r\n }\r\n\r\n /** Indicates that this object renderer is the main object renderer of the frame graph. */\r\n @editableInPropertyPage(\"Is main object renderer\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get isMainObjectRenderer() {\r\n return this._frameGraphTask.isMainObjectRenderer;\r\n }\r\n\r\n public set isMainObjectRenderer(value: boolean) {\r\n this._frameGraphTask.isMainObjectRenderer = value;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"GENERAL\")\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, \"GENERAL\")\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 meshes should be rendered */\r\n @editableInPropertyPage(\"Render meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderMeshes() {\r\n return this._frameGraphTask.renderMeshes;\r\n }\r\n\r\n public set renderMeshes(value: boolean) {\r\n this._frameGraphTask.renderMeshes = value;\r\n }\r\n\r\n /** Indicates if depth-only meshes should be rendered */\r\n @editableInPropertyPage(\" Render depth-only meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderDepthOnlyMeshes() {\r\n return this._frameGraphTask.renderDepthOnlyMeshes;\r\n }\r\n\r\n public set renderDepthOnlyMeshes(value: boolean) {\r\n this._frameGraphTask.renderDepthOnlyMeshes = value;\r\n }\r\n\r\n /** Indicates if opaque meshes should be rendered */\r\n @editableInPropertyPage(\" Render opaque meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderOpaqueMeshes() {\r\n return this._frameGraphTask.renderOpaqueMeshes;\r\n }\r\n\r\n public set renderOpaqueMeshes(value: boolean) {\r\n this._frameGraphTask.renderOpaqueMeshes = value;\r\n }\r\n\r\n /** Indicates if alpha tested meshes should be rendered */\r\n @editableInPropertyPage(\" Render alpha test meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderAlphaTestMeshes() {\r\n return this._frameGraphTask.renderAlphaTestMeshes;\r\n }\r\n\r\n public set renderAlphaTestMeshes(value: boolean) {\r\n this._frameGraphTask.renderAlphaTestMeshes = value;\r\n }\r\n\r\n /** Indicates if transparent meshes should be rendered */\r\n @editableInPropertyPage(\" Render transparent meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderTransparentMeshes() {\r\n return this._frameGraphTask.renderTransparentMeshes;\r\n }\r\n\r\n public set renderTransparentMeshes(value: boolean) {\r\n this._frameGraphTask.renderTransparentMeshes = value;\r\n }\r\n\r\n /** Indicates if use of Order Independent Transparency (OIT) for transparent meshes should be enabled */\r\n @editableInPropertyPage(\" Use OIT for transparent meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public get useOITForTransparentMeshes() {\r\n return this._frameGraphTask.useOITForTransparentMeshes;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public set useOITForTransparentMeshes(value: boolean) {\r\n this._frameGraphTask.useOITForTransparentMeshes = value;\r\n }\r\n\r\n /** Defines the number of passes to use for Order Independent Transparency */\r\n @editableInPropertyPage(\" Pass count\", PropertyTypeForEdition.Int, \"RENDERING\", { min: 1, max: 20 })\r\n public get oitPassCount(): number {\r\n return this._frameGraphTask.oitPassCount;\r\n }\r\n\r\n public set oitPassCount(value: number) {\r\n this._frameGraphTask.oitPassCount = value;\r\n }\r\n\r\n /** Indicates if particles should be rendered */\r\n @editableInPropertyPage(\"Render particles\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderParticles() {\r\n return this._frameGraphTask.renderParticles;\r\n }\r\n\r\n public set renderParticles(value: boolean) {\r\n this._frameGraphTask.renderParticles = value;\r\n }\r\n\r\n /** Indicates if sprites should be rendered */\r\n @editableInPropertyPage(\"Render sprites\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderSprites() {\r\n return this._frameGraphTask.renderSprites;\r\n }\r\n\r\n public set renderSprites(value: boolean) {\r\n this._frameGraphTask.renderSprites = value;\r\n }\r\n\r\n /** Indicates if layer mask check must be forced */\r\n @editableInPropertyPage(\"Force layer mask check\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get forceLayerMaskCheck() {\r\n return this._frameGraphTask.forceLayerMaskCheck;\r\n }\r\n\r\n public set forceLayerMaskCheck(value: boolean) {\r\n this._frameGraphTask.forceLayerMaskCheck = value;\r\n }\r\n\r\n /** Indicates if bounding boxes should be rendered */\r\n @editableInPropertyPage(\"Render bounding boxes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get enableBoundingBoxRendering() {\r\n return this._frameGraphTask.enableBoundingBoxRendering;\r\n }\r\n\r\n public set enableBoundingBoxRendering(value: boolean) {\r\n this._frameGraphTask.enableBoundingBoxRendering = value;\r\n }\r\n\r\n /** Indicates if outlines/overlays should be rendered */\r\n @editableInPropertyPage(\"Render outlines/overlays\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get enableOutlineRendering() {\r\n return this._frameGraphTask.enableOutlineRendering;\r\n }\r\n\r\n public set enableOutlineRendering(value: boolean) {\r\n this._frameGraphTask.enableOutlineRendering = value;\r\n }\r\n\r\n /** Indicates if shadows must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable shadows\", PropertyTypeForEdition.Boolean, \"GENERAL\")\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 /** If image processing should be disabled */\r\n @editableInPropertyPage(\"Disable image processing\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get renderInLinearSpace() {\r\n return this._frameGraphTask.disableImageProcessing;\r\n }\r\n\r\n public set renderInLinearSpace(value: boolean) {\r\n this._frameGraphTask.disableImageProcessing = value;\r\n }\r\n\r\n /** True (default) to not change the aspect ratio of the scene in the RTT */\r\n @editableInPropertyPage(\"Do not change aspect ratio\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get doNotChangeAspectRatio() {\r\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\r\n }\r\n\r\n public set doNotChangeAspectRatio(value: boolean) {\r\n this._createFrameGraphObjectWithState(value, this.enableClusteredLights);\r\n }\r\n\r\n /** True (default) to enable clustered lights */\r\n @editableInPropertyPage(\"Enable clustered lights\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get enableClusteredLights() {\r\n return this._frameGraphTask.objectRenderer.options.enableClusteredLights;\r\n }\r\n\r\n public set enableClusteredLights(value: boolean) {\r\n this._createFrameGraphObjectWithState(this.doNotChangeAspectRatio, value);\r\n }\r\n\r\n /** If true, MSAA color textures will be resolved at the end of the render pass (default: true) */\r\n @editableInPropertyPage(\"Resolve MSAA colors\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get resolveMSAAColors() {\r\n return this._frameGraphTask.resolveMSAAColors;\r\n }\r\n\r\n public set resolveMSAAColors(value: boolean) {\r\n this._frameGraphTask.resolveMSAAColors = value;\r\n }\r\n\r\n /** If true, MSAA depth texture will be resolved at the end of the render pass (default: false) */\r\n @editableInPropertyPage(\"Resolve MSAA depth\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get resolveMSAADepth() {\r\n return this._frameGraphTask.resolveMSAADepth;\r\n }\r\n\r\n public set resolveMSAADepth(value: boolean) {\r\n this._frameGraphTask.resolveMSAADepth = 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._getConnectedTextures(this.target.connectedPoint)!; // Geometry renderer allows undefined for targetTexture\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 for (const input of container.inputs) {\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}.isMainObjectRenderer = ${this.isMainObjectRenderer};`);\r\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\r\n codes.push(`${this._codeVariableName}.renderMeshes = ${this.renderMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderDepthOnlyMeshes = ${this.renderDepthOnlyMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderOpaqueMeshes = ${this.renderOpaqueMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderAlphaTestMeshes = ${this.renderAlphaTestMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderTransparentMeshes = ${this.renderTransparentMeshes};`);\r\n codes.push(`${this._codeVariableName}.useOITForTransparentMeshes = ${this.useOITForTransparentMeshes};`);\r\n codes.push(`${this._codeVariableName}.oitPassCount = ${this.oitPassCount};`);\r\n codes.push(`${this._codeVariableName}.renderParticles = ${this.renderParticles};`);\r\n codes.push(`${this._codeVariableName}.renderSprites = ${this.renderSprites};`);\r\n codes.push(`${this._codeVariableName}.forceLayerMaskCheck = ${this.forceLayerMaskCheck};`);\r\n codes.push(`${this._codeVariableName}.enableBoundingBoxRendering = ${this.enableBoundingBoxRendering};`);\r\n codes.push(`${this._codeVariableName}.enableOutlineRendering = ${this.enableOutlineRendering};`);\r\n codes.push(`${this._codeVariableName}.disableShadows = ${this.disableShadows};`);\r\n codes.push(`${this._codeVariableName}.renderInLinearSpace = ${this.renderInLinearSpace};`);\r\n codes.push(`${this._codeVariableName}.resolveMSAAColors = ${this.resolveMSAAColors};`);\r\n codes.push(`${this._codeVariableName}.resolveMSAADepth = ${this.resolveMSAADepth};`);\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.isMainObjectRenderer = this.isMainObjectRenderer;\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.renderMeshes = this.renderMeshes;\r\n serializationObject.renderDepthOnlyMeshes = this.renderDepthOnlyMeshes;\r\n serializationObject.renderOpaqueMeshes = this.renderOpaqueMeshes;\r\n serializationObject.renderAlphaTestMeshes = this.renderAlphaTestMeshes;\r\n serializationObject.renderTransparentMeshes = this.renderTransparentMeshes;\r\n serializationObject.useOITForTransparentMeshes = this.useOITForTransparentMeshes;\r\n serializationObject.oitPassCount = this.oitPassCount;\r\n serializationObject.renderParticles = this.renderParticles;\r\n serializationObject.renderSprites = this.renderSprites;\r\n serializationObject.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n serializationObject.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n serializationObject.enableOutlineRendering = this.enableOutlineRendering;\r\n serializationObject.disableShadows = this.disableShadows;\r\n serializationObject.renderInLinearSpace = this.renderInLinearSpace;\r\n serializationObject.resolveMSAAColors = this.resolveMSAAColors;\r\n serializationObject.resolveMSAADepth = this.resolveMSAADepth;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.isMainObjectRenderer = !!serializationObject.isMainObjectRenderer;\r\n this.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.renderMeshes = serializationObject.renderMeshes ?? true;\r\n this.renderDepthOnlyMeshes = serializationObject.renderDepthOnlyMeshes ?? true;\r\n this.renderOpaqueMeshes = serializationObject.renderOpaqueMeshes ?? true;\r\n this.renderAlphaTestMeshes = serializationObject.renderAlphaTestMeshes ?? true;\r\n this.renderTransparentMeshes = serializationObject.renderTransparentMeshes ?? true;\r\n this.useOITForTransparentMeshes = serializationObject.useOITForTransparentMeshes ?? false;\r\n this.oitPassCount = serializationObject.oitPassCount ?? 5;\r\n this.renderParticles = serializationObject.renderParticles ?? true;\r\n this.renderSprites = serializationObject.renderSprites ?? true;\r\n this.forceLayerMaskCheck = serializationObject.forceLayerMaskCheck ?? true;\r\n this.enableBoundingBoxRendering = serializationObject.enableBoundingBoxRendering ?? true;\r\n this.enableOutlineRendering = serializationObject.enableOutlineRendering ?? true;\r\n this.disableShadows = serializationObject.disableShadows;\r\n this.renderInLinearSpace = !!serializationObject.renderInLinearSpace;\r\n this.resolveMSAAColors = serializationObject.resolveMSAAColors ?? true;\r\n this.resolveMSAADepth = serializationObject.resolveMSAADepth ?? false;\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 {\r\n type Scene,\r\n type NodeRenderGraphBuildState,\r\n type FrameGraph,\r\n type FrameGraphTextureHandle,\r\n type FrameGraphObjectList,\r\n type Camera,\r\n type NodeRenderGraphResourceContainerBlock,\r\n type FrameGraphShadowGeneratorTask,\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\nimport { FrameGraphObjectRendererTask } from \"core/FrameGraph/Tasks/Rendering/objectRendererTask\";\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 public override _additionalConstructionParameters: [boolean, boolean];\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 * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\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(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil | NodeRenderGraphBlockConnectionPointTypes.ResourceContainer\r\n );\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 this._createFrameGraphObject();\r\n }\r\n\r\n protected _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphObjectRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected _saveState(state: { [key: string]: any }) {\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderMeshes = this.renderMeshes;\r\n state.renderDepthOnlyMeshes = this.renderDepthOnlyMeshes;\r\n state.renderOpaqueMeshes = this.renderOpaqueMeshes;\r\n state.renderAlphaTestMeshes = this.renderAlphaTestMeshes;\r\n state.renderTransparentMeshes = this.renderTransparentMeshes;\r\n state.useOITForTransparentMeshes = this.useOITForTransparentMeshes;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n }\r\n\r\n protected _restoreState(state: { [key: string]: any }) {\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderMeshes = state.renderMeshes;\r\n this.renderDepthOnlyMeshes = state.renderDepthOnlyMeshes;\r\n this.renderOpaqueMeshes = state.renderOpaqueMeshes;\r\n this.renderAlphaTestMeshes = state.renderAlphaTestMeshes;\r\n this.renderTransparentMeshes = state.renderTransparentMeshes;\r\n this.useOITForTransparentMeshes = state.useOITForTransparentMeshes;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n }\r\n\r\n protected _createFrameGraphObjectWithState(doNotChangeAspectRatio: boolean, enableClusteredLights: boolean): void {\r\n const state: { [key: string]: any } = {};\r\n\r\n this._saveState(state);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\r\n\r\n this._createFrameGraphObject();\r\n\r\n this._restoreState(state);\r\n }\r\n\r\n /** Indicates that this object renderer is the main object renderer of the frame graph. */\r\n @editableInPropertyPage(\"Is main object renderer\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get isMainObjectRenderer() {\r\n return this._frameGraphTask.isMainObjectRenderer;\r\n }\r\n\r\n public set isMainObjectRenderer(value: boolean) {\r\n this._frameGraphTask.isMainObjectRenderer = value;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"GENERAL\")\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, \"GENERAL\")\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 meshes should be rendered */\r\n @editableInPropertyPage(\"Render meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderMeshes() {\r\n return this._frameGraphTask.renderMeshes;\r\n }\r\n\r\n public set renderMeshes(value: boolean) {\r\n this._frameGraphTask.renderMeshes = value;\r\n }\r\n\r\n /** Indicates if depth-only meshes should be rendered */\r\n @editableInPropertyPage(\" Render depth-only meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderDepthOnlyMeshes() {\r\n return this._frameGraphTask.renderDepthOnlyMeshes;\r\n }\r\n\r\n public set renderDepthOnlyMeshes(value: boolean) {\r\n this._frameGraphTask.renderDepthOnlyMeshes = value;\r\n }\r\n\r\n /** Indicates if opaque meshes should be rendered */\r\n @editableInPropertyPage(\" Render opaque meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderOpaqueMeshes() {\r\n return this._frameGraphTask.renderOpaqueMeshes;\r\n }\r\n\r\n public set renderOpaqueMeshes(value: boolean) {\r\n this._frameGraphTask.renderOpaqueMeshes = value;\r\n }\r\n\r\n /** Indicates if alpha tested meshes should be rendered */\r\n @editableInPropertyPage(\" Render alpha test meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderAlphaTestMeshes() {\r\n return this._frameGraphTask.renderAlphaTestMeshes;\r\n }\r\n\r\n public set renderAlphaTestMeshes(value: boolean) {\r\n this._frameGraphTask.renderAlphaTestMeshes = value;\r\n }\r\n\r\n /** Indicates if transparent meshes should be rendered */\r\n @editableInPropertyPage(\" Render transparent meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderTransparentMeshes() {\r\n return this._frameGraphTask.renderTransparentMeshes;\r\n }\r\n\r\n public set renderTransparentMeshes(value: boolean) {\r\n this._frameGraphTask.renderTransparentMeshes = value;\r\n }\r\n\r\n /** Indicates if use of Order Independent Transparency (OIT) for transparent meshes should be enabled */\r\n @editableInPropertyPage(\" Use OIT for transparent meshes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public get useOITForTransparentMeshes() {\r\n return this._frameGraphTask.useOITForTransparentMeshes;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public set useOITForTransparentMeshes(value: boolean) {\r\n this._frameGraphTask.useOITForTransparentMeshes = value;\r\n }\r\n\r\n /** Defines the number of passes to use for Order Independent Transparency */\r\n @editableInPropertyPage(\" Pass count\", PropertyTypeForEdition.Int, \"RENDERING\", { min: 1, max: 20 })\r\n public get oitPassCount(): number {\r\n return this._frameGraphTask.oitPassCount;\r\n }\r\n\r\n public set oitPassCount(value: number) {\r\n this._frameGraphTask.oitPassCount = value;\r\n }\r\n\r\n /** Indicates if particles should be rendered */\r\n @editableInPropertyPage(\"Render particles\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderParticles() {\r\n return this._frameGraphTask.renderParticles;\r\n }\r\n\r\n public set renderParticles(value: boolean) {\r\n this._frameGraphTask.renderParticles = value;\r\n }\r\n\r\n /** Indicates if sprites should be rendered */\r\n @editableInPropertyPage(\"Render sprites\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get renderSprites() {\r\n return this._frameGraphTask.renderSprites;\r\n }\r\n\r\n public set renderSprites(value: boolean) {\r\n this._frameGraphTask.renderSprites = value;\r\n }\r\n\r\n /** Indicates if layer mask check must be forced */\r\n @editableInPropertyPage(\"Force layer mask check\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get forceLayerMaskCheck() {\r\n return this._frameGraphTask.forceLayerMaskCheck;\r\n }\r\n\r\n public set forceLayerMaskCheck(value: boolean) {\r\n this._frameGraphTask.forceLayerMaskCheck = value;\r\n }\r\n\r\n /** Indicates if bounding boxes should be rendered */\r\n @editableInPropertyPage(\"Render bounding boxes\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get enableBoundingBoxRendering() {\r\n return this._frameGraphTask.enableBoundingBoxRendering;\r\n }\r\n\r\n public set enableBoundingBoxRendering(value: boolean) {\r\n this._frameGraphTask.enableBoundingBoxRendering = value;\r\n }\r\n\r\n /** Indicates if outlines/overlays should be rendered */\r\n @editableInPropertyPage(\"Render outlines/overlays\", PropertyTypeForEdition.Boolean, \"RENDERING\")\r\n public get enableOutlineRendering() {\r\n return this._frameGraphTask.enableOutlineRendering;\r\n }\r\n\r\n public set enableOutlineRendering(value: boolean) {\r\n this._frameGraphTask.enableOutlineRendering = value;\r\n }\r\n\r\n /** Indicates if shadows must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable shadows\", PropertyTypeForEdition.Boolean, \"GENERAL\")\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 /** If image processing should be disabled */\r\n @editableInPropertyPage(\"Disable image processing\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get renderInLinearSpace() {\r\n return this._frameGraphTask.disableImageProcessing;\r\n }\r\n\r\n public set renderInLinearSpace(value: boolean) {\r\n this._frameGraphTask.disableImageProcessing = value;\r\n }\r\n\r\n /** True (default) to not change the aspect ratio of the scene in the RTT */\r\n @editableInPropertyPage(\"Do not change aspect ratio\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get doNotChangeAspectRatio() {\r\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\r\n }\r\n\r\n public set doNotChangeAspectRatio(value: boolean) {\r\n this._createFrameGraphObjectWithState(value, this.enableClusteredLights);\r\n }\r\n\r\n /** True (default) to enable clustered lights */\r\n @editableInPropertyPage(\"Enable clustered lights\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get enableClusteredLights() {\r\n return this._frameGraphTask.objectRenderer.options.enableClusteredLights;\r\n }\r\n\r\n public set enableClusteredLights(value: boolean) {\r\n this._createFrameGraphObjectWithState(this.doNotChangeAspectRatio, value);\r\n }\r\n\r\n /** If true, MSAA color textures will be resolved at the end of the render pass (default: true) */\r\n @editableInPropertyPage(\"Resolve MSAA colors\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get resolveMSAAColors() {\r\n return this._frameGraphTask.resolveMSAAColors;\r\n }\r\n\r\n public set resolveMSAAColors(value: boolean) {\r\n this._frameGraphTask.resolveMSAAColors = value;\r\n }\r\n\r\n /** If true, MSAA depth texture will be resolved at the end of the render pass (default: false) */\r\n @editableInPropertyPage(\"Resolve MSAA depth\", PropertyTypeForEdition.Boolean, \"GENERAL\")\r\n public get resolveMSAADepth() {\r\n return this._frameGraphTask.resolveMSAADepth;\r\n }\r\n\r\n public set resolveMSAADepth(value: boolean) {\r\n this._frameGraphTask.resolveMSAADepth = 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._getConnectedTextures(this.target.connectedPoint)!; // Geometry renderer allows undefined for targetTexture\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 for (const input of container.inputs) {\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}.isMainObjectRenderer = ${this.isMainObjectRenderer};`);\r\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\r\n codes.push(`${this._codeVariableName}.renderMeshes = ${this.renderMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderDepthOnlyMeshes = ${this.renderDepthOnlyMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderOpaqueMeshes = ${this.renderOpaqueMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderAlphaTestMeshes = ${this.renderAlphaTestMeshes};`);\r\n codes.push(`${this._codeVariableName}.renderTransparentMeshes = ${this.renderTransparentMeshes};`);\r\n codes.push(`${this._codeVariableName}.useOITForTransparentMeshes = ${this.useOITForTransparentMeshes};`);\r\n codes.push(`${this._codeVariableName}.oitPassCount = ${this.oitPassCount};`);\r\n codes.push(`${this._codeVariableName}.renderParticles = ${this.renderParticles};`);\r\n codes.push(`${this._codeVariableName}.renderSprites = ${this.renderSprites};`);\r\n codes.push(`${this._codeVariableName}.forceLayerMaskCheck = ${this.forceLayerMaskCheck};`);\r\n codes.push(`${this._codeVariableName}.enableBoundingBoxRendering = ${this.enableBoundingBoxRendering};`);\r\n codes.push(`${this._codeVariableName}.enableOutlineRendering = ${this.enableOutlineRendering};`);\r\n codes.push(`${this._codeVariableName}.disableShadows = ${this.disableShadows};`);\r\n codes.push(`${this._codeVariableName}.renderInLinearSpace = ${this.renderInLinearSpace};`);\r\n codes.push(`${this._codeVariableName}.resolveMSAAColors = ${this.resolveMSAAColors};`);\r\n codes.push(`${this._codeVariableName}.resolveMSAADepth = ${this.resolveMSAADepth};`);\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.isMainObjectRenderer = this.isMainObjectRenderer;\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.renderMeshes = this.renderMeshes;\r\n serializationObject.renderDepthOnlyMeshes = this.renderDepthOnlyMeshes;\r\n serializationObject.renderOpaqueMeshes = this.renderOpaqueMeshes;\r\n serializationObject.renderAlphaTestMeshes = this.renderAlphaTestMeshes;\r\n serializationObject.renderTransparentMeshes = this.renderTransparentMeshes;\r\n serializationObject.useOITForTransparentMeshes = this.useOITForTransparentMeshes;\r\n serializationObject.oitPassCount = this.oitPassCount;\r\n serializationObject.renderParticles = this.renderParticles;\r\n serializationObject.renderSprites = this.renderSprites;\r\n serializationObject.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n serializationObject.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n serializationObject.enableOutlineRendering = this.enableOutlineRendering;\r\n serializationObject.disableShadows = this.disableShadows;\r\n serializationObject.renderInLinearSpace = this.renderInLinearSpace;\r\n serializationObject.resolveMSAAColors = this.resolveMSAAColors;\r\n serializationObject.resolveMSAADepth = this.resolveMSAADepth;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.isMainObjectRenderer = !!serializationObject.isMainObjectRenderer;\r\n this.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.renderMeshes = serializationObject.renderMeshes ?? true;\r\n this.renderDepthOnlyMeshes = serializationObject.renderDepthOnlyMeshes ?? true;\r\n this.renderOpaqueMeshes = serializationObject.renderOpaqueMeshes ?? true;\r\n this.renderAlphaTestMeshes = serializationObject.renderAlphaTestMeshes ?? true;\r\n this.renderTransparentMeshes = serializationObject.renderTransparentMeshes ?? true;\r\n this.useOITForTransparentMeshes = serializationObject.useOITForTransparentMeshes ?? false;\r\n this.oitPassCount = serializationObject.oitPassCount ?? 5;\r\n this.renderParticles = serializationObject.renderParticles ?? this.renderParticles;\r\n this.renderSprites = serializationObject.renderSprites ?? this.renderSprites;\r\n this.forceLayerMaskCheck = serializationObject.forceLayerMaskCheck ?? true;\r\n this.enableBoundingBoxRendering = serializationObject.enableBoundingBoxRendering ?? this.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = serializationObject.enableOutlineRendering ?? this.enableOutlineRendering;\r\n this.disableShadows = serializationObject.disableShadows;\r\n this.renderInLinearSpace = !!serializationObject.renderInLinearSpace;\r\n this.resolveMSAAColors = serializationObject.resolveMSAAColors ?? true;\r\n this.resolveMSAADepth = serializationObject.resolveMSAADepth ?? false;\r\n }\r\n}\r\n"]}
|
|
@@ -122,7 +122,7 @@ export declare class NodeRenderGraphGeometryRendererBlock extends NodeRenderGrap
|
|
|
122
122
|
*/
|
|
123
123
|
get geomViewNormal(): NodeRenderGraphConnectionPoint;
|
|
124
124
|
/**
|
|
125
|
-
* Gets the world geometry normal component
|
|
125
|
+
* Gets the world geometry normal component, encoded from [-1, 1] to [0, 1]
|
|
126
126
|
*/
|
|
127
127
|
get geomWorldNormal(): NodeRenderGraphConnectionPoint;
|
|
128
128
|
/**
|
|
@@ -153,6 +153,10 @@ export declare class NodeRenderGraphGeometryRendererBlock extends NodeRenderGrap
|
|
|
153
153
|
* Gets the geometry object ID component
|
|
154
154
|
*/
|
|
155
155
|
get geomObjectId(): NodeRenderGraphConnectionPoint;
|
|
156
|
+
/**
|
|
157
|
+
* Gets the packed mesh-blending tag component.
|
|
158
|
+
*/
|
|
159
|
+
get geomMeshBlendTag(): NodeRenderGraphConnectionPoint;
|
|
156
160
|
protected _buildBlock(state: NodeRenderGraphBuildState): void;
|
|
157
161
|
protected _dumpPropertiesCode(): string;
|
|
158
162
|
/**
|
|
@@ -185,6 +185,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
185
185
|
this.registerOutput("geomVelocity", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);
|
|
186
186
|
this.registerOutput("geomLinearVelocity", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);
|
|
187
187
|
this.registerOutput("geomObjectId", NodeRenderGraphBlockConnectionPointTypes.TextureObjectId);
|
|
188
|
+
this.registerOutput("geomMeshBlendTag", NodeRenderGraphBlockConnectionPointTypes.TextureMeshBlendTag);
|
|
188
189
|
this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });
|
|
189
190
|
}
|
|
190
191
|
_createFrameGraphObject() {
|
|
@@ -323,7 +324,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
323
324
|
return this._outputs[7];
|
|
324
325
|
}
|
|
325
326
|
/**
|
|
326
|
-
* Gets the world geometry normal component
|
|
327
|
+
* Gets the world geometry normal component, encoded from [-1, 1] to [0, 1]
|
|
327
328
|
*/
|
|
328
329
|
get geomWorldNormal() {
|
|
329
330
|
return this._outputs[8];
|
|
@@ -370,6 +371,12 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
370
371
|
get geomObjectId() {
|
|
371
372
|
return this._outputs[15];
|
|
372
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* Gets the packed mesh-blending tag component.
|
|
376
|
+
*/
|
|
377
|
+
get geomMeshBlendTag() {
|
|
378
|
+
return this._outputs[16];
|
|
379
|
+
}
|
|
373
380
|
_buildBlock(state) {
|
|
374
381
|
super._buildBlock(state);
|
|
375
382
|
const textureActivation = [
|
|
@@ -386,6 +393,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
386
393
|
this.geomVelocity.isConnected,
|
|
387
394
|
this.geomLinearVelocity.isConnected,
|
|
388
395
|
this.geomObjectId.isConnected,
|
|
396
|
+
this.geomMeshBlendTag.isConnected,
|
|
389
397
|
];
|
|
390
398
|
this.geomIrradiance.value = this._frameGraphTask.geometryIrradianceTexture;
|
|
391
399
|
this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;
|
|
@@ -400,6 +408,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
400
408
|
this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;
|
|
401
409
|
this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;
|
|
402
410
|
this.geomObjectId.value = this._frameGraphTask.geometryObjectIdTexture;
|
|
411
|
+
this.geomMeshBlendTag.value = this._frameGraphTask.geometryMeshBlendTagTexture;
|
|
403
412
|
this._frameGraphTask.textureDescriptions = [];
|
|
404
413
|
const textureFormats = [
|
|
405
414
|
this.irradianceFormat,
|
|
@@ -415,6 +424,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
415
424
|
this.velocityFormat,
|
|
416
425
|
this.linearVelocityFormat,
|
|
417
426
|
5,
|
|
427
|
+
8,
|
|
418
428
|
];
|
|
419
429
|
const textureTypes = [
|
|
420
430
|
this.irradianceType,
|
|
@@ -430,6 +440,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
430
440
|
this.velocityType,
|
|
431
441
|
this.linearVelocityType,
|
|
432
442
|
0,
|
|
443
|
+
0,
|
|
433
444
|
];
|
|
434
445
|
const bufferTypes = [
|
|
435
446
|
14,
|
|
@@ -445,6 +456,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
445
456
|
2,
|
|
446
457
|
11,
|
|
447
458
|
15,
|
|
459
|
+
16,
|
|
448
460
|
];
|
|
449
461
|
for (let i = 0; i < textureActivation.length; i++) {
|
|
450
462
|
if (textureActivation[i]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometryRendererBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;;AAG7D,OAAO,EAAE,sCAAsC,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,wCAAwC,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAA0B,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;GAEG;IACU,oCAAoC;;sBAAS,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAnF,oCAAqC,SAAQ,WAAsC;YAG5F;;eAEG;YACH,IAAoB,IAAI;gBACpB,OAAO,IAAI,CAAC,eAAe,CAAC;YAChC,CAAC;YAED;;;;;;;eAOG;YACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY,EAAE,sBAAsB,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;gBAC9H,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBAlBhB,oBAAe,GADzB,mDAAoC,CACsB;gBAmKnE,aAAa;gBACb,kDAAkD;gBAE3C,qBAAgB,2DAAG,SAAS,CAAC,kBAAkB,EAAC;gBAEvD,gDAAgD;gBAEzC,mBAAc,wHAAG,SAAS,CAAC,sBAAsB,GAAC;gBAEzD,aAAa;gBACb,kDAAkD;gBAE3C,oBAAe,uHAAG,SAAS,CAAC,iBAAiB,GAAC;gBAErD,gDAAgD;gBAEzC,kBAAa,sHAAG,SAAS,CAAC,iBAAiB,GAAC;gBAEnD,wBAAwB;gBACxB,6DAA6D;gBAEtD,8BAAyB,gIAAG,SAAS,CAAC,iBAAiB,GAAC;gBAE/D,2DAA2D;gBAEpD,4BAAuB,0IAAG,SAAS,CAAC,sBAAsB,GAAC;gBAElE,eAAe;gBACf,oDAAoD;gBAE7C,sBAAiB,kIAAG,SAAS,CAAC,iBAAiB,GAAC;gBAEvD,kDAAkD;gBAE3C,oBAAe,0HAAG,SAAS,CAAC,iBAAiB,GAAC;gBAErD,cAAc;gBACd,mDAAmD;gBAE5C,qBAAgB,yHAAG,SAAS,CAAC,kBAAkB,GAAC;gBAEvD,iDAAiD;gBAE1C,mBAAc,wHAAG,SAAS,CAAC,sBAAsB,GAAC;gBAEzD,eAAe;gBACf,oDAAoD;gBAE7C,sBAAiB,yHAAG,SAAS,CAAC,kBAAkB,GAAC;gBAExD,kDAAkD;gBAE3C,oBAAe,0HAAG,SAAS,CAAC,yBAAyB,GAAC;gBAE7D,iBAAiB;gBACjB,sDAAsD;gBAE/C,wBAAmB,4HAAG,SAAS,CAAC,kBAAkB,GAAC;gBAE1D,oDAAoD;gBAE7C,sBAAiB,8HAAG,SAAS,CAAC,sBAAsB,GAAC;gBAE5D,iBAAiB;gBACjB,sDAAsD;gBAE/C,wBAAmB,8HAAG,SAAS,CAAC,kBAAkB,GAAC;gBAE1D,oDAAoD;gBAE7C,sBAAiB,8HAAG,SAAS,CAAC,sBAAsB,GAAC;gBAE5D,SAAS;gBACT,8CAA8C;gBAEvC,iBAAY,uHAAG,SAAS,CAAC,kBAAkB,GAAC;gBAEnD,4CAA4C;gBAErC,eAAU,gHAAG,SAAS,CAAC,yBAAyB,GAAC;gBAExD,eAAe;gBACf,oDAAoD;gBAE7C,uBAAkB,sHAAG,SAAS,CAAC,kBAAkB,GAAC;gBAEzD,kDAAkD;gBAE3C,qBAAgB,4HAAG,SAAS,CAAC,yBAAyB,GAAC;gBAE9D,WAAW;gBACX,gDAAgD;gBAEzC,mBAAc,wHAAG,SAAS,CAAC,kBAAkB,GAAC;gBAErD,8CAA8C;gBAEvC,iBAAY,oHAAG,SAAS,CAAC,yBAAyB,GAAC;gBAE1D,kBAAkB;gBAClB,uDAAuD;gBAEhD,yBAAoB,0HAAG,SAAS,CAAC,kBAAkB,GAAC;gBAE3D,qDAAqD;gBAE9C,uBAAkB,gIAAG,SAAS,CAAC,sBAAsB,GAAC;;gBAzPzD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAE,CAAC,UAAU,GAAG,IAAI,CAAC;gBAEjD,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,wCAAwC,CAAC,iBAAiB,CAAC,CAAC;gBAClG,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,wCAAwC,CAAC,gBAAgB,CAAC,CAAC;gBAChG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,wCAAwC,CAAC,0BAA0B,CAAC,CAAC;gBAC9G,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,wCAAwC,CAAC,kBAAkB,CAAC,CAAC;gBACpG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,wCAAwC,CAAC,iBAAiB,CAAC,CAAC;gBAClG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,wCAAwC,CAAC,kBAAkB,CAAC,CAAC;gBACpG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,wCAAwC,CAAC,oBAAoB,CAAC,CAAC;gBACxG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,wCAAwC,CAAC,oBAAoB,CAAC,CAAC;gBACxG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,wCAAwC,CAAC,aAAa,CAAC,CAAC;gBAC1F,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,wCAAwC,CAAC,mBAAmB,CAAC,CAAC;gBACtG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,wCAAwC,CAAC,eAAe,CAAC,CAAC;gBAC9F,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,wCAAwC,CAAC,qBAAqB,CAAC,CAAC;gBAC1G,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,wCAAwC,CAAC,eAAe,CAAC,CAAC;gBAE9F,IAAI,CAAC,eAAe,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,CAAC,CAAC;aAC9I;YAEkB,uBAAuB;gBACtC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,eAAe,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;oBAChG,sBAAsB,EAAE,IAAI,CAAC,iCAAkC,CAAC,CAAC,CAAY;oBAC7E,qBAAqB,EAAE,IAAI,CAAC,iCAAkC,CAAC,CAAC,CAAY;iBAC/E,CAAC,CAAC;YACP,CAAC;YAEkB,UAAU,CAAC,KAA6B;gBACvD,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACxB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;gBAC/C,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBACvD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACjC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC3C,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBACrD,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC7C,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBACzC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBACrD,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC;gBACnE,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;gBAE3D,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC/C,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC3C,KAAK,CAAC,0CAA0C,GAAG,IAAI,CAAC,0CAA0C,CAAC;gBACnG,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACzD,CAAC;YAEkB,aAAa,CAAC,KAA6B;gBAC1D,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC/C,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC;gBACvD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;gBACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACnC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;gBAC3C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC;gBACrD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;gBAC7C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;gBACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC;gBACrD,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC,0BAA0B,CAAC;gBACnE,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,CAAC;gBAE3D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBAC/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;gBAC3C,IAAI,CAAC,0CAA0C,GAAG,KAAK,CAAC,0CAA0C,CAAC;gBACnG,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC;YACzD,CAAC;YAED,oCAAoC;YAEpC,IAAW,KAAK;gBACZ,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,CAAC;YAED,IAAW,KAAK,CAAC,KAAa;gBAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAC5C,CAAC;YAED,qCAAqC;YAErC,IAAW,MAAM;gBACb,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,CAAC;YAED,IAAW,MAAM,CAAC,KAAa;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAC7C,CAAC;YAED,4FAA4F;YAE5F,IAAW,gBAAgB;gBACvB,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YACjD,CAAC;YAED,IAAW,gBAAgB,CAAC,KAAc;gBACtC,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAClD,CAAC;YAED,gDAAgD;YAEhD,IAAW,OAAO;gBACd,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YACxC,CAAC;YAED,IAAW,OAAO,CAAC,KAAa;gBAC5B,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;YACzC,CAAC;YAED,4CAA4C;YAE5C,IAAW,cAAc;gBACrB,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;YAC/C,CAAC;YAED,IAAW,cAAc,CAAC,KAAc;gBACpC,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,KAAK,CAAC;YAChD,CAAC;YAED,2FAA2F;YAE3F,IAAW,0CAA0C;gBACjD,OAAO,IAAI,CAAC,eAAe,CAAC,0CAA0C,CAAC;YAC3E,CAAC;YAED,IAAW,0CAA0C,CAAC,KAAc;gBAChE,IAAI,CAAC,eAAe,CAAC,0CAA0C,GAAG,KAAK,CAAC;YAC5E,CAAC;YAED,mDAAmD;YAEnD,IAAW,mBAAmB;gBAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;YACpD,CAAC;YAED,IAAW,mBAAmB,CAAC,KAAc;gBACzC,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACrD,CAAC;YA8GD;;;eAGG;YACa,YAAY;gBACxB,OAAO,sCAAsC,CAAC;YAClD,CAAC;YAED;;eAEG;YACH,IAAW,cAAc;gBACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED;;eAEG;YACH,IAAW,aAAa;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED;;eAEG;YACH,IAAW,iBAAiB;gBACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED;;eAEG;YACH,IAAW,eAAe;gBACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED;;eAEG;YACH,IAAW,cAAc;gBACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED;;eAEG;YACH,IAAW,eAAe;gBACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED;;eAEG;YACH,IAAW,iBAAiB;gBACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED;;eAEG;YACH,IAAW,iBAAiB;gBACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED;;eAEG;YACH,IAAW,UAAU;gBACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED;;eAEG;YACH,IAAW,gBAAgB;gBACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED;;eAEG;YACH,IAAW,YAAY;gBACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED;;eAEG;YACH,IAAW,kBAAkB;gBACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED;;eAEG;YACH,IAAW,YAAY;gBACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YAEkB,WAAW,CAAC,KAAgC;gBAC3D,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAEzB,MAAM,iBAAiB,GAAG;oBACtB,IAAI,CAAC,cAAc,CAAC,WAAW;oBAC/B,IAAI,CAAC,aAAa,CAAC,WAAW;oBAC9B,IAAI,CAAC,iBAAiB,CAAC,WAAW;oBAClC,IAAI,CAAC,eAAe,CAAC,WAAW;oBAChC,IAAI,CAAC,cAAc,CAAC,WAAW;oBAC/B,IAAI,CAAC,eAAe,CAAC,WAAW;oBAChC,IAAI,CAAC,iBAAiB,CAAC,WAAW;oBAClC,IAAI,CAAC,iBAAiB,CAAC,WAAW;oBAClC,IAAI,CAAC,UAAU,CAAC,WAAW;oBAC3B,IAAI,CAAC,gBAAgB,CAAC,WAAW;oBACjC,IAAI,CAAC,YAAY,CAAC,WAAW;oBAC7B,IAAI,CAAC,kBAAkB,CAAC,WAAW;oBACnC,IAAI,CAAC,YAAY,CAAC,WAAW;iBAChC,CAAC;gBAEF,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC;gBAC3E,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC;gBACzE,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC;gBACjF,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC;gBAC7E,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC;gBAC3E,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC;gBAC7E,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC;gBACjF,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC;gBACjF,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC;gBACnE,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC;gBAC/E,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;gBACvE,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAAC;gBACnF,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;gBAEvE,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,EAAE,CAAC;gBAE9C,MAAM,cAAc,GAAG;oBACnB,IAAI,CAAC,gBAAgB;oBACrB,IAAI,CAAC,eAAe;oBACpB,IAAI,CAAC,yBAAyB;oBAC9B,IAAI,CAAC,iBAAiB;oBACtB,IAAI,CAAC,gBAAgB;oBACrB,IAAI,CAAC,iBAAiB;oBACtB,IAAI,CAAC,mBAAmB;oBACxB,IAAI,CAAC,mBAAmB;oBACxB,IAAI,CAAC,YAAY;oBACjB,IAAI,CAAC,kBAAkB;oBACvB,IAAI,CAAC,cAAc;oBACnB,IAAI,CAAC,oBAAoB;oBACzB,SAAS,CAAC,kBAAkB;iBAC/B,CAAC;gBACF,MAAM,YAAY,GAAG;oBACjB,IAAI,CAAC,cAAc;oBACnB,IAAI,CAAC,aAAa;oBAClB,IAAI,CAAC,uBAAuB;oBAC5B,IAAI,CAAC,eAAe;oBACpB,IAAI,CAAC,cAAc;oBACnB,IAAI,CAAC,eAAe;oBACpB,IAAI,CAAC,iBAAiB;oBACtB,IAAI,CAAC,iBAAiB;oBACtB,IAAI,CAAC,UAAU;oBACf,IAAI,CAAC,gBAAgB;oBACrB,IAAI,CAAC,YAAY;oBACjB,IAAI,CAAC,kBAAkB;oBACvB,SAAS,CAAC,yBAAyB;iBACtC,CAAC;gBACF,MAAM,WAAW,GAAG;oBAChB,SAAS,CAAC,+BAA+B;oBACzC,SAAS,CAAC,0BAA0B;oBACpC,SAAS,CAAC,0CAA0C;oBACpD,SAAS,CAAC,sCAAsC;oBAChD,SAAS,CAAC,2BAA2B;oBACrC,SAAS,CAAC,iCAAiC;oBAC3C,SAAS,CAAC,mCAAmC;oBAC7C,SAAS,CAAC,6BAA6B;oBACvC,SAAS,CAAC,2BAA2B;oBACrC,SAAS,CAAC,iCAAiC;oBAC3C,SAAS,CAAC,6BAA6B;oBACvC,SAAS,CAAC,oCAAoC;oBAC9C,SAAS,CAAC,8BAA8B;iBAC3C,CAAC;gBAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvB,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC;4BAC1C,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;4BAChC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;4BAC5B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;yBACvB,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;YACL,CAAC;YAEkB,mBAAmB;gBAClC,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,oBAAoB,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;gBACjG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,uBAAuB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBACrF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,cAAc,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACjF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,iDAAiD,IAAI,CAAC,0CAA0C,GAAG,CAAC,CAAC;gBACzI,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,0BAA0B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAC3F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,uBAAuB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBACrF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACjF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,sBAAsB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBACnF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,oBAAoB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC/E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,gCAAgC,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;gBACvG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,8BAA8B,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;gBACnG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,wBAAwB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,sBAAsB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBACnF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,0BAA0B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAC3F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,wBAAwB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,0BAA0B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAC3F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,wBAAwB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,uBAAuB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBACrF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACjF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,wBAAwB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,sBAAsB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBACnF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,mBAAmB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,iBAAiB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;gBACzE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,yBAAyB,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;gBACzF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,uBAAuB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBACrF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACjF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,mBAAmB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,2BAA2B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;gBAC7F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,yBAAyB,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;gBACzF,OAAO,KAAK,CAAC,mBAAmB,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;YAED;;;eAGG;YACa,SAAS;gBACrB,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC9C,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC7D,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3C,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBACzD,mBAAmB,CAAC,0CAA0C,GAAG,IAAI,CAAC,0CAA0C,CAAC;gBACjH,mBAAmB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBACnE,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC7D,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBACzD,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC3D,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBACvD,mBAAmB,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC;gBAC/E,mBAAmB,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;gBAC3E,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAC/D,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC3D,mBAAmB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBACnE,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAC/D,mBAAmB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBACnE,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAC/D,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC7D,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBACzD,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAC/D,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC3D,mBAAmB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACrD,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACjD,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACjE,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC7D,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBACzD,mBAAmB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACrD,mBAAmB,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBACrE,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACjE,OAAO,mBAAmB,CAAC;YAC/B,CAAC;YAEe,YAAY,CAAC,mBAAwB;gBACjD,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;gBACxC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;gBAC/D,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,IAAI,GAAG,CAAC;gBAC9C,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,IAAI,GAAG,CAAC;gBAChD,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC;gBAC3C,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,0CAA0C,GAAG,mBAAmB,CAAC,0CAA0C,CAAC;gBACjH,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,IAAI,IAAI,CAAC;gBAC3E,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,IAAI,SAAS,CAAC,kBAAkB,CAAC;gBAC7F,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,IAAI,SAAS,CAAC,sBAAsB,CAAC;gBAC7F,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;gBAC3D,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,aAAa,CAAC;gBACvD,IAAI,CAAC,yBAAyB,GAAG,mBAAmB,CAAC,yBAAyB,IAAI,SAAS,CAAC,iBAAiB,CAAC;gBAC9G,IAAI,CAAC,uBAAuB,GAAG,mBAAmB,CAAC,uBAAuB,IAAI,SAAS,CAAC,yBAAyB,CAAC;gBAClH,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;gBAC/D,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;gBAC3D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;gBACnE,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;gBAC/D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;gBACnE,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;gBAC/D,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;gBAC7D,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;gBAC/D,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;gBAC3D,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC;gBACrD,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC;gBACjD,IAAI,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;gBACjE,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;gBAC7D,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC;gBACrD,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,oBAAoB,CAAC;gBACrE,IAAI,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;YACrE,CAAC;;;;qCA5dA,sBAAsB,CAAC,eAAe,sCAA8B,UAAU,CAAC;sCAU/E,sBAAsB,CAAC,gBAAgB,sCAA8B,UAAU,CAAC;gDAUhF,sBAAsB,CAAC,uBAAuB,0CAAkC,UAAU,CAAC;uCAU3F,sBAAsB,CAAC,SAAS,sCAA8B,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;8CAU7F,sBAAsB,CAAC,iBAAiB,0CAAkC,UAAU,CAAC;0EAUrF,sBAAsB,CAAC,kDAAkD,0CAAkC,UAAU,CAAC;mDAUtH,sBAAsB,CAAC,wBAAwB,0CAAkC,UAAU,CAAC;4CAW5F,sBAAsB,CAAC,QAAQ,gDAAwC,qBAAqB,CAAC;0CAI7F,sBAAsB,CAAC,MAAM,+CAAsC,qBAAqB,CAAC;2CAKzF,sBAAsB,CAAC,QAAQ,gDAAwC,qBAAqB,CAAC;yCAI7F,sBAAsB,CAAC,MAAM,+CAAsC,qBAAqB,CAAC;qDAKzF,sBAAsB,CAAC,QAAQ,gDAAwC,gCAAgC,CAAC;mDAIxG,sBAAsB,CAAC,MAAM,+CAAsC,gCAAgC,CAAC;6CAKpG,sBAAsB,CAAC,QAAQ,gDAAwC,uBAAuB,CAAC;2CAI/F,sBAAsB,CAAC,MAAM,+CAAsC,uBAAuB,CAAC;4CAK3F,sBAAsB,CAAC,QAAQ,gDAAwC,sBAAsB,CAAC;0CAI9F,sBAAsB,CAAC,MAAM,+CAAsC,sBAAsB,CAAC;6CAK1F,sBAAsB,CAAC,QAAQ,gDAAwC,uBAAuB,CAAC;2CAI/F,sBAAsB,CAAC,MAAM,+CAAsC,uBAAuB,CAAC;+CAK3F,sBAAsB,CAAC,QAAQ,gDAAwC,yBAAyB,CAAC;6CAIjG,sBAAsB,CAAC,MAAM,+CAAsC,yBAAyB,CAAC;+CAK7F,sBAAsB,CAAC,QAAQ,gDAAwC,yBAAyB,CAAC;6CAIjG,sBAAsB,CAAC,MAAM,+CAAsC,yBAAyB,CAAC;wCAK7F,sBAAsB,CAAC,QAAQ,gDAAwC,iBAAiB,CAAC;sCAIzF,sBAAsB,CAAC,MAAM,+CAAsC,iBAAiB,CAAC;8CAKrF,sBAAsB,CAAC,QAAQ,gDAAwC,uBAAuB,CAAC;4CAI/F,sBAAsB,CAAC,MAAM,+CAAsC,uBAAuB,CAAC;0CAK3F,sBAAsB,CAAC,QAAQ,gDAAwC,mBAAmB,CAAC;wCAI3F,sBAAsB,CAAC,MAAM,+CAAsC,mBAAmB,CAAC;gDAKvF,sBAAsB,CAAC,QAAQ,gDAAwC,0BAA0B,CAAC;8CAIlG,sBAAsB,CAAC,MAAM,+CAAsC,0BAA0B,CAAC;YA7K/F,oKAAW,KAAK,6DAEf;YAQD,uKAAW,MAAM,6DAEhB;YAQD,qMAAW,gBAAgB,6DAE1B;YAQD,0KAAW,OAAO,6DAEjB;YAQD,+LAAW,cAAc,6DAExB;YAQD,mRAAW,0CAA0C,6DAEpD;YAQD,8MAAW,mBAAmB,6DAE7B;YASD,kMAAO,gBAAgB,6BAAhB,gBAAgB,2GAAgC;YAIvD,4LAAO,cAAc,6BAAd,cAAc,uGAAoC;YAKzD,+LAAO,eAAe,6BAAf,eAAe,yGAA+B;YAIrD,yLAAO,aAAa,6BAAb,aAAa,qGAA+B;YAKnD,6NAAO,yBAAyB,6BAAzB,yBAAyB,6HAA+B;YAI/D,uNAAO,uBAAuB,6BAAvB,uBAAuB,yHAAoC;YAKlE,qMAAO,iBAAiB,6BAAjB,iBAAiB,6GAA+B;YAIvD,+LAAO,eAAe,6BAAf,eAAe,yGAA+B;YAKrD,kMAAO,gBAAgB,6BAAhB,gBAAgB,2GAAgC;YAIvD,4LAAO,cAAc,6BAAd,cAAc,uGAAoC;YAKzD,qMAAO,iBAAiB,6BAAjB,iBAAiB,6GAAgC;YAIxD,+LAAO,eAAe,6BAAf,eAAe,yGAAuC;YAK7D,2MAAO,mBAAmB,6BAAnB,mBAAmB,iHAAgC;YAI1D,qMAAO,iBAAiB,6BAAjB,iBAAiB,6GAAoC;YAK5D,2MAAO,mBAAmB,6BAAnB,mBAAmB,iHAAgC;YAI1D,qMAAO,iBAAiB,6BAAjB,iBAAiB,6GAAoC;YAK5D,sLAAO,YAAY,6BAAZ,YAAY,mGAAgC;YAInD,gLAAO,UAAU,6BAAV,UAAU,+FAAuC;YAKxD,wMAAO,kBAAkB,6BAAlB,kBAAkB,+GAAgC;YAIzD,kMAAO,gBAAgB,6BAAhB,gBAAgB,2GAAuC;YAK9D,4LAAO,cAAc,6BAAd,cAAc,uGAAgC;YAIrD,sLAAO,YAAY,6BAAZ,YAAY,mGAAuC;YAK1D,8MAAO,oBAAoB,6BAApB,oBAAoB,mHAAgC;YAI3D,wMAAO,kBAAkB,6BAAlB,kBAAkB,+GAAoC;;;;;SA9QpD,oCAAoC;AA8jBjD,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB;;;GAGG;AACH,MAAM,UAAU,6BAA6B;IACzC,IAAI,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;IAEnB,aAAa,CAAC,8CAA8C,EAAE,oCAAoC,CAAC,CAAC;AACxG,CAAC","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { type NodeRenderGraphConnectionPoint, type Scene, type NodeRenderGraphBuildState, type FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\r\n protected override _frameGraphTask: FrameGraphGeometryRendererTask;\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 NodeRenderGraphGeometryRendererBlock\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 doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this.getInputByName(\"target\")!.isOptional = true;\r\n\r\n this.registerOutput(\"geomIrradiance\", NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance);\r\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\r\n this.registerOutput(\"geomNormViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth);\r\n this.registerOutput(\"geomScreenDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\r\n this.registerOutput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\r\n this.registerOutput(\"geomWorldNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal);\r\n this.registerOutput(\"geomLocalPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition);\r\n this.registerOutput(\"geomWorldPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition);\r\n this.registerOutput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo);\r\n this.registerOutput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\r\n this.registerOutput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);\r\n this.registerOutput(\"geomLinearVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);\r\n this.registerOutput(\"geomObjectId\", NodeRenderGraphBlockConnectionPointTypes.TextureObjectId);\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });\r\n }\r\n\r\n protected override _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected override _saveState(state: { [key: string]: any }) {\r\n super._saveState(state);\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n\r\n state.width = this.width;\r\n state.height = this.height;\r\n state.sizeInPercentage = this.sizeInPercentage;\r\n state.samples = this.samples;\r\n state.reverseCulling = this.reverseCulling;\r\n state.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n state.disableDepthPrePass = this.disableDepthPrePass;\r\n }\r\n\r\n protected override _restoreState(state: { [key: string]: any }) {\r\n super._restoreState(state);\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n\r\n this.width = state.width;\r\n this.height = state.height;\r\n this.sizeInPercentage = state.sizeInPercentage;\r\n this.samples = state.samples;\r\n this.reverseCulling = state.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = state.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = state.disableDepthPrePass;\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get width() {\r\n return this._frameGraphTask.size.width;\r\n }\r\n\r\n public set width(value: number) {\r\n this._frameGraphTask.size.width = value;\r\n }\r\n\r\n /** Height of the geometry texture */\r\n @editableInPropertyPage(\"Texture height\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get height() {\r\n return this._frameGraphTask.size.height;\r\n }\r\n\r\n public set height(value: number) {\r\n this._frameGraphTask.size.height = value;\r\n }\r\n\r\n /** Indicates if the geometry texture width and height are percentages or absolute values */\r\n @editableInPropertyPage(\"Size is in percentage\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get sizeInPercentage() {\r\n return this._frameGraphTask.sizeIsPercentage;\r\n }\r\n\r\n public set sizeInPercentage(value: boolean) {\r\n this._frameGraphTask.sizeIsPercentage = value;\r\n }\r\n\r\n /** Number of samples of the geometry texture */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"GEOMETRY\", { min: 1, max: 8 })\r\n public get samples() {\r\n return this._frameGraphTask.samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n this._frameGraphTask.samples = value;\r\n }\r\n\r\n /** Indicates if culling must be reversed */\r\n @editableInPropertyPage(\"Reverse culling\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get reverseCulling() {\r\n return this._frameGraphTask.reverseCulling;\r\n }\r\n\r\n public set reverseCulling(value: boolean) {\r\n this._frameGraphTask.reverseCulling = value;\r\n }\r\n\r\n /** Indicates if a mesh shouldn't be rendered when its material has depth write disabled */\r\n @editableInPropertyPage(\"Don't render if material depth write is disabled\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get dontRenderWhenMaterialDepthWriteIsDisabled() {\r\n return this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n }\r\n\r\n public set dontRenderWhenMaterialDepthWriteIsDisabled(value: boolean) {\r\n this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled = value;\r\n }\r\n\r\n /** Indicates if depth pre-pass must be disabled */\r\n @editableInPropertyPage(\"Disable depth pre-pass\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get disableDepthPrePass() {\r\n return this._frameGraphTask.disableDepthPrePass;\r\n }\r\n\r\n public set disableDepthPrePass(value: boolean) {\r\n this._frameGraphTask.disableDepthPrePass = value;\r\n }\r\n\r\n // Irradiance\r\n /** The format of the irradiance output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - IRRADIANCE\")\r\n public irradianceFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the irradiance output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - IRRADIANCE\")\r\n public irradianceType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // View depth\r\n /** The format of the view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Normalized view depth\r\n /** The format of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Screen depth\r\n /** The format of the screen depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the screen depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n /** The format of the view normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the view normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n /** The format of the world normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n /** The format of the local position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the local position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n /** The format of the world position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n /** The format of the albedo output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - ALBEDO\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the albedo output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - ALBEDO\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n /** The format of the reflectivity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the reflectivity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n /** The format of the velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VELOCITY\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VELOCITY\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n /** The format of the linear velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the linear velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityType = Constants.TEXTURETYPE_HALF_FLOAT;\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 \"NodeRenderGraphGeometryRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the geometry irradiance component\r\n */\r\n public get geomIrradiance(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the geometry view depth component\r\n */\r\n public get geomViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the geometry normalized view depth component\r\n */\r\n public get geomNormViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Gets the geometry screen depth component\r\n */\r\n public get geomScreenDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[6];\r\n }\r\n\r\n /**\r\n * Gets the geometry view normal component\r\n */\r\n public get geomViewNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[7];\r\n }\r\n\r\n /**\r\n * Gets the world geometry normal component\r\n */\r\n public get geomWorldNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[8];\r\n }\r\n\r\n /**\r\n * Gets the geometry local position component\r\n */\r\n public get geomLocalPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[9];\r\n }\r\n\r\n /**\r\n * Gets the geometry world position component\r\n */\r\n public get geomWorldPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[10];\r\n }\r\n\r\n /**\r\n * Gets the geometry albedo component\r\n */\r\n public get geomAlbedo(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[11];\r\n }\r\n\r\n /**\r\n * Gets the geometry reflectivity component\r\n */\r\n public get geomReflectivity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[12];\r\n }\r\n\r\n /**\r\n * Gets the geometry velocity component\r\n */\r\n public get geomVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[13];\r\n }\r\n\r\n /**\r\n * Gets the geometry linear velocity component\r\n */\r\n public get geomLinearVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[14];\r\n }\r\n\r\n /**\r\n * Gets the geometry object ID component\r\n */\r\n public get geomObjectId(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[15];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n const textureActivation = [\r\n this.geomIrradiance.isConnected,\r\n this.geomViewDepth.isConnected,\r\n this.geomNormViewDepth.isConnected,\r\n this.geomScreenDepth.isConnected,\r\n this.geomViewNormal.isConnected,\r\n this.geomWorldNormal.isConnected,\r\n this.geomLocalPosition.isConnected,\r\n this.geomWorldPosition.isConnected,\r\n this.geomAlbedo.isConnected,\r\n this.geomReflectivity.isConnected,\r\n this.geomVelocity.isConnected,\r\n this.geomLinearVelocity.isConnected,\r\n this.geomObjectId.isConnected,\r\n ];\r\n\r\n this.geomIrradiance.value = this._frameGraphTask.geometryIrradianceTexture;\r\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\r\n this.geomNormViewDepth.value = this._frameGraphTask.geometryNormViewDepthTexture;\r\n this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;\r\n this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;\r\n this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;\r\n this.geomLocalPosition.value = this._frameGraphTask.geometryLocalPositionTexture;\r\n this.geomWorldPosition.value = this._frameGraphTask.geometryWorldPositionTexture;\r\n this.geomAlbedo.value = this._frameGraphTask.geometryAlbedoTexture;\r\n this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;\r\n this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;\r\n this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;\r\n this.geomObjectId.value = this._frameGraphTask.geometryObjectIdTexture;\r\n\r\n this._frameGraphTask.textureDescriptions = [];\r\n\r\n const textureFormats = [\r\n this.irradianceFormat,\r\n this.viewDepthFormat,\r\n this.normalizedViewDepthFormat,\r\n this.screenDepthFormat,\r\n this.viewNormalFormat,\r\n this.worldNormalFormat,\r\n this.localPositionFormat,\r\n this.worldPositionFormat,\r\n this.albedoFormat,\r\n this.reflectivityFormat,\r\n this.velocityFormat,\r\n this.linearVelocityFormat,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n ];\r\n const textureTypes = [\r\n this.irradianceType,\r\n this.viewDepthType,\r\n this.normalizedViewDepthType,\r\n this.screenDepthType,\r\n this.viewNormalType,\r\n this.worldNormalType,\r\n this.localPositionType,\r\n this.worldPositionType,\r\n this.albedoType,\r\n this.reflectivityType,\r\n this.velocityType,\r\n this.linearVelocityType,\r\n Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n ];\r\n const bufferTypes = [\r\n Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE,\r\n Constants.PREPASS_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMALIZED_VIEW_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_WORLD_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_LOCAL_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_ALBEDO_TEXTURE_TYPE,\r\n Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE,\r\n Constants.PREPASS_OBJECT_ID_TEXTURE_TYPE,\r\n ];\r\n\r\n for (let i = 0; i < textureActivation.length; i++) {\r\n if (textureActivation[i]) {\r\n this._frameGraphTask.textureDescriptions.push({\r\n textureFormat: textureFormats[i],\r\n textureType: textureTypes[i],\r\n type: bufferTypes[i],\r\n });\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.size = { width: ${this.width}, height: ${this.height} };`);\r\n codes.push(`${this._codeVariableName}.sizeInPercentage = ${this.sizeInPercentage};`);\r\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\r\n codes.push(`${this._codeVariableName}.reverseCulling = ${this.reverseCulling};`);\r\n codes.push(`${this._codeVariableName}.dontRenderWhenMaterialDepthWriteIsDisabled = ${this.dontRenderWhenMaterialDepthWriteIsDisabled};`);\r\n codes.push(`${this._codeVariableName}.disableDepthPrePass = ${this.disableDepthPrePass};`);\r\n codes.push(`${this._codeVariableName}.irradianceFormat = ${this.irradianceFormat};`);\r\n codes.push(`${this._codeVariableName}.irradianceType = ${this.irradianceType};`);\r\n codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthFormat = ${this.normalizedViewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthType = ${this.normalizedViewDepthType};`);\r\n codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);\r\n codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`);\r\n codes.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`);\r\n codes.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`);\r\n codes.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`);\r\n codes.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`);\r\n codes.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`);\r\n codes.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`);\r\n codes.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`);\r\n codes.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`);\r\n codes.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n /**\r\n * Serializes this block\r\n * @returns the serialized object\r\n */\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.sizeInPercentage = this.sizeInPercentage;\r\n serializationObject.width = this.width;\r\n serializationObject.height = this.height;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n serializationObject.disableDepthPrePass = this.disableDepthPrePass;\r\n serializationObject.irradianceFormat = this.irradianceFormat;\r\n serializationObject.irradianceType = this.irradianceType;\r\n serializationObject.viewDepthFormat = this.viewDepthFormat;\r\n serializationObject.viewDepthType = this.viewDepthType;\r\n serializationObject.normalizedViewDepthFormat = this.normalizedViewDepthFormat;\r\n serializationObject.normalizedViewDepthType = this.normalizedViewDepthType;\r\n serializationObject.screenDepthFormat = this.screenDepthFormat;\r\n serializationObject.screenDepthType = this.screenDepthType;\r\n serializationObject.localPositionFormat = this.localPositionFormat;\r\n serializationObject.localPositionType = this.localPositionType;\r\n serializationObject.worldPositionFormat = this.worldPositionFormat;\r\n serializationObject.worldPositionType = this.worldPositionType;\r\n serializationObject.viewNormalFormat = this.viewNormalFormat;\r\n serializationObject.viewNormalType = this.viewNormalType;\r\n serializationObject.worldNormalFormat = this.worldNormalFormat;\r\n serializationObject.worldNormalType = this.worldNormalType;\r\n serializationObject.albedoFormat = this.albedoFormat;\r\n serializationObject.albedoType = this.albedoType;\r\n serializationObject.reflectivityFormat = this.reflectivityFormat;\r\n serializationObject.reflectivityType = this.reflectivityType;\r\n serializationObject.velocityFormat = this.velocityFormat;\r\n serializationObject.velocityType = this.velocityType;\r\n serializationObject.linearVelocityFormat = this.linearVelocityFormat;\r\n serializationObject.linearVelocityType = this.linearVelocityType;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.sizeInPercentage = !!serializationObject.sizeInPercentage;\r\n this.width = serializationObject.width ?? 100;\r\n this.height = serializationObject.height ?? 100;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = serializationObject.disableDepthPrePass ?? true;\r\n this.irradianceFormat = serializationObject.irradianceFormat ?? Constants.TEXTUREFORMAT_RGBA;\r\n this.irradianceType = serializationObject.irradianceType ?? Constants.TEXTURETYPE_HALF_FLOAT;\r\n this.viewDepthFormat = serializationObject.viewDepthFormat;\r\n this.viewDepthType = serializationObject.viewDepthType;\r\n this.normalizedViewDepthFormat = serializationObject.normalizedViewDepthFormat ?? Constants.TEXTUREFORMAT_RED;\r\n this.normalizedViewDepthType = serializationObject.normalizedViewDepthType ?? Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n this.screenDepthFormat = serializationObject.screenDepthFormat;\r\n this.screenDepthType = serializationObject.screenDepthType;\r\n this.localPositionFormat = serializationObject.localPositionFormat;\r\n this.localPositionType = serializationObject.localPositionType;\r\n this.worldPositionFormat = serializationObject.worldPositionFormat;\r\n this.worldPositionType = serializationObject.worldPositionType;\r\n this.viewNormalFormat = serializationObject.viewNormalFormat;\r\n this.viewNormalType = serializationObject.viewNormalType;\r\n this.worldNormalFormat = serializationObject.worldNormalFormat;\r\n this.worldNormalType = serializationObject.worldNormalType;\r\n this.albedoFormat = serializationObject.albedoFormat;\r\n this.albedoType = serializationObject.albedoType;\r\n this.reflectivityFormat = serializationObject.reflectivityFormat;\r\n this.reflectivityType = serializationObject.reflectivityType;\r\n this.velocityFormat = serializationObject.velocityFormat;\r\n this.velocityType = serializationObject.velocityType;\r\n this.linearVelocityFormat = serializationObject.linearVelocityFormat;\r\n this.linearVelocityType = serializationObject.linearVelocityType;\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for geometryRendererBlock.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterGeometryRendererBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"geometryRendererBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { type NodeRenderGraphConnectionPoint, type Scene, type NodeRenderGraphBuildState, type FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\r\n protected override _frameGraphTask: FrameGraphGeometryRendererTask;\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 NodeRenderGraphGeometryRendererBlock\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 doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this.getInputByName(\"target\")!.isOptional = true;\r\n\r\n this.registerOutput(\"geomIrradiance\", NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance);\r\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\r\n this.registerOutput(\"geomNormViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth);\r\n this.registerOutput(\"geomScreenDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\r\n this.registerOutput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\r\n this.registerOutput(\"geomWorldNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal);\r\n this.registerOutput(\"geomLocalPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition);\r\n this.registerOutput(\"geomWorldPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition);\r\n this.registerOutput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo);\r\n this.registerOutput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\r\n this.registerOutput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);\r\n this.registerOutput(\"geomLinearVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);\r\n this.registerOutput(\"geomObjectId\", NodeRenderGraphBlockConnectionPointTypes.TextureObjectId);\r\n this.registerOutput(\"geomMeshBlendTag\", NodeRenderGraphBlockConnectionPointTypes.TextureMeshBlendTag);\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });\r\n }\r\n\r\n protected override _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected override _saveState(state: { [key: string]: any }) {\r\n super._saveState(state);\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n\r\n state.width = this.width;\r\n state.height = this.height;\r\n state.sizeInPercentage = this.sizeInPercentage;\r\n state.samples = this.samples;\r\n state.reverseCulling = this.reverseCulling;\r\n state.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n state.disableDepthPrePass = this.disableDepthPrePass;\r\n }\r\n\r\n protected override _restoreState(state: { [key: string]: any }) {\r\n super._restoreState(state);\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n\r\n this.width = state.width;\r\n this.height = state.height;\r\n this.sizeInPercentage = state.sizeInPercentage;\r\n this.samples = state.samples;\r\n this.reverseCulling = state.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = state.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = state.disableDepthPrePass;\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get width() {\r\n return this._frameGraphTask.size.width;\r\n }\r\n\r\n public set width(value: number) {\r\n this._frameGraphTask.size.width = value;\r\n }\r\n\r\n /** Height of the geometry texture */\r\n @editableInPropertyPage(\"Texture height\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get height() {\r\n return this._frameGraphTask.size.height;\r\n }\r\n\r\n public set height(value: number) {\r\n this._frameGraphTask.size.height = value;\r\n }\r\n\r\n /** Indicates if the geometry texture width and height are percentages or absolute values */\r\n @editableInPropertyPage(\"Size is in percentage\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get sizeInPercentage() {\r\n return this._frameGraphTask.sizeIsPercentage;\r\n }\r\n\r\n public set sizeInPercentage(value: boolean) {\r\n this._frameGraphTask.sizeIsPercentage = value;\r\n }\r\n\r\n /** Number of samples of the geometry texture */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"GEOMETRY\", { min: 1, max: 8 })\r\n public get samples() {\r\n return this._frameGraphTask.samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n this._frameGraphTask.samples = value;\r\n }\r\n\r\n /** Indicates if culling must be reversed */\r\n @editableInPropertyPage(\"Reverse culling\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get reverseCulling() {\r\n return this._frameGraphTask.reverseCulling;\r\n }\r\n\r\n public set reverseCulling(value: boolean) {\r\n this._frameGraphTask.reverseCulling = value;\r\n }\r\n\r\n /** Indicates if a mesh shouldn't be rendered when its material has depth write disabled */\r\n @editableInPropertyPage(\"Don't render if material depth write is disabled\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get dontRenderWhenMaterialDepthWriteIsDisabled() {\r\n return this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n }\r\n\r\n public set dontRenderWhenMaterialDepthWriteIsDisabled(value: boolean) {\r\n this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled = value;\r\n }\r\n\r\n /** Indicates if depth pre-pass must be disabled */\r\n @editableInPropertyPage(\"Disable depth pre-pass\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get disableDepthPrePass() {\r\n return this._frameGraphTask.disableDepthPrePass;\r\n }\r\n\r\n public set disableDepthPrePass(value: boolean) {\r\n this._frameGraphTask.disableDepthPrePass = value;\r\n }\r\n\r\n // Irradiance\r\n /** The format of the irradiance output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - IRRADIANCE\")\r\n public irradianceFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the irradiance output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - IRRADIANCE\")\r\n public irradianceType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // View depth\r\n /** The format of the view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Normalized view depth\r\n /** The format of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Screen depth\r\n /** The format of the screen depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the screen depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n /** The format of the view normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the view normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n /** The format of the world normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n /** The format of the local position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the local position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n /** The format of the world position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n /** The format of the albedo output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - ALBEDO\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the albedo output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - ALBEDO\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n /** The format of the reflectivity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the reflectivity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n /** The format of the velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VELOCITY\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VELOCITY\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n /** The format of the linear velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the linear velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityType = Constants.TEXTURETYPE_HALF_FLOAT;\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 \"NodeRenderGraphGeometryRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the geometry irradiance component\r\n */\r\n public get geomIrradiance(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the geometry view depth component\r\n */\r\n public get geomViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the geometry normalized view depth component\r\n */\r\n public get geomNormViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Gets the geometry screen depth component\r\n */\r\n public get geomScreenDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[6];\r\n }\r\n\r\n /**\r\n * Gets the geometry view normal component\r\n */\r\n public get geomViewNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[7];\r\n }\r\n\r\n /**\r\n * Gets the world geometry normal component, encoded from [-1, 1] to [0, 1]\r\n */\r\n public get geomWorldNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[8];\r\n }\r\n\r\n /**\r\n * Gets the geometry local position component\r\n */\r\n public get geomLocalPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[9];\r\n }\r\n\r\n /**\r\n * Gets the geometry world position component\r\n */\r\n public get geomWorldPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[10];\r\n }\r\n\r\n /**\r\n * Gets the geometry albedo component\r\n */\r\n public get geomAlbedo(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[11];\r\n }\r\n\r\n /**\r\n * Gets the geometry reflectivity component\r\n */\r\n public get geomReflectivity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[12];\r\n }\r\n\r\n /**\r\n * Gets the geometry velocity component\r\n */\r\n public get geomVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[13];\r\n }\r\n\r\n /**\r\n * Gets the geometry linear velocity component\r\n */\r\n public get geomLinearVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[14];\r\n }\r\n\r\n /**\r\n * Gets the geometry object ID component\r\n */\r\n public get geomObjectId(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[15];\r\n }\r\n\r\n /**\r\n * Gets the packed mesh-blending tag component.\r\n */\r\n public get geomMeshBlendTag(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[16];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n const textureActivation = [\r\n this.geomIrradiance.isConnected,\r\n this.geomViewDepth.isConnected,\r\n this.geomNormViewDepth.isConnected,\r\n this.geomScreenDepth.isConnected,\r\n this.geomViewNormal.isConnected,\r\n this.geomWorldNormal.isConnected,\r\n this.geomLocalPosition.isConnected,\r\n this.geomWorldPosition.isConnected,\r\n this.geomAlbedo.isConnected,\r\n this.geomReflectivity.isConnected,\r\n this.geomVelocity.isConnected,\r\n this.geomLinearVelocity.isConnected,\r\n this.geomObjectId.isConnected,\r\n this.geomMeshBlendTag.isConnected,\r\n ];\r\n\r\n this.geomIrradiance.value = this._frameGraphTask.geometryIrradianceTexture;\r\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\r\n this.geomNormViewDepth.value = this._frameGraphTask.geometryNormViewDepthTexture;\r\n this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;\r\n this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;\r\n this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;\r\n this.geomLocalPosition.value = this._frameGraphTask.geometryLocalPositionTexture;\r\n this.geomWorldPosition.value = this._frameGraphTask.geometryWorldPositionTexture;\r\n this.geomAlbedo.value = this._frameGraphTask.geometryAlbedoTexture;\r\n this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;\r\n this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;\r\n this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;\r\n this.geomObjectId.value = this._frameGraphTask.geometryObjectIdTexture;\r\n this.geomMeshBlendTag.value = this._frameGraphTask.geometryMeshBlendTagTexture;\r\n\r\n this._frameGraphTask.textureDescriptions = [];\r\n\r\n const textureFormats = [\r\n this.irradianceFormat,\r\n this.viewDepthFormat,\r\n this.normalizedViewDepthFormat,\r\n this.screenDepthFormat,\r\n this.viewNormalFormat,\r\n this.worldNormalFormat,\r\n this.localPositionFormat,\r\n this.worldPositionFormat,\r\n this.albedoFormat,\r\n this.reflectivityFormat,\r\n this.velocityFormat,\r\n this.linearVelocityFormat,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n Constants.TEXTUREFORMAT_RED_INTEGER,\r\n ];\r\n const textureTypes = [\r\n this.irradianceType,\r\n this.viewDepthType,\r\n this.normalizedViewDepthType,\r\n this.screenDepthType,\r\n this.viewNormalType,\r\n this.worldNormalType,\r\n this.localPositionType,\r\n this.worldPositionType,\r\n this.albedoType,\r\n this.reflectivityType,\r\n this.velocityType,\r\n this.linearVelocityType,\r\n Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n ];\r\n const bufferTypes = [\r\n Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE,\r\n Constants.PREPASS_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMALIZED_VIEW_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_WORLD_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_LOCAL_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_ALBEDO_TEXTURE_TYPE,\r\n Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE,\r\n Constants.PREPASS_OBJECT_ID_TEXTURE_TYPE,\r\n Constants.PREPASS_MESH_BLEND_TAG_TEXTURE_TYPE,\r\n ];\r\n\r\n for (let i = 0; i < textureActivation.length; i++) {\r\n if (textureActivation[i]) {\r\n this._frameGraphTask.textureDescriptions.push({\r\n textureFormat: textureFormats[i],\r\n textureType: textureTypes[i],\r\n type: bufferTypes[i],\r\n });\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.size = { width: ${this.width}, height: ${this.height} };`);\r\n codes.push(`${this._codeVariableName}.sizeInPercentage = ${this.sizeInPercentage};`);\r\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\r\n codes.push(`${this._codeVariableName}.reverseCulling = ${this.reverseCulling};`);\r\n codes.push(`${this._codeVariableName}.dontRenderWhenMaterialDepthWriteIsDisabled = ${this.dontRenderWhenMaterialDepthWriteIsDisabled};`);\r\n codes.push(`${this._codeVariableName}.disableDepthPrePass = ${this.disableDepthPrePass};`);\r\n codes.push(`${this._codeVariableName}.irradianceFormat = ${this.irradianceFormat};`);\r\n codes.push(`${this._codeVariableName}.irradianceType = ${this.irradianceType};`);\r\n codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthFormat = ${this.normalizedViewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthType = ${this.normalizedViewDepthType};`);\r\n codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);\r\n codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`);\r\n codes.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`);\r\n codes.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`);\r\n codes.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`);\r\n codes.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`);\r\n codes.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`);\r\n codes.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`);\r\n codes.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`);\r\n codes.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`);\r\n codes.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n /**\r\n * Serializes this block\r\n * @returns the serialized object\r\n */\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.sizeInPercentage = this.sizeInPercentage;\r\n serializationObject.width = this.width;\r\n serializationObject.height = this.height;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n serializationObject.disableDepthPrePass = this.disableDepthPrePass;\r\n serializationObject.irradianceFormat = this.irradianceFormat;\r\n serializationObject.irradianceType = this.irradianceType;\r\n serializationObject.viewDepthFormat = this.viewDepthFormat;\r\n serializationObject.viewDepthType = this.viewDepthType;\r\n serializationObject.normalizedViewDepthFormat = this.normalizedViewDepthFormat;\r\n serializationObject.normalizedViewDepthType = this.normalizedViewDepthType;\r\n serializationObject.screenDepthFormat = this.screenDepthFormat;\r\n serializationObject.screenDepthType = this.screenDepthType;\r\n serializationObject.localPositionFormat = this.localPositionFormat;\r\n serializationObject.localPositionType = this.localPositionType;\r\n serializationObject.worldPositionFormat = this.worldPositionFormat;\r\n serializationObject.worldPositionType = this.worldPositionType;\r\n serializationObject.viewNormalFormat = this.viewNormalFormat;\r\n serializationObject.viewNormalType = this.viewNormalType;\r\n serializationObject.worldNormalFormat = this.worldNormalFormat;\r\n serializationObject.worldNormalType = this.worldNormalType;\r\n serializationObject.albedoFormat = this.albedoFormat;\r\n serializationObject.albedoType = this.albedoType;\r\n serializationObject.reflectivityFormat = this.reflectivityFormat;\r\n serializationObject.reflectivityType = this.reflectivityType;\r\n serializationObject.velocityFormat = this.velocityFormat;\r\n serializationObject.velocityType = this.velocityType;\r\n serializationObject.linearVelocityFormat = this.linearVelocityFormat;\r\n serializationObject.linearVelocityType = this.linearVelocityType;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.sizeInPercentage = !!serializationObject.sizeInPercentage;\r\n this.width = serializationObject.width ?? 100;\r\n this.height = serializationObject.height ?? 100;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = serializationObject.disableDepthPrePass ?? true;\r\n this.irradianceFormat = serializationObject.irradianceFormat ?? Constants.TEXTUREFORMAT_RGBA;\r\n this.irradianceType = serializationObject.irradianceType ?? Constants.TEXTURETYPE_HALF_FLOAT;\r\n this.viewDepthFormat = serializationObject.viewDepthFormat;\r\n this.viewDepthType = serializationObject.viewDepthType;\r\n this.normalizedViewDepthFormat = serializationObject.normalizedViewDepthFormat ?? Constants.TEXTUREFORMAT_RED;\r\n this.normalizedViewDepthType = serializationObject.normalizedViewDepthType ?? Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n this.screenDepthFormat = serializationObject.screenDepthFormat;\r\n this.screenDepthType = serializationObject.screenDepthType;\r\n this.localPositionFormat = serializationObject.localPositionFormat;\r\n this.localPositionType = serializationObject.localPositionType;\r\n this.worldPositionFormat = serializationObject.worldPositionFormat;\r\n this.worldPositionType = serializationObject.worldPositionType;\r\n this.viewNormalFormat = serializationObject.viewNormalFormat;\r\n this.viewNormalType = serializationObject.viewNormalType;\r\n this.worldNormalFormat = serializationObject.worldNormalFormat;\r\n this.worldNormalType = serializationObject.worldNormalType;\r\n this.albedoFormat = serializationObject.albedoFormat;\r\n this.albedoType = serializationObject.albedoType;\r\n this.reflectivityFormat = serializationObject.reflectivityFormat;\r\n this.reflectivityType = serializationObject.reflectivityType;\r\n this.velocityFormat = serializationObject.velocityFormat;\r\n this.velocityType = serializationObject.velocityType;\r\n this.linearVelocityFormat = serializationObject.linearVelocityFormat;\r\n this.linearVelocityType = serializationObject.linearVelocityType;\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for geometryRendererBlock.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterGeometryRendererBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n}\r\n"]}
|
|
@@ -17,6 +17,7 @@ import { RegisterFilterPostProcessBlock } from "./PostProcesses/filterPostProces
|
|
|
17
17
|
import { RegisterFxaaPostProcessBlock } from "./PostProcesses/fxaaPostProcessBlock.pure.js";
|
|
18
18
|
import { RegisterGrainPostProcessBlock } from "./PostProcesses/grainPostProcessBlock.pure.js";
|
|
19
19
|
import { RegisterImageProcessingPostProcessBlock } from "./PostProcesses/imageProcessingPostProcessBlock.pure.js";
|
|
20
|
+
import { RegisterMeshBlendingPostProcessBlock } from "./PostProcesses/meshBlendingPostProcessBlock.pure.js";
|
|
20
21
|
import { RegisterMotionBlurPostProcessBlock } from "./PostProcesses/motionBlurPostProcessBlock.pure.js";
|
|
21
22
|
import { RegisterPassPostProcessBlock } from "./PostProcesses/passPostProcessBlock.pure.js";
|
|
22
23
|
import { RegisterScreenSpaceCurvaturePostProcessBlock } from "./PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js";
|
|
@@ -74,6 +75,7 @@ export function RegisterNodeRenderGraphPostProcessesBlocks() {
|
|
|
74
75
|
RegisterFxaaPostProcessBlock();
|
|
75
76
|
RegisterGrainPostProcessBlock();
|
|
76
77
|
RegisterImageProcessingPostProcessBlock();
|
|
78
|
+
RegisterMeshBlendingPostProcessBlock();
|
|
77
79
|
RegisterMotionBlurPostProcessBlock();
|
|
78
80
|
RegisterPassPostProcessBlock();
|
|
79
81
|
RegisterScreenSpaceCurvaturePostProcessBlock();
|