@babylonjs/core 8.11.0 → 8.12.1
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/Cameras/arcRotateCamera.js +8 -0
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/targetCamera.js +2 -0
- package/Cameras/targetCamera.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +4 -0
- package/Collisions/gpuPicker.js +6 -0
- package/Collisions/gpuPicker.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.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/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.d.ts +1 -0
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +2 -0
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.d.ts +6 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js +29 -0
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +6 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +36 -9
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js +1 -0
- package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.js +1 -0
- package/FrameGraph/Node/Blocks/inputBlock.js.map +1 -1
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +2 -0
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +2 -0
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +23 -0
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +126 -21
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +5 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +4 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.d.ts +2 -4
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js +4 -17
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js.map +1 -1
- package/FrameGraph/frameGraph.js +1 -1
- package/FrameGraph/frameGraph.js.map +1 -1
- package/FrameGraph/frameGraphContext.d.ts +30 -0
- package/FrameGraph/frameGraphContext.js +47 -0
- package/FrameGraph/frameGraphContext.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +1 -4
- package/FrameGraph/frameGraphRenderContext.js +2 -5
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +0 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +0 -12
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +4 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/currentScreenBlock.d.ts +2 -3
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/fogBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Dual/fogBlock.js +4 -1
- package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js +2 -2
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js +3 -4
- package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.d.ts +2 -3
- package/Materials/Node/Blocks/Dual/textureBlock.js +2 -2
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.js +4 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +2 -2
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +2 -2
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +1 -2
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +2 -2
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.d.ts +3 -3
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js +6 -3
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +1 -2
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js +2 -4
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.d.ts +1 -2
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.d.ts +2 -3
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +5 -2
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +1 -2
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +2 -2
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +1 -2
- package/Materials/Node/Blocks/PBR/refractionBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.d.ts +2 -3
- package/Materials/Node/Blocks/PBR/sheenBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.d.ts +2 -3
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Particle/particleTextureBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js +1 -1
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/bonesBlock.d.ts +2 -2
- package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
- package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +1 -1
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.d.ts +2 -2
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +8 -2
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.d.ts +3 -3
- package/Materials/Node/Blocks/transformBlock.js +4 -5
- package/Materials/Node/Blocks/transformBlock.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.d.ts +1 -3
- package/Materials/Node/Blocks/triPlanarBlock.js +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +1 -1
- package/Materials/Node/nodeMaterial.js +28 -42
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.d.ts +8 -12
- package/Materials/Node/nodeMaterialBlock.js +10 -12
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +3 -1
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +7 -3
- package/Materials/Node/nodeMaterialBuildStateSharedData.js +17 -6
- package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +2 -0
- package/Materials/PBR/pbrBaseMaterial.js +11 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/Loaders/exrTextureLoader.d.ts +10 -0
- package/Materials/Textures/Loaders/exrTextureLoader.js +28 -1
- package/Materials/Textures/Loaders/exrTextureLoader.js.map +1 -1
- package/Materials/materialHelper.functions.js +1 -1
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.js +7 -0
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/standardMaterial.d.ts +2 -0
- package/Materials/standardMaterial.js +11 -0
- package/Materials/standardMaterial.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.d.ts +7 -0
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js +11 -5
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.d.ts +6 -0
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js +42 -4
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.js +8 -0
- package/Meshes/Node/Blocks/geometryOptimizeBlock.js.map +1 -1
- package/Misc/environmentTextureTools.js +1 -1
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/minMaxReducer.d.ts +8 -6
- package/Misc/minMaxReducer.js +57 -90
- package/Misc/minMaxReducer.js.map +1 -1
- package/Misc/observable.d.ts +1 -1
- package/Misc/observable.js.map +1 -1
- package/Misc/thinMinMaxReducer.d.ts +47 -0
- package/Misc/thinMinMaxReducer.js +148 -0
- package/Misc/thinMinMaxReducer.js.map +1 -0
- package/Particles/EmitterTypes/customParticleEmitter.d.ts +5 -0
- package/Particles/EmitterTypes/customParticleEmitter.js +9 -1
- package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
- package/Particles/IParticleSystem.d.ts +8 -0
- package/Particles/IParticleSystem.js.map +1 -1
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.d.ts +75 -0
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.js +179 -0
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/boxShapeBlock.d.ts +47 -0
- package/Particles/Node/Blocks/Emitters/boxShapeBlock.js +107 -0
- package/Particles/Node/Blocks/Emitters/boxShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/createParticleBlock.d.ts +46 -0
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js +97 -0
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/customShapeBlock.d.ts +39 -0
- package/Particles/Node/Blocks/Emitters/customShapeBlock.js +84 -0
- package/Particles/Node/Blocks/Emitters/customShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.d.ts +48 -0
- package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js +120 -0
- package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/index.d.ts +7 -0
- package/Particles/Node/Blocks/Emitters/index.js +8 -0
- package/Particles/Node/Blocks/Emitters/index.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/pointShapeBlock.d.ts +39 -0
- package/Particles/Node/Blocks/Emitters/pointShapeBlock.js +86 -0
- package/Particles/Node/Blocks/Emitters/pointShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.d.ts +53 -0
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.js +111 -0
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.d.ts +43 -0
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js +108 -0
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportInBlock.d.ts +48 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportInBlock.js +100 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportInBlock.js.map +1 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportOutBlock.d.ts +47 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportOutBlock.js +82 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportOutBlock.js.map +1 -0
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.d.ts +48 -0
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.js +133 -0
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.js.map +1 -0
- package/Particles/Node/Blocks/Triggers/triggerTools.d.ts +9 -0
- package/Particles/Node/Blocks/Triggers/triggerTools.js +16 -0
- package/Particles/Node/Blocks/Triggers/triggerTools.js.map +1 -0
- package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.d.ts +31 -0
- package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js +64 -0
- package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/basicSpriteUpdateBlock.d.ts +31 -0
- package/Particles/Node/Blocks/Update/basicSpriteUpdateBlock.js +63 -0
- package/Particles/Node/Blocks/Update/basicSpriteUpdateBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateAngleBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateAngleBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updateAngleBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateColorBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateColorBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updateColorBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateDirectionBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateDirectionBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updateDirectionBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateFlowMapBlock.d.ts +41 -0
- package/Particles/Node/Blocks/Update/updateFlowMapBlock.js +102 -0
- package/Particles/Node/Blocks/Update/updateFlowMapBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updatePositionBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updatePositionBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updatePositionBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateScaleBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateScaleBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updateScaleBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock.js +74 -0
- package/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock.js.map +1 -0
- package/Particles/Node/Blocks/index.d.ts +27 -0
- package/Particles/Node/Blocks/index.js +29 -0
- package/Particles/Node/Blocks/index.js.map +1 -0
- package/Particles/Node/Blocks/particleConverterBlock.d.ts +85 -0
- package/Particles/Node/Blocks/particleConverterBlock.js +267 -0
- package/Particles/Node/Blocks/particleConverterBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleDebugBlock.d.ts +37 -0
- package/Particles/Node/Blocks/particleDebugBlock.js +109 -0
- package/Particles/Node/Blocks/particleDebugBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleElbowBlock.d.ts +27 -0
- package/Particles/Node/Blocks/particleElbowBlock.js +47 -0
- package/Particles/Node/Blocks/particleElbowBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleGradientBlock.d.ts +28 -0
- package/Particles/Node/Blocks/particleGradientBlock.js +118 -0
- package/Particles/Node/Blocks/particleGradientBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleGradientValueBlock.d.ts +32 -0
- package/Particles/Node/Blocks/particleGradientValueBlock.js +79 -0
- package/Particles/Node/Blocks/particleGradientValueBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleInputBlock.d.ts +87 -0
- package/Particles/Node/Blocks/particleInputBlock.js +279 -0
- package/Particles/Node/Blocks/particleInputBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleLerpBlock.d.ts +34 -0
- package/Particles/Node/Blocks/particleLerpBlock.js +92 -0
- package/Particles/Node/Blocks/particleLerpBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleMathBlock.d.ts +64 -0
- package/Particles/Node/Blocks/particleMathBlock.js +321 -0
- package/Particles/Node/Blocks/particleMathBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleRandomBlock.d.ts +52 -0
- package/Particles/Node/Blocks/particleRandomBlock.js +161 -0
- package/Particles/Node/Blocks/particleRandomBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleSourceTextureBlock.d.ts +65 -0
- package/Particles/Node/Blocks/particleSourceTextureBlock.js +173 -0
- package/Particles/Node/Blocks/particleSourceTextureBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleTrigonometryBlock.d.ts +80 -0
- package/Particles/Node/Blocks/particleTrigonometryBlock.js +272 -0
- package/Particles/Node/Blocks/particleTrigonometryBlock.js.map +1 -0
- package/Particles/Node/Blocks/randomRangeBlock.d.ts +45 -0
- package/Particles/Node/Blocks/randomRangeBlock.js +151 -0
- package/Particles/Node/Blocks/randomRangeBlock.js.map +1 -0
- package/Particles/Node/Blocks/systemBlock.d.ts +71 -0
- package/Particles/Node/Blocks/systemBlock.js +193 -0
- package/Particles/Node/Blocks/systemBlock.js.map +1 -0
- package/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.d.ts +39 -0
- package/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.js +41 -0
- package/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.js.map +1 -0
- package/Particles/Node/Enums/nodeParticleContextualSources.d.ts +31 -0
- package/Particles/Node/Enums/nodeParticleContextualSources.js +34 -0
- package/Particles/Node/Enums/nodeParticleContextualSources.js.map +1 -0
- package/Particles/Node/Enums/nodeParticleSystemSources.d.ts +13 -0
- package/Particles/Node/Enums/nodeParticleSystemSources.js +15 -0
- package/Particles/Node/Enums/nodeParticleSystemSources.js.map +1 -0
- package/Particles/Node/index.d.ts +8 -0
- package/Particles/Node/index.js +10 -0
- package/Particles/Node/index.js.map +1 -0
- package/Particles/Node/nodeParticleBlock.d.ts +154 -0
- package/Particles/Node/nodeParticleBlock.js +355 -0
- package/Particles/Node/nodeParticleBlock.js.map +1 -0
- package/Particles/Node/nodeParticleBlockConnectionPoint.d.ts +188 -0
- package/Particles/Node/nodeParticleBlockConnectionPoint.js +337 -0
- package/Particles/Node/nodeParticleBlockConnectionPoint.js.map +1 -0
- package/Particles/Node/nodeParticleBuildState.d.ts +89 -0
- package/Particles/Node/nodeParticleBuildState.js +170 -0
- package/Particles/Node/nodeParticleBuildState.js.map +1 -0
- package/Particles/Node/nodeParticleSystemSet.d.ts +121 -0
- package/Particles/Node/nodeParticleSystemSet.js +383 -0
- package/Particles/Node/nodeParticleSystemSet.js.map +1 -0
- package/Particles/Queue/executionQueue.d.ts +2 -0
- package/Particles/Queue/executionQueue.js +10 -0
- package/Particles/Queue/executionQueue.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +6 -1
- package/Particles/baseParticleSystem.js +7 -0
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/flowMap.d.ts +7 -0
- package/Particles/flowMap.js +32 -0
- package/Particles/flowMap.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +4 -0
- package/Particles/gpuParticleSystem.js +4 -0
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/index.d.ts +1 -0
- package/Particles/index.js +1 -0
- package/Particles/index.js.map +1 -1
- package/Particles/particleSystem.d.ts +12 -0
- package/Particles/particleSystem.js +22 -1
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +32 -11
- package/Particles/thinParticleSystem.js +62 -36
- package/Particles/thinParticleSystem.js.map +1 -1
- package/PostProcesses/postProcessManager.d.ts +2 -1
- package/PostProcesses/postProcessManager.js +3 -2
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -0
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +5 -2
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +3 -0
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +3 -0
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -0
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +3 -0
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js +3 -0
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js +3 -0
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/Shaders/default.fragment.js +3 -0
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.js +13 -5
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js +5 -2
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +3 -0
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +3 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +3 -0
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassVertex.js +3 -0
- package/ShadersWGSL/ShadersInclude/prePassVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js +3 -0
- package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +3 -0
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/minmaxRedux.fragment.js +14 -6
- package/ShadersWGSL/minmaxRedux.fragment.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +5 -0
- package/scene.js +8 -0
- package/scene.js.map +1 -1
|
@@ -47,6 +47,8 @@ export declare class NodeRenderGraphGeometryRendererBlock extends NodeRenderGrap
|
|
|
47
47
|
set dontRenderWhenMaterialDepthWriteIsDisabled(value: boolean);
|
|
48
48
|
viewDepthFormat: number;
|
|
49
49
|
viewDepthType: number;
|
|
50
|
+
normalizedViewDepthFormat: number;
|
|
51
|
+
normalizedViewDepthType: number;
|
|
50
52
|
screenDepthFormat: number;
|
|
51
53
|
screenDepthType: number;
|
|
52
54
|
viewNormalFormat: number;
|
|
@@ -90,6 +92,10 @@ export declare class NodeRenderGraphGeometryRendererBlock extends NodeRenderGrap
|
|
|
90
92
|
* Gets the geometry view depth component
|
|
91
93
|
*/
|
|
92
94
|
get geomViewDepth(): NodeRenderGraphConnectionPoint;
|
|
95
|
+
/**
|
|
96
|
+
* Gets the geometry normalized view depth component
|
|
97
|
+
*/
|
|
98
|
+
get geomNormViewDepth(): NodeRenderGraphConnectionPoint;
|
|
93
99
|
/**
|
|
94
100
|
* Gets the geometry screen depth component
|
|
95
101
|
*/
|
|
@@ -27,6 +27,9 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
27
27
|
// View depth
|
|
28
28
|
this.viewDepthFormat = 6;
|
|
29
29
|
this.viewDepthType = 1;
|
|
30
|
+
// Normalized view depth
|
|
31
|
+
this.normalizedViewDepthFormat = 6;
|
|
32
|
+
this.normalizedViewDepthType = 2;
|
|
30
33
|
// Screen depth
|
|
31
34
|
this.screenDepthFormat = 6;
|
|
32
35
|
this.screenDepthType = 1;
|
|
@@ -61,6 +64,7 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
61
64
|
this._addDependenciesInput();
|
|
62
65
|
this.registerOutput("outputDepth", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);
|
|
63
66
|
this.registerOutput("geomViewDepth", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);
|
|
67
|
+
this.registerOutput("geomNormViewDepth", NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth);
|
|
64
68
|
this.registerOutput("geomScreenDepth", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);
|
|
65
69
|
this.registerOutput("geomViewNormal", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);
|
|
66
70
|
this.registerOutput("geomWorldNormal", NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal);
|
|
@@ -194,64 +198,71 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
194
198
|
get geomViewDepth() {
|
|
195
199
|
return this._outputs[1];
|
|
196
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* Gets the geometry normalized view depth component
|
|
203
|
+
*/
|
|
204
|
+
get geomNormViewDepth() {
|
|
205
|
+
return this._outputs[2];
|
|
206
|
+
}
|
|
197
207
|
/**
|
|
198
208
|
* Gets the geometry screen depth component
|
|
199
209
|
*/
|
|
200
210
|
get geomScreenDepth() {
|
|
201
|
-
return this._outputs[
|
|
211
|
+
return this._outputs[3];
|
|
202
212
|
}
|
|
203
213
|
/**
|
|
204
214
|
* Gets the geometry view normal component
|
|
205
215
|
*/
|
|
206
216
|
get geomViewNormal() {
|
|
207
|
-
return this._outputs[
|
|
217
|
+
return this._outputs[4];
|
|
208
218
|
}
|
|
209
219
|
/**
|
|
210
220
|
* Gets the world geometry normal component
|
|
211
221
|
*/
|
|
212
222
|
get geomWorldNormal() {
|
|
213
|
-
return this._outputs[
|
|
223
|
+
return this._outputs[5];
|
|
214
224
|
}
|
|
215
225
|
/**
|
|
216
226
|
* Gets the geometry local position component
|
|
217
227
|
*/
|
|
218
228
|
get geomLocalPosition() {
|
|
219
|
-
return this._outputs[
|
|
229
|
+
return this._outputs[6];
|
|
220
230
|
}
|
|
221
231
|
/**
|
|
222
232
|
* Gets the geometry world position component
|
|
223
233
|
*/
|
|
224
234
|
get geomWorldPosition() {
|
|
225
|
-
return this._outputs[
|
|
235
|
+
return this._outputs[7];
|
|
226
236
|
}
|
|
227
237
|
/**
|
|
228
238
|
* Gets the geometry albedo component
|
|
229
239
|
*/
|
|
230
240
|
get geomAlbedo() {
|
|
231
|
-
return this._outputs[
|
|
241
|
+
return this._outputs[8];
|
|
232
242
|
}
|
|
233
243
|
/**
|
|
234
244
|
* Gets the geometry reflectivity component
|
|
235
245
|
*/
|
|
236
246
|
get geomReflectivity() {
|
|
237
|
-
return this._outputs[
|
|
247
|
+
return this._outputs[9];
|
|
238
248
|
}
|
|
239
249
|
/**
|
|
240
250
|
* Gets the geometry velocity component
|
|
241
251
|
*/
|
|
242
252
|
get geomVelocity() {
|
|
243
|
-
return this._outputs[
|
|
253
|
+
return this._outputs[10];
|
|
244
254
|
}
|
|
245
255
|
/**
|
|
246
256
|
* Gets the geometry linear velocity component
|
|
247
257
|
*/
|
|
248
258
|
get geomLinearVelocity() {
|
|
249
|
-
return this._outputs[
|
|
259
|
+
return this._outputs[11];
|
|
250
260
|
}
|
|
251
261
|
_buildBlock(state) {
|
|
252
262
|
super._buildBlock(state);
|
|
253
263
|
const textureActivation = [
|
|
254
264
|
this.geomViewDepth.isConnected,
|
|
265
|
+
this.geomNormViewDepth.isConnected,
|
|
255
266
|
this.geomScreenDepth.isConnected,
|
|
256
267
|
this.geomViewNormal.isConnected,
|
|
257
268
|
this.geomWorldNormal.isConnected,
|
|
@@ -267,6 +278,7 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
267
278
|
}
|
|
268
279
|
this.outputDepth.value = this._frameGraphTask.outputDepthTexture;
|
|
269
280
|
this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;
|
|
281
|
+
this.geomNormViewDepth.value = this._frameGraphTask.geometryNormViewDepthTexture;
|
|
270
282
|
this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;
|
|
271
283
|
this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;
|
|
272
284
|
this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;
|
|
@@ -282,6 +294,7 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
282
294
|
this._frameGraphTask.textureDescriptions = [];
|
|
283
295
|
const textureFormats = [
|
|
284
296
|
this.viewDepthFormat,
|
|
297
|
+
this.normalizedViewDepthFormat,
|
|
285
298
|
this.screenDepthFormat,
|
|
286
299
|
this.viewNormalFormat,
|
|
287
300
|
this.worldNormalFormat,
|
|
@@ -294,6 +307,7 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
294
307
|
];
|
|
295
308
|
const textureTypes = [
|
|
296
309
|
this.viewDepthType,
|
|
310
|
+
this.normalizedViewDepthType,
|
|
297
311
|
this.screenDepthType,
|
|
298
312
|
this.viewNormalType,
|
|
299
313
|
this.worldNormalType,
|
|
@@ -306,6 +320,7 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
306
320
|
];
|
|
307
321
|
const bufferTypes = [
|
|
308
322
|
5,
|
|
323
|
+
13,
|
|
309
324
|
10,
|
|
310
325
|
6,
|
|
311
326
|
8,
|
|
@@ -335,6 +350,8 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
335
350
|
codes.push(`${this._codeVariableName}.dontRenderWhenMaterialDepthWriteIsDisabled = ${this.dontRenderWhenMaterialDepthWriteIsDisabled};`);
|
|
336
351
|
codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);
|
|
337
352
|
codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);
|
|
353
|
+
codes.push(`${this._codeVariableName}.normalizedViewDepthFormat = ${this.normalizedViewDepthFormat};`);
|
|
354
|
+
codes.push(`${this._codeVariableName}.normalizedViewDepthType = ${this.normalizedViewDepthType};`);
|
|
338
355
|
codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);
|
|
339
356
|
codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);
|
|
340
357
|
codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);
|
|
@@ -364,6 +381,8 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
364
381
|
serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;
|
|
365
382
|
serializationObject.viewDepthFormat = this.viewDepthFormat;
|
|
366
383
|
serializationObject.viewDepthType = this.viewDepthType;
|
|
384
|
+
serializationObject.normalizedViewDepthFormat = this.normalizedViewDepthFormat;
|
|
385
|
+
serializationObject.normalizedViewDepthType = this.normalizedViewDepthType;
|
|
367
386
|
serializationObject.screenDepthFormat = this.screenDepthFormat;
|
|
368
387
|
serializationObject.screenDepthType = this.screenDepthType;
|
|
369
388
|
serializationObject.localPositionFormat = this.localPositionFormat;
|
|
@@ -393,6 +412,8 @@ export class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {
|
|
|
393
412
|
this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;
|
|
394
413
|
this.viewDepthFormat = serializationObject.viewDepthFormat;
|
|
395
414
|
this.viewDepthType = serializationObject.viewDepthType;
|
|
415
|
+
this.normalizedViewDepthFormat = serializationObject.normalizedViewDepthFormat ?? 6;
|
|
416
|
+
this.normalizedViewDepthType = serializationObject.normalizedViewDepthType ?? 0;
|
|
396
417
|
this.screenDepthFormat = serializationObject.screenDepthFormat;
|
|
397
418
|
this.screenDepthType = serializationObject.screenDepthType;
|
|
398
419
|
this.localPositionFormat = serializationObject.localPositionFormat;
|
|
@@ -446,6 +467,12 @@ __decorate([
|
|
|
446
467
|
__decorate([
|
|
447
468
|
editableInPropertyPage("View depth type", 8 /* PropertyTypeForEdition.TextureType */, "GEOMETRY BUFFERS")
|
|
448
469
|
], NodeRenderGraphGeometryRendererBlock.prototype, "viewDepthType", void 0);
|
|
470
|
+
__decorate([
|
|
471
|
+
editableInPropertyPage("Normalized view depth format", 7 /* PropertyTypeForEdition.TextureFormat */, "GEOMETRY BUFFERS")
|
|
472
|
+
], NodeRenderGraphGeometryRendererBlock.prototype, "normalizedViewDepthFormat", void 0);
|
|
473
|
+
__decorate([
|
|
474
|
+
editableInPropertyPage("Normalized view depth type", 8 /* PropertyTypeForEdition.TextureType */, "GEOMETRY BUFFERS")
|
|
475
|
+
], NodeRenderGraphGeometryRendererBlock.prototype, "normalizedViewDepthType", void 0);
|
|
449
476
|
__decorate([
|
|
450
477
|
editableInPropertyPage("Screen depth format", 7 /* PropertyTypeForEdition.TextureFormat */, "GEOMETRY BUFFERS")
|
|
451
478
|
], NodeRenderGraphGeometryRendererBlock.prototype, "screenDepthFormat", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometryRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wCAAwC,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAA0B,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,yCAA+B;AAEnD;;GAEG;AACH,MAAM,OAAO,oCAAqC,SAAQ,oBAAoB;IAG1E;;OAEG;IACH,IAAoB,IAAI;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY,EAAE,sBAAsB,GAAG,IAAI;QAChG,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QA8InC,aAAa;QAEN,oBAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAG9C,kBAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAEnD,eAAe;QAER,sBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAGhD,oBAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAErD,cAAc;QAEP,qBAAgB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAGhD,mBAAc,GAAG,SAAS,CAAC,sBAAsB,CAAC;QAEzD,eAAe;QAER,sBAAiB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAGjD,oBAAe,GAAG,SAAS,CAAC,yBAAyB,CAAC;QAE7D,iBAAiB;QAEV,wBAAmB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAGnD,sBAAiB,GAAG,SAAS,CAAC,sBAAsB,CAAC;QAE5D,iBAAiB;QAEV,wBAAmB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAGnD,sBAAiB,GAAG,SAAS,CAAC,sBAAsB,CAAC;QAE5D,SAAS;QAEF,iBAAY,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAG5C,eAAU,GAAG,SAAS,CAAC,yBAAyB,CAAC;QAExD,eAAe;QAER,uBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAGlD,qBAAgB,GAAG,SAAS,CAAC,yBAAyB,CAAC;QAE9D,WAAW;QAEJ,mBAAc,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAG9C,iBAAY,GAAG,SAAS,CAAC,yBAAyB,CAAC;QAE1D,kBAAkB;QAEX,yBAAoB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAGpD,uBAAkB,GAAG,SAAS,CAAC,yBAAyB,CAAC;QAhN5D,IAAI,CAAC,iCAAiC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAElE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,wCAAwC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvF,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,wCAAwC,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,wCAAwC,CAAC,UAAU,CAAC,CAAC;QACnF,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,wCAAwC,CAAC,YAAY,CAAC,CAAC;QAC1F,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,wCAAwC,CAAC,gBAAgB,CAAC,CAAC;QAChG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,wCAAwC,CAAC,kBAAkB,CAAC,CAAC;QACpG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,wCAAwC,CAAC,iBAAiB,CAAC,CAAC;QAClG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,wCAAwC,CAAC,kBAAkB,CAAC,CAAC;QACpG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,wCAAwC,CAAC,oBAAoB,CAAC,CAAC;QACxG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,wCAAwC,CAAC,oBAAoB,CAAC,CAAC;QACxG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,wCAAwC,CAAC,aAAa,CAAC,CAAC;QAC1F,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,wCAAwC,CAAC,mBAAmB,CAAC,CAAC;QACtG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,wCAAwC,CAAC,eAAe,CAAC,CAAC;QAC9F,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,wCAAwC,CAAC,qBAAqB,CAAC,CAAC;QAE1G,IAAI,CAAC,KAAK,CAAC,0CAA0C,CACjD,wCAAwC,CAAC,6BAA6B,GAAG,wCAAwC,CAAC,uCAAuC,CAC5J,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC;QAEpD,IAAI,CAAC,eAAe,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACxH,CAAC;IAED,6DAA6D;IAE7D,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,IAAW,SAAS,CAAC,KAAc;QAC/B,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3C,CAAC;IAED,6DAA6D;IAE7D,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED,IAAW,UAAU,CAAC,KAAc;QAChC,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED,4EAA4E;IAE5E,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,sBAAsB,CAAC;IAC9E,CAAC;IAED,IAAW,sBAAsB,CAAC,KAAc;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,0CAA0C,GAAG,IAAI,CAAC,0CAA0C,CAAC;QAEnG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAC;QACvI,IAAI,CAAC,iCAAiC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,0CAA0C,GAAG,0CAA0C,CAAC;QAC7F,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7C,CAAC;IAED,oCAAoC;IAEpC,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED,IAAW,KAAK,CAAC,KAAa;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED,qCAAqC;IAErC,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,IAAW,MAAM,CAAC,KAAa;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7C,CAAC;IAED,4FAA4F;IAE5F,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;IACjD,CAAC;IAED,IAAW,gBAAgB,CAAC,KAAc;QACtC,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAClD,CAAC;IAED,gDAAgD;IAEhD,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,IAAW,OAAO,CAAC,KAAa;QAC5B,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,4CAA4C;IAE5C,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;IAC/C,CAAC;IAED,IAAW,cAAc,CAAC,KAAc;QACpC,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,KAAK,CAAC;IAChD,CAAC;IAED,2FAA2F;IAE3F,IAAW,0CAA0C;QACjD,OAAO,IAAI,CAAC,eAAe,CAAC,0CAA0C,CAAC;IAC3E,CAAC;IAED,IAAW,0CAA0C,CAAC,KAAc;QAChE,IAAI,CAAC,eAAe,CAAC,0CAA0C,GAAG,KAAK,CAAC;IAC5E,CAAC;IAwED;;;OAGG;IACa,YAAY;QACxB,OAAO,sCAAsC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAEkB,WAAW,CAAC,KAAgC;QAC3D,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,iBAAiB,GAAG;YACtB,IAAI,CAAC,aAAa,CAAC,WAAW;YAC9B,IAAI,CAAC,eAAe,CAAC,WAAW;YAChC,IAAI,CAAC,cAAc,CAAC,WAAW;YAC/B,IAAI,CAAC,eAAe,CAAC,WAAW;YAChC,IAAI,CAAC,iBAAiB,CAAC,WAAW;YAClC,IAAI,CAAC,iBAAiB,CAAC,WAAW;YAClC,IAAI,CAAC,UAAU,CAAC,WAAW;YAC3B,IAAI,CAAC,gBAAgB,CAAC,WAAW;YACjC,IAAI,CAAC,YAAY,CAAC,WAAW;YAC7B,IAAI,CAAC,kBAAkB,CAAC,WAAW;SACtC,CAAC;QAEF,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;QACnH,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;QACjE,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC;QACzE,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC;QAC7E,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC;QAC3E,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC;QAC7E,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC;QACjF,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC;QACjF,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC;QACnE,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC;QAC/E,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;QACvE,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAAC;QAEnF,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,KAAgC,CAAC;QAChG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAe,CAAC;QAC1E,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,KAA6B,CAAC;QAE7F,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAE9C,MAAM,cAAc,GAAG;YACnB,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,oBAAoB;SAC5B,CAAC;QACF,MAAM,YAAY,GAAG;YACjB,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,kBAAkB;SAC1B,CAAC;QACF,MAAM,WAAW,GAAG;YAChB,SAAS,CAAC,0BAA0B;YACpC,SAAS,CAAC,sCAAsC;YAChD,SAAS,CAAC,2BAA2B;YACrC,SAAS,CAAC,iCAAiC;YAC3C,SAAS,CAAC,mCAAmC;YAC7C,SAAS,CAAC,6BAA6B;YACvC,SAAS,CAAC,2BAA2B;YACrC,SAAS,CAAC,iCAAiC;YAC3C,SAAS,CAAC,6BAA6B;YACvC,SAAS,CAAC,oCAAoC;SACjD,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAC1C,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;oBAChC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;oBAC5B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;iBACvB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAEkB,mBAAmB;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,gBAAgB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,iBAAiB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,cAAc,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,iDAAiD,IAAI,CAAC,0CAA0C,GAAG,CAAC,CAAC;QACzI,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,sBAAsB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,oBAAoB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,wBAAwB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,sBAAsB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,0BAA0B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,wBAAwB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,0BAA0B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,wBAAwB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,uBAAuB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,wBAAwB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,sBAAsB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,mBAAmB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,iBAAiB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,yBAAyB,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QACzF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,uBAAuB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,qBAAqB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,mBAAmB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,2BAA2B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,yBAAyB,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,mBAAmB,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEe,SAAS;QACrB,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9C,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/C,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjD,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACzD,mBAAmB,CAAC,0CAA0C,GAAG,IAAI,CAAC,0CAA0C,CAAC;QACjH,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3D,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACvD,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/D,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3D,mBAAmB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACnE,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/D,mBAAmB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACnE,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/D,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7D,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACzD,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/D,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3D,mBAAmB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACrD,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjD,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACjE,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7D,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACzD,mBAAmB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACrD,mBAAmB,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACrE,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACjE,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEe,YAAY,CAAC,mBAAwB;QACjD,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;QACzD,IAAI,CAAC,0CAA0C,GAAG,mBAAmB,CAAC,0CAA0C,CAAC;QACjH,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,aAAa,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;QAC3D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;QAC/D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;QAC/D,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;QACzD,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;QAC3D,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC;QACjD,IAAI,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;QACjE,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC;QACrD,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,oBAAoB,CAAC;QACrE,IAAI,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;IACrE,CAAC;CACJ;AA5cG;IADC,sBAAsB,CAAC,YAAY,0CAAkC,YAAY,CAAC;qEAGlF;AAQD;IADC,sBAAsB,CAAC,aAAa,0CAAkC,YAAY,CAAC;sEAGnF;AAQD;IADC,sBAAsB,CAAC,4BAA4B,0CAAkC,YAAY,CAAC;kFAGlG;AA8BD;IADC,sBAAsB,CAAC,eAAe,sCAA8B,YAAY,CAAC;iEAGjF;AAQD;IADC,sBAAsB,CAAC,gBAAgB,sCAA8B,YAAY,CAAC;kEAGlF;AAQD;IADC,sBAAsB,CAAC,uBAAuB,0CAAkC,YAAY,CAAC;4EAG7F;AAQD;IADC,sBAAsB,CAAC,SAAS,sCAA8B,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;mEAG/F;AAQD;IADC,sBAAsB,CAAC,iBAAiB,0CAAkC,YAAY,CAAC;0EAGvF;AAQD;IADC,sBAAsB,CAAC,kDAAkD,0CAAkC,YAAY,CAAC;sGAGxH;AAQM;IADN,sBAAsB,CAAC,mBAAmB,gDAAwC,kBAAkB,CAAC;6EACjD;AAG9C;IADN,sBAAsB,CAAC,iBAAiB,8CAAsC,kBAAkB,CAAC;2EAC/C;AAI5C;IADN,sBAAsB,CAAC,qBAAqB,gDAAwC,kBAAkB,CAAC;+EACjD;AAGhD;IADN,sBAAsB,CAAC,mBAAmB,8CAAsC,kBAAkB,CAAC;6EAC/C;AAI9C;IADN,sBAAsB,CAAC,oBAAoB,gDAAwC,kBAAkB,CAAC;8EAChD;AAGhD;IADN,sBAAsB,CAAC,kBAAkB,8CAAsC,kBAAkB,CAAC;4EAC1C;AAIlD;IADN,sBAAsB,CAAC,qBAAqB,gDAAwC,kBAAkB,CAAC;+EAChD;AAGjD;IADN,sBAAsB,CAAC,mBAAmB,8CAAsC,kBAAkB,CAAC;6EACvC;AAItD;IADN,sBAAsB,CAAC,uBAAuB,gDAAwC,kBAAkB,CAAC;iFAChD;AAGnD;IADN,sBAAsB,CAAC,qBAAqB,8CAAsC,kBAAkB,CAAC;+EAC1C;AAIrD;IADN,sBAAsB,CAAC,uBAAuB,gDAAwC,kBAAkB,CAAC;iFAChD;AAGnD;IADN,sBAAsB,CAAC,qBAAqB,8CAAsC,kBAAkB,CAAC;+EAC1C;AAIrD;IADN,sBAAsB,CAAC,eAAe,gDAAwC,kBAAkB,CAAC;0EAC/C;AAG5C;IADN,sBAAsB,CAAC,aAAa,8CAAsC,kBAAkB,CAAC;wEACtC;AAIjD;IADN,sBAAsB,CAAC,qBAAqB,gDAAwC,kBAAkB,CAAC;gFAC/C;AAGlD;IADN,sBAAsB,CAAC,mBAAmB,8CAAsC,kBAAkB,CAAC;8EACtC;AAIvD;IADN,sBAAsB,CAAC,iBAAiB,gDAAwC,kBAAkB,CAAC;4EAC/C;AAG9C;IADN,sBAAsB,CAAC,eAAe,8CAAsC,kBAAkB,CAAC;0EACtC;AAInD;IADN,sBAAsB,CAAC,wBAAwB,gDAAwC,kBAAkB,CAAC;kFAChD;AAGpD;IADN,sBAAsB,CAAC,sBAAsB,8CAAsC,kBAAkB,CAAC;gFACvC;AA4RpE,aAAa,CAAC,8CAA8C,EAAE,oCAAoC,CAAC,CAAC","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraph, FrameGraphTextureHandle, FrameGraphObjectList, Camera } from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\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\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {\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 */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\r\n\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\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\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\r\n this.depth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment\r\n );\r\n\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /** True (default) to not change the aspect ratio of the scene in the RTT */\r\n @editableInPropertyPage(\"Do not change aspect ratio\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\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 const disabled = this._frameGraphTask.disabled;\r\n const depthTest = this.depthTest;\r\n const depthWrite = this.depthWrite;\r\n const width = this.width;\r\n const height = this.height;\r\n const sizeInPercentage = this.sizeInPercentage;\r\n const samples = this.samples;\r\n const reverseCulling = this.reverseCulling;\r\n const dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n\r\n this._frameGraphTask.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });\r\n this._additionalConstructionParameters = [value];\r\n\r\n this.depthTest = depthTest;\r\n this.depthWrite = depthWrite;\r\n this.width = width;\r\n this.height = height;\r\n this.sizeInPercentage = sizeInPercentage;\r\n this.samples = samples;\r\n this.reverseCulling = reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this._frameGraphTask.disabled = disabled;\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"PROPERTIES\")\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, \"PROPERTIES\")\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, \"PROPERTIES\")\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, \"PROPERTIES\", { 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, \"PROPERTIES\")\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, \"PROPERTIES\")\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 // View depth\r\n @editableInPropertyPage(\"View depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"View depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Screen depth\r\n @editableInPropertyPage(\"Screen depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"Screen depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n @editableInPropertyPage(\"View normal format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"View normal type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n @editableInPropertyPage(\"World normal format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"World normal type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n @editableInPropertyPage(\"Local position format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Local position type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n @editableInPropertyPage(\"World position format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"World position type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n @editableInPropertyPage(\"Albedo format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Albedo type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n @editableInPropertyPage(\"Reflectivity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Reflectivity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n @editableInPropertyPage(\"Velocity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Velocity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n @editableInPropertyPage(\"Linear velocity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Linear velocity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public linearVelocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\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 depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\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[1];\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[2];\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[0];\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[1];\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[2];\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[3];\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[4];\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[5];\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[6];\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[7];\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[8];\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[9];\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[10];\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.geomViewDepth.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 ];\r\n\r\n if (textureActivation.every((t) => !t)) {\r\n throw new Error(\"NodeRenderGraphGeometryRendererBlock: At least one output geometry buffer must be connected\");\r\n }\r\n\r\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture;\r\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\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\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.textureDescriptions = [];\r\n\r\n const textureFormats = [\r\n this.viewDepthFormat,\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 ];\r\n const textureTypes = [\r\n this.viewDepthType,\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 ];\r\n const bufferTypes = [\r\n Constants.PREPASS_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 ];\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}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\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}.viewDepthFormat = ${this.viewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\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 public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n serializationObject.viewDepthFormat = this.viewDepthFormat;\r\n serializationObject.viewDepthType = this.viewDepthType;\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.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.viewDepthFormat = serializationObject.viewDepthFormat;\r\n this.viewDepthType = serializationObject.viewDepthType;\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\nRegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n"]}
|
|
1
|
+
{"version":3,"file":"geometryRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraph, FrameGraphTextureHandle, FrameGraphObjectList, Camera } from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\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\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {\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 */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\r\n\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\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\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\r\n this.depth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment\r\n );\r\n\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /** True (default) to not change the aspect ratio of the scene in the RTT */\r\n @editableInPropertyPage(\"Do not change aspect ratio\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\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 const disabled = this._frameGraphTask.disabled;\r\n const depthTest = this.depthTest;\r\n const depthWrite = this.depthWrite;\r\n const width = this.width;\r\n const height = this.height;\r\n const sizeInPercentage = this.sizeInPercentage;\r\n const samples = this.samples;\r\n const reverseCulling = this.reverseCulling;\r\n const dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n\r\n this._frameGraphTask.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });\r\n this._additionalConstructionParameters = [value];\r\n\r\n this.depthTest = depthTest;\r\n this.depthWrite = depthWrite;\r\n this.width = width;\r\n this.height = height;\r\n this.sizeInPercentage = sizeInPercentage;\r\n this.samples = samples;\r\n this.reverseCulling = reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this._frameGraphTask.disabled = disabled;\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"PROPERTIES\")\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, \"PROPERTIES\")\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, \"PROPERTIES\")\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, \"PROPERTIES\", { 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, \"PROPERTIES\")\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, \"PROPERTIES\")\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 // View depth\r\n @editableInPropertyPage(\"View depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"View depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Normalized view depth\r\n @editableInPropertyPage(\"Normalized view depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public normalizedViewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"Normalized view depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public normalizedViewDepthType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Screen depth\r\n @editableInPropertyPage(\"Screen depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"Screen depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n @editableInPropertyPage(\"View normal format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"View normal type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n @editableInPropertyPage(\"World normal format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"World normal type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n @editableInPropertyPage(\"Local position format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Local position type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n @editableInPropertyPage(\"World position format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"World position type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n @editableInPropertyPage(\"Albedo format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Albedo type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n @editableInPropertyPage(\"Reflectivity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Reflectivity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n @editableInPropertyPage(\"Velocity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Velocity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n @editableInPropertyPage(\"Linear velocity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Linear velocity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public linearVelocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\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 depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\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[1];\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[2];\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[0];\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[1];\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[2];\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[3];\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[4];\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[5];\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[6];\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[7];\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[8];\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[9];\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[10];\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[11];\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.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 ];\r\n\r\n if (textureActivation.every((t) => !t)) {\r\n throw new Error(\"NodeRenderGraphGeometryRendererBlock: At least one output geometry buffer must be connected\");\r\n }\r\n\r\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture;\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\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.textureDescriptions = [];\r\n\r\n const textureFormats = [\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 ];\r\n const textureTypes = [\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 ];\r\n const bufferTypes = [\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 ];\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}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\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}.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 public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\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.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\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\nRegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n"]}
|
|
@@ -13,6 +13,7 @@ export class NodeRenderGraphShadowGeneratorBlock extends NodeRenderGraphBaseShad
|
|
|
13
13
|
*/
|
|
14
14
|
constructor(name, frameGraph, scene) {
|
|
15
15
|
super(name, frameGraph, scene);
|
|
16
|
+
this._finalizeInputOutputRegistering();
|
|
16
17
|
this._frameGraphTask = new FrameGraphShadowGeneratorTask(this.name, frameGraph, scene);
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadowGeneratorBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F;;GAEG;AACH,MAAM,OAAO,mCAAoC,SAAQ,uCAAuC;IAC5F;;;;;OAKG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY;QACjE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,eAAe,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,qCAAqC,CAAC;IACjD,CAAC;CACJ;AAED,aAAa,CAAC,6CAA6C,EAAE,mCAAmC,CAAC,CAAC","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { Scene, FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseShadowGeneratorBlock } from \"./baseShadowGeneratorBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { FrameGraphShadowGeneratorTask } from \"../../../Tasks/Rendering/shadowGeneratorTask\";\r\n\r\n/**\r\n * Block that generate shadows through a shadow generator\r\n */\r\nexport class NodeRenderGraphShadowGeneratorBlock extends NodeRenderGraphBaseShadowGeneratorBlock {\r\n /**\r\n * Create a new NodeRenderGraphShadowGeneratorBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this._frameGraphTask = new FrameGraphShadowGeneratorTask(this.name, frameGraph, scene);\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 \"NodeRenderGraphShadowGeneratorBlock\";\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphShadowGeneratorBlock\", NodeRenderGraphShadowGeneratorBlock);\r\n"]}
|
|
1
|
+
{"version":3,"file":"shadowGeneratorBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F;;GAEG;AACH,MAAM,OAAO,mCAAoC,SAAQ,uCAAuC;IAC5F;;;;;OAKG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY;QACjE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEvC,IAAI,CAAC,eAAe,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,qCAAqC,CAAC;IACjD,CAAC;CACJ;AAED,aAAa,CAAC,6CAA6C,EAAE,mCAAmC,CAAC,CAAC","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { Scene, FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseShadowGeneratorBlock } from \"./baseShadowGeneratorBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { FrameGraphShadowGeneratorTask } from \"../../../Tasks/Rendering/shadowGeneratorTask\";\r\n\r\n/**\r\n * Block that generate shadows through a shadow generator\r\n */\r\nexport class NodeRenderGraphShadowGeneratorBlock extends NodeRenderGraphBaseShadowGeneratorBlock {\r\n /**\r\n * Create a new NodeRenderGraphShadowGeneratorBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphShadowGeneratorTask(this.name, frameGraph, scene);\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 \"NodeRenderGraphShadowGeneratorBlock\";\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphShadowGeneratorBlock\", NodeRenderGraphShadowGeneratorBlock);\r\n"]}
|
|
@@ -44,6 +44,7 @@ export class NodeRenderGraphInputBlock extends NodeRenderGraphBlock {
|
|
|
44
44
|
case NodeRenderGraphBlockConnectionPointTypes.Texture:
|
|
45
45
|
case NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth:
|
|
46
46
|
case NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth:
|
|
47
|
+
case NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth:
|
|
47
48
|
case NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal:
|
|
48
49
|
case NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal:
|
|
49
50
|
case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FrameGraph/Node/Blocks/inputBlock.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nimport type {\r\n NodeRenderGraphConnectionPoint,\r\n Scene,\r\n FrameGraph,\r\n NodeRenderGraphBuildState,\r\n Camera,\r\n InternalTexture,\r\n Nullable,\r\n FrameGraphTextureCreationOptions,\r\n FrameGraphTextureHandle,\r\n FrameGraphObjectList,\r\n IShadowLight,\r\n} from \"core/index\";\r\nimport { Observable } from \"../../../Misc/observable\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../Types/nodeRenderGraphTypes\";\r\nimport { NodeRenderGraphBlock } from \"../nodeRenderGraphBlock\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../Decorators/nodeDecorator\";\r\nimport { backbufferColorTextureHandle, backbufferDepthStencilTextureHandle } from \"../../../FrameGraph/frameGraphTypes\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\n\r\nexport type NodeRenderGraphValueType = InternalTexture | Camera | FrameGraphObjectList | IShadowLight;\r\n\r\nexport type NodeRenderGraphInputCreationOptions = FrameGraphTextureCreationOptions;\r\n\r\n/**\r\n * Block used to expose an input value\r\n */\r\nexport class NodeRenderGraphInputBlock extends NodeRenderGraphBlock {\r\n private _storedValue: Nullable<NodeRenderGraphValueType> = null;\r\n private _type: NodeRenderGraphBlockConnectionPointTypes = NodeRenderGraphBlockConnectionPointTypes.Undefined;\r\n\r\n /** Gets an observable raised when the value is changed */\r\n public onValueChangedObservable = new Observable<NodeRenderGraphInputBlock>();\r\n\r\n /** Indicates that the input is externally managed */\r\n @editableInPropertyPage(\"Is external\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public isExternal = false;\r\n\r\n /** Gets or sets the options to create the input value */\r\n public creationOptions: NodeRenderGraphInputCreationOptions;\r\n\r\n /**\r\n * Gets or sets the connection point type (default is Undefined)\r\n */\r\n public get type(): NodeRenderGraphBlockConnectionPointTypes {\r\n return this._type;\r\n }\r\n\r\n /**\r\n * Creates a new NodeRenderGraphInputBlock\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 type defines the type of the input (can be set to NodeRenderGraphBlockConnectionPointTypes.Undefined)\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, type: NodeRenderGraphBlockConnectionPointTypes = NodeRenderGraphBlockConnectionPointTypes.Undefined) {\r\n super(name, frameGraph, scene);\r\n\r\n this._type = type;\r\n this._isInput = true;\r\n this.registerOutput(\"output\", type);\r\n this.setDefaultValue();\r\n }\r\n\r\n /**\r\n * Set the input block to its default value (based on its type)\r\n */\r\n public setDefaultValue() {\r\n switch (this.type) {\r\n case NodeRenderGraphBlockConnectionPointTypes.Texture:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureVelocity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedoSqrt: {\r\n const options: FrameGraphTextureCreationOptions = {\r\n size: { width: 100, height: 100 },\r\n options: {\r\n createMipMaps: false,\r\n types: [Constants.TEXTURETYPE_UNSIGNED_BYTE],\r\n formats: [Constants.TEXTUREFORMAT_RGBA],\r\n samples: 1,\r\n useSRGBBuffers: [false],\r\n },\r\n sizeIsPercentage: true,\r\n };\r\n this.creationOptions = options;\r\n break;\r\n }\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment: {\r\n const options: FrameGraphTextureCreationOptions = {\r\n size: { width: 100, height: 100 },\r\n options: {\r\n createMipMaps: false,\r\n types: [Constants.TEXTURETYPE_UNSIGNED_BYTE],\r\n formats: [Constants.TEXTUREFORMAT_DEPTH24_STENCIL8],\r\n useSRGBBuffers: [false],\r\n labels: [this.name],\r\n samples: 1,\r\n },\r\n sizeIsPercentage: true,\r\n };\r\n this.creationOptions = options;\r\n break;\r\n }\r\n case NodeRenderGraphBlockConnectionPointTypes.ObjectList:\r\n this.value = { meshes: [], particleSystems: [] };\r\n this.isExternal = true;\r\n break;\r\n case NodeRenderGraphBlockConnectionPointTypes.Camera:\r\n this.value = this._scene.cameras[0];\r\n this.isExternal = true;\r\n break;\r\n default:\r\n this.isExternal = true;\r\n }\r\n }\r\n\r\n /**\r\n * Gets or sets the value of that point.\r\n */\r\n public get value(): Nullable<NodeRenderGraphValueType> {\r\n return this._storedValue;\r\n }\r\n\r\n public set value(value: Nullable<NodeRenderGraphValueType>) {\r\n this._storedValue = value;\r\n this.output.value = undefined;\r\n this.onValueChangedObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Gets the value as a specific type\r\n * @returns the value as a specific type\r\n */\r\n public getTypedValue<T extends NodeRenderGraphValueType>(): T {\r\n return this._storedValue as T;\r\n }\r\n\r\n /**\r\n * Gets the value as an internal texture\r\n * @returns The internal texture stored in value if value is an internal texture, otherwise null\r\n */\r\n public getInternalTextureFromValue(): Nullable<InternalTexture> {\r\n if ((this._storedValue as InternalTexture)._swapAndDie) {\r\n return this._storedValue as InternalTexture;\r\n }\r\n return null;\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 \"NodeRenderGraphInputBlock\";\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 * Check if the block is a texture of any type\r\n * @returns true if the block is a texture\r\n */\r\n public isAnyTexture(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAll) !== 0;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the connection point is the back buffer texture\r\n * @returns true if the connection point is the back buffer texture\r\n */\r\n public isBackBuffer() {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBuffer) !== 0;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the connection point is a depth/stencil attachment texture\r\n * @returns true if the connection point is a depth/stencil attachment texture\r\n */\r\n public isBackBufferDepthStencilAttachment() {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is a camera\r\n * @returns true if the block is a camera\r\n */\r\n public isCamera(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.Camera) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is an object list\r\n * @returns true if the block is an object list\r\n */\r\n public isObjectList(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.ObjectList) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is a shadow light\r\n * @returns true if the block is a shadow light\r\n */\r\n public isShadowLight(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.ShadowLight) !== 0;\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (this.isExternal) {\r\n if (this.isBackBuffer()) {\r\n this.output.value = backbufferColorTextureHandle;\r\n } else if (this.isBackBufferDepthStencilAttachment()) {\r\n this.output.value = backbufferDepthStencilTextureHandle;\r\n } else if (this.isCamera()) {\r\n this.output.value = this.getTypedValue<Camera>();\r\n } else if (this.isObjectList()) {\r\n this.output.value = this.getTypedValue<FrameGraphObjectList>();\r\n } else if (this.isShadowLight()) {\r\n this.output.value = this.getTypedValue<IShadowLight>();\r\n } else {\r\n if (this._storedValue === undefined || this._storedValue === null) {\r\n throw new Error(`NodeRenderGraphInputBlock: External input \"${this.name}\" is not set`);\r\n }\r\n const texture = this.getInternalTextureFromValue();\r\n if (texture) {\r\n this.output.value = this._frameGraph.textureManager.importTexture(this.name, texture, this.output.value as FrameGraphTextureHandle);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if ((this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer) !== 0) {\r\n const textureCreateOptions = this.creationOptions;\r\n\r\n if (!textureCreateOptions) {\r\n throw new Error(`NodeRenderGraphInputBlock: Creation options are missing for texture \"${this.name}\"`);\r\n }\r\n\r\n this.output.value = this._frameGraph.textureManager.createRenderTargetTexture(this.name, textureCreateOptions);\r\n }\r\n }\r\n\r\n public override dispose() {\r\n this._storedValue = null;\r\n this.onValueChangedObservable.clear();\r\n super.dispose();\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.isExternal = ${this.isExternal};`);\r\n if (this.isAnyTexture()) {\r\n if (!this.isExternal) {\r\n codes.push(`${this._codeVariableName}.creationOptions = ${JSON.stringify(this.creationOptions)};`);\r\n } else {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_TEXTURE; // TODO: set the external texture`);\r\n }\r\n } else if (this.isCamera()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_CAMERA; // TODO: set the external camera`);\r\n } else if (this.isObjectList()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_OBJECT_LIST; // TODO: set the external object list`);\r\n } else if (this.isShadowLight()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_SHADOW_LIGHT; // TODO: set the external shadow light`);\r\n }\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.type = this.type;\r\n serializationObject.isExternal = this.isExternal;\r\n if (this.creationOptions) {\r\n serializationObject.creationOptions = this.creationOptions;\r\n }\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this._type = serializationObject.type;\r\n this.output.type = this._type;\r\n this.isExternal = serializationObject.isExternal;\r\n if (serializationObject.creationOptions) {\r\n if (serializationObject.creationOptions.options.depthTextureFormat !== undefined) {\r\n // Backward compatibility - remove this code in the future\r\n serializationObject.creationOptions.options.formats = [serializationObject.creationOptions.options.depthTextureFormat];\r\n }\r\n this.creationOptions = serializationObject.creationOptions;\r\n }\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphInputBlock\", NodeRenderGraphInputBlock);\r\n"]}
|
|
1
|
+
{"version":3,"file":"inputBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FrameGraph/Node/Blocks/inputBlock.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nimport type {\r\n NodeRenderGraphConnectionPoint,\r\n Scene,\r\n FrameGraph,\r\n NodeRenderGraphBuildState,\r\n Camera,\r\n InternalTexture,\r\n Nullable,\r\n FrameGraphTextureCreationOptions,\r\n FrameGraphTextureHandle,\r\n FrameGraphObjectList,\r\n IShadowLight,\r\n} from \"core/index\";\r\nimport { Observable } from \"../../../Misc/observable\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../Types/nodeRenderGraphTypes\";\r\nimport { NodeRenderGraphBlock } from \"../nodeRenderGraphBlock\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../Decorators/nodeDecorator\";\r\nimport { backbufferColorTextureHandle, backbufferDepthStencilTextureHandle } from \"../../../FrameGraph/frameGraphTypes\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\n\r\nexport type NodeRenderGraphValueType = InternalTexture | Camera | FrameGraphObjectList | IShadowLight;\r\n\r\nexport type NodeRenderGraphInputCreationOptions = FrameGraphTextureCreationOptions;\r\n\r\n/**\r\n * Block used to expose an input value\r\n */\r\nexport class NodeRenderGraphInputBlock extends NodeRenderGraphBlock {\r\n private _storedValue: Nullable<NodeRenderGraphValueType> = null;\r\n private _type: NodeRenderGraphBlockConnectionPointTypes = NodeRenderGraphBlockConnectionPointTypes.Undefined;\r\n\r\n /** Gets an observable raised when the value is changed */\r\n public onValueChangedObservable = new Observable<NodeRenderGraphInputBlock>();\r\n\r\n /** Indicates that the input is externally managed */\r\n @editableInPropertyPage(\"Is external\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public isExternal = false;\r\n\r\n /** Gets or sets the options to create the input value */\r\n public creationOptions: NodeRenderGraphInputCreationOptions;\r\n\r\n /**\r\n * Gets or sets the connection point type (default is Undefined)\r\n */\r\n public get type(): NodeRenderGraphBlockConnectionPointTypes {\r\n return this._type;\r\n }\r\n\r\n /**\r\n * Creates a new NodeRenderGraphInputBlock\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 type defines the type of the input (can be set to NodeRenderGraphBlockConnectionPointTypes.Undefined)\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, type: NodeRenderGraphBlockConnectionPointTypes = NodeRenderGraphBlockConnectionPointTypes.Undefined) {\r\n super(name, frameGraph, scene);\r\n\r\n this._type = type;\r\n this._isInput = true;\r\n this.registerOutput(\"output\", type);\r\n this.setDefaultValue();\r\n }\r\n\r\n /**\r\n * Set the input block to its default value (based on its type)\r\n */\r\n public setDefaultValue() {\r\n switch (this.type) {\r\n case NodeRenderGraphBlockConnectionPointTypes.Texture:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureVelocity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedoSqrt: {\r\n const options: FrameGraphTextureCreationOptions = {\r\n size: { width: 100, height: 100 },\r\n options: {\r\n createMipMaps: false,\r\n types: [Constants.TEXTURETYPE_UNSIGNED_BYTE],\r\n formats: [Constants.TEXTUREFORMAT_RGBA],\r\n samples: 1,\r\n useSRGBBuffers: [false],\r\n },\r\n sizeIsPercentage: true,\r\n };\r\n this.creationOptions = options;\r\n break;\r\n }\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment: {\r\n const options: FrameGraphTextureCreationOptions = {\r\n size: { width: 100, height: 100 },\r\n options: {\r\n createMipMaps: false,\r\n types: [Constants.TEXTURETYPE_UNSIGNED_BYTE],\r\n formats: [Constants.TEXTUREFORMAT_DEPTH24_STENCIL8],\r\n useSRGBBuffers: [false],\r\n labels: [this.name],\r\n samples: 1,\r\n },\r\n sizeIsPercentage: true,\r\n };\r\n this.creationOptions = options;\r\n break;\r\n }\r\n case NodeRenderGraphBlockConnectionPointTypes.ObjectList:\r\n this.value = { meshes: [], particleSystems: [] };\r\n this.isExternal = true;\r\n break;\r\n case NodeRenderGraphBlockConnectionPointTypes.Camera:\r\n this.value = this._scene.cameras[0];\r\n this.isExternal = true;\r\n break;\r\n default:\r\n this.isExternal = true;\r\n }\r\n }\r\n\r\n /**\r\n * Gets or sets the value of that point.\r\n */\r\n public get value(): Nullable<NodeRenderGraphValueType> {\r\n return this._storedValue;\r\n }\r\n\r\n public set value(value: Nullable<NodeRenderGraphValueType>) {\r\n this._storedValue = value;\r\n this.output.value = undefined;\r\n this.onValueChangedObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Gets the value as a specific type\r\n * @returns the value as a specific type\r\n */\r\n public getTypedValue<T extends NodeRenderGraphValueType>(): T {\r\n return this._storedValue as T;\r\n }\r\n\r\n /**\r\n * Gets the value as an internal texture\r\n * @returns The internal texture stored in value if value is an internal texture, otherwise null\r\n */\r\n public getInternalTextureFromValue(): Nullable<InternalTexture> {\r\n if ((this._storedValue as InternalTexture)._swapAndDie) {\r\n return this._storedValue as InternalTexture;\r\n }\r\n return null;\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 \"NodeRenderGraphInputBlock\";\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 * Check if the block is a texture of any type\r\n * @returns true if the block is a texture\r\n */\r\n public isAnyTexture(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAll) !== 0;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the connection point is the back buffer texture\r\n * @returns true if the connection point is the back buffer texture\r\n */\r\n public isBackBuffer() {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBuffer) !== 0;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the connection point is a depth/stencil attachment texture\r\n * @returns true if the connection point is a depth/stencil attachment texture\r\n */\r\n public isBackBufferDepthStencilAttachment() {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is a camera\r\n * @returns true if the block is a camera\r\n */\r\n public isCamera(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.Camera) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is an object list\r\n * @returns true if the block is an object list\r\n */\r\n public isObjectList(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.ObjectList) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is a shadow light\r\n * @returns true if the block is a shadow light\r\n */\r\n public isShadowLight(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.ShadowLight) !== 0;\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (this.isExternal) {\r\n if (this.isBackBuffer()) {\r\n this.output.value = backbufferColorTextureHandle;\r\n } else if (this.isBackBufferDepthStencilAttachment()) {\r\n this.output.value = backbufferDepthStencilTextureHandle;\r\n } else if (this.isCamera()) {\r\n this.output.value = this.getTypedValue<Camera>();\r\n } else if (this.isObjectList()) {\r\n this.output.value = this.getTypedValue<FrameGraphObjectList>();\r\n } else if (this.isShadowLight()) {\r\n this.output.value = this.getTypedValue<IShadowLight>();\r\n } else {\r\n if (this._storedValue === undefined || this._storedValue === null) {\r\n throw new Error(`NodeRenderGraphInputBlock: External input \"${this.name}\" is not set`);\r\n }\r\n const texture = this.getInternalTextureFromValue();\r\n if (texture) {\r\n this.output.value = this._frameGraph.textureManager.importTexture(this.name, texture, this.output.value as FrameGraphTextureHandle);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if ((this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer) !== 0) {\r\n const textureCreateOptions = this.creationOptions;\r\n\r\n if (!textureCreateOptions) {\r\n throw new Error(`NodeRenderGraphInputBlock: Creation options are missing for texture \"${this.name}\"`);\r\n }\r\n\r\n this.output.value = this._frameGraph.textureManager.createRenderTargetTexture(this.name, textureCreateOptions);\r\n }\r\n }\r\n\r\n public override dispose() {\r\n this._storedValue = null;\r\n this.onValueChangedObservable.clear();\r\n super.dispose();\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.isExternal = ${this.isExternal};`);\r\n if (this.isAnyTexture()) {\r\n if (!this.isExternal) {\r\n codes.push(`${this._codeVariableName}.creationOptions = ${JSON.stringify(this.creationOptions)};`);\r\n } else {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_TEXTURE; // TODO: set the external texture`);\r\n }\r\n } else if (this.isCamera()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_CAMERA; // TODO: set the external camera`);\r\n } else if (this.isObjectList()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_OBJECT_LIST; // TODO: set the external object list`);\r\n } else if (this.isShadowLight()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_SHADOW_LIGHT; // TODO: set the external shadow light`);\r\n }\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.type = this.type;\r\n serializationObject.isExternal = this.isExternal;\r\n if (this.creationOptions) {\r\n serializationObject.creationOptions = this.creationOptions;\r\n }\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this._type = serializationObject.type;\r\n this.output.type = this._type;\r\n this.isExternal = serializationObject.isExternal;\r\n if (serializationObject.creationOptions) {\r\n if (serializationObject.creationOptions.options.depthTextureFormat !== undefined) {\r\n // Backward compatibility - remove this code in the future\r\n serializationObject.creationOptions.options.formats = [serializationObject.creationOptions.options.depthTextureFormat];\r\n }\r\n this.creationOptions = serializationObject.creationOptions;\r\n }\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphInputBlock\", NodeRenderGraphInputBlock);\r\n"]}
|
|
@@ -62,6 +62,8 @@ export declare enum NodeRenderGraphBlockConnectionPointTypes {
|
|
|
62
62
|
TextureLocalPosition = 16384,
|
|
63
63
|
/** Linear velocity geometry texture */
|
|
64
64
|
TextureLinearVelocity = 32768,
|
|
65
|
+
/** Normalied depth (in view space) geometry texture */
|
|
66
|
+
TextureNormalizedViewDepth = 65536,
|
|
65
67
|
/** Bit field for all textures but back buffer depth/stencil */
|
|
66
68
|
TextureAllButBackBufferDepthStencil = 1048571,
|
|
67
69
|
/** Bit field for all textures but back buffer color and depth/stencil */
|
|
@@ -35,6 +35,8 @@ export var NodeRenderGraphBlockConnectionPointTypes;
|
|
|
35
35
|
NodeRenderGraphBlockConnectionPointTypes[NodeRenderGraphBlockConnectionPointTypes["TextureLocalPosition"] = 16384] = "TextureLocalPosition";
|
|
36
36
|
/** Linear velocity geometry texture */
|
|
37
37
|
NodeRenderGraphBlockConnectionPointTypes[NodeRenderGraphBlockConnectionPointTypes["TextureLinearVelocity"] = 32768] = "TextureLinearVelocity";
|
|
38
|
+
/** Normalied depth (in view space) geometry texture */
|
|
39
|
+
NodeRenderGraphBlockConnectionPointTypes[NodeRenderGraphBlockConnectionPointTypes["TextureNormalizedViewDepth"] = 65536] = "TextureNormalizedViewDepth";
|
|
38
40
|
/** Bit field for all textures but back buffer depth/stencil */
|
|
39
41
|
NodeRenderGraphBlockConnectionPointTypes[NodeRenderGraphBlockConnectionPointTypes["TextureAllButBackBufferDepthStencil"] = 1048571] = "TextureAllButBackBufferDepthStencil";
|
|
40
42
|
/** Bit field for all textures but back buffer color and depth/stencil */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeRenderGraphTypes.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FrameGraph/Node/Types/nodeRenderGraphTypes.ts"],"names":[],"mappings":"AAgCA;;GAEG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"nodeRenderGraphTypes.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FrameGraph/Node/Types/nodeRenderGraphTypes.ts"],"names":[],"mappings":"AAgCA;;GAEG;AACH,MAAM,CAAN,IAAY,wCAgEX;AAhED,WAAY,wCAAwC;IAChD,8BAA8B;IAC9B,6GAAoB,CAAA;IACpB,gCAAgC;IAChC,iIAA8B,CAAA;IAC9B,2CAA2C;IAC3C,6KAAoD,CAAA;IACpD,+BAA+B;IAC/B,yJAA0C,CAAA;IAC1C,6CAA6C;IAC7C,gIAA6B,CAAA;IAC7B,8CAA8C;IAC9C,kIAA8B,CAAA;IAC9B,8BAA8B;IAC9B,0HAA0B,CAAA;IAC1B,oCAAoC;IACpC,uIAAgC,CAAA;IAChC,iDAAiD;IACjD,yIAAiC,CAAA;IACjC,gCAAgC;IAChC,+HAA4B,CAAA;IAC5B,kCAAkC;IAClC,oIAA8B,CAAA;IAC9B,qCAAqC;IACrC,oIAA8B,CAAA;IAC9B,+CAA+C;IAC/C,sIAA+B,CAAA;IAC/B,+CAA+C;IAC/C,sIAA+B,CAAA;IAC/B,iDAAiD;IACjD,2IAAiC,CAAA;IACjC,uCAAuC;IACvC,6IAAkC,CAAA;IAClC,uDAAuD;IACvD,uJAAuC,CAAA;IAEvC,+DAA+D;IAC/D,2KAAgD,CAAA;IAChD,yEAAyE;IACzE,mJAAoC,CAAA;IACpC,iCAAiC;IACjC,yHAAuB,CAAA;IAEvB,yBAAyB;IACzB,uIAA8B,CAAA;IAC9B,uBAAuB;IACvB,mIAA4B,CAAA;IAC5B,YAAY;IACZ,2HAAwB,CAAA;IACxB,aAAa;IACb,kHAAmB,CAAA;IACnB,0DAA0D;IAC1D,0HAAuB,CAAA;IAEvB,sCAAsC;IACtC,2HAAuB,CAAA;IACvB,qDAAqD;IACrD,+HAAyB,CAAA;IACzB,gBAAgB;IAChB,0HAAsB,CAAA;IACtB,oBAAoB;IACpB,oHAAmB,CAAA;IACnB,2BAA2B;IAC3B,8GAAgB,CAAA;AACpB,CAAC,EAhEW,wCAAwC,KAAxC,wCAAwC,QAgEnD;AAED;;GAEG;AACH,MAAM,CAAN,IAAkB,iDAOjB;AAPD,WAAkB,iDAAiD;IAC/D,6BAA6B;IAC7B,qIAAU,CAAA;IACV,qDAAqD;IACrD,iJAAgB,CAAA;IAChB,sEAAsE;IACtE,6IAAc,CAAA;AAClB,CAAC,EAPiB,iDAAiD,KAAjD,iDAAiD,QAOlE;AAED;;GAEG;AACH,MAAM,CAAN,IAAkB,uCAKjB;AALD,WAAkB,uCAAuC;IACrD,YAAY;IACZ,uGAAK,CAAA;IACL,aAAa;IACb,yGAAM,CAAA;AACV,CAAC,EALiB,uCAAuC,KAAvC,uCAAuC,QAKxD","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { Color4, Scene, FrameGraphTextureHandle, Camera, FrameGraphObjectList, IShadowLight, FrameGraphShadowGeneratorTask, FrameGraphObjectRendererTask } from \"core/index\";\r\n\r\n/**\r\n * Interface used to configure the node render graph editor\r\n */\r\nexport interface INodeRenderGraphEditorOptions {\r\n /** Define the URL to load node editor script from */\r\n editorURL?: string;\r\n /** Additional configuration for the FGE */\r\n nodeRenderGraphEditorConfig?: {\r\n backgroundColor?: Color4;\r\n hostScene?: Scene;\r\n };\r\n}\r\n\r\n/**\r\n * Options that can be passed to the node render graph build method\r\n */\r\nexport interface INodeRenderGraphCreateOptions {\r\n /** If true, textures created by the node render graph will be visible in the inspector, for easier debugging (default: false) */\r\n debugTextures?: boolean;\r\n /** Rebuild the node render graph when the screen is resized (default: true) */\r\n rebuildGraphOnEngineResize?: boolean;\r\n /** Defines if the build should log activity (default: false) */\r\n verbose?: boolean;\r\n /** Defines if the autoConfigure method should be called when initializing blocks (default: false) */\r\n autoConfigure?: boolean;\r\n /** If true, external inputs like object lists and cameras will be filled with default values, taken from the scene. Note that external textures are not concerned (default: true). */\r\n autoFillExternalInputs?: boolean;\r\n}\r\n\r\n/**\r\n * Defines the kind of connection point for node render graph nodes\r\n */\r\nexport enum NodeRenderGraphBlockConnectionPointTypes {\r\n /** General purpose texture */\r\n Texture = 0x00000001,\r\n /** Back buffer color texture */\r\n TextureBackBuffer = 0x00000002,\r\n /** Back buffer depth/stencil attachment */\r\n TextureBackBufferDepthStencilAttachment = 0x00000004,\r\n /** Depth/stencil attachment */\r\n TextureDepthStencilAttachment = 0x00000008,\r\n /** Depth (in view space) geometry texture */\r\n TextureViewDepth = 0x00000010,\r\n /** Normal (in view space) geometry texture */\r\n TextureViewNormal = 0x00000020,\r\n /** Albedo geometry texture */\r\n TextureAlbedo = 0x00000040,\r\n /** Reflectivity geometry texture */\r\n TextureReflectivity = 0x00000080,\r\n /** Position (in world space) geometry texture */\r\n TextureWorldPosition = 0x00000100,\r\n /** Velocity geometry texture */\r\n TextureVelocity = 0x00000200,\r\n /** Irradiance geometry texture */\r\n TextureIrradiance = 0x00000400,\r\n /** Albedo (sqrt) geometry texture */\r\n TextureAlbedoSqrt = 0x00000800,\r\n /** Depth (in screen space) geometry texture */\r\n TextureScreenDepth = 0x00001000,\r\n /** Normal (in world space) geometry texture */\r\n TextureWorldNormal = 0x00002000,\r\n /** Position (in local space) geometry texture */\r\n TextureLocalPosition = 0x00004000,\r\n /** Linear velocity geometry texture */\r\n TextureLinearVelocity = 0x00008000,\r\n /** Normalied depth (in view space) geometry texture */\r\n TextureNormalizedViewDepth = 0x00010000,\r\n\r\n /** Bit field for all textures but back buffer depth/stencil */\r\n TextureAllButBackBufferDepthStencil = 0x000ffffb,\r\n /** Bit field for all textures but back buffer color and depth/stencil */\r\n TextureAllButBackBuffer = 0x000ffff9,\r\n /** Bit field for all textures */\r\n TextureAll = 0x000fffff,\r\n\r\n /** Resource container */\r\n ResourceContainer = 0x00100000,\r\n /** Shadow generator */\r\n ShadowGenerator = 0x00200000,\r\n /** Light */\r\n ShadowLight = 0x00400000,\r\n /** Camera */\r\n Camera = 0x01000000,\r\n /** List of objects (meshes, particle systems, sprites) */\r\n ObjectList = 0x02000000,\r\n\r\n /** Detect type based on connection */\r\n AutoDetect = 0x10000000,\r\n /** Output type that will be defined by input type */\r\n BasedOnInput = 0x20000000,\r\n /** Undefined */\r\n Undefined = 0x40000000,\r\n /** Custom object */\r\n Object = 0x80000000,\r\n /** Bitmask of all types */\r\n All = 0xffffffff,\r\n}\r\n\r\n/**\r\n * Enum used to define the compatibility state between two connection points\r\n */\r\nexport const enum NodeRenderGraphConnectionPointCompatibilityStates {\r\n /** Points are compatibles */\r\n Compatible,\r\n /** Points are incompatible because of their types */\r\n TypeIncompatible,\r\n /** Points are incompatible because they are in the same hierarchy **/\r\n HierarchyIssue,\r\n}\r\n\r\n/**\r\n * Defines the direction of a connection point\r\n */\r\nexport const enum NodeRenderGraphConnectionPointDirection {\r\n /** Input */\r\n Input,\r\n /** Output */\r\n Output,\r\n}\r\n\r\n/**\r\n * Defines the type of a connection point value\r\n */\r\nexport type NodeRenderGraphBlockConnectionPointValueType =\r\n | FrameGraphTextureHandle\r\n | Camera\r\n | FrameGraphObjectList\r\n | IShadowLight\r\n | FrameGraphShadowGeneratorTask\r\n | FrameGraphObjectRendererTask;\r\n"]}
|