@onerjs/core 8.56.4 → 9.0.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/Animations/animatable.core.js +36 -0
- package/Animations/animatable.core.js.map +1 -1
- package/Animations/animationGroup.pure.d.ts +61 -1
- package/Animations/animationGroup.pure.js +191 -2
- package/Animations/animationGroup.pure.js.map +1 -1
- package/Animations/index.d.ts +1 -0
- package/Animations/index.js +1 -0
- package/Animations/index.js.map +1 -1
- package/Animations/pure.d.ts +1 -0
- package/Animations/pure.js +1 -0
- package/Animations/pure.js.map +1 -1
- package/Animations/rootMotion.d.ts +560 -0
- package/Animations/rootMotion.js +1709 -0
- package/Animations/rootMotion.js.map +1 -0
- package/Animations/runtimeAnimation.d.ts +57 -0
- package/Animations/runtimeAnimation.js +127 -3
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.d.ts +2 -0
- package/Cameras/arcRotateCamera.pure.js +2 -0
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +2 -0
- package/Cameras/targetCamera.pure.js +13 -2
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.js +5 -5
- package/Collisions/gpuPicker.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.query.pure.js +4 -2
- package/Engines/AbstractEngine/abstractEngine.query.pure.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.query.types.d.ts +11 -2
- package/Engines/AbstractEngine/abstractEngine.query.types.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js +1 -0
- package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.pure.js +63 -0
- package/Engines/Extensions/engine.multiRender.pure.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.types.d.ts +13 -0
- package/Engines/Extensions/engine.multiRender.types.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js +2 -2
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.types.d.ts +2 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.types.js.map +1 -1
- package/Engines/Extensions/index.d.ts +1 -0
- package/Engines/Extensions/index.js +1 -0
- package/Engines/Extensions/index.js.map +1 -1
- package/Engines/Extensions/pure.d.ts +1 -1
- package/Engines/Extensions/pure.js +1 -1
- package/Engines/Extensions/pure.js.map +1 -1
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js +88 -39
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js.map +1 -1
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.d.ts +20 -2
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.js.map +1 -1
- package/Engines/Native/nativeHardwareTexture.d.ts +8 -1
- package/Engines/Native/nativeHardwareTexture.js +7 -0
- package/Engines/Native/nativeHardwareTexture.js.map +1 -1
- package/Engines/Native/nativeHelpers.js +56 -1
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +37 -8
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.d.ts +40 -0
- package/Engines/Native/nativeRenderTargetWrapper.js +265 -5
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderCodeCursor.d.ts +1 -0
- package/Engines/Processors/shaderCodeCursor.js +40 -3
- package/Engines/Processors/shaderCodeCursor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js +4 -0
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.types.d.ts +13 -0
- package/Engines/WebGPU/Extensions/engine.multiRender.types.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.query.pure.js +11 -3
- package/Engines/WebGPU/Extensions/engine.query.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.pure.js +1 -0
- package/Engines/WebGPU/Extensions/engine.renderTarget.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/index.d.ts +1 -0
- package/Engines/WebGPU/Extensions/index.js +1 -0
- package/Engines/WebGPU/Extensions/index.js.map +1 -1
- package/Engines/WebGPU/Extensions/pure.d.ts +1 -1
- package/Engines/WebGPU/Extensions/pure.js +1 -1
- package/Engines/WebGPU/Extensions/pure.js.map +1 -1
- package/Engines/WebGPU/webgpuBundleList.d.ts +2 -0
- package/Engines/WebGPU/webgpuBundleList.js +4 -0
- package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -2
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js +3 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +4 -0
- package/Engines/WebGPU/webgpuSnapshotRendering.js +40 -7
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +2 -2
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +2 -0
- package/Engines/WebGPU/webgpuTextureManager.js +286 -13
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +17 -1
- package/Engines/abstractEngine.pure.js +17 -5
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/constants.d.ts +4 -0
- package/Engines/constants.js +4 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.pure.d.ts +0 -1
- package/Engines/engine.pure.js +0 -7
- package/Engines/engine.pure.js.map +1 -1
- package/Engines/nativeEngine.pure.js +1 -1
- package/Engines/nativeEngine.pure.js.map +1 -1
- package/Engines/thinEngine.pure.d.ts +15 -0
- package/Engines/thinEngine.pure.js +61 -14
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +218 -17
- package/Engines/thinNativeEngine.pure.js +1438 -165
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/thinWebGPUEngine.d.ts +4 -0
- package/Engines/thinWebGPUEngine.js +16 -2
- package/Engines/thinWebGPUEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +17 -3
- package/Engines/webgpuEngine.pure.js +56 -13
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js +2 -2
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.d.ts +10 -0
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js +24 -12
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.d.ts +11 -2
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.pure.d.ts +7 -0
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.pure.js +43 -0
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.d.ts +9 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js +6 -8
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.d.ts +9 -0
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js +34 -9
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js +4 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.d.ts +18 -4
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js +24 -6
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js +19 -7
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js +3 -3
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.d.ts +20 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js +85 -25
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.d.ts +16 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js +64 -14
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.d.ts +12 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js +8 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js +4 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.pure.d.ts +12 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js +64 -16
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.pure.js +14 -2
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.pure.d.ts +5 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.pure.js +23 -8
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.pure.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphInteger.pure.d.ts +5 -0
- package/FlowGraph/CustomTypes/flowGraphInteger.pure.js +7 -0
- package/FlowGraph/CustomTypes/flowGraphInteger.pure.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +10 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js +14 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
- package/FlowGraph/flowGraph.d.ts +6 -1
- package/FlowGraph/flowGraph.js +41 -9
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphAnimationHelpers.d.ts +24 -0
- package/FlowGraph/flowGraphAnimationHelpers.js +21 -0
- package/FlowGraph/flowGraphAnimationHelpers.js.map +1 -0
- package/FlowGraph/flowGraphBlock.js +3 -0
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphConnection.d.ts +7 -0
- package/FlowGraph/flowGraphConnection.js +7 -0
- package/FlowGraph/flowGraphConnection.js.map +1 -1
- package/FlowGraph/flowGraphContext.d.ts +2 -1
- package/FlowGraph/flowGraphContext.js +5 -3
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.d.ts +15 -1
- package/FlowGraph/flowGraphCoordinator.js +47 -16
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphEventBlock.d.ts +5 -0
- package/FlowGraph/flowGraphEventBlock.js +7 -0
- package/FlowGraph/flowGraphEventBlock.js.map +1 -1
- package/FlowGraph/flowGraphHostResolver.d.ts +2 -1
- package/FlowGraph/flowGraphHostResolver.js.map +1 -1
- package/FlowGraph/flowGraphParser.js +60 -2
- package/FlowGraph/flowGraphParser.js.map +1 -1
- package/FlowGraph/flowGraphValidator.js +0 -4
- package/FlowGraph/flowGraphValidator.js.map +1 -1
- package/FlowGraph/index.d.ts +2 -0
- package/FlowGraph/index.js +2 -0
- package/FlowGraph/index.js.map +1 -1
- package/FlowGraph/pure.d.ts +2 -0
- package/FlowGraph/pure.js +2 -0
- package/FlowGraph/pure.js.map +1 -1
- package/FlowGraph/serialization.d.ts +4 -2
- package/FlowGraph/serialization.js +12 -24
- package/FlowGraph/serialization.js.map +1 -1
- package/FlowGraph/typeDefinitions.d.ts +9 -1
- package/FlowGraph/typeDefinitions.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.d.ts +5 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js +8 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.d.ts +87 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js +295 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.d.ts +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.js +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +4 -4
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.d.ts +5 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +13 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.d.ts +1 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.js +4 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.pure.d.ts +54 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.pure.js +155 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.pure.js.map +1 -0
- package/FrameGraph/Node/Blocks/Textures/pure.d.ts +1 -0
- package/FrameGraph/Node/Blocks/Textures/pure.js +1 -0
- package/FrameGraph/Node/Blocks/Textures/pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/allBlocks.pure.js +4 -0
- package/FrameGraph/Node/Blocks/allBlocks.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/index.d.ts +2 -0
- package/FrameGraph/Node/Blocks/index.js +2 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +20 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/pure.d.ts +2 -0
- package/FrameGraph/Node/Blocks/pure.js +2 -0
- package/FrameGraph/Node/Blocks/pure.js.map +1 -1
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +4 -2
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +4 -2
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Tasks/Layers/selectionOutlineTask.js +1 -0
- package/FrameGraph/Tasks/Layers/selectionOutlineTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js +5 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +1 -0
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/minMaxReducerTask.d.ts +62 -0
- package/FrameGraph/Tasks/Misc/minMaxReducerTask.js +159 -0
- package/FrameGraph/Tasks/Misc/minMaxReducerTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.d.ts +69 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js +223 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +25 -3
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +72 -34
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +3 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/frameGraph.d.ts +4 -0
- package/FrameGraph/frameGraph.js +14 -0
- package/FrameGraph/frameGraph.js.map +1 -1
- package/FrameGraph/frameGraphObjectList.d.ts +6 -1
- package/FrameGraph/frameGraphObjectList.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +3 -1
- package/FrameGraph/frameGraphRenderContext.js +5 -5
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/index.d.ts +2 -0
- package/FrameGraph/index.js +2 -0
- package/FrameGraph/index.js.map +1 -1
- package/FrameGraph/pure.d.ts +2 -0
- package/FrameGraph/pure.js +2 -0
- package/FrameGraph/pure.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +4 -0
- package/Inputs/scene.inputManager.js +50 -8
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Lights/Clustered/clusteredLightingSceneComponent.pure.d.ts +5 -0
- package/Lights/Clustered/clusteredLightingSceneComponent.pure.js +22 -1
- package/Lights/Clustered/clusteredLightingSceneComponent.pure.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.pure.js +7 -3
- package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.d.ts +7 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.js +8 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.pure.d.ts +54 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.pure.js +81 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.d.ts +7 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.js +8 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.pure.d.ts +60 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.pure.js +90 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.d.ts +31 -0
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js +103 -5
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +6 -6
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +26 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +153 -49
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.d.ts +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.js +4 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.pure.d.ts +83 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.pure.js +191 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.d.ts +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.js +4 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.pure.d.ts +62 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.pure.js +125 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +5 -5
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/pure.d.ts +4 -0
- package/Materials/GaussianSplatting/pure.js +4 -0
- package/Materials/GaussianSplatting/pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.d.ts +1 -0
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +12 -0
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +11 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +17 -2
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +2 -2
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.d.ts +4 -0
- package/Materials/Node/nodeMaterial.pure.js +4 -0
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +25 -3
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.pure.d.ts +2 -0
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +2 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.d.ts +14 -14
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +37 -13
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/baseTexture.pure.js +3 -0
- package/Materials/Textures/baseTexture.pure.js.map +1 -1
- package/Materials/Textures/cubeTexture.pure.js +1 -1
- package/Materials/Textures/cubeTexture.pure.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +8 -1
- package/Materials/Textures/internalTexture.js +9 -2
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.pure.js +3 -1
- package/Materials/Textures/mirrorTexture.pure.js.map +1 -1
- package/Materials/Textures/rawTexture2DArray.functions.d.ts +3 -3
- package/Materials/Textures/rawTexture2DArray.functions.js.map +1 -1
- package/Materials/Textures/rawTexture3D.d.ts +1 -1
- package/Materials/Textures/rawTexture3D.js +1 -1
- package/Materials/Textures/rawTexture3D.js.map +1 -1
- package/Materials/Textures/texture.pure.js +1 -1
- package/Materials/Textures/texture.pure.js.map +1 -1
- package/Materials/Textures/textureHelper.functions.d.ts +14 -0
- package/Materials/Textures/textureHelper.functions.js +24 -0
- package/Materials/Textures/textureHelper.functions.js.map +1 -1
- package/Materials/ditheredTileFadeMaterialPlugin.d.ts +210 -0
- package/Materials/ditheredTileFadeMaterialPlugin.js +509 -0
- package/Materials/ditheredTileFadeMaterialPlugin.js.map +1 -0
- package/Materials/effectRenderer.pure.d.ts +4 -0
- package/Materials/effectRenderer.pure.js +3 -2
- package/Materials/effectRenderer.pure.js.map +1 -1
- package/Materials/index.d.ts +5 -0
- package/Materials/index.js +5 -0
- package/Materials/index.js.map +1 -1
- package/Materials/material.pure.js +25 -12
- package/Materials/material.pure.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.d.ts +46 -1
- package/Materials/materialHelper.geometryrendering.js +105 -8
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/prepass.defines.d.ts +2 -0
- package/Materials/prepass.defines.js +2 -0
- package/Materials/prepass.defines.js.map +1 -1
- package/Materials/pure.d.ts +5 -0
- package/Materials/pure.js +5 -0
- package/Materials/pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +10 -0
- package/Materials/standardMaterial.pure.js +30 -5
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.pure.d.ts +4 -0
- package/Meshes/Builders/polygonBuilder.pure.js +3 -0
- package/Meshes/Builders/polygonBuilder.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.d.ts +8 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.js +11 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.pure.d.ts +231 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.pure.js +1212 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.pure.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.d.ts +14 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.js +15 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.pure.d.ts +285 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.pure.js +812 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.pure.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.d.ts +19 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.js +23 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +2 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +163 -14
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +239 -24
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +34 -4
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +125 -25
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/pure.d.ts +2 -0
- package/Meshes/GaussianSplatting/pure.js +2 -0
- package/Meshes/GaussianSplatting/pure.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +25 -11
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/abstractMesh.pure.d.ts +30 -0
- package/Meshes/abstractMesh.pure.js +54 -0
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/index.d.ts +2 -0
- package/Meshes/index.js +2 -0
- package/Meshes/index.js.map +1 -1
- package/Meshes/instancedMesh.pure.d.ts +5 -0
- package/Meshes/instancedMesh.pure.js +12 -0
- package/Meshes/instancedMesh.pure.js.map +1 -1
- package/Meshes/mesh.pure.js +23 -8
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/meshBlendingTag.d.ts +47 -0
- package/Meshes/meshBlendingTag.js +64 -0
- package/Meshes/meshBlendingTag.js.map +1 -0
- package/Meshes/polygonMesh.js +2 -2
- package/Meshes/polygonMesh.js.map +1 -1
- package/Meshes/pure.d.ts +2 -0
- package/Meshes/pure.js +2 -0
- package/Meshes/pure.js.map +1 -1
- package/Meshes/subMesh.pure.d.ts +11 -2
- package/Meshes/subMesh.pure.js +20 -5
- package/Meshes/subMesh.pure.js.map +1 -1
- package/Meshes/thinInstanceMesh.pure.js +1 -0
- package/Meshes/thinInstanceMesh.pure.js.map +1 -1
- package/Misc/andOrNotEvaluator.js +4 -0
- package/Misc/andOrNotEvaluator.js.map +1 -1
- package/Misc/fileTools.pure.js +21 -0
- package/Misc/fileTools.pure.js.map +1 -1
- package/Misc/minMaxReducer.pure.d.ts +6 -0
- package/Misc/minMaxReducer.pure.js +10 -0
- package/Misc/minMaxReducer.pure.js.map +1 -1
- package/Misc/snapshotRenderingHelper.js +2 -2
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/thinMinMaxReducer.d.ts +19 -2
- package/Misc/thinMinMaxReducer.js +74 -21
- package/Misc/thinMinMaxReducer.js.map +1 -1
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/Particles/Node/Blocks/Update/updateNoiseBlock.pure.js +19 -7
- package/Particles/Node/Blocks/Update/updateNoiseBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleSourceTextureBlock.pure.js +3 -2
- package/Particles/Node/Blocks/particleSourceTextureBlock.pure.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +4 -0
- package/Particles/gpuParticleSystem.pure.js +101 -32
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/particle.js +3 -2
- package/Particles/particle.js.map +1 -1
- package/Particles/solidParticleSystem.js +7 -1
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.function.d.ts +6 -0
- package/Particles/thinParticleSystem.function.js +144 -88
- package/Particles/thinParticleSystem.function.js.map +1 -1
- package/Particles/thinParticleSystem.pure.d.ts +8 -0
- package/Particles/thinParticleSystem.pure.js +154 -28
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/Particles/webgl2ParticleSystem.pure.d.ts +1 -0
- package/Particles/webgl2ParticleSystem.pure.js +12 -4
- package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
- package/Physics/v2/ragdoll.d.ts +2 -4
- package/Physics/v2/ragdoll.js +11 -4
- package/Physics/v2/ragdoll.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js +7 -0
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/index.d.ts +2 -0
- package/PostProcesses/index.js +2 -0
- package/PostProcesses/index.js.map +1 -1
- package/PostProcesses/meshBlendingBlueNoise.d.ts +15 -0
- package/PostProcesses/meshBlendingBlueNoise.js +77 -0
- package/PostProcesses/meshBlendingBlueNoise.js.map +1 -0
- package/PostProcesses/meshBlendingPostProcess.d.ts +131 -0
- package/PostProcesses/meshBlendingPostProcess.js +315 -0
- package/PostProcesses/meshBlendingPostProcess.js.map +1 -0
- package/PostProcesses/pure.d.ts +2 -0
- package/PostProcesses/pure.js +2 -0
- package/PostProcesses/pure.js.map +1 -1
- package/PostProcesses/thinMeshBlendingPostProcess.d.ts +339 -0
- package/PostProcesses/thinMeshBlendingPostProcess.js +771 -0
- package/PostProcesses/thinMeshBlendingPostProcess.js.map +1 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +6 -6
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +12 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +50 -25
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/boundingBoxRenderer.pure.js +2 -1
- package/Rendering/boundingBoxRenderer.pure.js.map +1 -1
- package/Rendering/depthRenderer.pure.d.ts +9 -0
- package/Rendering/depthRenderer.pure.js +15 -4
- package/Rendering/depthRenderer.pure.js.map +1 -1
- package/Rendering/edgesRenderer.pure.d.ts +4 -2
- package/Rendering/edgesRenderer.pure.js +11 -2
- package/Rendering/edgesRenderer.pure.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +14 -0
- package/Rendering/fluidRenderer/fluidRenderingObject.js +26 -0
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +13 -3
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +22 -9
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -0
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.pure.d.ts +38 -4
- package/Rendering/geometryBufferRenderer.pure.js +130 -18
- package/Rendering/geometryBufferRenderer.pure.js.map +1 -1
- package/Rendering/objectRenderer.d.ts +7 -1
- package/Rendering/objectRenderer.js +45 -7
- package/Rendering/objectRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.pure.js +6 -2
- package/Rendering/outlineRenderer.pure.js.map +1 -1
- package/Rendering/prePassRenderer.pure.js +3 -3
- package/Rendering/prePassRenderer.pure.js.map +1 -1
- package/Rendering/renderingManager.d.ts +1 -1
- package/Rendering/renderingManager.js +5 -4
- package/Rendering/renderingManager.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
- package/Shaders/ShadersInclude/defaultFragmentAlpha.js +34 -0
- package/Shaders/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
- package/Shaders/ShadersInclude/gaussianSplatting.js +3 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +5 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/geometryRenderingFragment.d.ts +5 -0
- package/Shaders/ShadersInclude/geometryRenderingFragment.js +74 -0
- package/Shaders/ShadersInclude/geometryRenderingFragment.js.map +1 -0
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +27 -3
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +89 -0
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js +24 -17
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +27 -20
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +6 -2
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +95 -2
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/default.fragment.js +31 -40
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.js +13 -9
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js +16 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js +16 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +63 -3
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +80 -0
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.js +17 -11
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.js +43 -1
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.js +96 -16
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/meshBlending.fragment.d.ts +5 -0
- package/Shaders/meshBlending.fragment.js +519 -0
- package/Shaders/meshBlending.fragment.js.map +1 -0
- package/Shaders/minmaxRedux.fragment.js +6 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/particles.fragment.js +43 -1
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.js +84 -3
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/sprites.fragment.js +52 -2
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.js +62 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js +33 -0
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplatting.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplatting.js +65 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplatting.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplattingScan.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplattingScan.js +17 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplattingScan.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +6 -78
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js +2 -2
- package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingShared.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplattingShared.js +79 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplattingShared.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.d.ts +6 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js +76 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/lightFragment.js +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +27 -3
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js +18 -0
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js +11 -25
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +11 -25
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js +5 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +6 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +17 -48
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +15 -2
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +15 -2
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianPointSplattingBlit.fragment.d.ts +5 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.fragment.js +22 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.fragment.js.map +1 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.vertex.d.ts +5 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.vertex.js +19 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.vertex.js.map +1 -0
- package/ShadersWGSL/gaussianPointSplattingDepthBlit.fragment.d.ts +5 -0
- package/ShadersWGSL/gaussianPointSplattingDepthBlit.fragment.js +21 -0
- package/ShadersWGSL/gaussianPointSplattingDepthBlit.fragment.js.map +1 -0
- package/ShadersWGSL/gaussianSplatting.fragment.js +63 -2
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +82 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingVoxel.vertex.js +2 -1
- package/ShadersWGSL/gaussianSplattingVoxel.vertex.js.map +1 -1
- package/ShadersWGSL/geometry.fragment.js +37 -2
- package/ShadersWGSL/geometry.fragment.js.map +1 -1
- package/ShadersWGSL/gpsHiZBuild.compute.d.ts +5 -0
- package/ShadersWGSL/gpsHiZBuild.compute.js +16 -0
- package/ShadersWGSL/gpsHiZBuild.compute.js.map +1 -0
- package/ShadersWGSL/gpsPartition.compute.d.ts +5 -0
- package/ShadersWGSL/gpsPartition.compute.js +27 -0
- package/ShadersWGSL/gpsPartition.compute.js.map +1 -0
- package/ShadersWGSL/gpsPreprocess.compute.d.ts +5 -0
- package/ShadersWGSL/gpsPreprocess.compute.js +86 -0
- package/ShadersWGSL/gpsPreprocess.compute.js.map +1 -0
- package/ShadersWGSL/gpsResolve.compute.d.ts +5 -0
- package/ShadersWGSL/gpsResolve.compute.js +41 -0
- package/ShadersWGSL/gpsResolve.compute.js.map +1 -0
- package/ShadersWGSL/gpsScanAdd.compute.d.ts +5 -0
- package/ShadersWGSL/gpsScanAdd.compute.js +22 -0
- package/ShadersWGSL/gpsScanAdd.compute.js.map +1 -0
- package/ShadersWGSL/gpsScanBlocks.compute.d.ts +5 -0
- package/ShadersWGSL/gpsScanBlocks.compute.js +23 -0
- package/ShadersWGSL/gpsScanBlocks.compute.js.map +1 -0
- package/ShadersWGSL/gpsScanSums.compute.d.ts +5 -0
- package/ShadersWGSL/gpsScanSums.compute.js +30 -0
- package/ShadersWGSL/gpsScanSums.compute.js.map +1 -0
- package/ShadersWGSL/gpsSplat.compute.d.ts +5 -0
- package/ShadersWGSL/gpsSplat.compute.js +37 -0
- package/ShadersWGSL/gpsSplat.compute.js.map +1 -0
- package/ShadersWGSL/gpuRenderParticles.fragment.js +47 -2
- package/ShadersWGSL/gpuRenderParticles.fragment.js.map +1 -1
- package/ShadersWGSL/gpuRenderParticles.vertex.js +110 -7
- package/ShadersWGSL/gpuRenderParticles.vertex.js.map +1 -1
- package/ShadersWGSL/meshBlending.fragment.d.ts +5 -0
- package/ShadersWGSL/meshBlending.fragment.js +576 -0
- package/ShadersWGSL/meshBlending.fragment.js.map +1 -0
- package/ShadersWGSL/minmaxRedux.fragment.js +20 -3
- package/ShadersWGSL/minmaxRedux.fragment.js.map +1 -1
- package/ShadersWGSL/openpbr.fragment.js +2 -1
- package/ShadersWGSL/openpbr.fragment.js.map +1 -1
- package/ShadersWGSL/particles.fragment.js +45 -1
- package/ShadersWGSL/particles.fragment.js.map +1 -1
- package/ShadersWGSL/particles.vertex.js +86 -4
- package/ShadersWGSL/particles.vertex.js.map +1 -1
- package/ShadersWGSL/pbr.fragment.js +2 -1
- package/ShadersWGSL/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.fragment.js +56 -2
- package/ShadersWGSL/sprites.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.vertex.js +62 -1
- package/ShadersWGSL/sprites.vertex.js.map +1 -1
- package/Sprites/spriteManager.d.ts +13 -0
- package/Sprites/spriteManager.js +15 -0
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteRenderer.d.ts +24 -1
- package/Sprites/spriteRenderer.js +368 -50
- package/Sprites/spriteRenderer.js.map +1 -1
- package/Sprites/thinSprite.d.ts +4 -0
- package/Sprites/thinSprite.js +4 -0
- package/Sprites/thinSprite.js.map +1 -1
- package/States/alphaCullingState.d.ts +3 -1
- package/States/alphaCullingState.js +18 -3
- package/States/alphaCullingState.js.map +1 -1
- package/XR/features/WebXRSpaceWarp.pure.js +2 -1
- package/XR/features/WebXRSpaceWarp.pure.js.map +1 -1
- package/XR/webXRDefaultExperience.d.ts +5 -1
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXREnterExitUI.d.ts +2 -1
- package/XR/webXREnterExitUI.js.map +1 -1
- package/assetContainer.d.ts +1 -0
- package/assetContainer.js +5 -1
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
- package/scene.pure.d.ts +36 -2
- package/scene.pure.js +63 -4
- package/scene.pure.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../../dev/core/src/FlowGraph/serialization.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IAssetContainer } from \"core/IAssetContainer\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport { Color3, Color4 } from \"../Maths/math.color.pure\";\r\nimport { Matrix, Quaternion, Vector2, Vector3, Vector4 } from \"../Maths/math.vector.pure\";\r\nimport { type Scene } from \"../scene\";\r\nimport { FlowGraphBlockNames } from \"./Blocks/flowGraphBlockNames\";\r\nimport { FlowGraphInteger } from \"./CustomTypes/flowGraphInteger.pure\";\r\nimport { FlowGraphTypes, getRichTypeByFlowGraphType } from \"./flowGraphRichTypes.pure\";\r\nimport { type Node } from \"core/node\";\r\nimport { FlowGraphMatrix2D, FlowGraphMatrix3D } from \"./CustomTypes/flowGraphMatrix\";\r\n\r\nfunction IsVectorClassName(className: string) {\r\n return (\r\n className === FlowGraphTypes.Vector2 ||\r\n className === FlowGraphTypes.Vector3 ||\r\n className === FlowGraphTypes.Vector4 ||\r\n className === FlowGraphTypes.Quaternion ||\r\n className === FlowGraphTypes.Color3 ||\r\n className === FlowGraphTypes.Color4\r\n );\r\n}\r\n\r\nfunction IsMatrixClassName(className: string) {\r\n return className === FlowGraphTypes.Matrix || className === FlowGraphTypes.Matrix2D || className === FlowGraphTypes.Matrix3D;\r\n}\r\n\r\nfunction IsAnimationGroupClassName(className: string) {\r\n return className === \"AnimationGroup\";\r\n}\r\n\r\n/**\r\n * Resolves a serialized node reference (`{ id, name, className, uniqueId }`) to an actual scene node.\r\n * Matching prefers `id` (falling back to `name`), then narrows by class name, then by `uniqueId`.\r\n * Because `uniqueId` is reassigned every time a scene is built, it is only used as a tie-breaker so\r\n * that references still resolve after a scene is reloaded (e.g. an editor preview).\r\n * @param serializedReference the serialized reference to resolve\r\n * @param scene the scene to resolve the reference against\r\n * @returns the matching node, or undefined when none is found\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function GetSceneNodeFromSerializedReference(serializedReference: any, scene: Scene): Node | undefined {\r\n if (!serializedReference || (!serializedReference.id && !serializedReference.name)) {\r\n return undefined;\r\n }\r\n\r\n const nodes = scene.getNodes().filter((node) => (serializedReference.id ? node.id === serializedReference.id : node.name === serializedReference.name));\r\n if (nodes.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const className = serializedReference.type ?? serializedReference.className;\r\n const classMatches = className ? nodes.filter((node) => node.getClassName() === className) : [];\r\n const candidates = classMatches.length > 0 ? classMatches : nodes;\r\n return (serializedReference.uniqueId ? candidates.find((node) => node.uniqueId === serializedReference.uniqueId) : undefined) ?? candidates[0];\r\n}\r\n\r\nfunction ParseVector(className: string, value: Array<number>, flipHandedness = false) {\r\n if (className === FlowGraphTypes.Vector2) {\r\n return Vector2.FromArray(value);\r\n } else if (className === FlowGraphTypes.Vector3) {\r\n if (flipHandedness) {\r\n value[2] *= -1;\r\n }\r\n return Vector3.FromArray(value);\r\n } else if (className === FlowGraphTypes.Vector4) {\r\n return Vector4.FromArray(value);\r\n } else if (className === FlowGraphTypes.Quaternion) {\r\n if (flipHandedness) {\r\n value[2] *= -1;\r\n value[3] *= -1;\r\n }\r\n return Quaternion.FromArray(value);\r\n } else if (className === FlowGraphTypes.Color3) {\r\n return new Color3(value[0], value[1], value[2]);\r\n } else if (className === FlowGraphTypes.Color4) {\r\n return new Color4(value[0], value[1], value[2], value[3]);\r\n } else {\r\n throw new Error(`Unknown vector class name ${className}`);\r\n }\r\n}\r\n\r\n/**\r\n * The default function that serializes values in a context object to a serialization object\r\n * @param key the key where the value should be stored in the serialization object\r\n * @param value the value to store\r\n * @param serializationObject the object where the value will be stored\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function defaultValueSerializationFunction(key: string, value: any, serializationObject: any) {\r\n const className = value?.getClassName?.() ?? \"\";\r\n if (IsVectorClassName(className) || IsMatrixClassName(className)) {\r\n serializationObject[key] = {\r\n value: value.asArray(),\r\n className,\r\n };\r\n } else if (className === FlowGraphTypes.Integer) {\r\n serializationObject[key] = {\r\n value: value.value,\r\n className,\r\n };\r\n } else {\r\n if (className && (value.id || value.name)) {\r\n serializationObject[key] = {\r\n id: value.id,\r\n name: value.name,\r\n className,\r\n uniqueId: value.uniqueId,\r\n };\r\n } else {\r\n if (typeof value !== \"object\" || value === null) {\r\n serializationObject[key] = value;\r\n } else {\r\n // Skip known non-serializable keys immediately to avoid\r\n // expensive JSON.stringify attempts on large object trees\r\n // (e.g. pathConverter holds the entire glTF parse tree).\r\n if (key === \"pathConverter\") {\r\n return;\r\n }\r\n // Quick check: if any own property is a function, the object\r\n // is not JSON-safe and stringify would be wasteful.\r\n const hasFunction = Object.values(value).some((v) => typeof v === \"function\");\r\n if (hasFunction) {\r\n return;\r\n }\r\n // Plain object (e.g. parsed event config) — store it if JSON-safe.\r\n try {\r\n serializationObject[key] = JSON.parse(JSON.stringify(value));\r\n } catch {\r\n Logger.Warn(`FlowGraph serialization: value for key \"${key}\" is not JSON-serializable and was skipped.`);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * The default function that parses values stored in a serialization object\r\n * @param key the key to the value that will be parsed\r\n * @param serializationObject the object that will be parsed\r\n * @param assetsContainer the assets container that will be used to find the objects\r\n * @param scene\r\n * @returns\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function defaultValueParseFunction(key: string, serializationObject: any, assetsContainer: IAssetContainer, scene: Scene) {\r\n const intermediateValue = serializationObject[key];\r\n let finalValue;\r\n const className = intermediateValue?.type ?? intermediateValue?.className;\r\n const sceneNode = GetSceneNodeFromSerializedReference(intermediateValue, scene);\r\n if (sceneNode) {\r\n finalValue = sceneNode;\r\n } else if (IsVectorClassName(className)) {\r\n finalValue = ParseVector(className, intermediateValue.value);\r\n } else if (IsAnimationGroupClassName(className)) {\r\n // do not use the scene.getAnimationGroupByName because it is possible that two AGs will have the same name\r\n const ags = scene.animationGroups.filter((ag) => ag.name === intermediateValue.name);\r\n // uniqueId changes on each load. this is used for the glTF loader, that uses serialization after the scene was loaded.\r\n finalValue = ags.length === 1 ? ags[0] : ags.find((ag) => ag.uniqueId === intermediateValue.uniqueId);\r\n } else if (className === FlowGraphTypes.Matrix) {\r\n finalValue = Matrix.FromArray(intermediateValue.value);\r\n } else if (className === FlowGraphTypes.Matrix2D) {\r\n finalValue = new FlowGraphMatrix2D(intermediateValue.value);\r\n } else if (className === FlowGraphTypes.Matrix3D) {\r\n finalValue = new FlowGraphMatrix3D(intermediateValue.value);\r\n } else if (className === FlowGraphTypes.Integer) {\r\n finalValue = FlowGraphInteger.FromValue(intermediateValue.value);\r\n } else if (className === FlowGraphTypes.Number || className === FlowGraphTypes.String || className === FlowGraphTypes.Boolean) {\r\n finalValue = intermediateValue.value[0];\r\n } else if (intermediateValue && intermediateValue.value !== undefined) {\r\n finalValue = intermediateValue.value;\r\n } else {\r\n if (Array.isArray(intermediateValue)) {\r\n // Check if this is an event configuration array (objects with id/eventData)\r\n // versus a plain array of primitives (e.g. variable name lists)\r\n if (intermediateValue.length > 0 && typeof intermediateValue[0] === \"object\" && intermediateValue[0] !== null && \"eventData\" in intermediateValue[0]) {\r\n // configuration data of an event\r\n finalValue = intermediateValue.reduce((acc, val) => {\r\n if (!val.eventData) {\r\n return acc;\r\n }\r\n acc[val.id] = {\r\n type: getRichTypeByFlowGraphType(val.type),\r\n };\r\n if (typeof val.value !== \"undefined\") {\r\n acc[val.id].value = defaultValueParseFunction(\"value\", val, assetsContainer, scene);\r\n }\r\n return acc;\r\n }, {});\r\n } else {\r\n // Plain array of primitives — return as-is\r\n finalValue = intermediateValue;\r\n }\r\n } else {\r\n finalValue = intermediateValue;\r\n }\r\n }\r\n return finalValue;\r\n}\r\n\r\n/**\r\n * Given a name of a flow graph block class, return if this\r\n * class needs to be created with a path converter. Used in\r\n * parsing.\r\n * @param className the name of the flow graph block class\r\n * @returns a boolean indicating if the class needs a path converter\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function needsPathConverter(className: string) {\r\n // I am not using the ClassName property here because it was causing a circular dependency\r\n return className === FlowGraphBlockNames.JsonPointerParser;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../../dev/core/src/FlowGraph/serialization.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IAssetContainer } from \"core/IAssetContainer\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport { Color3, Color4 } from \"../Maths/math.color.pure\";\r\nimport { Matrix, Quaternion, Vector2, Vector3, Vector4 } from \"../Maths/math.vector.pure\";\r\nimport { type Scene } from \"../scene\";\r\nimport { FlowGraphBlockNames } from \"./Blocks/flowGraphBlockNames\";\r\nimport { FlowGraphInteger } from \"./CustomTypes/flowGraphInteger.pure\";\r\nimport { FlowGraphTypes } from \"./flowGraphRichTypes.pure\";\r\nimport { type Node } from \"core/node\";\r\nimport { FlowGraphMatrix2D, FlowGraphMatrix3D } from \"./CustomTypes/flowGraphMatrix\";\r\n\r\nconst _DefaultEventDataParseCounts = new WeakMap<object, number>();\r\n\r\n/** @internal */\r\nexport function _GetDefaultEventDataParseCount(value: unknown): number {\r\n return value !== null && typeof value === \"object\" ? (_DefaultEventDataParseCounts.get(value) ?? 0) : 0;\r\n}\r\n\r\nfunction IsVectorClassName(className: string) {\r\n return (\r\n className === FlowGraphTypes.Vector2 ||\r\n className === FlowGraphTypes.Vector3 ||\r\n className === FlowGraphTypes.Vector4 ||\r\n className === FlowGraphTypes.Quaternion ||\r\n className === FlowGraphTypes.Color3 ||\r\n className === FlowGraphTypes.Color4\r\n );\r\n}\r\n\r\nfunction IsMatrixClassName(className: string) {\r\n return className === FlowGraphTypes.Matrix || className === FlowGraphTypes.Matrix2D || className === FlowGraphTypes.Matrix3D;\r\n}\r\n\r\nfunction IsAnimationGroupClassName(className: string) {\r\n return className === \"AnimationGroup\";\r\n}\r\n\r\n/**\r\n * Resolves a serialized node reference (`{ id, name, className, uniqueId }`) to an actual scene node.\r\n * Matching prefers `id` (falling back to `name`), then narrows by class name, then by `uniqueId`.\r\n * Because `uniqueId` is reassigned every time a scene is built, it is only used as a tie-breaker so\r\n * that references still resolve after a scene is reloaded (e.g. an editor preview).\r\n * @param serializedReference the serialized reference to resolve\r\n * @param scene the scene to resolve the reference against\r\n * @returns the matching node, or undefined when none is found\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function GetSceneNodeFromSerializedReference(serializedReference: any, scene: Scene): Node | undefined {\r\n if (!serializedReference || (!serializedReference.id && !serializedReference.name)) {\r\n return undefined;\r\n }\r\n\r\n const nodes = scene.getNodes().filter((node) => (serializedReference.id ? node.id === serializedReference.id : node.name === serializedReference.name));\r\n if (nodes.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const className = serializedReference.type ?? serializedReference.className;\r\n const classMatches = className ? nodes.filter((node) => node.getClassName() === className) : [];\r\n const candidates = classMatches.length > 0 ? classMatches : nodes;\r\n return (serializedReference.uniqueId ? candidates.find((node) => node.uniqueId === serializedReference.uniqueId) : undefined) ?? candidates[0];\r\n}\r\n\r\nfunction ParseVector(className: string, value: Array<number>, flipHandedness = false) {\r\n if (className === FlowGraphTypes.Vector2) {\r\n return Vector2.FromArray(value);\r\n } else if (className === FlowGraphTypes.Vector3) {\r\n if (flipHandedness) {\r\n value[2] *= -1;\r\n }\r\n return Vector3.FromArray(value);\r\n } else if (className === FlowGraphTypes.Vector4) {\r\n return Vector4.FromArray(value);\r\n } else if (className === FlowGraphTypes.Quaternion) {\r\n if (flipHandedness) {\r\n value[2] *= -1;\r\n value[3] *= -1;\r\n }\r\n return Quaternion.FromArray(value);\r\n } else if (className === FlowGraphTypes.Color3) {\r\n return new Color3(value[0], value[1], value[2]);\r\n } else if (className === FlowGraphTypes.Color4) {\r\n return new Color4(value[0], value[1], value[2], value[3]);\r\n } else {\r\n throw new Error(`Unknown vector class name ${className}`);\r\n }\r\n}\r\n\r\n/**\r\n * The default function that serializes values in a context object to a serialization object\r\n * @param key the key where the value should be stored in the serialization object\r\n * @param value the value to store\r\n * @param serializationObject the object where the value will be stored\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function defaultValueSerializationFunction(key: string, value: any, serializationObject: any) {\r\n const className = value?.getClassName?.() ?? \"\";\r\n if (IsVectorClassName(className) || IsMatrixClassName(className)) {\r\n serializationObject[key] = {\r\n value: value.asArray(),\r\n className,\r\n };\r\n } else if (className === FlowGraphTypes.Integer) {\r\n serializationObject[key] = {\r\n value: value.value,\r\n className,\r\n };\r\n } else {\r\n if (className && (value.id || value.name)) {\r\n serializationObject[key] = {\r\n id: value.id,\r\n name: value.name,\r\n className,\r\n uniqueId: value.uniqueId,\r\n };\r\n } else {\r\n if (typeof value !== \"object\" || value === null) {\r\n serializationObject[key] = value;\r\n } else {\r\n // Skip known non-serializable keys immediately to avoid\r\n // expensive JSON.stringify attempts on large object trees\r\n // (e.g. pathConverter holds the entire glTF parse tree).\r\n if (key === \"pathConverter\") {\r\n return;\r\n }\r\n // Quick check: if any own property is a function, the object\r\n // is not JSON-safe and stringify would be wasteful.\r\n const hasFunction = Object.values(value).some((v) => typeof v === \"function\");\r\n if (hasFunction) {\r\n return;\r\n }\r\n // Plain object (e.g. parsed event config) — store it if JSON-safe.\r\n try {\r\n serializationObject[key] = JSON.parse(JSON.stringify(value));\r\n } catch {\r\n Logger.Warn(`FlowGraph serialization: value for key \"${key}\" is not JSON-serializable and was skipped.`);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * The default function that parses values stored in a serialization object\r\n * @param key the key to the value that will be parsed\r\n * @param serializationObject the object that will be parsed\r\n * @param assetsContainer the assets container that will be used to find the objects\r\n * @param scene the scene used to resolve node and animation group references\r\n * @returns the parsed value, with serialized Babylon types and scene references restored\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function defaultValueParseFunction(key: string, serializationObject: any, assetsContainer: IAssetContainer, scene: Scene) {\r\n const intermediateValue = serializationObject[key];\r\n let finalValue;\r\n const className = intermediateValue?.type ?? intermediateValue?.className;\r\n const sceneNode = GetSceneNodeFromSerializedReference(intermediateValue, scene);\r\n if (sceneNode) {\r\n finalValue = sceneNode;\r\n } else if (IsVectorClassName(className)) {\r\n finalValue = ParseVector(className, intermediateValue.value);\r\n } else if (IsAnimationGroupClassName(className)) {\r\n // do not use the scene.getAnimationGroupByName because it is possible that two AGs will have the same name\r\n const ags = scene.animationGroups.filter((ag) => ag.name === intermediateValue.name);\r\n // uniqueId changes on each load. this is used for the glTF loader, that uses serialization after the scene was loaded.\r\n finalValue = ags.length === 1 ? ags[0] : ags.find((ag) => ag.uniqueId === intermediateValue.uniqueId);\r\n } else if (className === FlowGraphTypes.Matrix) {\r\n finalValue = Matrix.FromArray(intermediateValue.value);\r\n } else if (className === FlowGraphTypes.Matrix2D) {\r\n finalValue = new FlowGraphMatrix2D(intermediateValue.value);\r\n } else if (className === FlowGraphTypes.Matrix3D) {\r\n finalValue = new FlowGraphMatrix3D(intermediateValue.value);\r\n } else if (className === FlowGraphTypes.Integer) {\r\n finalValue = FlowGraphInteger.FromValue(intermediateValue.value);\r\n } else if (className === FlowGraphTypes.Number || className === FlowGraphTypes.String || className === FlowGraphTypes.Boolean) {\r\n finalValue = intermediateValue.value[0];\r\n } else if (key === \"eventData\" && intermediateValue !== null && typeof intermediateValue === \"object\") {\r\n _DefaultEventDataParseCounts.set(intermediateValue, _GetDefaultEventDataParseCount(intermediateValue) + 1);\r\n finalValue = intermediateValue;\r\n } else if (intermediateValue && intermediateValue.value !== undefined) {\r\n finalValue = intermediateValue.value;\r\n } else {\r\n if (Array.isArray(intermediateValue)) {\r\n finalValue = intermediateValue;\r\n } else {\r\n finalValue = intermediateValue;\r\n }\r\n }\r\n return finalValue;\r\n}\r\n\r\n/**\r\n * Given a name of a flow graph block class, return if this\r\n * class needs to be created with a path converter. Used in\r\n * parsing.\r\n * @param className the name of the flow graph block class\r\n * @returns a boolean indicating if the class needs a path converter\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function needsPathConverter(className: string) {\r\n // I am not using the ClassName property here because it was causing a circular dependency\r\n return className === FlowGraphBlockNames.JsonPointerParser;\r\n}\r\n"]}
|
|
@@ -54,7 +54,7 @@ export interface IObjectAccessor<GLTFTargetType = any, BabylonTargetType = any,
|
|
|
54
54
|
/**
|
|
55
55
|
* @deprecated Use get instead
|
|
56
56
|
*/
|
|
57
|
-
getPropertyName?: Array<(target: GLTFTargetType) => string>;
|
|
57
|
+
getPropertyName?: Array<(target: GLTFTargetType, index?: number) => string>;
|
|
58
58
|
/**
|
|
59
59
|
* Set a new value to the property.
|
|
60
60
|
* @param newValue the new value to set
|
|
@@ -130,6 +130,10 @@ export interface ISerializedFlowGraphConnection {
|
|
|
130
130
|
* The id of the connection that this is connected to
|
|
131
131
|
*/
|
|
132
132
|
connectedPointIds: string[];
|
|
133
|
+
/**
|
|
134
|
+
* Optional host-format metadata associated with this connection.
|
|
135
|
+
*/
|
|
136
|
+
metadata?: any;
|
|
133
137
|
/**
|
|
134
138
|
* The serialized default value of a data connection (set by the user for
|
|
135
139
|
* unconnected inputs). Only present on data connections.
|
|
@@ -189,6 +193,10 @@ export interface ISerializedFlowGraph {
|
|
|
189
193
|
* Optional unique identifier for the graph
|
|
190
194
|
*/
|
|
191
195
|
uniqueId?: string;
|
|
196
|
+
/**
|
|
197
|
+
* Optional host-format metadata associated with the graph.
|
|
198
|
+
*/
|
|
199
|
+
metadata?: any;
|
|
192
200
|
/**
|
|
193
201
|
* Contexts belonging to the flow graph
|
|
194
202
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../../../../dev/core/src/FlowGraph/typeDefinitions.ts"],"names":[],"mappings":"","sourcesContent":["import { type IAnimatable } from \"core/Animations/animatable.interface\";\r\nimport { type Animation } from \"core/Animations/animation\";\r\nimport { type FlowGraphConnectionType } from \"./flowGraphConnection\";\r\n\r\n/**\r\n * Interpolation generator\r\n */\r\nexport interface IInterpolationPropertyInfo {\r\n /**\r\n * type of the interpolation\r\n */\r\n type: number;\r\n /**\r\n * The name of the property\r\n */\r\n name: string;\r\n /** @internal */\r\n getValue: (target: any, source: Float32Array, offset: number, scale: number) => any;\r\n /** @internal */\r\n getStride: (target: any) => number;\r\n /**\r\n * @internal\r\n */\r\n buildAnimations(target: any, name: string, fps: number, keys: any[]): { babylonAnimatable: IAnimatable; babylonAnimation: Animation }[];\r\n}\r\n\r\n/**\r\n * An accessor that allows modifying properties on some other object.\r\n */\r\nexport interface IObjectAccessor<GLTFTargetType = any, BabylonTargetType = any, BabylonValueType = any> {\r\n /**\r\n * The number of components that are changed in the property when setting this value.\r\n * This will usually be 1. But, for example, Babylon has both orthoLeft and orthoRight (two components) properties that are changed when setting xmag (single value in glTF).\r\n * Defaults to 1 if not provided!\r\n */\r\n componentsCount?: number;\r\n /**\r\n * The (babylon) type of the property.\r\n */\r\n type: string;\r\n /**\r\n * Get the value of the property.\r\n */\r\n get: (target: GLTFTargetType, index?: number, payload?: any) => BabylonValueType | undefined;\r\n /**\r\n * Get the target of the property.\r\n */\r\n getTarget: (target: GLTFTargetType, index?: number, payload?: any) => BabylonTargetType | undefined;\r\n /**\r\n * is the property readonly?\r\n */\r\n isReadOnly?: boolean;\r\n /**\r\n * @deprecated Use get instead\r\n */\r\n getPropertyName?: Array<(target: GLTFTargetType) => string>;\r\n /**\r\n * Set a new value to the property.\r\n * @param newValue the new value to set\r\n * @param target the target object\r\n * @param index the index of the target object in the array (optional)\r\n */\r\n set?: (newValue: BabylonValueType, target: GLTFTargetType, index?: number, payload?: any) => void;\r\n /**\r\n * Interpolation/animation information for the property.\r\n * This is an array that can be used to animate the value over time.\r\n */\r\n interpolation?: IInterpolationPropertyInfo[];\r\n}\r\n\r\n/**\r\n * A Serialized Flow Graph Context\r\n */\r\nexport interface ISerializedFlowGraphContext {\r\n /**\r\n * The unique id of the context\r\n */\r\n uniqueId: string;\r\n /**\r\n * An optional user-facing name for the context\r\n */\r\n name?: string;\r\n /**\r\n * User variables\r\n */\r\n _userVariables: { [key: string]: any };\r\n /**\r\n * Optional type annotations for user variables.\r\n * Keys are variable names; values are type name strings.\r\n */\r\n _variableTypes?: { [key: string]: string };\r\n /**\r\n * Values of the connection points\r\n */\r\n _connectionValues: { [key: string]: any };\r\n\r\n /**\r\n * Assets context, if not the scene\r\n */\r\n _assetsContext?: { [key: string]: any };\r\n\r\n /**\r\n * Should logging be enabled?\r\n */\r\n enableLogging?: boolean;\r\n}\r\n\r\n/**\r\n * A Serialized Flow Graph Connection\r\n */\r\nexport interface ISerializedFlowGraphConnection {\r\n /**\r\n * The unique id of the connection\r\n */\r\n uniqueId: string;\r\n /**\r\n * The name of the connection\r\n */\r\n name: string;\r\n /**\r\n * The type of the connection\r\n */\r\n _connectionType: FlowGraphConnectionType;\r\n /**\r\n * The id of the connection that this is connected to\r\n */\r\n connectedPointIds: string[];\r\n /**\r\n * The serialized default value of a data connection (set by the user for\r\n * unconnected inputs). Only present on data connections.\r\n */\r\n defaultValue?: any;\r\n}\r\n\r\n/**\r\n * A Serialized Flow Graph Block\r\n */\r\nexport interface ISerializedFlowGraphBlock {\r\n /**\r\n * The class name of the block\r\n */\r\n className: string;\r\n /**\r\n * The glTF type of the block\r\n */\r\n type: string;\r\n /**\r\n * Configuration parameters for the block\r\n */\r\n config: any;\r\n /**\r\n * The unique id of the block\r\n */\r\n uniqueId: string;\r\n /**\r\n * Input connection data\r\n */\r\n dataInputs: ISerializedFlowGraphConnection[];\r\n /**\r\n * Output connection data\r\n */\r\n dataOutputs: ISerializedFlowGraphConnection[];\r\n /**\r\n * Metadata for the block\r\n */\r\n metadata: any;\r\n /**\r\n * Input connection signal\r\n */\r\n signalInputs: ISerializedFlowGraphConnection[];\r\n /**\r\n * Output connection signal\r\n */\r\n signalOutputs: ISerializedFlowGraphConnection[];\r\n}\r\n\r\n/**\r\n * A Serialized Flow Graph\r\n */\r\nexport interface ISerializedFlowGraph {\r\n /**\r\n * Optional human-readable name for the graph\r\n */\r\n name?: string;\r\n /**\r\n * Optional unique identifier for the graph\r\n */\r\n uniqueId?: string;\r\n /**\r\n * Contexts belonging to the flow graph\r\n */\r\n executionContexts: ISerializedFlowGraphContext[];\r\n /**\r\n * Blocks belonging to the flow graph\r\n */\r\n allBlocks: ISerializedFlowGraphBlock[];\r\n\r\n /**\r\n * Is the flow graph in RHS mode?\r\n */\r\n rightHanded?: boolean;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../../../../dev/core/src/FlowGraph/typeDefinitions.ts"],"names":[],"mappings":"","sourcesContent":["import { type IAnimatable } from \"core/Animations/animatable.interface\";\r\nimport { type Animation } from \"core/Animations/animation\";\r\nimport { type FlowGraphConnectionType } from \"./flowGraphConnection\";\r\n\r\n/**\r\n * Interpolation generator\r\n */\r\nexport interface IInterpolationPropertyInfo {\r\n /**\r\n * type of the interpolation\r\n */\r\n type: number;\r\n /**\r\n * The name of the property\r\n */\r\n name: string;\r\n /** @internal */\r\n getValue: (target: any, source: Float32Array, offset: number, scale: number) => any;\r\n /** @internal */\r\n getStride: (target: any) => number;\r\n /**\r\n * @internal\r\n */\r\n buildAnimations(target: any, name: string, fps: number, keys: any[]): { babylonAnimatable: IAnimatable; babylonAnimation: Animation }[];\r\n}\r\n\r\n/**\r\n * An accessor that allows modifying properties on some other object.\r\n */\r\nexport interface IObjectAccessor<GLTFTargetType = any, BabylonTargetType = any, BabylonValueType = any> {\r\n /**\r\n * The number of components that are changed in the property when setting this value.\r\n * This will usually be 1. But, for example, Babylon has both orthoLeft and orthoRight (two components) properties that are changed when setting xmag (single value in glTF).\r\n * Defaults to 1 if not provided!\r\n */\r\n componentsCount?: number;\r\n /**\r\n * The (babylon) type of the property.\r\n */\r\n type: string;\r\n /**\r\n * Get the value of the property.\r\n */\r\n get: (target: GLTFTargetType, index?: number, payload?: any) => BabylonValueType | undefined;\r\n /**\r\n * Get the target of the property.\r\n */\r\n getTarget: (target: GLTFTargetType, index?: number, payload?: any) => BabylonTargetType | undefined;\r\n /**\r\n * is the property readonly?\r\n */\r\n isReadOnly?: boolean;\r\n /**\r\n * @deprecated Use get instead\r\n */\r\n getPropertyName?: Array<(target: GLTFTargetType, index?: number) => string>;\r\n /**\r\n * Set a new value to the property.\r\n * @param newValue the new value to set\r\n * @param target the target object\r\n * @param index the index of the target object in the array (optional)\r\n */\r\n set?: (newValue: BabylonValueType, target: GLTFTargetType, index?: number, payload?: any) => void;\r\n /**\r\n * Interpolation/animation information for the property.\r\n * This is an array that can be used to animate the value over time.\r\n */\r\n interpolation?: IInterpolationPropertyInfo[];\r\n}\r\n\r\n/**\r\n * A Serialized Flow Graph Context\r\n */\r\nexport interface ISerializedFlowGraphContext {\r\n /**\r\n * The unique id of the context\r\n */\r\n uniqueId: string;\r\n /**\r\n * An optional user-facing name for the context\r\n */\r\n name?: string;\r\n /**\r\n * User variables\r\n */\r\n _userVariables: { [key: string]: any };\r\n /**\r\n * Optional type annotations for user variables.\r\n * Keys are variable names; values are type name strings.\r\n */\r\n _variableTypes?: { [key: string]: string };\r\n /**\r\n * Values of the connection points\r\n */\r\n _connectionValues: { [key: string]: any };\r\n\r\n /**\r\n * Assets context, if not the scene\r\n */\r\n _assetsContext?: { [key: string]: any };\r\n\r\n /**\r\n * Should logging be enabled?\r\n */\r\n enableLogging?: boolean;\r\n}\r\n\r\n/**\r\n * A Serialized Flow Graph Connection\r\n */\r\nexport interface ISerializedFlowGraphConnection {\r\n /**\r\n * The unique id of the connection\r\n */\r\n uniqueId: string;\r\n /**\r\n * The name of the connection\r\n */\r\n name: string;\r\n /**\r\n * The type of the connection\r\n */\r\n _connectionType: FlowGraphConnectionType;\r\n /**\r\n * The id of the connection that this is connected to\r\n */\r\n connectedPointIds: string[];\r\n /**\r\n * Optional host-format metadata associated with this connection.\r\n */\r\n metadata?: any;\r\n /**\r\n * The serialized default value of a data connection (set by the user for\r\n * unconnected inputs). Only present on data connections.\r\n */\r\n defaultValue?: any;\r\n}\r\n\r\n/**\r\n * A Serialized Flow Graph Block\r\n */\r\nexport interface ISerializedFlowGraphBlock {\r\n /**\r\n * The class name of the block\r\n */\r\n className: string;\r\n /**\r\n * The glTF type of the block\r\n */\r\n type: string;\r\n /**\r\n * Configuration parameters for the block\r\n */\r\n config: any;\r\n /**\r\n * The unique id of the block\r\n */\r\n uniqueId: string;\r\n /**\r\n * Input connection data\r\n */\r\n dataInputs: ISerializedFlowGraphConnection[];\r\n /**\r\n * Output connection data\r\n */\r\n dataOutputs: ISerializedFlowGraphConnection[];\r\n /**\r\n * Metadata for the block\r\n */\r\n metadata: any;\r\n /**\r\n * Input connection signal\r\n */\r\n signalInputs: ISerializedFlowGraphConnection[];\r\n /**\r\n * Output connection signal\r\n */\r\n signalOutputs: ISerializedFlowGraphConnection[];\r\n}\r\n\r\n/**\r\n * A Serialized Flow Graph\r\n */\r\nexport interface ISerializedFlowGraph {\r\n /**\r\n * Optional human-readable name for the graph\r\n */\r\n name?: string;\r\n /**\r\n * Optional unique identifier for the graph\r\n */\r\n uniqueId?: string;\r\n /**\r\n * Optional host-format metadata associated with the graph.\r\n */\r\n metadata?: any;\r\n /**\r\n * Contexts belonging to the flow graph\r\n */\r\n executionContexts: ISerializedFlowGraphContext[];\r\n /**\r\n * Blocks belonging to the flow graph\r\n */\r\n allBlocks: ISerializedFlowGraphBlock[];\r\n\r\n /**\r\n * Is the flow graph in RHS mode?\r\n */\r\n rightHanded?: boolean;\r\n}\r\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-exports the pure implementation and applies runtime side effects.
|
|
3
|
+
* Import meshBlendingPostProcessBlock.pure for tree-shakeable, side-effect-free usage.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./meshBlendingPostProcessBlock.pure.js";
|
|
6
|
+
import { RegisterMeshBlendingPostProcessBlock } from "./meshBlendingPostProcessBlock.pure.js";
|
|
7
|
+
RegisterMeshBlendingPostProcessBlock();
|
|
8
|
+
//# sourceMappingURL=meshBlendingPostProcessBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meshBlendingPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qCAAqC,CAAC;AAEpD,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,oCAAoC,EAAE,CAAC","sourcesContent":["/**\r\n * Re-exports the pure implementation and applies runtime side effects.\r\n * Import meshBlendingPostProcessBlock.pure for tree-shakeable, side-effect-free usage.\r\n */\r\nexport * from \"./meshBlendingPostProcessBlock.pure\";\r\n\r\nimport { RegisterMeshBlendingPostProcessBlock } from \"./meshBlendingPostProcessBlock.pure\";\r\nRegisterMeshBlendingPostProcessBlock();\r\n"]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/** This file must only contain pure code and pure imports */
|
|
2
|
+
import { FrameGraphMeshBlendingTask } from "../../../Tasks/PostProcesses/meshBlendingTask.js";
|
|
3
|
+
import { type FrameGraph } from "../../../frameGraph.js";
|
|
4
|
+
import { MeshBlendDebugMode, MeshBlendQuality } from "../../../../PostProcesses/thinMeshBlendingPostProcess.js";
|
|
5
|
+
import { type Scene } from "../../../../scene.pure.js";
|
|
6
|
+
import { type NodeRenderGraphBuildState } from "../../nodeRenderGraphBuildState.js";
|
|
7
|
+
import { type NodeRenderGraphConnectionPoint } from "../../nodeRenderGraphBlockConnectionPoint.js";
|
|
8
|
+
import { NodeRenderGraphBasePostProcessBlock } from "./basePostProcessBlock.js";
|
|
9
|
+
/**
|
|
10
|
+
* Block that blends colors across seams between objects.
|
|
11
|
+
*/
|
|
12
|
+
export declare class NodeRenderGraphMeshBlendingPostProcessBlock extends NodeRenderGraphBasePostProcessBlock {
|
|
13
|
+
protected _frameGraphTask: FrameGraphMeshBlendingTask;
|
|
14
|
+
/**
|
|
15
|
+
* Gets the frame graph task associated with this block.
|
|
16
|
+
*/
|
|
17
|
+
get task(): FrameGraphMeshBlendingTask;
|
|
18
|
+
private _setRadiusValue;
|
|
19
|
+
/** Mesh blending always uses exact texel loads from SceneColor. */
|
|
20
|
+
get sourceSamplingMode(): number;
|
|
21
|
+
set sourceSamplingMode(_value: number);
|
|
22
|
+
/**
|
|
23
|
+
* Creates a mesh-blending post-process block.
|
|
24
|
+
* @param name The block name.
|
|
25
|
+
* @param frameGraph The hosting frame graph.
|
|
26
|
+
* @param scene The hosting scene.
|
|
27
|
+
*/
|
|
28
|
+
constructor(name: string, frameGraph: FrameGraph, scene: Scene);
|
|
29
|
+
/** Gets or sets the compile-time mesh-blending quality variant. */
|
|
30
|
+
get quality(): MeshBlendQuality;
|
|
31
|
+
set quality(value: MeshBlendQuality);
|
|
32
|
+
/** Gets or sets the small-class authored world radius. */
|
|
33
|
+
get smallWorldRadius(): number;
|
|
34
|
+
set smallWorldRadius(value: number);
|
|
35
|
+
/** Gets or sets the small-class minimum projected radius in physical pixels. */
|
|
36
|
+
get smallMinimumProjectedRadius(): number;
|
|
37
|
+
set smallMinimumProjectedRadius(value: number);
|
|
38
|
+
/** Gets or sets the medium-class authored world radius. */
|
|
39
|
+
get mediumWorldRadius(): number;
|
|
40
|
+
set mediumWorldRadius(value: number);
|
|
41
|
+
/** Gets or sets the medium-class minimum projected radius in physical pixels. */
|
|
42
|
+
get mediumMinimumProjectedRadius(): number;
|
|
43
|
+
set mediumMinimumProjectedRadius(value: number);
|
|
44
|
+
/** Gets or sets the large-class authored world radius. */
|
|
45
|
+
get largeWorldRadius(): number;
|
|
46
|
+
set largeWorldRadius(value: number);
|
|
47
|
+
/** Gets or sets the large-class minimum projected radius in physical pixels. */
|
|
48
|
+
get largeMinimumProjectedRadius(): number;
|
|
49
|
+
set largeMinimumProjectedRadius(value: number);
|
|
50
|
+
/** Gets or sets the extra-large-class authored world radius. */
|
|
51
|
+
get extraLargeWorldRadius(): number;
|
|
52
|
+
set extraLargeWorldRadius(value: number);
|
|
53
|
+
/** Gets or sets the extra-large-class minimum projected radius in physical pixels. */
|
|
54
|
+
get extraLargeMinimumProjectedRadius(): number;
|
|
55
|
+
set extraLargeMinimumProjectedRadius(value: number);
|
|
56
|
+
/** Gets or sets the contact-slope narrowing factor. A value of 1 disables narrowing. */
|
|
57
|
+
get slopeFactor(): number;
|
|
58
|
+
set slopeFactor(value: number);
|
|
59
|
+
/** Gets or sets the compiled debug visualization. */
|
|
60
|
+
get debugMode(): MeshBlendDebugMode;
|
|
61
|
+
set debugMode(value: MeshBlendDebugMode);
|
|
62
|
+
/**
|
|
63
|
+
* Gets the camera used for world-radius projection and depth reconstruction.
|
|
64
|
+
*/
|
|
65
|
+
get camera(): NodeRenderGraphConnectionPoint;
|
|
66
|
+
/**
|
|
67
|
+
* Gets the view-depth or screen-depth input.
|
|
68
|
+
*/
|
|
69
|
+
get geomDepth(): NodeRenderGraphConnectionPoint;
|
|
70
|
+
/**
|
|
71
|
+
* Gets the optional linear geometry base-color/albedo input used for shadow estimation.
|
|
72
|
+
*/
|
|
73
|
+
get geomAlbedo(): NodeRenderGraphConnectionPoint;
|
|
74
|
+
/**
|
|
75
|
+
* Gets the packed mesh-blending tag input.
|
|
76
|
+
*/
|
|
77
|
+
get geomMeshBlendTag(): NodeRenderGraphConnectionPoint;
|
|
78
|
+
getClassName(): string;
|
|
79
|
+
protected _buildBlock(state: NodeRenderGraphBuildState): void;
|
|
80
|
+
protected _dumpPropertiesCode(): string;
|
|
81
|
+
serialize(): any;
|
|
82
|
+
_deserialize(serializationObject: any): void;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Registers the mesh-blending post-process block.
|
|
86
|
+
*/
|
|
87
|
+
export declare function RegisterMeshBlendingPostProcessBlock(): void;
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/** This file must only contain pure code and pure imports */
|
|
2
|
+
import { __esDecorate, __runInitializers } from "../../../../tslib.es6.js";
|
|
3
|
+
import { editableInPropertyPage } from "../../../../Decorators/nodeDecorator.js";
|
|
4
|
+
import { FrameGraphMeshBlendingTask } from "../../../Tasks/PostProcesses/meshBlendingTask.js";
|
|
5
|
+
import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
6
|
+
import { CreateDefaultMeshBlendRadiusDefinitions, MeshBlendDebugMode, MeshBlendDepthType, MeshBlendQuality, ThinMeshBlendingPostProcess, } from "../../../../PostProcesses/thinMeshBlendingPostProcess.js";
|
|
7
|
+
import { NodeRenderGraphBlockConnectionPointTypes } from "../../Types/nodeRenderGraphTypes.js";
|
|
8
|
+
import { NodeRenderGraphBasePostProcessBlock } from "./basePostProcessBlock.js";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Block that blends colors across seams between objects.
|
|
12
|
+
*/
|
|
13
|
+
let NodeRenderGraphMeshBlendingPostProcessBlock = (() => {
|
|
14
|
+
var _a;
|
|
15
|
+
let _classSuper = NodeRenderGraphBasePostProcessBlock;
|
|
16
|
+
let _instanceExtraInitializers = [];
|
|
17
|
+
let _get_quality_decorators;
|
|
18
|
+
let _get_smallWorldRadius_decorators;
|
|
19
|
+
let _get_smallMinimumProjectedRadius_decorators;
|
|
20
|
+
let _get_mediumWorldRadius_decorators;
|
|
21
|
+
let _get_mediumMinimumProjectedRadius_decorators;
|
|
22
|
+
let _get_largeWorldRadius_decorators;
|
|
23
|
+
let _get_largeMinimumProjectedRadius_decorators;
|
|
24
|
+
let _get_extraLargeWorldRadius_decorators;
|
|
25
|
+
let _get_extraLargeMinimumProjectedRadius_decorators;
|
|
26
|
+
let _get_slopeFactor_decorators;
|
|
27
|
+
let _get_debugMode_decorators;
|
|
28
|
+
return _a = class NodeRenderGraphMeshBlendingPostProcessBlock extends _classSuper {
|
|
29
|
+
/**
|
|
30
|
+
* Gets the frame graph task associated with this block.
|
|
31
|
+
*/
|
|
32
|
+
get task() {
|
|
33
|
+
return this._frameGraphTask;
|
|
34
|
+
}
|
|
35
|
+
_setRadiusValue(radiusClass, property, value) {
|
|
36
|
+
const radiusClasses = this._frameGraphTask.postProcess.radiusClasses.map((definition) => ({ ...definition }));
|
|
37
|
+
radiusClasses[radiusClass][property] = value;
|
|
38
|
+
this._frameGraphTask.configure({ radiusClasses });
|
|
39
|
+
}
|
|
40
|
+
/** Mesh blending always uses exact texel loads from SceneColor. */
|
|
41
|
+
get sourceSamplingMode() {
|
|
42
|
+
return 1;
|
|
43
|
+
}
|
|
44
|
+
set sourceSamplingMode(_value) {
|
|
45
|
+
if (this._frameGraphTask) {
|
|
46
|
+
this._frameGraphTask.sourceSamplingMode = 1;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Creates a mesh-blending post-process block.
|
|
51
|
+
* @param name The block name.
|
|
52
|
+
* @param frameGraph The hosting frame graph.
|
|
53
|
+
* @param scene The hosting scene.
|
|
54
|
+
*/
|
|
55
|
+
constructor(name, frameGraph, scene) {
|
|
56
|
+
super(name, frameGraph, scene);
|
|
57
|
+
this._frameGraphTask = __runInitializers(this, _instanceExtraInitializers);
|
|
58
|
+
this.registerInput("camera", NodeRenderGraphBlockConnectionPointTypes.Camera);
|
|
59
|
+
this.registerInput("geomDepth", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);
|
|
60
|
+
this.registerInput("geomAlbedo", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo, true);
|
|
61
|
+
this.registerInput("geomMeshBlendTag", NodeRenderGraphBlockConnectionPointTypes.TextureMeshBlendTag);
|
|
62
|
+
this.geomDepth.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth | NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);
|
|
63
|
+
this._finalizeInputOutputRegistering();
|
|
64
|
+
this._frameGraphTask = new FrameGraphMeshBlendingTask(this.name, frameGraph, new ThinMeshBlendingPostProcess(name, scene.getEngine()));
|
|
65
|
+
}
|
|
66
|
+
/** Gets or sets the compile-time mesh-blending quality variant. */
|
|
67
|
+
get quality() {
|
|
68
|
+
return this._frameGraphTask.quality;
|
|
69
|
+
}
|
|
70
|
+
set quality(value) {
|
|
71
|
+
this._frameGraphTask.quality = value;
|
|
72
|
+
}
|
|
73
|
+
/** Gets or sets the small-class authored world radius. */
|
|
74
|
+
get smallWorldRadius() {
|
|
75
|
+
return this._frameGraphTask.postProcess.radiusClasses[0].worldRadius;
|
|
76
|
+
}
|
|
77
|
+
set smallWorldRadius(value) {
|
|
78
|
+
this._setRadiusValue(0, "worldRadius", value);
|
|
79
|
+
}
|
|
80
|
+
/** Gets or sets the small-class minimum projected radius in physical pixels. */
|
|
81
|
+
get smallMinimumProjectedRadius() {
|
|
82
|
+
return this._frameGraphTask.postProcess.radiusClasses[0].minimumProjectedRadius;
|
|
83
|
+
}
|
|
84
|
+
set smallMinimumProjectedRadius(value) {
|
|
85
|
+
this._setRadiusValue(0, "minimumProjectedRadius", value);
|
|
86
|
+
}
|
|
87
|
+
/** Gets or sets the medium-class authored world radius. */
|
|
88
|
+
get mediumWorldRadius() {
|
|
89
|
+
return this._frameGraphTask.postProcess.radiusClasses[1].worldRadius;
|
|
90
|
+
}
|
|
91
|
+
set mediumWorldRadius(value) {
|
|
92
|
+
this._setRadiusValue(1, "worldRadius", value);
|
|
93
|
+
}
|
|
94
|
+
/** Gets or sets the medium-class minimum projected radius in physical pixels. */
|
|
95
|
+
get mediumMinimumProjectedRadius() {
|
|
96
|
+
return this._frameGraphTask.postProcess.radiusClasses[1].minimumProjectedRadius;
|
|
97
|
+
}
|
|
98
|
+
set mediumMinimumProjectedRadius(value) {
|
|
99
|
+
this._setRadiusValue(1, "minimumProjectedRadius", value);
|
|
100
|
+
}
|
|
101
|
+
/** Gets or sets the large-class authored world radius. */
|
|
102
|
+
get largeWorldRadius() {
|
|
103
|
+
return this._frameGraphTask.postProcess.radiusClasses[2].worldRadius;
|
|
104
|
+
}
|
|
105
|
+
set largeWorldRadius(value) {
|
|
106
|
+
this._setRadiusValue(2, "worldRadius", value);
|
|
107
|
+
}
|
|
108
|
+
/** Gets or sets the large-class minimum projected radius in physical pixels. */
|
|
109
|
+
get largeMinimumProjectedRadius() {
|
|
110
|
+
return this._frameGraphTask.postProcess.radiusClasses[2].minimumProjectedRadius;
|
|
111
|
+
}
|
|
112
|
+
set largeMinimumProjectedRadius(value) {
|
|
113
|
+
this._setRadiusValue(2, "minimumProjectedRadius", value);
|
|
114
|
+
}
|
|
115
|
+
/** Gets or sets the extra-large-class authored world radius. */
|
|
116
|
+
get extraLargeWorldRadius() {
|
|
117
|
+
return this._frameGraphTask.postProcess.radiusClasses[3].worldRadius;
|
|
118
|
+
}
|
|
119
|
+
set extraLargeWorldRadius(value) {
|
|
120
|
+
this._setRadiusValue(3, "worldRadius", value);
|
|
121
|
+
}
|
|
122
|
+
/** Gets or sets the extra-large-class minimum projected radius in physical pixels. */
|
|
123
|
+
get extraLargeMinimumProjectedRadius() {
|
|
124
|
+
return this._frameGraphTask.postProcess.radiusClasses[3].minimumProjectedRadius;
|
|
125
|
+
}
|
|
126
|
+
set extraLargeMinimumProjectedRadius(value) {
|
|
127
|
+
this._setRadiusValue(3, "minimumProjectedRadius", value);
|
|
128
|
+
}
|
|
129
|
+
/** Gets or sets the contact-slope narrowing factor. A value of 1 disables narrowing. */
|
|
130
|
+
get slopeFactor() {
|
|
131
|
+
return this._frameGraphTask.postProcess.slopeFactor;
|
|
132
|
+
}
|
|
133
|
+
set slopeFactor(value) {
|
|
134
|
+
this._frameGraphTask.postProcess.slopeFactor = value;
|
|
135
|
+
}
|
|
136
|
+
/** Gets or sets the compiled debug visualization. */
|
|
137
|
+
get debugMode() {
|
|
138
|
+
return this._frameGraphTask.debugMode;
|
|
139
|
+
}
|
|
140
|
+
set debugMode(value) {
|
|
141
|
+
this._frameGraphTask.debugMode = value;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Gets the camera used for world-radius projection and depth reconstruction.
|
|
145
|
+
*/
|
|
146
|
+
get camera() {
|
|
147
|
+
return this._inputs[2];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Gets the view-depth or screen-depth input.
|
|
151
|
+
*/
|
|
152
|
+
get geomDepth() {
|
|
153
|
+
return this._inputs[3];
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Gets the optional linear geometry base-color/albedo input used for shadow estimation.
|
|
157
|
+
*/
|
|
158
|
+
get geomAlbedo() {
|
|
159
|
+
return this._inputs[4];
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Gets the packed mesh-blending tag input.
|
|
163
|
+
*/
|
|
164
|
+
get geomMeshBlendTag() {
|
|
165
|
+
return this._inputs[5];
|
|
166
|
+
}
|
|
167
|
+
getClassName() {
|
|
168
|
+
return "NodeRenderGraphMeshBlendingPostProcessBlock";
|
|
169
|
+
}
|
|
170
|
+
_buildBlock(state) {
|
|
171
|
+
super._buildBlock(state);
|
|
172
|
+
this._frameGraphTask.camera = this.camera.connectedPoint?.value;
|
|
173
|
+
this._frameGraphTask.depthTexture = this.geomDepth.connectedPoint?.value;
|
|
174
|
+
this._frameGraphTask.depthType =
|
|
175
|
+
this.geomDepth.connectedPoint?.type === NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth ? MeshBlendDepthType.Screen : MeshBlendDepthType.View;
|
|
176
|
+
this._frameGraphTask.baseColorTexture = this.geomAlbedo.connectedPoint?.value;
|
|
177
|
+
this._frameGraphTask.meshBlendTagTexture = this.geomMeshBlendTag.connectedPoint?.value;
|
|
178
|
+
}
|
|
179
|
+
_dumpPropertiesCode() {
|
|
180
|
+
const codes = [];
|
|
181
|
+
codes.push(`${this._codeVariableName}.quality = ${this.quality};`);
|
|
182
|
+
codes.push(`${this._codeVariableName}.smallWorldRadius = ${this.smallWorldRadius};`);
|
|
183
|
+
codes.push(`${this._codeVariableName}.smallMinimumProjectedRadius = ${this.smallMinimumProjectedRadius};`);
|
|
184
|
+
codes.push(`${this._codeVariableName}.mediumWorldRadius = ${this.mediumWorldRadius};`);
|
|
185
|
+
codes.push(`${this._codeVariableName}.mediumMinimumProjectedRadius = ${this.mediumMinimumProjectedRadius};`);
|
|
186
|
+
codes.push(`${this._codeVariableName}.largeWorldRadius = ${this.largeWorldRadius};`);
|
|
187
|
+
codes.push(`${this._codeVariableName}.largeMinimumProjectedRadius = ${this.largeMinimumProjectedRadius};`);
|
|
188
|
+
codes.push(`${this._codeVariableName}.extraLargeWorldRadius = ${this.extraLargeWorldRadius};`);
|
|
189
|
+
codes.push(`${this._codeVariableName}.extraLargeMinimumProjectedRadius = ${this.extraLargeMinimumProjectedRadius};`);
|
|
190
|
+
codes.push(`${this._codeVariableName}.slopeFactor = ${this.slopeFactor};`);
|
|
191
|
+
codes.push(`${this._codeVariableName}.debugMode = ${this.debugMode};`);
|
|
192
|
+
return super._dumpPropertiesCode() + codes.join("\n");
|
|
193
|
+
}
|
|
194
|
+
serialize() {
|
|
195
|
+
const serializationObject = super.serialize();
|
|
196
|
+
serializationObject.quality = this.quality;
|
|
197
|
+
serializationObject.radiusClasses = this._frameGraphTask.postProcess.radiusClasses.map((definition) => ({ ...definition }));
|
|
198
|
+
serializationObject.slopeFactor = this.slopeFactor;
|
|
199
|
+
serializationObject.debugMode = this.debugMode;
|
|
200
|
+
return serializationObject;
|
|
201
|
+
}
|
|
202
|
+
_deserialize(serializationObject) {
|
|
203
|
+
super._deserialize(serializationObject);
|
|
204
|
+
const defaults = CreateDefaultMeshBlendRadiusDefinitions();
|
|
205
|
+
const radiusClasses = serializationObject.radiusClasses ?? defaults;
|
|
206
|
+
const resolvedRadiusClasses = [
|
|
207
|
+
{
|
|
208
|
+
worldRadius: radiusClasses[0]?.worldRadius ?? defaults[0].worldRadius,
|
|
209
|
+
minimumProjectedRadius: radiusClasses[0]?.minimumProjectedRadius ?? defaults[0].minimumProjectedRadius,
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
worldRadius: radiusClasses[1]?.worldRadius ?? defaults[1].worldRadius,
|
|
213
|
+
minimumProjectedRadius: radiusClasses[1]?.minimumProjectedRadius ?? defaults[1].minimumProjectedRadius,
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
worldRadius: radiusClasses[2]?.worldRadius ?? defaults[2].worldRadius,
|
|
217
|
+
minimumProjectedRadius: radiusClasses[2]?.minimumProjectedRadius ?? defaults[2].minimumProjectedRadius,
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
worldRadius: radiusClasses[3]?.worldRadius ?? defaults[3].worldRadius,
|
|
221
|
+
minimumProjectedRadius: radiusClasses[3]?.minimumProjectedRadius ?? defaults[3].minimumProjectedRadius,
|
|
222
|
+
},
|
|
223
|
+
];
|
|
224
|
+
this._frameGraphTask.configure({
|
|
225
|
+
quality: serializationObject.quality ?? MeshBlendQuality.Medium,
|
|
226
|
+
radiusClasses: resolvedRadiusClasses,
|
|
227
|
+
slopeFactor: serializationObject.slopeFactor ?? 2,
|
|
228
|
+
debugMode: serializationObject.debugMode ?? MeshBlendDebugMode.Off,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
(() => {
|
|
233
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
234
|
+
_get_quality_decorators = [editableInPropertyPage("Quality", 5 /* PropertyTypeForEdition.List */, "MESH BLENDING", {
|
|
235
|
+
options: [
|
|
236
|
+
{ label: "Low", value: MeshBlendQuality.Low },
|
|
237
|
+
{ label: "Medium", value: MeshBlendQuality.Medium },
|
|
238
|
+
{ label: "High", value: MeshBlendQuality.High },
|
|
239
|
+
{ label: "Cinematic", value: MeshBlendQuality.Cinematic },
|
|
240
|
+
],
|
|
241
|
+
})];
|
|
242
|
+
_get_smallWorldRadius_decorators = [editableInPropertyPage("Small world radius", 1 /* PropertyTypeForEdition.Float */, "RADIUS CLASSES", { min: 0 })];
|
|
243
|
+
_get_smallMinimumProjectedRadius_decorators = [editableInPropertyPage("Small minimum pixels", 1 /* PropertyTypeForEdition.Float */, "RADIUS CLASSES", { min: 0 })];
|
|
244
|
+
_get_mediumWorldRadius_decorators = [editableInPropertyPage("Medium world radius", 1 /* PropertyTypeForEdition.Float */, "RADIUS CLASSES", { min: 0 })];
|
|
245
|
+
_get_mediumMinimumProjectedRadius_decorators = [editableInPropertyPage("Medium minimum pixels", 1 /* PropertyTypeForEdition.Float */, "RADIUS CLASSES", { min: 0 })];
|
|
246
|
+
_get_largeWorldRadius_decorators = [editableInPropertyPage("Large world radius", 1 /* PropertyTypeForEdition.Float */, "RADIUS CLASSES", { min: 0 })];
|
|
247
|
+
_get_largeMinimumProjectedRadius_decorators = [editableInPropertyPage("Large minimum pixels", 1 /* PropertyTypeForEdition.Float */, "RADIUS CLASSES", { min: 0 })];
|
|
248
|
+
_get_extraLargeWorldRadius_decorators = [editableInPropertyPage("Extra large world radius", 1 /* PropertyTypeForEdition.Float */, "RADIUS CLASSES", { min: 0 })];
|
|
249
|
+
_get_extraLargeMinimumProjectedRadius_decorators = [editableInPropertyPage("Extra large minimum pixels", 1 /* PropertyTypeForEdition.Float */, "RADIUS CLASSES", { min: 0 })];
|
|
250
|
+
_get_slopeFactor_decorators = [editableInPropertyPage("Slope factor", 1 /* PropertyTypeForEdition.Float */, "CONTACT VALIDATION", { min: 1 })];
|
|
251
|
+
_get_debugMode_decorators = [editableInPropertyPage("Debug mode", 5 /* PropertyTypeForEdition.List */, "DEBUG", {
|
|
252
|
+
options: [
|
|
253
|
+
{ label: "Off", value: MeshBlendDebugMode.Off },
|
|
254
|
+
{ label: "Packed tag", value: MeshBlendDebugMode.PackedTag },
|
|
255
|
+
{ label: "Candidate direction / distance", value: MeshBlendDebugMode.CandidateDirectionDistance },
|
|
256
|
+
{ label: "Seam / fade", value: MeshBlendDebugMode.SeamFade },
|
|
257
|
+
{ label: "Rejection reason", value: MeshBlendDebugMode.RejectionReason },
|
|
258
|
+
{ label: "Approximate stage / work", value: MeshBlendDebugMode.StageWork },
|
|
259
|
+
{ label: "Target continuation", value: MeshBlendDebugMode.Continuation },
|
|
260
|
+
{ label: "Tiny-object radius", value: MeshBlendDebugMode.TinyObject },
|
|
261
|
+
{ label: "Multi-target selection", value: MeshBlendDebugMode.MultiTarget },
|
|
262
|
+
{ label: "Target-color samples", value: MeshBlendDebugMode.TargetColor },
|
|
263
|
+
{ label: "Shadow attenuation", value: MeshBlendDebugMode.ShadowAttenuation },
|
|
264
|
+
{ label: "Color interpolation", value: MeshBlendDebugMode.ColorInterpolation },
|
|
265
|
+
{ label: "World position", value: MeshBlendDebugMode.WorldPosition },
|
|
266
|
+
],
|
|
267
|
+
})];
|
|
268
|
+
__esDecorate(_a, null, _get_quality_decorators, { kind: "getter", name: "quality", static: false, private: false, access: { has: obj => "quality" in obj, get: obj => obj.quality }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
269
|
+
__esDecorate(_a, null, _get_smallWorldRadius_decorators, { kind: "getter", name: "smallWorldRadius", static: false, private: false, access: { has: obj => "smallWorldRadius" in obj, get: obj => obj.smallWorldRadius }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
270
|
+
__esDecorate(_a, null, _get_smallMinimumProjectedRadius_decorators, { kind: "getter", name: "smallMinimumProjectedRadius", static: false, private: false, access: { has: obj => "smallMinimumProjectedRadius" in obj, get: obj => obj.smallMinimumProjectedRadius }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
271
|
+
__esDecorate(_a, null, _get_mediumWorldRadius_decorators, { kind: "getter", name: "mediumWorldRadius", static: false, private: false, access: { has: obj => "mediumWorldRadius" in obj, get: obj => obj.mediumWorldRadius }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
272
|
+
__esDecorate(_a, null, _get_mediumMinimumProjectedRadius_decorators, { kind: "getter", name: "mediumMinimumProjectedRadius", static: false, private: false, access: { has: obj => "mediumMinimumProjectedRadius" in obj, get: obj => obj.mediumMinimumProjectedRadius }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
273
|
+
__esDecorate(_a, null, _get_largeWorldRadius_decorators, { kind: "getter", name: "largeWorldRadius", static: false, private: false, access: { has: obj => "largeWorldRadius" in obj, get: obj => obj.largeWorldRadius }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
274
|
+
__esDecorate(_a, null, _get_largeMinimumProjectedRadius_decorators, { kind: "getter", name: "largeMinimumProjectedRadius", static: false, private: false, access: { has: obj => "largeMinimumProjectedRadius" in obj, get: obj => obj.largeMinimumProjectedRadius }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
275
|
+
__esDecorate(_a, null, _get_extraLargeWorldRadius_decorators, { kind: "getter", name: "extraLargeWorldRadius", static: false, private: false, access: { has: obj => "extraLargeWorldRadius" in obj, get: obj => obj.extraLargeWorldRadius }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
276
|
+
__esDecorate(_a, null, _get_extraLargeMinimumProjectedRadius_decorators, { kind: "getter", name: "extraLargeMinimumProjectedRadius", static: false, private: false, access: { has: obj => "extraLargeMinimumProjectedRadius" in obj, get: obj => obj.extraLargeMinimumProjectedRadius }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
277
|
+
__esDecorate(_a, null, _get_slopeFactor_decorators, { kind: "getter", name: "slopeFactor", static: false, private: false, access: { has: obj => "slopeFactor" in obj, get: obj => obj.slopeFactor }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
278
|
+
__esDecorate(_a, null, _get_debugMode_decorators, { kind: "getter", name: "debugMode", static: false, private: false, access: { has: obj => "debugMode" in obj, get: obj => obj.debugMode }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
279
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
280
|
+
})(),
|
|
281
|
+
_a;
|
|
282
|
+
})();
|
|
283
|
+
export { NodeRenderGraphMeshBlendingPostProcessBlock };
|
|
284
|
+
let _Registered = false;
|
|
285
|
+
/**
|
|
286
|
+
* Registers the mesh-blending post-process block.
|
|
287
|
+
*/
|
|
288
|
+
export function RegisterMeshBlendingPostProcessBlock() {
|
|
289
|
+
if (_Registered) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
_Registered = true;
|
|
293
|
+
RegisterClass("BABYLON.NodeRenderGraphMeshBlendingPostProcessBlock", NodeRenderGraphMeshBlendingPostProcessBlock);
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=meshBlendingPostProcessBlock.pure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meshBlendingPostProcessBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphMeshBlendingTask } from \"../../../Tasks/PostProcesses/meshBlendingTask\";\r\nimport { type FrameGraph } from \"../../../frameGraph\";\r\nimport { type FrameGraphTextureHandle } from \"../../../frameGraphTypes\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport {\r\n CreateDefaultMeshBlendRadiusDefinitions,\r\n MeshBlendDebugMode,\r\n MeshBlendDepthType,\r\n MeshBlendQuality,\r\n ThinMeshBlendingPostProcess,\r\n} from \"../../../../PostProcesses/thinMeshBlendingPostProcess\";\r\nimport { type Scene } from \"../../../../scene.pure\";\r\nimport { type Camera } from \"../../../../Cameras/camera.pure\";\r\nimport { type NodeRenderGraphBuildState } from \"../../nodeRenderGraphBuildState\";\r\nimport { type NodeRenderGraphConnectionPoint } from \"../../nodeRenderGraphBlockConnectionPoint\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { NodeRenderGraphBasePostProcessBlock } from \"./basePostProcessBlock\";\r\nimport { Constants } from \"../../../../Engines/constants\";\r\n\r\n/**\r\n * Block that blends colors across seams between objects.\r\n */\r\nexport class NodeRenderGraphMeshBlendingPostProcessBlock extends NodeRenderGraphBasePostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphMeshBlendingTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block.\r\n */\r\n public override get task(): FrameGraphMeshBlendingTask {\r\n return this._frameGraphTask;\r\n }\r\n\r\n private _setRadiusValue(radiusClass: number, property: \"worldRadius\" | \"minimumProjectedRadius\", value: number): void {\r\n const radiusClasses = this._frameGraphTask.postProcess.radiusClasses.map((definition) => ({ ...definition })) as [\r\n { worldRadius: number; minimumProjectedRadius: number },\r\n { worldRadius: number; minimumProjectedRadius: number },\r\n { worldRadius: number; minimumProjectedRadius: number },\r\n { worldRadius: number; minimumProjectedRadius: number },\r\n ];\r\n radiusClasses[radiusClass][property] = value;\r\n this._frameGraphTask.configure({ radiusClasses });\r\n }\r\n\r\n /** Mesh blending always uses exact texel loads from SceneColor. */\r\n public override get sourceSamplingMode(): number {\r\n return Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n }\r\n\r\n public override set sourceSamplingMode(_value: number) {\r\n if (this._frameGraphTask) {\r\n this._frameGraphTask.sourceSamplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n }\r\n }\r\n\r\n /**\r\n * Creates a mesh-blending post-process block.\r\n * @param name The block name.\r\n * @param frameGraph The hosting frame graph.\r\n * @param scene The hosting scene.\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"geomDepth\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo, true);\r\n this.registerInput(\"geomMeshBlendTag\", NodeRenderGraphBlockConnectionPointTypes.TextureMeshBlendTag);\r\n\r\n this.geomDepth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth | NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth\r\n );\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphMeshBlendingTask(this.name, frameGraph, new ThinMeshBlendingPostProcess(name, scene.getEngine()));\r\n }\r\n\r\n /** Gets or sets the compile-time mesh-blending quality variant. */\r\n @editableInPropertyPage(\"Quality\", PropertyTypeForEdition.List, \"MESH BLENDING\", {\r\n options: [\r\n { label: \"Low\", value: MeshBlendQuality.Low },\r\n { label: \"Medium\", value: MeshBlendQuality.Medium },\r\n { label: \"High\", value: MeshBlendQuality.High },\r\n { label: \"Cinematic\", value: MeshBlendQuality.Cinematic },\r\n ],\r\n })\r\n public get quality(): MeshBlendQuality {\r\n return this._frameGraphTask.quality;\r\n }\r\n\r\n public set quality(value: MeshBlendQuality) {\r\n this._frameGraphTask.quality = value;\r\n }\r\n\r\n /** Gets or sets the small-class authored world radius. */\r\n @editableInPropertyPage(\"Small world radius\", PropertyTypeForEdition.Float, \"RADIUS CLASSES\", { min: 0 })\r\n public get smallWorldRadius(): number {\r\n return this._frameGraphTask.postProcess.radiusClasses[0].worldRadius;\r\n }\r\n\r\n public set smallWorldRadius(value: number) {\r\n this._setRadiusValue(0, \"worldRadius\", value);\r\n }\r\n\r\n /** Gets or sets the small-class minimum projected radius in physical pixels. */\r\n @editableInPropertyPage(\"Small minimum pixels\", PropertyTypeForEdition.Float, \"RADIUS CLASSES\", { min: 0 })\r\n public get smallMinimumProjectedRadius(): number {\r\n return this._frameGraphTask.postProcess.radiusClasses[0].minimumProjectedRadius;\r\n }\r\n\r\n public set smallMinimumProjectedRadius(value: number) {\r\n this._setRadiusValue(0, \"minimumProjectedRadius\", value);\r\n }\r\n\r\n /** Gets or sets the medium-class authored world radius. */\r\n @editableInPropertyPage(\"Medium world radius\", PropertyTypeForEdition.Float, \"RADIUS CLASSES\", { min: 0 })\r\n public get mediumWorldRadius(): number {\r\n return this._frameGraphTask.postProcess.radiusClasses[1].worldRadius;\r\n }\r\n\r\n public set mediumWorldRadius(value: number) {\r\n this._setRadiusValue(1, \"worldRadius\", value);\r\n }\r\n\r\n /** Gets or sets the medium-class minimum projected radius in physical pixels. */\r\n @editableInPropertyPage(\"Medium minimum pixels\", PropertyTypeForEdition.Float, \"RADIUS CLASSES\", { min: 0 })\r\n public get mediumMinimumProjectedRadius(): number {\r\n return this._frameGraphTask.postProcess.radiusClasses[1].minimumProjectedRadius;\r\n }\r\n\r\n public set mediumMinimumProjectedRadius(value: number) {\r\n this._setRadiusValue(1, \"minimumProjectedRadius\", value);\r\n }\r\n\r\n /** Gets or sets the large-class authored world radius. */\r\n @editableInPropertyPage(\"Large world radius\", PropertyTypeForEdition.Float, \"RADIUS CLASSES\", { min: 0 })\r\n public get largeWorldRadius(): number {\r\n return this._frameGraphTask.postProcess.radiusClasses[2].worldRadius;\r\n }\r\n\r\n public set largeWorldRadius(value: number) {\r\n this._setRadiusValue(2, \"worldRadius\", value);\r\n }\r\n\r\n /** Gets or sets the large-class minimum projected radius in physical pixels. */\r\n @editableInPropertyPage(\"Large minimum pixels\", PropertyTypeForEdition.Float, \"RADIUS CLASSES\", { min: 0 })\r\n public get largeMinimumProjectedRadius(): number {\r\n return this._frameGraphTask.postProcess.radiusClasses[2].minimumProjectedRadius;\r\n }\r\n\r\n public set largeMinimumProjectedRadius(value: number) {\r\n this._setRadiusValue(2, \"minimumProjectedRadius\", value);\r\n }\r\n\r\n /** Gets or sets the extra-large-class authored world radius. */\r\n @editableInPropertyPage(\"Extra large world radius\", PropertyTypeForEdition.Float, \"RADIUS CLASSES\", { min: 0 })\r\n public get extraLargeWorldRadius(): number {\r\n return this._frameGraphTask.postProcess.radiusClasses[3].worldRadius;\r\n }\r\n\r\n public set extraLargeWorldRadius(value: number) {\r\n this._setRadiusValue(3, \"worldRadius\", value);\r\n }\r\n\r\n /** Gets or sets the extra-large-class minimum projected radius in physical pixels. */\r\n @editableInPropertyPage(\"Extra large minimum pixels\", PropertyTypeForEdition.Float, \"RADIUS CLASSES\", { min: 0 })\r\n public get extraLargeMinimumProjectedRadius(): number {\r\n return this._frameGraphTask.postProcess.radiusClasses[3].minimumProjectedRadius;\r\n }\r\n\r\n public set extraLargeMinimumProjectedRadius(value: number) {\r\n this._setRadiusValue(3, \"minimumProjectedRadius\", value);\r\n }\r\n\r\n /** Gets or sets the contact-slope narrowing factor. A value of 1 disables narrowing. */\r\n @editableInPropertyPage(\"Slope factor\", PropertyTypeForEdition.Float, \"CONTACT VALIDATION\", { min: 1 })\r\n public get slopeFactor(): number {\r\n return this._frameGraphTask.postProcess.slopeFactor;\r\n }\r\n\r\n public set slopeFactor(value: number) {\r\n this._frameGraphTask.postProcess.slopeFactor = value;\r\n }\r\n\r\n /** Gets or sets the compiled debug visualization. */\r\n @editableInPropertyPage(\"Debug mode\", PropertyTypeForEdition.List, \"DEBUG\", {\r\n options: [\r\n { label: \"Off\", value: MeshBlendDebugMode.Off },\r\n { label: \"Packed tag\", value: MeshBlendDebugMode.PackedTag },\r\n { label: \"Candidate direction / distance\", value: MeshBlendDebugMode.CandidateDirectionDistance },\r\n { label: \"Seam / fade\", value: MeshBlendDebugMode.SeamFade },\r\n { label: \"Rejection reason\", value: MeshBlendDebugMode.RejectionReason },\r\n { label: \"Approximate stage / work\", value: MeshBlendDebugMode.StageWork },\r\n { label: \"Target continuation\", value: MeshBlendDebugMode.Continuation },\r\n { label: \"Tiny-object radius\", value: MeshBlendDebugMode.TinyObject },\r\n { label: \"Multi-target selection\", value: MeshBlendDebugMode.MultiTarget },\r\n { label: \"Target-color samples\", value: MeshBlendDebugMode.TargetColor },\r\n { label: \"Shadow attenuation\", value: MeshBlendDebugMode.ShadowAttenuation },\r\n { label: \"Color interpolation\", value: MeshBlendDebugMode.ColorInterpolation },\r\n { label: \"World position\", value: MeshBlendDebugMode.WorldPosition },\r\n ],\r\n })\r\n public get debugMode(): MeshBlendDebugMode {\r\n return this._frameGraphTask.debugMode;\r\n }\r\n\r\n public set debugMode(value: MeshBlendDebugMode) {\r\n this._frameGraphTask.debugMode = value;\r\n }\r\n\r\n /**\r\n * Gets the camera used for world-radius projection and depth reconstruction.\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the view-depth or screen-depth input.\r\n */\r\n public get geomDepth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the optional linear geometry base-color/albedo input used for shadow estimation.\r\n */\r\n public get geomAlbedo(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the packed mesh-blending tag input.\r\n */\r\n public get geomMeshBlendTag(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"NodeRenderGraphMeshBlendingPostProcessBlock\";\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState): void {\r\n super._buildBlock(state);\r\n\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.depthTexture = this.geomDepth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.depthType =\r\n this.geomDepth.connectedPoint?.type === NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth ? MeshBlendDepthType.Screen : MeshBlendDepthType.View;\r\n this._frameGraphTask.baseColorTexture = this.geomAlbedo.connectedPoint?.value as FrameGraphTextureHandle | undefined;\r\n this._frameGraphTask.meshBlendTagTexture = this.geomMeshBlendTag.connectedPoint?.value as FrameGraphTextureHandle;\r\n }\r\n\r\n protected override _dumpPropertiesCode(): string {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.quality = ${this.quality};`);\r\n codes.push(`${this._codeVariableName}.smallWorldRadius = ${this.smallWorldRadius};`);\r\n codes.push(`${this._codeVariableName}.smallMinimumProjectedRadius = ${this.smallMinimumProjectedRadius};`);\r\n codes.push(`${this._codeVariableName}.mediumWorldRadius = ${this.mediumWorldRadius};`);\r\n codes.push(`${this._codeVariableName}.mediumMinimumProjectedRadius = ${this.mediumMinimumProjectedRadius};`);\r\n codes.push(`${this._codeVariableName}.largeWorldRadius = ${this.largeWorldRadius};`);\r\n codes.push(`${this._codeVariableName}.largeMinimumProjectedRadius = ${this.largeMinimumProjectedRadius};`);\r\n codes.push(`${this._codeVariableName}.extraLargeWorldRadius = ${this.extraLargeWorldRadius};`);\r\n codes.push(`${this._codeVariableName}.extraLargeMinimumProjectedRadius = ${this.extraLargeMinimumProjectedRadius};`);\r\n codes.push(`${this._codeVariableName}.slopeFactor = ${this.slopeFactor};`);\r\n codes.push(`${this._codeVariableName}.debugMode = ${this.debugMode};`);\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.quality = this.quality;\r\n serializationObject.radiusClasses = this._frameGraphTask.postProcess.radiusClasses.map((definition) => ({ ...definition }));\r\n serializationObject.slopeFactor = this.slopeFactor;\r\n serializationObject.debugMode = this.debugMode;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any): void {\r\n super._deserialize(serializationObject);\r\n const defaults = CreateDefaultMeshBlendRadiusDefinitions();\r\n const radiusClasses = serializationObject.radiusClasses ?? defaults;\r\n const resolvedRadiusClasses = [\r\n {\r\n worldRadius: radiusClasses[0]?.worldRadius ?? defaults[0].worldRadius,\r\n minimumProjectedRadius: radiusClasses[0]?.minimumProjectedRadius ?? defaults[0].minimumProjectedRadius,\r\n },\r\n {\r\n worldRadius: radiusClasses[1]?.worldRadius ?? defaults[1].worldRadius,\r\n minimumProjectedRadius: radiusClasses[1]?.minimumProjectedRadius ?? defaults[1].minimumProjectedRadius,\r\n },\r\n {\r\n worldRadius: radiusClasses[2]?.worldRadius ?? defaults[2].worldRadius,\r\n minimumProjectedRadius: radiusClasses[2]?.minimumProjectedRadius ?? defaults[2].minimumProjectedRadius,\r\n },\r\n {\r\n worldRadius: radiusClasses[3]?.worldRadius ?? defaults[3].worldRadius,\r\n minimumProjectedRadius: radiusClasses[3]?.minimumProjectedRadius ?? defaults[3].minimumProjectedRadius,\r\n },\r\n ] as const;\r\n\r\n this._frameGraphTask.configure({\r\n quality: serializationObject.quality ?? MeshBlendQuality.Medium,\r\n radiusClasses: resolvedRadiusClasses,\r\n slopeFactor: serializationObject.slopeFactor ?? 2,\r\n debugMode: serializationObject.debugMode ?? MeshBlendDebugMode.Off,\r\n });\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n\r\n/**\r\n * Registers the mesh-blending post-process block.\r\n */\r\nexport function RegisterMeshBlendingPostProcessBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.NodeRenderGraphMeshBlendingPostProcessBlock\", NodeRenderGraphMeshBlendingPostProcessBlock);\r\n}\r\n"]}
|
|
@@ -13,6 +13,7 @@ export * from "./filterPostProcessBlock.pure.js";
|
|
|
13
13
|
export * from "./fxaaPostProcessBlock.pure.js";
|
|
14
14
|
export * from "./grainPostProcessBlock.pure.js";
|
|
15
15
|
export * from "./imageProcessingPostProcessBlock.pure.js";
|
|
16
|
+
export * from "./meshBlendingPostProcessBlock.pure.js";
|
|
16
17
|
export * from "./motionBlurPostProcessBlock.pure.js";
|
|
17
18
|
export * from "./passPostProcessBlock.pure.js";
|
|
18
19
|
export * from "./screenSpaceCurvaturePostProcessBlock.pure.js";
|