@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
|
@@ -339,7 +339,8 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
339
339
|
private _splatSizeMin;
|
|
340
340
|
private _splatSizeMax;
|
|
341
341
|
private _sortIsDirty;
|
|
342
|
-
private
|
|
342
|
+
private _forcedSortPending;
|
|
343
|
+
protected _activeSplatRanges: Nullable<Uint32Array>;
|
|
343
344
|
private _activeSplatRangeKey;
|
|
344
345
|
private _activeSplatRenderCount;
|
|
345
346
|
protected _cachedBoundingMin: Nullable<Vector3>;
|
|
@@ -350,6 +351,10 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
350
351
|
private static _PlyConversionBatchSize;
|
|
351
352
|
/** @internal */
|
|
352
353
|
_shDegree: number;
|
|
354
|
+
/** Incremented whenever `_updateData` replaces the splat data, even when it reuses the same buffer. @internal */
|
|
355
|
+
_splatDataRevision: number;
|
|
356
|
+
/** True while `_updateData` is filling the atlas, so consumers keep the last complete data. @internal */
|
|
357
|
+
_splatDataPending: boolean;
|
|
353
358
|
protected _maxShDegree: number;
|
|
354
359
|
private static readonly _BatchSize;
|
|
355
360
|
private _cameraViewInfos;
|
|
@@ -394,6 +399,7 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
394
399
|
protected _disableDepthSort: boolean;
|
|
395
400
|
/**
|
|
396
401
|
* If true, disables depth sorting of the splats (default: false)
|
|
402
|
+
* Disabling sorting also discards deferred forced-sort requests.
|
|
397
403
|
*/
|
|
398
404
|
get disableDepthSort(): boolean;
|
|
399
405
|
set disableDepthSort(value: boolean);
|
|
@@ -430,7 +436,8 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
430
436
|
private _setSplatIndexRanges;
|
|
431
437
|
/**
|
|
432
438
|
* Whether the depth sort is settled: a sort computed for the current active ranges and camera has been
|
|
433
|
-
* applied to the rendered index buffer, and no further sort is pending or in flight
|
|
439
|
+
* applied to the rendered index buffer, and no further sort is pending or in flight (including a forced sort
|
|
440
|
+
* deferred until a classic pass needs it). For a static camera
|
|
434
441
|
* and a fixed active set this becomes true once the final sort completes. Used by streaming subclasses to
|
|
435
442
|
* detect when rendering is fully up to date (e.g. for deterministic screenshots) and by IBL shadows to
|
|
436
443
|
* avoid voxelizing against an index buffer the worker has not finished (re)building yet.
|
|
@@ -560,9 +567,9 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
560
567
|
set minPixelSize(value: number);
|
|
561
568
|
private _loadingPromise;
|
|
562
569
|
/**
|
|
563
|
-
*
|
|
570
|
+
* Sets the rendering material and updates camera views. Notifies material-change observers when the material changes.
|
|
564
571
|
*/
|
|
565
|
-
set material(value: Material);
|
|
572
|
+
set material(value: Nullable<Material>);
|
|
566
573
|
/**
|
|
567
574
|
* get rendering material
|
|
568
575
|
*/
|
|
@@ -581,6 +588,8 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
581
588
|
* @returns constructor loading promise or null if no URL was provided
|
|
582
589
|
*/
|
|
583
590
|
getLoadingPromise(): Promise<void> | null;
|
|
591
|
+
/** @internal */
|
|
592
|
+
get _isGaussianSplatting(): boolean;
|
|
584
593
|
/**
|
|
585
594
|
* Returns the class name
|
|
586
595
|
* @returns "GaussianSplattingMeshBase"
|
|
@@ -609,6 +618,26 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
609
618
|
* @returns the current mesh
|
|
610
619
|
*/
|
|
611
620
|
render(subMesh: SubMesh, enableAlphaMode: boolean, effectiveMeshReplacement?: AbstractMesh): Mesh;
|
|
621
|
+
/**
|
|
622
|
+
* Draws the inner per-camera mesh for one render pass. Subclasses may replace selected passes.
|
|
623
|
+
* @param mesh inner per-camera mesh carrying the sorted splat geometry
|
|
624
|
+
* @param subMesh the submesh to draw
|
|
625
|
+
* @param enableAlphaMode whether alpha mode can be changed
|
|
626
|
+
* @param effectiveMeshReplacement optional mesh providing render info
|
|
627
|
+
* @returns the drawn mesh
|
|
628
|
+
*/
|
|
629
|
+
protected _drawColorPass(mesh: Mesh, subMesh: SubMesh, enableAlphaMode: boolean, effectiveMeshReplacement?: AbstractMesh): Mesh;
|
|
630
|
+
/**
|
|
631
|
+
* Whether the current pass needs classic sorted splat geometry.
|
|
632
|
+
* @returns whether classic sorting is required
|
|
633
|
+
*/
|
|
634
|
+
protected _isSortRequired(): boolean;
|
|
635
|
+
/**
|
|
636
|
+
* Handles a compute-owned pass before allocating or waiting for sorted geometry.
|
|
637
|
+
* @param _enableAlphaMode whether alpha mode can be changed
|
|
638
|
+
* @returns whether the pass was handled
|
|
639
|
+
*/
|
|
640
|
+
protected _drawPointPass(_enableAlphaMode: boolean): boolean;
|
|
612
641
|
private static _TypeNameToEnum;
|
|
613
642
|
private static _ValueNameToEnum;
|
|
614
643
|
/**
|
|
@@ -727,6 +756,7 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
727
756
|
*/
|
|
728
757
|
get isCompound(): boolean;
|
|
729
758
|
protected _setDelayedTextureUpdate(covA: Uint16Array, covB: Uint16Array, colorArray: Uint8Array, sh?: Uint8Array[]): void;
|
|
759
|
+
private _commitDelayedTextureUpdate;
|
|
730
760
|
/**
|
|
731
761
|
* Creates (or recreates) the MRT-backed data atlas at the given size and points the four core data
|
|
732
762
|
* textures at its attachments. The attachments use the same decoded GS layout as {@link GaussianSplattingWorkBuffer}
|
|
@@ -300,6 +300,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
300
300
|
}
|
|
301
301
|
/**
|
|
302
302
|
* If true, disables depth sorting of the splats (default: false)
|
|
303
|
+
* Disabling sorting also discards deferred forced-sort requests.
|
|
303
304
|
*/
|
|
304
305
|
get disableDepthSort() {
|
|
305
306
|
return this._disableDepthSort;
|
|
@@ -309,6 +310,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
309
310
|
this._worker?.terminate();
|
|
310
311
|
this._worker = null;
|
|
311
312
|
this._disableDepthSort = true;
|
|
313
|
+
this._forcedSortPending = false;
|
|
312
314
|
}
|
|
313
315
|
else if (this._disableDepthSort && !value) {
|
|
314
316
|
this._disableDepthSort = false;
|
|
@@ -396,14 +398,15 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
396
398
|
}
|
|
397
399
|
/**
|
|
398
400
|
* Whether the depth sort is settled: a sort computed for the current active ranges and camera has been
|
|
399
|
-
* applied to the rendered index buffer, and no further sort is pending or in flight
|
|
401
|
+
* applied to the rendered index buffer, and no further sort is pending or in flight (including a forced sort
|
|
402
|
+
* deferred until a classic pass needs it). For a static camera
|
|
400
403
|
* and a fixed active set this becomes true once the final sort completes. Used by streaming subclasses to
|
|
401
404
|
* detect when rendering is fully up to date (e.g. for deterministic screenshots) and by IBL shadows to
|
|
402
405
|
* avoid voxelizing against an index buffer the worker has not finished (re)building yet.
|
|
403
406
|
* @internal
|
|
404
407
|
*/
|
|
405
408
|
get _isDepthSortSettled() {
|
|
406
|
-
return this._readyToDisplay && !this._sortIsDirty && this._canPostToWorker;
|
|
409
|
+
return this._readyToDisplay && !this._sortIsDirty && !this._forcedSortPending && this._canPostToWorker;
|
|
407
410
|
}
|
|
408
411
|
// (Re)allocates the worker depth buffer to the given padded size. A fresh array is allocated when the
|
|
409
412
|
// size differs or the current buffer is detached (in-flight in the worker), so a queued sort can be
|
|
@@ -688,13 +691,22 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
688
691
|
}
|
|
689
692
|
}
|
|
690
693
|
/**
|
|
691
|
-
*
|
|
694
|
+
* Sets the rendering material and updates camera views. Notifies material-change observers when the material changes.
|
|
692
695
|
*/
|
|
693
696
|
set material(value) {
|
|
697
|
+
const previous = this._material;
|
|
694
698
|
this._material = value;
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
699
|
+
if (value) {
|
|
700
|
+
value.backFaceCulling = false;
|
|
701
|
+
value.cullBackFaces = false;
|
|
702
|
+
value.resetDrawCache();
|
|
703
|
+
}
|
|
704
|
+
this._cameraViewInfos?.forEach((cameraViewInfo) => {
|
|
705
|
+
cameraViewInfo.mesh.material = value;
|
|
706
|
+
});
|
|
707
|
+
if (previous !== value && this.onMaterialChangedObservable.hasObservers()) {
|
|
708
|
+
this.onMaterialChangedObservable.notifyObservers(this);
|
|
709
|
+
}
|
|
698
710
|
}
|
|
699
711
|
/**
|
|
700
712
|
* get rendering material
|
|
@@ -800,6 +812,8 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
800
812
|
this._splatSizeMin = Infinity;
|
|
801
813
|
this._splatSizeMax = -Infinity;
|
|
802
814
|
this._sortIsDirty = false;
|
|
815
|
+
// A forced sort requested while no classic pass needed sorting; runs on the next classic pass.
|
|
816
|
+
this._forcedSortPending = false;
|
|
803
817
|
this._activeSplatRanges = null;
|
|
804
818
|
this._activeSplatRangeKey = "";
|
|
805
819
|
this._activeSplatRenderCount = 0;
|
|
@@ -808,6 +822,10 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
808
822
|
this._cachedBoundingMax = null;
|
|
809
823
|
/** @internal */
|
|
810
824
|
this._shDegree = 0;
|
|
825
|
+
/** Incremented whenever `_updateData` replaces the splat data, even when it reuses the same buffer. @internal */
|
|
826
|
+
this._splatDataRevision = 0;
|
|
827
|
+
/** True while `_updateData` is filling the atlas, so consumers keep the last complete data. @internal */
|
|
828
|
+
this._splatDataPending = false;
|
|
811
829
|
this._maxShDegree = 0;
|
|
812
830
|
this._cameraViewInfos = new Map();
|
|
813
831
|
/** Fired after parts are added or the mesh is rebuilt following a removal. Payload is the new part count. */
|
|
@@ -836,7 +854,13 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
836
854
|
this._loadingPromise = null;
|
|
837
855
|
this._updateTextureFromData = (texture, data, width, lineStart, lineCount) => {
|
|
838
856
|
const engine = this._getTextureDataUpdateEngine();
|
|
839
|
-
|
|
857
|
+
const internalTexture = texture.getInternalTexture();
|
|
858
|
+
// NativeEngine and NullEngine support complete raw uploads, but not sub-texture uploads.
|
|
859
|
+
if (!engine._gl && !engine.isWebGPU && lineStart === 0 && lineCount === internalTexture.height) {
|
|
860
|
+
engine.updateRawTexture(internalTexture, data, internalTexture.format, internalTexture.invertY, null, internalTexture.type, internalTexture._useSRGBBuffer);
|
|
861
|
+
return;
|
|
862
|
+
}
|
|
863
|
+
engine.updateTextureData(internalTexture, data, 0, lineStart, width, lineCount, 0, 0, false);
|
|
840
864
|
};
|
|
841
865
|
this._updateTextureFromDataRect = (texture, data, xOffset, yOffset, width, height) => {
|
|
842
866
|
const engine = this._getTextureDataUpdateEngine();
|
|
@@ -881,6 +905,10 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
881
905
|
getLoadingPromise() {
|
|
882
906
|
return this._loadingPromise;
|
|
883
907
|
}
|
|
908
|
+
/** @internal */
|
|
909
|
+
get _isGaussianSplatting() {
|
|
910
|
+
return true;
|
|
911
|
+
}
|
|
884
912
|
/**
|
|
885
913
|
* Returns the class name
|
|
886
914
|
* @returns "GaussianSplattingMeshBase"
|
|
@@ -901,10 +929,14 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
901
929
|
* @returns true when ready
|
|
902
930
|
*/
|
|
903
931
|
isReady(completeCheck = false) {
|
|
904
|
-
|
|
932
|
+
const sortRequired = this._isSortRequired();
|
|
933
|
+
if (!super.isReady(sortRequired && completeCheck, true)) {
|
|
905
934
|
return false;
|
|
906
935
|
}
|
|
907
|
-
if (!this.
|
|
936
|
+
if (!sortRequired && !this._geometry) {
|
|
937
|
+
this._postToWorker();
|
|
938
|
+
}
|
|
939
|
+
if (sortRequired && !this._readyToDisplay) {
|
|
908
940
|
// mesh is ready when worker has done at least 1 sorting
|
|
909
941
|
this._postToWorker(true);
|
|
910
942
|
return false;
|
|
@@ -912,7 +944,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
912
944
|
// Before the first successful render, require an applied index buffer. A pending refresh can
|
|
913
945
|
// use the latest completed buffer, otherwise a transform changed every frame would starve the
|
|
914
946
|
// first render. Once rendered, the render loop continuously re-sorts as the camera/world changes.
|
|
915
|
-
if (!this._hasRenderedOnce && !this._disableDepthSort) {
|
|
947
|
+
if (sortRequired && !this._hasRenderedOnce && !this._disableDepthSort) {
|
|
916
948
|
const cameras = this._scene.activeCameras?.length ? this._scene.activeCameras : [this._scene.activeCamera];
|
|
917
949
|
const canRenderWithPendingRefresh = this._scene._isInRenderingMeshEvaluation() && cameras.filter((camera) => camera !== null).length === 1;
|
|
918
950
|
const worldMatrix = this.computeWorldMatrix(true);
|
|
@@ -1065,7 +1097,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1065
1097
|
const cameraMesh = new Mesh(this.name + "_cameraMesh_" + cameraId, this._scene);
|
|
1066
1098
|
cameraMesh.doNotSerialize = true;
|
|
1067
1099
|
// not visible with inspector or the scene graph
|
|
1068
|
-
cameraMesh.reservedDataStore = { hidden: true };
|
|
1100
|
+
cameraMesh.reservedDataStore = { hidden: true, _gaussianSplattingSourceMesh: this };
|
|
1069
1101
|
cameraMesh.setEnabled(false);
|
|
1070
1102
|
cameraMesh.material = this.material;
|
|
1071
1103
|
if (cameraMesh.material && cameraMesh.material instanceof GaussianSplattingMaterial) {
|
|
@@ -1113,7 +1145,16 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1113
1145
|
// null before any splat data has been committed) or the native binding throws on the conversion.
|
|
1114
1146
|
const hasNativeSort = !!Native?.sortSplats && !!this._splatPositions && !!this._splatIndex;
|
|
1115
1147
|
// When depth sort is disabled, no sort function must run: fall through to the no-sort path below.
|
|
1116
|
-
const
|
|
1148
|
+
const sortRequired = this._isSortRequired();
|
|
1149
|
+
const hasSortFunction = sortRequired && !this._disableDepthSort && (this._worker || hasNativeSort);
|
|
1150
|
+
// A forced sort (new data or parts) requested while no classic pass needs sorting (e.g. point
|
|
1151
|
+
// splatting) is deferred to the next classic pass; the camera and world may be unchanged by then.
|
|
1152
|
+
if (forced && !sortRequired && !this._disableDepthSort) {
|
|
1153
|
+
this._forcedSortPending = true;
|
|
1154
|
+
}
|
|
1155
|
+
else if (hasSortFunction && this._forcedSortPending) {
|
|
1156
|
+
forced = true;
|
|
1157
|
+
}
|
|
1117
1158
|
if ((forced || outdated) && hasSortFunction && (this._scene.activeCameras?.length || this._scene.activeCamera) && this._canPostToWorker) {
|
|
1118
1159
|
const worldMatrix = this.computeWorldMatrix(true);
|
|
1119
1160
|
// view infos sorted by least recent updated frame id
|
|
@@ -1129,6 +1170,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1129
1170
|
cameraViewInfos.sortRequestId = ++this._sortRequestId;
|
|
1130
1171
|
cameraViewInfos.frameIdLastUpdate = frameId;
|
|
1131
1172
|
this._canPostToWorker = false;
|
|
1173
|
+
this._forcedSortPending = false;
|
|
1132
1174
|
if (this._worker) {
|
|
1133
1175
|
this._worker.postMessage({
|
|
1134
1176
|
command: GaussianSplattingSortWorkerCommand.SORT,
|
|
@@ -1166,7 +1208,17 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1166
1208
|
}
|
|
1167
1209
|
});
|
|
1168
1210
|
}
|
|
1169
|
-
else if (this._disableDepthSort) {
|
|
1211
|
+
else if (this._disableDepthSort || !sortRequired) {
|
|
1212
|
+
// ShadowGenerator bypasses render()/isReady(), so its atlas cannot wait for a deferred camera sort.
|
|
1213
|
+
if (this._delayedTextureUpdate) {
|
|
1214
|
+
this._updateSplatIndexBuffer(this._vertexCount);
|
|
1215
|
+
this._cameraViewInfos.forEach((info) => {
|
|
1216
|
+
if (info.splatIndexBufferSet) {
|
|
1217
|
+
info.mesh.thinInstanceBufferUpdated("splatIndex");
|
|
1218
|
+
}
|
|
1219
|
+
});
|
|
1220
|
+
this._commitDelayedTextureUpdate();
|
|
1221
|
+
}
|
|
1170
1222
|
if (this._splatIndex) {
|
|
1171
1223
|
activeViewInfos.forEach((cameraViewInfos) => {
|
|
1172
1224
|
if (!cameraViewInfos.splatIndexBufferSet) {
|
|
@@ -1176,7 +1228,10 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1176
1228
|
});
|
|
1177
1229
|
this._readyToDisplay = true;
|
|
1178
1230
|
}
|
|
1179
|
-
|
|
1231
|
+
// With a worker, the gate is owned by in-flight sorts and rebuilds; their completion unlocks it.
|
|
1232
|
+
if (this._disableDepthSort || !this._worker) {
|
|
1233
|
+
this._canPostToWorker = true;
|
|
1234
|
+
}
|
|
1180
1235
|
}
|
|
1181
1236
|
}
|
|
1182
1237
|
/**
|
|
@@ -1187,6 +1242,15 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1187
1242
|
* @returns the current mesh
|
|
1188
1243
|
*/
|
|
1189
1244
|
render(subMesh, enableAlphaMode, effectiveMeshReplacement) {
|
|
1245
|
+
let beforeNotified = false;
|
|
1246
|
+
if (!this._isSortRequired()) {
|
|
1247
|
+
this.onBeforeRenderObservable.notifyObservers(this);
|
|
1248
|
+
beforeNotified = true;
|
|
1249
|
+
if (this._drawPointPass(enableAlphaMode)) {
|
|
1250
|
+
this.onAfterRenderObservable.notifyObservers(this);
|
|
1251
|
+
return this;
|
|
1252
|
+
}
|
|
1253
|
+
}
|
|
1190
1254
|
this._postToWorker();
|
|
1191
1255
|
// geometry used for shadows, bind the first found in the camera view infos
|
|
1192
1256
|
if (!this._geometry && this._cameraViewInfos.size) {
|
|
@@ -1195,9 +1259,12 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1195
1259
|
const cameraId = this._scene.activeCamera.uniqueId;
|
|
1196
1260
|
const cameraViewInfos = this._cameraViewInfos.get(cameraId);
|
|
1197
1261
|
if (!cameraViewInfos || !cameraViewInfos.splatIndexBufferSet) {
|
|
1262
|
+
if (beforeNotified) {
|
|
1263
|
+
this.onAfterRenderObservable.notifyObservers(this);
|
|
1264
|
+
}
|
|
1198
1265
|
return this;
|
|
1199
1266
|
}
|
|
1200
|
-
if (this.onBeforeRenderObservable) {
|
|
1267
|
+
if (!beforeNotified && this.onBeforeRenderObservable) {
|
|
1201
1268
|
this.onBeforeRenderObservable.notifyObservers(this);
|
|
1202
1269
|
}
|
|
1203
1270
|
const mesh = cameraViewInfos.mesh;
|
|
@@ -1211,7 +1278,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1211
1278
|
if (renderPassMaterial) {
|
|
1212
1279
|
mesh.setMaterialForRenderPass(renderPassId, renderPassMaterial);
|
|
1213
1280
|
}
|
|
1214
|
-
const ret =
|
|
1281
|
+
const ret = this._drawColorPass(mesh, subMesh, enableAlphaMode, effectiveMeshReplacement);
|
|
1215
1282
|
this._hasRenderedOnce = true;
|
|
1216
1283
|
// Clean up the temporary override to avoid affecting other render passes
|
|
1217
1284
|
if (renderPassMaterial) {
|
|
@@ -1222,6 +1289,32 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1222
1289
|
}
|
|
1223
1290
|
return ret;
|
|
1224
1291
|
}
|
|
1292
|
+
/**
|
|
1293
|
+
* Draws the inner per-camera mesh for one render pass. Subclasses may replace selected passes.
|
|
1294
|
+
* @param mesh inner per-camera mesh carrying the sorted splat geometry
|
|
1295
|
+
* @param subMesh the submesh to draw
|
|
1296
|
+
* @param enableAlphaMode whether alpha mode can be changed
|
|
1297
|
+
* @param effectiveMeshReplacement optional mesh providing render info
|
|
1298
|
+
* @returns the drawn mesh
|
|
1299
|
+
*/
|
|
1300
|
+
_drawColorPass(mesh, subMesh, enableAlphaMode, effectiveMeshReplacement) {
|
|
1301
|
+
return mesh.render(subMesh, enableAlphaMode, effectiveMeshReplacement);
|
|
1302
|
+
}
|
|
1303
|
+
/**
|
|
1304
|
+
* Whether the current pass needs classic sorted splat geometry.
|
|
1305
|
+
* @returns whether classic sorting is required
|
|
1306
|
+
*/
|
|
1307
|
+
_isSortRequired() {
|
|
1308
|
+
return true;
|
|
1309
|
+
}
|
|
1310
|
+
/**
|
|
1311
|
+
* Handles a compute-owned pass before allocating or waiting for sorted geometry.
|
|
1312
|
+
* @param _enableAlphaMode whether alpha mode can be changed
|
|
1313
|
+
* @returns whether the pass was handled
|
|
1314
|
+
*/
|
|
1315
|
+
_drawPointPass(_enableAlphaMode) {
|
|
1316
|
+
return false;
|
|
1317
|
+
}
|
|
1225
1318
|
static _TypeNameToEnum(name) {
|
|
1226
1319
|
switch (name) {
|
|
1227
1320
|
case "float":
|
|
@@ -2214,6 +2307,15 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
2214
2307
|
_setDelayedTextureUpdate(covA, covB, colorArray, sh) {
|
|
2215
2308
|
this._delayedTextureUpdate = { covA, covB, colors: colorArray, centers: this._splatPositions, sh };
|
|
2216
2309
|
}
|
|
2310
|
+
_commitDelayedTextureUpdate() {
|
|
2311
|
+
const update = this._delayedTextureUpdate;
|
|
2312
|
+
if (!update) {
|
|
2313
|
+
return;
|
|
2314
|
+
}
|
|
2315
|
+
const textureSize = this._getTextureSize(this._vertexCount);
|
|
2316
|
+
this._updateSubTextures(update.centers, update.covA, update.covB, update.colors, 0, textureSize.y, update.sh);
|
|
2317
|
+
this._delayedTextureUpdate = null;
|
|
2318
|
+
}
|
|
2217
2319
|
/**
|
|
2218
2320
|
* Creates (or recreates) the MRT-backed data atlas at the given size and points the four core data
|
|
2219
2321
|
* textures at its attachments. The attachments use the same decoded GS layout as {@link GaussianSplattingWorkBuffer}
|
|
@@ -2350,16 +2452,16 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
2350
2452
|
const textureSize = this._getTextureSize(this._vertexCount);
|
|
2351
2453
|
// Update the textures
|
|
2352
2454
|
const createTextureFromData = (data, width, height, format) => {
|
|
2353
|
-
return new RawTexture(data, width, height, format, this._scene, false, false,
|
|
2455
|
+
return new RawTexture(data, width, height, format, this._scene, false, false, 1, 1);
|
|
2354
2456
|
};
|
|
2355
2457
|
const createTextureFromDataU8 = (data, width, height, format) => {
|
|
2356
|
-
return new RawTexture(data, width, height, format, this._scene, false, false,
|
|
2458
|
+
return new RawTexture(data, width, height, format, this._scene, false, false, 1, 0);
|
|
2357
2459
|
};
|
|
2358
2460
|
const createEmptyTextureU32 = (width, height, format) => {
|
|
2359
2461
|
return new RawTexture(null, width, height, format, this._scene, false, false, 1, 7);
|
|
2360
2462
|
};
|
|
2361
2463
|
const createTextureFromDataF16 = (data, width, height, format) => {
|
|
2362
|
-
return new RawTexture(data, width, height, format, this._scene, false, false,
|
|
2464
|
+
return new RawTexture(data, width, height, format, this._scene, false, false, 1, 2);
|
|
2363
2465
|
};
|
|
2364
2466
|
const firstTime = this._covariancesATexture === null;
|
|
2365
2467
|
const textureSizeChanged = this._textureSize.y != textureSize.y;
|
|
@@ -2723,6 +2825,8 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
2723
2825
|
this._readyToDisplay = false;
|
|
2724
2826
|
}
|
|
2725
2827
|
this._flipY = flipY;
|
|
2828
|
+
this._splatDataRevision++;
|
|
2829
|
+
this._splatDataPending = true;
|
|
2726
2830
|
const uBuffer = new Uint8Array(data);
|
|
2727
2831
|
const fBuffer = new Float32Array(uBuffer.buffer);
|
|
2728
2832
|
// Optionally store the raw splat buffer as an ArrayBuffer. This is the source reference
|
|
@@ -2850,6 +2954,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
2850
2954
|
// Cache bounding box for the next incremental addPart call
|
|
2851
2955
|
this._cachedBoundingMin = minimum.clone();
|
|
2852
2956
|
this._cachedBoundingMax = maximum.clone();
|
|
2957
|
+
this._splatDataPending = false;
|
|
2853
2958
|
this._postToWorker(true);
|
|
2854
2959
|
}
|
|
2855
2960
|
/**
|
|
@@ -3071,12 +3176,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
3071
3176
|
}
|
|
3072
3177
|
}
|
|
3073
3178
|
this.forcedInstanceCount = Math.max(renderedPadded >> 4, 1);
|
|
3074
|
-
|
|
3075
|
-
const vertexCountPadded = (this._vertexCount + 15) & ~0xf;
|
|
3076
|
-
const textureSize = this._getTextureSize(vertexCountPadded);
|
|
3077
|
-
this._updateSubTextures(this._delayedTextureUpdate.centers, this._delayedTextureUpdate.covA, this._delayedTextureUpdate.covB, this._delayedTextureUpdate.colors, 0, textureSize.y, this._delayedTextureUpdate.sh);
|
|
3078
|
-
this._delayedTextureUpdate = null;
|
|
3079
|
-
}
|
|
3179
|
+
this._commitDelayedTextureUpdate();
|
|
3080
3180
|
// get mesh for camera and update its instance buffer
|
|
3081
3181
|
const cameraViewInfos = this._cameraViewInfos.get(cameraId);
|
|
3082
3182
|
if (cameraViewInfos) {
|