@babylonjs/core 9.11.0 → 9.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Actions/actionManager.d.ts +1 -1
- package/Actions/actionManager.js +8 -5
- package/Actions/actionManager.js.map +1 -1
- package/Animations/animatable.core.d.ts +1 -1
- package/Animations/animatable.core.js +2 -2
- package/Animations/animatable.core.js.map +1 -1
- package/Animations/animationPropertiesOverride.js +1 -1
- package/Animations/animationPropertiesOverride.js.map +1 -1
- package/Animations/animatorAvatar.d.ts +2 -2
- package/Animations/animatorAvatar.js +3 -3
- package/Animations/animatorAvatar.js.map +1 -1
- package/Animations/pathCursor.d.ts +1 -1
- package/Animations/pathCursor.js +1 -1
- package/Animations/pathCursor.js.map +1 -1
- package/Animations/runtimeAnimation.d.ts +1 -1
- package/Animations/runtimeAnimation.js +2 -2
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/analyser.js +1 -1
- package/Audio/analyser.js.map +1 -1
- package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js +1 -1
- package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.d.ts +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js.map +1 -1
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +1 -1
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +1 -1
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
- package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +1 -1
- package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.js +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/BakedVertexAnimation/vertexAnimationBaker.js +1 -1
- package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -1
- package/Behaviors/Cameras/bouncingBehavior.js +1 -1
- package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
- package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
- package/Behaviors/Cameras/framingBehavior.js +2 -2
- package/Behaviors/Cameras/framingBehavior.js.map +1 -1
- package/Behaviors/Cameras/interpolatingBehavior.d.ts +28 -1
- package/Behaviors/Cameras/interpolatingBehavior.js +64 -22
- package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
- package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
- package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
- package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +3 -3
- package/Behaviors/Meshes/baseSixDofDragBehavior.js +4 -4
- package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -1
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/handConstraintBehavior.js +2 -2
- package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
- package/Behaviors/Meshes/multiPointerScaleBehavior.js +1 -1
- package/Behaviors/Meshes/multiPointerScaleBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.d.ts +3 -3
- package/Behaviors/Meshes/pointerDragBehavior.js +5 -5
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/sixDofDragBehavior.d.ts +1 -1
- package/Behaviors/Meshes/sixDofDragBehavior.js +2 -2
- package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/surfaceMagnetismBehavior.js +1 -1
- package/Behaviors/Meshes/surfaceMagnetismBehavior.js.map +1 -1
- package/Bones/boneIKController.d.ts +1 -1
- package/Bones/boneIKController.js +1 -1
- package/Bones/boneIKController.js.map +1 -1
- package/Bones/boneLookController.d.ts +1 -1
- package/Bones/boneLookController.js +1 -1
- package/Bones/boneLookController.js.map +1 -1
- package/Bones/skeleton.d.ts +2 -2
- package/Bones/skeleton.functions.d.ts +1 -1
- package/Bones/skeleton.functions.js +3 -3
- package/Bones/skeleton.functions.js.map +1 -1
- package/Bones/skeleton.js +3 -4
- package/Bones/skeleton.js.map +1 -1
- package/Buffers/buffer.align.pure.js +6 -0
- package/Buffers/buffer.align.pure.js.map +1 -1
- package/Buffers/buffer.nonFloatVertexBuffers.js +2 -1
- package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
- package/Buffers/buffer.pure.d.ts +8 -0
- package/Buffers/buffer.pure.js +31 -2
- package/Buffers/buffer.pure.js.map +1 -1
- package/Buffers/bufferUtils.js +17 -5
- package/Buffers/bufferUtils.js.map +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +2 -2
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +11 -3
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.d.ts +2 -0
- package/Cameras/Inputs/flyCameraMouseInput.js +16 -4
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +27 -7
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.d.ts +14 -0
- package/Cameras/Inputs/freeCameraMouseInput.js +27 -5
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.js +18 -7
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js +9 -2
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
- package/Cameras/Limits/geospatialLimits.d.ts +1 -1
- package/Cameras/Limits/geospatialLimits.js +1 -1
- package/Cameras/Limits/geospatialLimits.js.map +1 -1
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +2 -2
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
- package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -1
- package/Cameras/RigModes/stereoscopicRigMode.js +3 -3
- package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
- package/Cameras/RigModes/vrRigMode.js +2 -2
- package/Cameras/RigModes/vrRigMode.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +3 -3
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +5 -5
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrCameraMetrics.d.ts +1 -1
- package/Cameras/VR/vrCameraMetrics.js +1 -1
- package/Cameras/VR/vrCameraMetrics.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/cameraInputsManager.d.ts +1 -1
- package/Cameras/cameraInputsManager.js +1 -1
- package/Cameras/cameraInputsManager.js.map +1 -1
- package/Cameras/flyCamera.pure.d.ts +8 -0
- package/Cameras/flyCamera.pure.js.map +1 -1
- package/Cameras/freeCamera.pure.d.ts +8 -0
- package/Cameras/freeCamera.pure.js.map +1 -1
- package/Cameras/geospatialCamera.pure.d.ts +30 -7
- package/Cameras/geospatialCamera.pure.js +39 -14
- package/Cameras/geospatialCamera.pure.js.map +1 -1
- package/Cameras/geospatialCameraMovement.js +2 -2
- package/Cameras/geospatialCameraMovement.js.map +1 -1
- package/Cameras/index.d.ts +1 -0
- package/Cameras/index.js +1 -0
- package/Cameras/index.js.map +1 -1
- package/Cameras/pure.d.ts +1 -0
- package/Cameras/pure.js +1 -0
- package/Cameras/pure.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +25 -0
- package/Cameras/targetCamera.pure.js +83 -25
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Cameras/targetCameraMovement.d.ts +56 -0
- package/Cameras/targetCameraMovement.js +63 -0
- package/Cameras/targetCameraMovement.js.map +1 -0
- package/Collisions/collider.d.ts +1 -1
- package/Collisions/collider.js +1 -1
- package/Collisions/collider.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +1 -1
- package/Collisions/gpuPicker.js +5 -5
- package/Collisions/gpuPicker.js.map +1 -1
- package/Collisions/meshCollisionData.d.ts +1 -1
- package/Collisions/meshCollisionData.js +1 -1
- package/Collisions/meshCollisionData.js.map +1 -1
- package/Collisions/pickingInfo.d.ts +1 -1
- package/Collisions/pickingInfo.js +2 -2
- package/Collisions/pickingInfo.js.map +1 -1
- package/Culling/Octrees/octreeBlock.d.ts +1 -1
- package/Culling/Octrees/octreeBlock.js +1 -1
- package/Culling/Octrees/octreeBlock.js.map +1 -1
- package/Culling/boundingBox.d.ts +1 -1
- package/Culling/boundingBox.js +1 -1
- package/Culling/boundingBox.js.map +1 -1
- package/Culling/boundingInfo.d.ts +1 -1
- package/Culling/boundingInfo.js +1 -1
- package/Culling/boundingInfo.js.map +1 -1
- package/Culling/boundingSphere.d.ts +1 -1
- package/Culling/boundingSphere.js +1 -1
- package/Culling/boundingSphere.js.map +1 -1
- package/Culling/ray.core.d.ts +1 -1
- package/Culling/ray.core.js +1 -1
- package/Culling/ray.core.js.map +1 -1
- package/Debug/axesViewer.d.ts +1 -1
- package/Debug/axesViewer.js +3 -3
- package/Debug/axesViewer.js.map +1 -1
- package/Debug/boneAxesViewer.d.ts +1 -1
- package/Debug/boneAxesViewer.js +1 -1
- package/Debug/boneAxesViewer.js.map +1 -1
- package/Debug/directionalLightFrustumViewer.d.ts +1 -1
- package/Debug/directionalLightFrustumViewer.js +6 -6
- package/Debug/directionalLightFrustumViewer.js.map +1 -1
- package/Debug/rayHelper.d.ts +1 -1
- package/Debug/rayHelper.js +2 -2
- package/Debug/rayHelper.js.map +1 -1
- package/Debug/skeletonViewer.d.ts +2 -2
- package/Debug/skeletonViewer.js +10 -10
- package/Debug/skeletonViewer.js.map +1 -1
- package/DeviceInput/internalDeviceSourceManager.d.ts +1 -1
- package/DeviceInput/internalDeviceSourceManager.js +0 -1
- package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.js +1 -1
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.scissor.d.ts +18 -0
- package/Engines/AbstractEngine/abstractEngine.scissor.js +2 -0
- package/Engines/AbstractEngine/abstractEngine.scissor.js.map +1 -0
- package/Engines/Extensions/engine.views.d.ts +1 -1
- package/Engines/Extensions/engine.views.js +1 -1
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Native/nativeHelpers.js +4 -1
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +11 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/abstractEngine.pure.js +2 -2
- 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.d.ts +1 -0
- package/Engines/engine.js +1 -0
- package/Engines/engine.js.map +1 -1
- package/Engines/engine.pure.d.ts +0 -12
- package/Engines/engine.pure.js +0 -20
- package/Engines/engine.pure.js.map +1 -1
- package/Engines/engineFactory.d.ts +2 -2
- package/Engines/engineFactory.js +3 -3
- package/Engines/engineFactory.js.map +1 -1
- package/Engines/nullEngine.pure.d.ts +66 -0
- package/Engines/nullEngine.pure.js +93 -0
- package/Engines/nullEngine.pure.js.map +1 -1
- package/Engines/pure.d.ts +1 -0
- package/Engines/pure.js +1 -0
- package/Engines/pure.js.map +1 -1
- package/Engines/thinEngine.scissor.d.ts +6 -0
- package/Engines/thinEngine.scissor.js +9 -0
- package/Engines/thinEngine.scissor.js.map +1 -0
- package/Engines/thinEngine.scissor.pure.d.ts +6 -0
- package/Engines/thinEngine.scissor.pure.js +24 -0
- package/Engines/thinEngine.scissor.pure.js.map +1 -0
- package/Engines/thinNativeEngine.d.ts +0 -1
- package/Engines/thinNativeEngine.js +0 -1
- package/Engines/thinNativeEngine.js.map +1 -1
- package/Engines/thinNativeEngine.pure.js +7 -0
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/Events/pointerEvents.d.ts +1 -1
- package/Events/pointerEvents.js +1 -1
- package/Events/pointerEvents.js.map +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js +1 -1
- package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.d.ts +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/CustomTypes/flowGraphMatrix.d.ts +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.js +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
- package/FlowGraph/flowGraphBlock.d.ts +1 -1
- package/FlowGraph/flowGraphBlock.js +1 -1
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphExecutionBlock.d.ts +1 -1
- package/FlowGraph/flowGraphExecutionBlock.js +1 -1
- package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
- package/FlowGraph/flowGraphMath.d.ts +1 -1
- package/FlowGraph/flowGraphMath.js +1 -1
- package/FlowGraph/flowGraphMath.js.map +1 -1
- package/FlowGraph/flowGraphParser.js +1 -1
- package/FlowGraph/flowGraphParser.js.map +1 -1
- package/FlowGraph/flowGraphPathConverterComponent.d.ts +1 -1
- package/FlowGraph/flowGraphPathConverterComponent.js +2 -2
- package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
- package/FlowGraph/flowGraphValidator.js.map +1 -1
- package/FlowGraph/serialization.js +4 -4
- package/FlowGraph/serialization.js.map +1 -1
- package/FlowGraph/utils.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.d.ts +2 -2
- package/FrameGraph/Node/nodeRenderGraph.js +7 -7
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +30 -0
- package/FrameGraph/Tasks/Layers/baseLayerTask.js +28 -1
- package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/computeShaderTask.d.ts +2 -2
- package/FrameGraph/Tasks/Misc/computeShaderTask.js +2 -2
- package/FrameGraph/Tasks/Misc/computeShaderTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.d.ts +1 -1
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +2 -2
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/blurTask.d.ts +7 -0
- package/FrameGraph/Tasks/PostProcesses/blurTask.js +8 -1
- package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.d.ts +1 -1
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.d.ts +2 -2
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js +3 -3
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +2 -2
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +6 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +14 -5
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +2 -2
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +2 -2
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +7 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +7 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +1 -1
- package/FrameGraph/Tasks/Texture/clearTextureTask.js +1 -1
- package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.js +1 -1
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/frameGraphTextureManager.d.ts +1 -1
- package/FrameGraph/frameGraphTextureManager.js +1 -1
- package/FrameGraph/frameGraphTextureManager.js.map +1 -1
- package/Gamepads/gamepadManager.js +1 -1
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gizmos/axisDragGizmo.d.ts +5 -5
- package/Gizmos/axisDragGizmo.js +6 -6
- package/Gizmos/axisDragGizmo.js.map +1 -1
- package/Gizmos/axisScaleGizmo.d.ts +4 -4
- package/Gizmos/axisScaleGizmo.js +6 -6
- package/Gizmos/axisScaleGizmo.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.d.ts +5 -5
- package/Gizmos/boundingBoxGizmo.js +7 -7
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/cameraGizmo.d.ts +3 -3
- package/Gizmos/cameraGizmo.js +7 -7
- package/Gizmos/cameraGizmo.js.map +1 -1
- package/Gizmos/gizmo.d.ts +2 -2
- package/Gizmos/gizmo.js +3 -3
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/gizmoManager.d.ts +2 -2
- package/Gizmos/gizmoManager.js +2 -2
- package/Gizmos/gizmoManager.js.map +1 -1
- package/Gizmos/lightGizmo.d.ts +4 -4
- package/Gizmos/lightGizmo.js +11 -11
- package/Gizmos/lightGizmo.js.map +1 -1
- package/Gizmos/planeDragGizmo.d.ts +4 -4
- package/Gizmos/planeDragGizmo.js +5 -5
- package/Gizmos/planeDragGizmo.js.map +1 -1
- package/Gizmos/positionGizmo.d.ts +1 -1
- package/Gizmos/positionGizmo.js +2 -2
- package/Gizmos/positionGizmo.js.map +1 -1
- package/Gizmos/rotationGizmo.d.ts +3 -3
- package/Gizmos/rotationGizmo.js +3 -3
- package/Gizmos/rotationGizmo.js.map +1 -1
- package/Gizmos/scaleGizmo.d.ts +2 -2
- package/Gizmos/scaleGizmo.js +4 -4
- package/Gizmos/scaleGizmo.js.map +1 -1
- package/Gizmos/spatialAudioGizmo.d.ts +2 -2
- package/Gizmos/spatialAudioGizmo.js +6 -6
- package/Gizmos/spatialAudioGizmo.js.map +1 -1
- package/Helpers/environmentHelper.d.ts +6 -6
- package/Helpers/environmentHelper.js +12 -12
- package/Helpers/environmentHelper.js.map +1 -1
- package/Helpers/materialConversionHelper.d.ts +1 -1
- package/Helpers/materialConversionHelper.js +1 -1
- package/Helpers/materialConversionHelper.js.map +1 -1
- package/Helpers/photoDome.d.ts +1 -1
- package/Helpers/photoDome.js +1 -1
- package/Helpers/photoDome.js.map +1 -1
- package/Helpers/textureDome.d.ts +4 -4
- package/Helpers/textureDome.js +6 -6
- package/Helpers/textureDome.js.map +1 -1
- package/Helpers/videoDome.d.ts +1 -1
- package/Helpers/videoDome.js +2 -2
- package/Helpers/videoDome.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +1 -1
- package/Inputs/scene.inputManager.js +1 -1
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Instrumentation/sceneInstrumentation.js +1 -1
- package/Instrumentation/sceneInstrumentation.js.map +1 -1
- package/Layers/effectLayer.d.ts +1 -1
- package/Layers/effectLayer.js +3 -3
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/layer.d.ts +2 -2
- package/Layers/layer.js +4 -4
- package/Layers/layer.js.map +1 -1
- package/Layers/thinEffectLayer.d.ts +2 -2
- package/Layers/thinEffectLayer.js +3 -3
- package/Layers/thinEffectLayer.js.map +1 -1
- package/Layers/thinGlowLayer.d.ts +1 -1
- package/Layers/thinGlowLayer.js +3 -3
- package/Layers/thinGlowLayer.js.map +1 -1
- package/Layers/thinHighlightLayer.d.ts +1 -1
- package/Layers/thinHighlightLayer.js +3 -3
- package/Layers/thinHighlightLayer.js.map +1 -1
- package/Layers/thinSelectionOutlineLayer.d.ts +1 -1
- package/Layers/thinSelectionOutlineLayer.js +3 -3
- package/Layers/thinSelectionOutlineLayer.js.map +1 -1
- package/Legacy/legacy.js +12 -1
- package/Legacy/legacy.js.map +1 -1
- package/LensFlares/lensFlare.d.ts +2 -2
- package/LensFlares/lensFlare.js +3 -3
- package/LensFlares/lensFlare.js.map +1 -1
- package/LensFlares/lensFlareSystem.d.ts +1 -1
- package/LensFlares/lensFlareSystem.js +6 -6
- package/LensFlares/lensFlareSystem.js.map +1 -1
- package/Lights/LTC/ltcTextureTool.js +1 -1
- package/Lights/LTC/ltcTextureTool.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -285
- package/Lights/Shadows/cascadedShadowGenerator.js +3 -857
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.pure.d.ts +290 -0
- package/Lights/Shadows/cascadedShadowGenerator.pure.js +868 -0
- package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -0
- package/Lights/Shadows/pure.d.ts +1 -0
- package/Lights/Shadows/pure.js +1 -0
- package/Lights/Shadows/pure.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +3 -3
- package/Lights/Shadows/shadowGenerator.js +7 -7
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/areaLight.d.ts +1 -1
- package/Lights/areaLight.js +0 -1
- package/Lights/areaLight.js.map +1 -1
- package/Lights/light.d.ts +2 -2
- package/Lights/light.js +2 -2
- package/Lights/light.js.map +1 -1
- package/Lights/shadowLight.d.ts +1 -1
- package/Lights/shadowLight.js +1 -1
- package/Lights/shadowLight.js.map +1 -1
- package/Loading/sceneLoader.d.ts +2 -2
- package/Loading/sceneLoader.js +3 -3
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/GreasedLine/greasedLineMaterialDefaults.d.ts +1 -1
- package/Materials/GreasedLine/greasedLineMaterialDefaults.js +1 -1
- package/Materials/GreasedLine/greasedLineMaterialDefaults.js.map +1 -1
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js +10 -3
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js.map +1 -1
- package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +3 -3
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js +3 -3
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +6 -6
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.d.ts +12 -0
- package/Materials/Node/nodeMaterial.pure.js +68 -13
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialDefault.js +14 -14
- package/Materials/Node/nodeMaterialDefault.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.pure.js +19 -4
- package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +40 -2
- package/Materials/PBR/pbrAnisotropicConfiguration.js +41 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +5 -1
- package/Materials/PBR/pbrBRDFConfiguration.js +5 -1
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +2 -2
- package/Materials/PBR/pbrBaseSimpleMaterial.js +2 -2
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +42 -2
- package/Materials/PBR/pbrClearCoatConfiguration.js +42 -2
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +38 -1
- package/Materials/PBR/pbrIridescenceConfiguration.js +38 -1
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +41 -2
- package/Materials/PBR/pbrSheenConfiguration.js +41 -2
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +41 -2
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +42 -3
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
- package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.d.ts +1 -1
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +2 -2
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -1
- package/Materials/Textures/Loaders/EXR/exrLoader.core.d.ts +1 -1
- package/Materials/Textures/Loaders/EXR/exrLoader.core.js +5 -109
- package/Materials/Textures/Loaders/EXR/exrLoader.core.js.map +1 -1
- package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js +1 -1
- package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js.map +1 -1
- package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
- package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js +3 -1
- package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js +11 -2
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
- package/Materials/Textures/MultiviewRenderTarget.js +1 -1
- package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
- package/Materials/Textures/Packer/packer.d.ts +1 -1
- package/Materials/Textures/Packer/packer.js +6 -6
- package/Materials/Textures/Packer/packer.js.map +1 -1
- package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -2
- package/Materials/Textures/Procedurals/customProceduralTexture.js +4 -4
- package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +4 -1
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js +1 -1
- package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js.map +1 -1
- package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
- package/Materials/Textures/prePassRenderTarget.js +1 -1
- package/Materials/Textures/prePassRenderTarget.js.map +1 -1
- package/Materials/Textures/rawCubeTexture.d.ts +1 -1
- package/Materials/Textures/rawCubeTexture.js +2 -2
- package/Materials/Textures/rawCubeTexture.js.map +1 -1
- package/Materials/Textures/rawTexture.d.ts +1 -1
- package/Materials/Textures/rawTexture.js +1 -1
- package/Materials/Textures/rawTexture.js.map +1 -1
- package/Materials/Textures/rawTexture2DArray.d.ts +1 -1
- package/Materials/Textures/rawTexture2DArray.js +1 -1
- package/Materials/Textures/rawTexture2DArray.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/refractionTexture.d.ts +1 -1
- package/Materials/Textures/refractionTexture.js +1 -1
- package/Materials/Textures/refractionTexture.js.map +1 -1
- package/Materials/Textures/textureMerger.d.ts +1 -1
- package/Materials/Textures/textureMerger.js +1 -1
- package/Materials/Textures/textureMerger.js.map +1 -1
- package/Materials/Textures/textureProcessor.d.ts +1 -1
- package/Materials/Textures/textureProcessor.js +2 -2
- package/Materials/Textures/textureProcessor.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.d.ts +4 -4
- package/Materials/Textures/thinRenderTargetTexture.js +2 -2
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/clipPlaneMaterialHelper.js +1 -1
- package/Materials/clipPlaneMaterialHelper.js.map +1 -1
- package/Materials/effectRenderer.pure.js +4 -2
- package/Materials/effectRenderer.pure.js.map +1 -1
- package/Materials/floatingOriginMatrixOverrides.d.ts +1 -1
- package/Materials/floatingOriginMatrixOverrides.js +1 -1
- package/Materials/floatingOriginMatrixOverrides.js.map +1 -1
- package/Materials/material.detailMapConfiguration.d.ts +39 -1
- package/Materials/material.detailMapConfiguration.js +39 -1
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/materialHelper.functions.js +45 -1
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.d.ts +1 -1
- package/Materials/materialHelper.geometryrendering.js +1 -1
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/materialPluginFactoryExport.js +2 -2
- package/Materials/materialPluginFactoryExport.js.map +1 -1
- package/Materials/pushMaterial.d.ts +7 -1
- package/Materials/pushMaterial.js +7 -1
- package/Materials/pushMaterial.js.map +1 -1
- package/Materials/uniformBuffer.js +1 -1
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.axis.d.ts +1 -1
- package/Maths/math.axis.js +1 -1
- package/Maths/math.axis.js.map +1 -1
- package/Maths/math.d.ts +2 -2
- package/Maths/math.functions.d.ts +1 -1
- package/Maths/math.functions.js +1 -1
- package/Maths/math.functions.js.map +1 -1
- package/Maths/math.isovector.d.ts +1 -1
- package/Maths/math.isovector.js +1 -1
- package/Maths/math.isovector.js.map +1 -1
- package/Maths/math.js +2 -2
- package/Maths/math.js.map +1 -1
- package/Maths/math.path.d.ts +1 -1
- package/Maths/math.path.js +1 -1
- package/Maths/math.path.js.map +1 -1
- package/Maths/math.plane.d.ts +1 -1
- package/Maths/math.plane.js +1 -1
- package/Maths/math.plane.js.map +1 -1
- package/Maths/math.polar.d.ts +1 -1
- package/Maths/math.polar.js +1 -1
- package/Maths/math.polar.js.map +1 -1
- package/Maths/math.vertexFormat.d.ts +1 -1
- package/Maths/math.vertexFormat.js +1 -1
- package/Maths/math.vertexFormat.js.map +1 -1
- package/Maths/pure.d.ts +1 -0
- package/Maths/pure.js +1 -0
- package/Maths/pure.js.map +1 -1
- package/Meshes/Builders/geodesicBuilder.js +1 -1
- package/Meshes/Builders/geodesicBuilder.js.map +1 -1
- package/Meshes/Builders/goldbergBuilder.d.ts +1 -1
- package/Meshes/Builders/goldbergBuilder.js +4 -4
- package/Meshes/Builders/goldbergBuilder.js.map +1 -1
- package/Meshes/Builders/greasedLineBuilder.d.ts +4 -4
- package/Meshes/Builders/greasedLineBuilder.js +5 -5
- package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
- package/Meshes/Builders/textBuilder.d.ts +2 -2
- package/Meshes/Builders/textBuilder.js +4 -4
- package/Meshes/Builders/textBuilder.js.map +1 -1
- package/Meshes/Builders/tiledBoxBuilder.d.ts +3 -3
- package/Meshes/Builders/tiledBoxBuilder.js +3 -3
- package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
- package/Meshes/Builders/tiledPlaneBuilder.d.ts +1 -1
- package/Meshes/Builders/tiledPlaneBuilder.js +1 -1
- package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
- package/Meshes/Compression/dracoCodec.js +1 -1
- package/Meshes/Compression/dracoCodec.js.map +1 -1
- package/Meshes/Compression/dracoDecoder.js +1 -1
- package/Meshes/Compression/dracoDecoder.js.map +1 -1
- package/Meshes/Compression/dracoEncoder.d.ts +1 -1
- package/Meshes/Compression/dracoEncoder.js +2 -2
- package/Meshes/Compression/dracoEncoder.js.map +1 -1
- package/Meshes/Compression/meshoptCompression.js +1 -1
- package/Meshes/Compression/meshoptCompression.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +50 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +263 -107
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +37 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +160 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
- package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
- package/Meshes/GreasedLine/greasedLineBaseMesh.js +3 -3
- package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
- package/Meshes/Node/nodeGeometry.d.ts +2 -2
- package/Meshes/Node/nodeGeometry.js +4 -4
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/Node/nodeGeometryBuildState.d.ts +1 -1
- package/Meshes/Node/nodeGeometryBuildState.js +1 -1
- package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
- package/Meshes/abstractMesh.hotSpot.d.ts +1 -1
- package/Meshes/abstractMesh.hotSpot.js +2 -2
- package/Meshes/abstractMesh.hotSpot.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +2 -13
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/buffer.d.ts +1 -1
- package/Meshes/buffer.js +1 -1
- package/Meshes/buffer.js.map +1 -1
- package/Meshes/csg.d.ts +3 -3
- package/Meshes/csg.js +4 -4
- package/Meshes/csg.js.map +1 -1
- package/Meshes/csg2.d.ts +1 -1
- package/Meshes/csg2.js +38 -11
- package/Meshes/csg2.js.map +1 -1
- package/Meshes/geodesicMesh.d.ts +1 -1
- package/Meshes/geodesicMesh.js +1 -1
- package/Meshes/geodesicMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +2 -2
- package/Meshes/geometry.js +34 -19
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/lattice.d.ts +1 -1
- package/Meshes/lattice.js +1 -1
- package/Meshes/lattice.js.map +1 -1
- package/Meshes/lattice.material.d.ts +1 -1
- package/Meshes/lattice.material.js +1 -1
- package/Meshes/lattice.material.js.map +1 -1
- package/Meshes/mesh.pure.js +26 -14
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +2 -2
- package/Meshes/mesh.vertexData.js +3 -4
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/mesh.vertexData.subdivide.js +1 -1
- package/Meshes/mesh.vertexData.subdivide.js.map +1 -1
- package/Meshes/meshBuilder.d.ts +18 -18
- package/Meshes/meshBuilder.js +18 -18
- package/Meshes/meshBuilder.js.map +1 -1
- package/Meshes/meshSimplification.d.ts +1 -1
- package/Meshes/meshSimplification.js +4 -4
- package/Meshes/meshSimplification.js.map +1 -1
- package/Meshes/meshUVSpaceRenderer.d.ts +1 -1
- package/Meshes/meshUVSpaceRenderer.js +0 -1
- package/Meshes/meshUVSpaceRenderer.js.map +1 -1
- package/Meshes/meshUtils.d.ts +1 -1
- package/Meshes/meshUtils.js +2 -2
- package/Meshes/meshUtils.js.map +1 -1
- package/Meshes/polygonMesh.d.ts +2 -2
- package/Meshes/polygonMesh.js +3 -3
- package/Meshes/polygonMesh.js.map +1 -1
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
- package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
- package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.js +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/areaLightsTextureTools.d.ts +1 -1
- package/Misc/areaLightsTextureTools.js +3 -3
- package/Misc/areaLightsTextureTools.js.map +1 -1
- package/Misc/assetsManager.d.ts +4 -4
- package/Misc/assetsManager.js +5 -5
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basisWorker.js +1 -1
- package/Misc/basisWorker.js.map +1 -1
- package/Misc/brdfTextureTools.js +1 -1
- package/Misc/brdfTextureTools.js.map +1 -1
- package/Misc/copyTextureToTexture.d.ts +1 -1
- package/Misc/copyTextureToTexture.js +1 -1
- package/Misc/copyTextureToTexture.js.map +1 -1
- package/Misc/decorators.serialization.js +2 -2
- package/Misc/decorators.serialization.js.map +1 -1
- package/Misc/depthReducer.d.ts +2 -2
- package/Misc/depthReducer.js +2 -2
- package/Misc/depthReducer.js.map +1 -1
- package/Misc/gradients.d.ts +1 -1
- package/Misc/gradients.js +1 -1
- package/Misc/gradients.js.map +1 -1
- package/Misc/greasedLineTools.d.ts +1 -1
- package/Misc/greasedLineTools.js +3 -3
- package/Misc/greasedLineTools.js.map +1 -1
- package/Misc/halfFloat.d.ts +17 -0
- package/Misc/halfFloat.js +131 -0
- package/Misc/halfFloat.js.map +1 -0
- package/Misc/khronosTextureContainer2.js +1 -1
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/meshExploder.js +1 -1
- package/Misc/meshExploder.js.map +1 -1
- package/Misc/pivotTools.js +1 -1
- package/Misc/pivotTools.js.map +1 -1
- package/Misc/rgbdTextureTools.js +1 -1
- package/Misc/rgbdTextureTools.js.map +1 -1
- package/Misc/sceneOptimizer.js +1 -1
- package/Misc/sceneOptimizer.js.map +1 -1
- package/Misc/sceneRecorder.js +7 -7
- package/Misc/sceneRecorder.js.map +1 -1
- package/Misc/sceneSerializer.js +3 -3
- package/Misc/sceneSerializer.js.map +1 -1
- package/Misc/snapshotRenderingHelper.js +1 -1
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/textureTools.d.ts +3 -13
- package/Misc/textureTools.js +6 -64
- package/Misc/textureTools.js.map +1 -1
- package/Misc/thinMinMaxReducer.d.ts +1 -1
- package/Misc/thinMinMaxReducer.js +1 -1
- package/Misc/thinMinMaxReducer.js.map +1 -1
- package/Misc/tools.internals.js +1 -1
- package/Misc/tools.internals.js.map +1 -1
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/Misc/trajectoryClassifier.d.ts +1 -1
- package/Misc/trajectoryClassifier.js +1 -1
- package/Misc/trajectoryClassifier.js.map +1 -1
- package/Misc/videoRecorder.js +1 -1
- package/Misc/videoRecorder.js.map +1 -1
- package/Misc/virtualJoystick.d.ts +1 -1
- package/Misc/virtualJoystick.js +1 -1
- package/Misc/virtualJoystick.js.map +1 -1
- package/Morph/morphTarget.js +1 -1
- package/Morph/morphTarget.js.map +1 -1
- package/Navigation/Plugins/recastJSPlugin.d.ts +1 -1
- package/Navigation/Plugins/recastJSPlugin.js +2 -2
- package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
- package/Particles/EmitterTypes/boxParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/boxParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/boxParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/coneParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/coneParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/customParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/customParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/cylinderParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/cylinderParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/hemisphericParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/hemisphericParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/hemisphericParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/meshParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/meshParticleEmitter.js +2 -2
- package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/pointParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/pointParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/pointParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/sphereParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/sphereParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/sphereParticleEmitter.js.map +1 -1
- package/Particles/Node/nodeParticleBuildState.d.ts +4 -4
- package/Particles/Node/nodeParticleBuildState.js +2 -2
- package/Particles/Node/nodeParticleBuildState.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.d.ts +2 -2
- package/Particles/Node/nodeParticleSystemSet.helper.js +31 -31
- package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.js +8 -8
- package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
- package/Particles/attractor.d.ts +1 -1
- package/Particles/attractor.js +1 -1
- package/Particles/attractor.js.map +1 -1
- package/Particles/flowMap.d.ts +7 -1
- package/Particles/flowMap.js +7 -1
- package/Particles/flowMap.js.map +1 -1
- package/Particles/particle.d.ts +2 -2
- package/Particles/particle.js +2 -2
- package/Particles/particle.js.map +1 -1
- package/Particles/particleHelper.js +5 -5
- package/Particles/particleHelper.js.map +1 -1
- package/Particles/particleSystem.functions.d.ts +1 -1
- package/Particles/particleSystem.functions.js +1 -1
- package/Particles/particleSystem.functions.js.map +1 -1
- package/Particles/particleSystemSet.d.ts +1 -1
- package/Particles/particleSystemSet.js +5 -5
- package/Particles/particleSystemSet.js.map +1 -1
- package/Particles/pointsCloudSystem.d.ts +1 -1
- package/Particles/pointsCloudSystem.js +6 -6
- package/Particles/pointsCloudSystem.js.map +1 -1
- package/Particles/solidParticle.d.ts +2 -2
- package/Particles/solidParticle.js +3 -3
- package/Particles/solidParticle.js.map +1 -1
- package/Particles/solidParticleSystem.d.ts +4 -4
- package/Particles/solidParticleSystem.js +7 -7
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/subEmitter.js +1 -1
- package/Particles/subEmitter.js.map +1 -1
- package/Particles/thinParticleSystem.function.js +2 -2
- package/Particles/thinParticleSystem.function.js.map +1 -1
- package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
- package/Physics/Plugins/cannonJSPlugin.js +1 -1
- package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
- package/Physics/castingResult.d.ts +1 -1
- package/Physics/castingResult.js +1 -1
- package/Physics/castingResult.js.map +1 -1
- package/Physics/physicsHelper.d.ts +1 -1
- package/Physics/physicsHelper.js +4 -4
- package/Physics/physicsHelper.js.map +1 -1
- package/Physics/physicsImpostor.d.ts +1 -1
- package/Physics/physicsImpostor.js +1 -1
- package/Physics/physicsImpostor.js.map +1 -1
- package/Physics/physicsRaycastResult.d.ts +1 -1
- package/Physics/physicsRaycastResult.js +1 -1
- package/Physics/physicsRaycastResult.js.map +1 -1
- package/Physics/v1/Plugins/ammoJSPlugin.d.ts +2 -2
- package/Physics/v1/Plugins/ammoJSPlugin.js +5 -5
- package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
- package/Physics/v1/Plugins/oimoJSPlugin.d.ts +2 -2
- package/Physics/v1/Plugins/oimoJSPlugin.js +2 -2
- package/Physics/v1/Plugins/oimoJSPlugin.js.map +1 -1
- package/Physics/v1/physicsEngine.d.ts +1 -1
- package/Physics/v1/physicsEngine.js +1 -1
- package/Physics/v1/physicsEngine.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.d.ts +14 -2
- package/Physics/v2/Plugins/havokPlugin.js +45 -7
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/Physics/v2/characterController.d.ts +1 -1
- package/Physics/v2/characterController.js +2 -2
- package/Physics/v2/characterController.js.map +1 -1
- package/Physics/v2/physicsAggregate.d.ts +3 -3
- package/Physics/v2/physicsAggregate.js +10 -6
- package/Physics/v2/physicsAggregate.js.map +1 -1
- package/Physics/v2/physicsBody.d.ts +1 -1
- package/Physics/v2/physicsBody.js +1 -1
- package/Physics/v2/physicsBody.js.map +1 -1
- package/Physics/v2/physicsEngine.d.ts +1 -1
- package/Physics/v2/physicsEngine.js +1 -1
- package/Physics/v2/physicsEngine.js.map +1 -1
- package/Physics/v2/physicsShape.d.ts +1 -1
- package/Physics/v2/physicsShape.js +1 -1
- package/Physics/v2/physicsShape.js.map +1 -1
- package/Physics/v2/ragdoll.d.ts +2 -2
- package/Physics/v2/ragdoll.js +2 -2
- package/Physics/v2/ragdoll.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.d.ts +1 -0
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +8 -6
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +3 -2
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/bloomEffect.d.ts +1 -1
- package/PostProcesses/bloomEffect.js +4 -4
- package/PostProcesses/bloomEffect.js.map +1 -1
- package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
- package/PostProcesses/depthOfFieldEffect.js +3 -3
- package/PostProcesses/depthOfFieldEffect.js.map +1 -1
- package/PostProcesses/depthOfFieldMergePostProcess.d.ts +1 -1
- package/PostProcesses/depthOfFieldMergePostProcess.js +1 -1
- package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
- package/PostProcesses/highlightsPostProcess.d.ts +1 -1
- package/PostProcesses/highlightsPostProcess.js +1 -1
- package/PostProcesses/highlightsPostProcess.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -1
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.d.ts +3 -0
- package/PostProcesses/postProcessManager.js +4 -1
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/PostProcesses/subSurfaceScatteringPostProcess.pure.d.ts +1 -0
- package/PostProcesses/subSurfaceScatteringPostProcess.pure.js +10 -0
- package/PostProcesses/subSurfaceScatteringPostProcess.pure.js.map +1 -1
- package/PostProcesses/thinAnaglyphPostProcess.d.ts +1 -1
- package/PostProcesses/thinAnaglyphPostProcess.js +1 -1
- package/PostProcesses/thinAnaglyphPostProcess.js.map +1 -1
- package/PostProcesses/thinBlackAndWhitePostProcess.d.ts +1 -1
- package/PostProcesses/thinBlackAndWhitePostProcess.js +1 -1
- package/PostProcesses/thinBlackAndWhitePostProcess.js.map +1 -1
- package/PostProcesses/thinBloomEffect.js +1 -1
- package/PostProcesses/thinBloomEffect.js.map +1 -1
- package/PostProcesses/thinBloomMergePostProcess.d.ts +1 -1
- package/PostProcesses/thinBloomMergePostProcess.js +1 -1
- package/PostProcesses/thinBloomMergePostProcess.js.map +1 -1
- package/PostProcesses/thinBlurPostProcess.d.ts +1 -1
- package/PostProcesses/thinBlurPostProcess.js +1 -1
- package/PostProcesses/thinBlurPostProcess.js.map +1 -1
- package/PostProcesses/thinChromaticAberrationPostProcess.d.ts +2 -2
- package/PostProcesses/thinChromaticAberrationPostProcess.js +2 -2
- package/PostProcesses/thinChromaticAberrationPostProcess.js.map +1 -1
- package/PostProcesses/thinCircleOfConfusionPostProcess.d.ts +1 -1
- package/PostProcesses/thinCircleOfConfusionPostProcess.js +1 -1
- package/PostProcesses/thinCircleOfConfusionPostProcess.js.map +1 -1
- package/PostProcesses/thinColorCorrectionPostProcess.d.ts +1 -1
- package/PostProcesses/thinColorCorrectionPostProcess.js +2 -2
- package/PostProcesses/thinColorCorrectionPostProcess.js.map +1 -1
- package/PostProcesses/thinConvolutionPostProcess.d.ts +1 -1
- package/PostProcesses/thinConvolutionPostProcess.js +1 -1
- package/PostProcesses/thinConvolutionPostProcess.js.map +1 -1
- package/PostProcesses/thinCustomPostProcess.d.ts +1 -1
- package/PostProcesses/thinCustomPostProcess.js +1 -1
- package/PostProcesses/thinCustomPostProcess.js.map +1 -1
- package/PostProcesses/thinDepthOfFieldEffect.d.ts +3 -0
- package/PostProcesses/thinDepthOfFieldEffect.js +4 -1
- package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -1
- package/PostProcesses/thinDepthOfFieldMergePostProcess.d.ts +1 -1
- package/PostProcesses/thinDepthOfFieldMergePostProcess.js +1 -1
- package/PostProcesses/thinDepthOfFieldMergePostProcess.js.map +1 -1
- package/PostProcesses/thinExtractHighlightsPostProcess.d.ts +1 -1
- package/PostProcesses/thinExtractHighlightsPostProcess.js +1 -1
- package/PostProcesses/thinExtractHighlightsPostProcess.js.map +1 -1
- package/PostProcesses/thinFXAAPostProcess.d.ts +2 -2
- package/PostProcesses/thinFXAAPostProcess.js +2 -2
- package/PostProcesses/thinFXAAPostProcess.js.map +1 -1
- package/PostProcesses/thinFilterPostProcess.d.ts +2 -2
- package/PostProcesses/thinFilterPostProcess.js +2 -2
- package/PostProcesses/thinFilterPostProcess.js.map +1 -1
- package/PostProcesses/thinGrainPostProcess.d.ts +1 -1
- package/PostProcesses/thinGrainPostProcess.js +1 -1
- package/PostProcesses/thinGrainPostProcess.js.map +1 -1
- package/PostProcesses/thinImageProcessingPostProcess.d.ts +2 -2
- package/PostProcesses/thinImageProcessingPostProcess.js +2 -2
- package/PostProcesses/thinImageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/thinMotionBlurPostProcess.d.ts +1 -1
- package/PostProcesses/thinMotionBlurPostProcess.js +2 -2
- package/PostProcesses/thinMotionBlurPostProcess.js.map +1 -1
- package/PostProcesses/thinPassPostProcess.d.ts +1 -1
- package/PostProcesses/thinPassPostProcess.js +1 -1
- package/PostProcesses/thinPassPostProcess.js.map +1 -1
- package/PostProcesses/thinSSAO2BlurPostProcess.d.ts +1 -1
- package/PostProcesses/thinSSAO2BlurPostProcess.js +1 -1
- package/PostProcesses/thinSSAO2BlurPostProcess.js.map +1 -1
- package/PostProcesses/thinSSAO2CombinePostProcess.d.ts +1 -1
- package/PostProcesses/thinSSAO2CombinePostProcess.js +2 -2
- package/PostProcesses/thinSSAO2CombinePostProcess.js.map +1 -1
- package/PostProcesses/thinSSAO2PostProcess.d.ts +7 -2
- package/PostProcesses/thinSSAO2PostProcess.js +36 -4
- package/PostProcesses/thinSSAO2PostProcess.js.map +1 -1
- package/PostProcesses/thinSSRBlurCombinerPostProcess.d.ts +1 -1
- package/PostProcesses/thinSSRBlurCombinerPostProcess.js +2 -2
- package/PostProcesses/thinSSRBlurCombinerPostProcess.js.map +1 -1
- package/PostProcesses/thinSSRBlurPostProcess.d.ts +2 -2
- package/PostProcesses/thinSSRBlurPostProcess.js +2 -2
- package/PostProcesses/thinSSRBlurPostProcess.js.map +1 -1
- package/PostProcesses/thinSSRPostProcess.d.ts +1 -1
- package/PostProcesses/thinSSRPostProcess.js +2 -2
- package/PostProcesses/thinSSRPostProcess.js.map +1 -1
- package/PostProcesses/thinScreenSpaceCurvaturePostProcess.d.ts +1 -1
- package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js +1 -1
- package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js.map +1 -1
- package/PostProcesses/thinSharpenPostProcess.d.ts +1 -1
- package/PostProcesses/thinSharpenPostProcess.js +1 -1
- package/PostProcesses/thinSharpenPostProcess.js.map +1 -1
- package/PostProcesses/thinTAAPostProcess.d.ts +3 -3
- package/PostProcesses/thinTAAPostProcess.js +4 -4
- package/PostProcesses/thinTAAPostProcess.js.map +1 -1
- package/PostProcesses/thinTonemapPostProcess.d.ts +1 -1
- package/PostProcesses/thinTonemapPostProcess.js +1 -1
- package/PostProcesses/thinTonemapPostProcess.js.map +1 -1
- package/PostProcesses/vrDistortionCorrectionPostProcess.d.ts +1 -1
- package/PostProcesses/vrDistortionCorrectionPostProcess.js +3 -3
- package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.d.ts +2 -2
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +4 -4
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.d.ts +2 -2
- package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js +4 -4
- package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.d.ts +3 -3
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +4 -4
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
- package/Rendering/depthPeelingRenderer.d.ts +1 -1
- package/Rendering/depthPeelingRenderer.js +2 -2
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +2 -2
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +3 -3
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -3
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
- package/Rendering/fluidRenderer/fluidRenderingTextures.js +3 -3
- package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
- package/Rendering/iblCdfGenerator.d.ts +3 -3
- package/Rendering/iblCdfGenerator.js +5 -5
- package/Rendering/iblCdfGenerator.js.map +1 -1
- package/Rendering/renderingGroup.js +1 -1
- package/Rendering/renderingGroup.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.d.ts +2 -2
- package/Rendering/subSurfaceConfiguration.js +2 -2
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/utilityLayerRenderer.d.ts +2 -2
- package/Rendering/utilityLayerRenderer.js +4 -4
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/greasedLine.vertex.js +19 -3
- package/Shaders/greasedLine.vertex.js.map +1 -1
- package/Shaders/ssao2.fragment.js +10 -2
- package/Shaders/ssao2.fragment.js.map +1 -1
- package/ShadersWGSL/ssao2.fragment.js +10 -2
- package/ShadersWGSL/ssao2.fragment.js.map +1 -1
- package/SmartAssets/smartAssetSerializer.js +1 -1
- package/SmartAssets/smartAssetSerializer.js.map +1 -1
- package/Sprites/sprite.d.ts +2 -2
- package/Sprites/sprite.js +2 -2
- package/Sprites/sprite.js.map +1 -1
- package/Sprites/spriteManager.d.ts +2 -2
- package/Sprites/spriteManager.js +4 -5
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spritePackedManager.js +1 -1
- package/Sprites/spritePackedManager.js.map +1 -1
- package/Sprites/spriteRenderer.js +2 -2
- package/Sprites/spriteRenderer.js.map +1 -1
- package/XR/features/WebXRHitTestLegacy.d.ts +1 -1
- package/XR/features/WebXRHitTestLegacy.js +2 -2
- package/XR/features/WebXRHitTestLegacy.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.js +2 -2
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/motionController/webXRGenericMotionController.js +2 -2
- package/XR/motionController/webXRGenericMotionController.js.map +1 -1
- package/XR/motionController/webXRProfiledMotionController.js +4 -4
- package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
- package/XR/webXRCamera.d.ts +3 -3
- package/XR/webXRCamera.js +4 -4
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRDefaultExperience.d.ts +4 -4
- package/XR/webXRDefaultExperience.js +4 -4
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXREnterExitUI.js +1 -1
- package/XR/webXREnterExitUI.js.map +1 -1
- package/XR/webXRExperienceHelper.js +2 -2
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRFeaturesManager.d.ts +47 -0
- package/XR/webXRFeaturesManager.js +1 -1
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRInput.js +1 -1
- package/XR/webXRInput.js.map +1 -1
- package/XR/webXRInputSource.js +4 -4
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRManagedOutputCanvas.js +1 -1
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
- package/XR/webXRRenderTargetTextureProvider.js +1 -1
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/assetContainer.d.ts +4 -4
- package/assetContainer.js +6 -6
- package/assetContainer.js.map +1 -1
- package/node.d.ts +1 -1
- package/node.js +6 -2
- package/node.js.map +1 -1
- package/package.json +46 -175
- package/scene.pure.d.ts +12 -0
- package/scene.pure.js +36 -0
- package/scene.pure.js.map +1 -1
|
@@ -40,6 +40,19 @@ interface IUpdateOptions {
|
|
|
40
40
|
/** @internal When set, skips reprocessing splats [0, previousVertexCount) and copies from cached arrays instead. */
|
|
41
41
|
previousVertexCount?: number;
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Defines a contiguous source-splat range to render from a GaussianSplattingMesh.
|
|
45
|
+
*/
|
|
46
|
+
export interface IGaussianSplattingSplatRange {
|
|
47
|
+
/**
|
|
48
|
+
* First source splat index to render.
|
|
49
|
+
*/
|
|
50
|
+
offset: number;
|
|
51
|
+
/**
|
|
52
|
+
* Number of source splats to render.
|
|
53
|
+
*/
|
|
54
|
+
count: number;
|
|
55
|
+
}
|
|
43
56
|
interface ITextureDataUpdateCapableEngine {
|
|
44
57
|
updateTextureData(texture: InternalTexture, imageData: ArrayBufferView, xOffset: number, yOffset: number, width: number, height: number, faceIndex?: number, lod?: number, generateMipMaps?: boolean): void;
|
|
45
58
|
updateRawTexture(texture: Nullable<InternalTexture>, data: Nullable<ArrayBufferView>, format: number, invertY: boolean, compression?: Nullable<string>, type?: number, useSRGBBuffer?: boolean): void;
|
|
@@ -254,6 +267,7 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
254
267
|
protected _canPostToWorker: boolean;
|
|
255
268
|
private _readyToDisplay;
|
|
256
269
|
private _sortRequestId;
|
|
270
|
+
private _activeRangeVersion;
|
|
257
271
|
private _hasRenderedOnce;
|
|
258
272
|
protected _covariancesATexture: Nullable<BaseTexture>;
|
|
259
273
|
protected _covariancesBTexture: Nullable<BaseTexture>;
|
|
@@ -286,6 +300,9 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
286
300
|
private _splatSizeMin;
|
|
287
301
|
private _splatSizeMax;
|
|
288
302
|
private _sortIsDirty;
|
|
303
|
+
private _activeSplatRanges;
|
|
304
|
+
private _activeSplatRangeKey;
|
|
305
|
+
private _activeSplatRenderCount;
|
|
289
306
|
protected _cachedBoundingMin: Nullable<Vector3>;
|
|
290
307
|
protected _cachedBoundingMax: Nullable<Vector3>;
|
|
291
308
|
private static _RowOutputLength;
|
|
@@ -317,6 +334,7 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
317
334
|
* @internal
|
|
318
335
|
*/
|
|
319
336
|
protected static _GetSplatDataFloats(data: ArrayBuffer | ArrayBufferView): Float32Array;
|
|
337
|
+
private static _BuildSplatRangeData;
|
|
320
338
|
/**
|
|
321
339
|
* Cosine value of the angle threshold to update view dependent splat sorting. Default is 0.0001.
|
|
322
340
|
*/
|
|
@@ -346,6 +364,38 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
346
364
|
* Number of splats in the mesh
|
|
347
365
|
*/
|
|
348
366
|
get splatCount(): number | undefined;
|
|
367
|
+
/**
|
|
368
|
+
* Number of source splats currently selected for rendering.
|
|
369
|
+
* When no range filter is active, this is the mesh's full source splat count.
|
|
370
|
+
*/
|
|
371
|
+
get renderedSplatCount(): number;
|
|
372
|
+
/**
|
|
373
|
+
* Restricts rendering to the provided source splat ranges.
|
|
374
|
+
* Passing `null` clears the range filter and renders the full source splat set.
|
|
375
|
+
* @param ranges contiguous source ranges to render, or null to render all splats
|
|
376
|
+
*/
|
|
377
|
+
setSplatIndexRanges(ranges: Nullable<readonly IGaussianSplattingSplatRange[]>): void;
|
|
378
|
+
private _setSplatIndexRanges;
|
|
379
|
+
private _ensureDepthMixSize;
|
|
380
|
+
/**
|
|
381
|
+
* Sends the active source-splat intervals to the sort worker. When no range filter is active,
|
|
382
|
+
* a single interval covering all source splats is sent so the worker never assumes the full set.
|
|
383
|
+
*/
|
|
384
|
+
private _postIntervalsToWorker;
|
|
385
|
+
/**
|
|
386
|
+
* Initializes this mesh to render from an externally-provided, GPU-decoded work buffer, bypassing the
|
|
387
|
+
* CPU `updateData` path. The four textures must hold the standard decoded GS layout addressed by linear
|
|
388
|
+
* splat index over a square texture: centers (x,y,z,1), covariance A (Sigma00,01,02,11) and B
|
|
389
|
+
* (Sigma12,22,*,*) as full covariance (so `center.w` is 1), and RGBA color. `splatPositions` are the
|
|
390
|
+
* stride-4 CPU centers consumed by the depth-sort worker.
|
|
391
|
+
* @param centers centers texture
|
|
392
|
+
* @param covariancesA covariance A texture
|
|
393
|
+
* @param covariancesB covariance B texture
|
|
394
|
+
* @param colors color texture
|
|
395
|
+
* @param splatPositions stride-4 CPU centers for depth sorting (length vertexCount*4)
|
|
396
|
+
* @param vertexCount number of splats addressable in the work buffer
|
|
397
|
+
*/
|
|
398
|
+
protected _setExternalWorkBuffer(centers: BaseTexture, covariancesA: BaseTexture, covariancesB: BaseTexture, colors: BaseTexture, splatPositions: Float32Array, vertexCount: number): void;
|
|
349
399
|
/**
|
|
350
400
|
* returns the splats data array buffer that contains in order : postions (3 floats), size (3 floats), color (4 bytes), orientation quaternion (4 bytes)
|
|
351
401
|
* Only available if the mesh was created with keepInRam: true
|
|
@@ -559,7 +609,6 @@ export declare class GaussianSplattingMeshBase extends Mesh {
|
|
|
559
609
|
* @returns a new Gaussian Splatting Mesh
|
|
560
610
|
*/
|
|
561
611
|
clone(name?: string): GaussianSplattingMeshBase;
|
|
562
|
-
private static _CreateWorker;
|
|
563
612
|
protected _makeEmptySplat(index: number, covA: Uint16Array, covB: Uint16Array, colorArray: Uint8Array): void;
|
|
564
613
|
/**
|
|
565
614
|
* Processes a single splat from the source buffer (at srcIndex) and writes the result into
|
|
@@ -13,6 +13,7 @@ import { Scalar } from "../../Maths/math.scalar.js";
|
|
|
13
13
|
import { runCoroutineSync, runCoroutineAsync, createYieldingScheduler } from "../../Misc/coroutine.js";
|
|
14
14
|
import { EngineStore } from "../../Engines/engineStore.js";
|
|
15
15
|
import { ImportMeshAsync } from "../../Loading/sceneLoader.js";
|
|
16
|
+
import { GaussianSplattingSortWorker, GaussianSplattingSortWorkerCommand } from "./gaussianSplattingSortWorker.js";
|
|
16
17
|
const IsNative = typeof _native !== "undefined";
|
|
17
18
|
const Native = IsNative ? _native : null;
|
|
18
19
|
// @internal
|
|
@@ -187,6 +188,59 @@ var PLYValue;
|
|
|
187
188
|
PLYValue[PLYValue["SH_71"] = 111] = "SH_71";
|
|
188
189
|
PLYValue[PLYValue["UNDEFINED"] = 112] = "UNDEFINED";
|
|
189
190
|
})(PLYValue || (PLYValue = {}));
|
|
191
|
+
function _AcquireGsInterFrameYield(engine) {
|
|
192
|
+
// Browser-only optimization: wraps the global requestAnimationFrame, which
|
|
193
|
+
// doesn't exist on Babylon Native. Skip it there so the engine uses its
|
|
194
|
+
// default frame scheduling.
|
|
195
|
+
if (IsNative) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
const existing = engine.customAnimationFrameRequester;
|
|
199
|
+
if (existing?._gsInterFrameYield) {
|
|
200
|
+
existing._refCount++;
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (existing) {
|
|
204
|
+
// Slot is owned by another requester. Don't interfere.
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
let _timeoutId = 0;
|
|
208
|
+
let _innerRafId = 0;
|
|
209
|
+
const wrapper = {
|
|
210
|
+
_gsInterFrameYield: true,
|
|
211
|
+
_refCount: 1,
|
|
212
|
+
requestAnimationFrame: (callback) => {
|
|
213
|
+
// Insert a setTimeout(0) to yield to the regular task queue (worker
|
|
214
|
+
// postMessage results, input events) before scheduling the next animation
|
|
215
|
+
// frame. Without this, a continuous rAF loop at high refresh rates leaves
|
|
216
|
+
// almost no time for regular tasks, starving worker messages for hundreds of ms.
|
|
217
|
+
_timeoutId = setTimeout(() => {
|
|
218
|
+
_innerRafId = requestAnimationFrame(callback);
|
|
219
|
+
}, 0);
|
|
220
|
+
return _timeoutId;
|
|
221
|
+
},
|
|
222
|
+
cancelAnimationFrame: (_id) => {
|
|
223
|
+
clearTimeout(_timeoutId);
|
|
224
|
+
if (_innerRafId > 0) {
|
|
225
|
+
cancelAnimationFrame(_innerRafId);
|
|
226
|
+
}
|
|
227
|
+
_timeoutId = 0;
|
|
228
|
+
_innerRafId = 0;
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
engine.customAnimationFrameRequester = wrapper;
|
|
232
|
+
}
|
|
233
|
+
// Counterpart to _AcquireGsInterFrameYield. Call once per mesh on dispose.
|
|
234
|
+
function _ReleaseGsInterFrameYield(engine) {
|
|
235
|
+
const existing = engine.customAnimationFrameRequester;
|
|
236
|
+
if (!existing?._gsInterFrameYield) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
existing._refCount--;
|
|
240
|
+
if (existing._refCount === 0) {
|
|
241
|
+
engine.customAnimationFrameRequester = null;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
190
244
|
/**
|
|
191
245
|
* Base class for Gaussian Splatting meshes. Contains all single-cloud rendering logic.
|
|
192
246
|
* @internal Use GaussianSplattingMesh instead; this class is an internal implementation detail.
|
|
@@ -220,6 +274,27 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
220
274
|
}
|
|
221
275
|
return new Float32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / floatSize);
|
|
222
276
|
}
|
|
277
|
+
static _BuildSplatRangeData(ranges, vertexCount) {
|
|
278
|
+
if (ranges === null) {
|
|
279
|
+
return { ranges: null, count: vertexCount, key: "" };
|
|
280
|
+
}
|
|
281
|
+
const rangePairs = [];
|
|
282
|
+
let totalCount = 0;
|
|
283
|
+
let key = "";
|
|
284
|
+
for (const range of ranges) {
|
|
285
|
+
const start = Math.max(0, Math.floor(range.offset));
|
|
286
|
+
const count = Math.max(0, Math.floor(range.count));
|
|
287
|
+
const end = Math.min(vertexCount, start + count);
|
|
288
|
+
const rangeCount = Math.max(0, end - start);
|
|
289
|
+
if (rangeCount === 0) {
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
rangePairs.push(start, rangeCount);
|
|
293
|
+
totalCount += rangeCount;
|
|
294
|
+
key += `${start}:${rangeCount};`;
|
|
295
|
+
}
|
|
296
|
+
return { ranges: new Uint32Array(rangePairs), count: totalCount, key };
|
|
297
|
+
}
|
|
223
298
|
/**
|
|
224
299
|
* If true, disables depth sorting of the splats (default: false)
|
|
225
300
|
*/
|
|
@@ -273,6 +348,100 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
273
348
|
get splatCount() {
|
|
274
349
|
return this._splatIndex?.length;
|
|
275
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* Number of source splats currently selected for rendering.
|
|
353
|
+
* When no range filter is active, this is the mesh's full source splat count.
|
|
354
|
+
*/
|
|
355
|
+
get renderedSplatCount() {
|
|
356
|
+
return this._activeSplatRanges ? this._activeSplatRenderCount : this._vertexCount;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Restricts rendering to the provided source splat ranges.
|
|
360
|
+
* Passing `null` clears the range filter and renders the full source splat set.
|
|
361
|
+
* @param ranges contiguous source ranges to render, or null to render all splats
|
|
362
|
+
*/
|
|
363
|
+
setSplatIndexRanges(ranges) {
|
|
364
|
+
this._setSplatIndexRanges(ranges);
|
|
365
|
+
}
|
|
366
|
+
_setSplatIndexRanges(ranges) {
|
|
367
|
+
const rangeData = GaussianSplattingMeshBase._BuildSplatRangeData(ranges, this._vertexCount);
|
|
368
|
+
const isSameRangeSet = this._activeSplatRanges === null ? rangeData.ranges === null : rangeData.ranges !== null && this._activeSplatRangeKey === rangeData.key;
|
|
369
|
+
if (isSameRangeSet) {
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
this._activeSplatRanges = rangeData.ranges;
|
|
373
|
+
this._activeSplatRangeKey = rangeData.key;
|
|
374
|
+
this._activeSplatRenderCount = rangeData.count;
|
|
375
|
+
this._activeRangeVersion++;
|
|
376
|
+
this._postIntervalsToWorker();
|
|
377
|
+
if (this._worker) {
|
|
378
|
+
// Defer swapping the rendered index buffer until the worker returns a depth sort computed for
|
|
379
|
+
// this exact range set (see the worker `onmessage` handler). Until then we keep rendering the
|
|
380
|
+
// previous fully-sorted state, so a range/LOD change never shows an unsorted flash nor a stale
|
|
381
|
+
// index buffer (rendering indices that belong to a different active set, which caused the
|
|
382
|
+
// disappear/reappear flicker). Only the worker's depth buffer is resized here so the next sort
|
|
383
|
+
// produces the right number of entries.
|
|
384
|
+
this._ensureDepthMixSize(Math.max((this._activeSplatRenderCount + 15) & ~0xf, 16));
|
|
385
|
+
this._sortIsDirty = true;
|
|
386
|
+
this._postToWorker(true);
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
// Synchronous sort paths (disabled depth sort / Native): swap the index buffer immediately.
|
|
390
|
+
this._updateSplatIndexBuffer(this._vertexCount);
|
|
391
|
+
this._postToWorker(true);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
// (Re)allocates the worker depth buffer to the given padded size. A fresh array is allocated when the
|
|
395
|
+
// size differs or the current buffer is detached (in-flight in the worker), so a queued sort can be
|
|
396
|
+
// re-posted with a correctly-sized buffer without disturbing the in-flight one.
|
|
397
|
+
_ensureDepthMixSize(paddedCount) {
|
|
398
|
+
if (IsNative) {
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
if (!this._depthMix || this._depthMix.length !== paddedCount || this._depthMix.buffer.byteLength === 0) {
|
|
402
|
+
this._depthMix = new BigInt64Array(paddedCount);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Sends the active source-splat intervals to the sort worker. When no range filter is active,
|
|
407
|
+
* a single interval covering all source splats is sent so the worker never assumes the full set.
|
|
408
|
+
*/
|
|
409
|
+
_postIntervalsToWorker() {
|
|
410
|
+
if (!this._worker) {
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
413
|
+
const intervals = this._activeSplatRanges ? new Uint32Array(this._activeSplatRanges) : new Uint32Array([0, this._vertexCount]);
|
|
414
|
+
this._worker.postMessage({ command: GaussianSplattingSortWorkerCommand.INTERVALS, intervals }, [intervals.buffer]);
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Initializes this mesh to render from an externally-provided, GPU-decoded work buffer, bypassing the
|
|
418
|
+
* CPU `updateData` path. The four textures must hold the standard decoded GS layout addressed by linear
|
|
419
|
+
* splat index over a square texture: centers (x,y,z,1), covariance A (Sigma00,01,02,11) and B
|
|
420
|
+
* (Sigma12,22,*,*) as full covariance (so `center.w` is 1), and RGBA color. `splatPositions` are the
|
|
421
|
+
* stride-4 CPU centers consumed by the depth-sort worker.
|
|
422
|
+
* @param centers centers texture
|
|
423
|
+
* @param covariancesA covariance A texture
|
|
424
|
+
* @param covariancesB covariance B texture
|
|
425
|
+
* @param colors color texture
|
|
426
|
+
* @param splatPositions stride-4 CPU centers for depth sorting (length vertexCount*4)
|
|
427
|
+
* @param vertexCount number of splats addressable in the work buffer
|
|
428
|
+
*/
|
|
429
|
+
_setExternalWorkBuffer(centers, covariancesA, covariancesB, colors, splatPositions, vertexCount) {
|
|
430
|
+
this._covariancesATexture = covariancesA;
|
|
431
|
+
this._covariancesBTexture = covariancesB;
|
|
432
|
+
this._centersTexture = centers;
|
|
433
|
+
this._colorsTexture = colors;
|
|
434
|
+
this._splatPositions = splatPositions;
|
|
435
|
+
this._vertexCount = vertexCount;
|
|
436
|
+
this._activeSplatRanges = null;
|
|
437
|
+
this._activeSplatRangeKey = "";
|
|
438
|
+
this._activeSplatRenderCount = 0;
|
|
439
|
+
this._readyToDisplay = false;
|
|
440
|
+
// Sizes _splatIndex/_depthMix, starts the sort worker, and posts positions + intervals.
|
|
441
|
+
this._instantiateWorker();
|
|
442
|
+
// updateData (bypassed here) normally enables the mesh; do it explicitly for the work-buffer path.
|
|
443
|
+
this.setEnabled(true);
|
|
444
|
+
}
|
|
276
445
|
/**
|
|
277
446
|
* returns the splats data array buffer that contains in order : postions (3 floats), size (3 floats), color (4 bytes), orientation quaternion (4 bytes)
|
|
278
447
|
* Only available if the mesh was created with keepInRam: true
|
|
@@ -524,6 +693,9 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
524
693
|
this._canPostToWorker = true;
|
|
525
694
|
this._readyToDisplay = false;
|
|
526
695
|
this._sortRequestId = 0;
|
|
696
|
+
// Incremented on every active-range change. A worker sort result is only applied when it was computed
|
|
697
|
+
// for the current range version (and size), so a sort for stale ranges is never rendered.
|
|
698
|
+
this._activeRangeVersion = 0;
|
|
527
699
|
this._hasRenderedOnce = false;
|
|
528
700
|
this._covariancesATexture = null;
|
|
529
701
|
this._covariancesBTexture = null;
|
|
@@ -556,6 +728,9 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
556
728
|
this._splatSizeMin = Infinity;
|
|
557
729
|
this._splatSizeMax = -Infinity;
|
|
558
730
|
this._sortIsDirty = false;
|
|
731
|
+
this._activeSplatRanges = null;
|
|
732
|
+
this._activeSplatRangeKey = "";
|
|
733
|
+
this._activeSplatRenderCount = 0;
|
|
559
734
|
// Cached bounding box for incremental addPart updates (O(1) vs O(N) scan of positions)
|
|
560
735
|
this._cachedBoundingMin = null;
|
|
561
736
|
this._cachedBoundingMax = null;
|
|
@@ -587,6 +762,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
587
762
|
this.setEnabled(false);
|
|
588
763
|
// webGL2 and webGPU support for RG texture with float16 is fine. not webGL1
|
|
589
764
|
this._useRGBACovariants = !this.getEngine().isWebGPU && this.getEngine().version === 1.0;
|
|
765
|
+
_AcquireGsInterFrameYield(this.getEngine());
|
|
590
766
|
this._keepInRam = keepInRam;
|
|
591
767
|
if (url) {
|
|
592
768
|
this._loadingPromise = this.loadFileAsync(url);
|
|
@@ -600,9 +776,15 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
600
776
|
this._scene.onCameraRemovedObservable.add((camera) => {
|
|
601
777
|
const cameraId = camera.uniqueId;
|
|
602
778
|
// delete mesh for this camera
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
779
|
+
const cameraViewInfos = this._cameraViewInfos.get(cameraId);
|
|
780
|
+
if (cameraViewInfos) {
|
|
781
|
+
// If the cached shadow-caster geometry came from the mesh we're disposing, drop it
|
|
782
|
+
// so isReady()/render() re-cache it from a surviving camera (see isReady()).
|
|
783
|
+
// Must run before dispose(), which nulls the inner mesh's geometry.
|
|
784
|
+
if (this._geometry === cameraViewInfos.mesh.geometry) {
|
|
785
|
+
this._geometry = null;
|
|
786
|
+
}
|
|
787
|
+
cameraViewInfos.mesh.dispose();
|
|
606
788
|
this._cameraViewInfos.delete(cameraId);
|
|
607
789
|
}
|
|
608
790
|
});
|
|
@@ -850,16 +1032,24 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
850
1032
|
this._canPostToWorker = false;
|
|
851
1033
|
if (this._worker) {
|
|
852
1034
|
this._worker.postMessage({
|
|
1035
|
+
command: GaussianSplattingSortWorkerCommand.SORT,
|
|
853
1036
|
worldMatrix: worldMatrix.m,
|
|
854
1037
|
cameraForward: [cameraViewMatrix.m[2], cameraViewMatrix.m[6], cameraViewMatrix.m[10]],
|
|
855
1038
|
cameraPosition: [camera.globalPosition.x, camera.globalPosition.y, camera.globalPosition.z],
|
|
856
1039
|
depthMix: this._depthMix,
|
|
857
1040
|
cameraId: camera.uniqueId,
|
|
858
1041
|
sortRequestId: cameraViewInfos.sortRequestId,
|
|
1042
|
+
rangeVersion: this._activeRangeVersion,
|
|
859
1043
|
}, [this._depthMix.buffer]);
|
|
860
1044
|
}
|
|
861
1045
|
else if (Native?.sortSplats) {
|
|
862
|
-
|
|
1046
|
+
if (this._activeSplatRanges) {
|
|
1047
|
+
// Native sort can't filter ranges: fall back to the (already range-filtered) identity index buffer.
|
|
1048
|
+
this._updateSplatIndexBuffer(this._vertexCount);
|
|
1049
|
+
}
|
|
1050
|
+
else {
|
|
1051
|
+
Native.sortSplats(this._modelViewProjectionMatrix, this._splatPositions, this._splatIndex, this._scene.useRightHandedSystem);
|
|
1052
|
+
}
|
|
863
1053
|
if (cameraViewInfos.splatIndexBufferSet) {
|
|
864
1054
|
cameraViewInfos.mesh.thinInstanceBufferUpdated("splatIndex");
|
|
865
1055
|
}
|
|
@@ -1687,6 +1877,7 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1687
1877
|
// Note: _splatsData and _shData are intentionally kept alive after dispose.
|
|
1688
1878
|
// They can still be used as runtime source buffers by a compound mesh that retained
|
|
1689
1879
|
// this mesh's data before disposal.
|
|
1880
|
+
_ReleaseGsInterFrameYield(this.getEngine());
|
|
1690
1881
|
this._worker?.terminate();
|
|
1691
1882
|
this._worker = null;
|
|
1692
1883
|
this.onPartCountChangedObservable.clear();
|
|
@@ -1899,7 +2090,9 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1899
2090
|
const positions = Float32Array.from(this._splatPositions);
|
|
1900
2091
|
const vertexCount = this._vertexCount;
|
|
1901
2092
|
if (this._worker) {
|
|
1902
|
-
this._worker.postMessage({ positions, vertexCount }, [positions.buffer]);
|
|
2093
|
+
this._worker.postMessage({ command: GaussianSplattingSortWorkerCommand.POSITIONS, positions, vertexCount }, [positions.buffer]);
|
|
2094
|
+
// Re-sync the active interval set in case the source splat count changed.
|
|
2095
|
+
this._postIntervalsToWorker();
|
|
1903
2096
|
}
|
|
1904
2097
|
// Handle SH textures in update path - create if they don't exist
|
|
1905
2098
|
if (sh && !this._shTextures) {
|
|
@@ -1977,7 +2170,9 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
1977
2170
|
if (this._worker) {
|
|
1978
2171
|
const positions = Float32Array.from(this._splatPositions);
|
|
1979
2172
|
const vertexCount = this._vertexCount;
|
|
1980
|
-
this._worker.postMessage({ positions, vertexCount }, [positions.buffer]);
|
|
2173
|
+
this._worker.postMessage({ command: GaussianSplattingSortWorkerCommand.POSITIONS, positions, vertexCount }, [positions.buffer]);
|
|
2174
|
+
// Re-sync the active interval set in case the source splat count changed.
|
|
2175
|
+
this._postIntervalsToWorker();
|
|
1981
2176
|
}
|
|
1982
2177
|
this._postToWorker(true);
|
|
1983
2178
|
}
|
|
@@ -2014,7 +2209,10 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
2014
2209
|
if (this._worker) {
|
|
2015
2210
|
const positions = Float32Array.from(this._splatPositions);
|
|
2016
2211
|
const vertexCount = this._vertexCount;
|
|
2017
|
-
this._worker.postMessage({ positions, vertexCount }, [positions.buffer]);
|
|
2212
|
+
this._worker.postMessage({ command: GaussianSplattingSortWorkerCommand.POSITIONS, positions, vertexCount }, [positions.buffer]);
|
|
2213
|
+
// The source splat count may have changed (e.g. addPart): re-sync the worker's active
|
|
2214
|
+
// interval set so it covers the current splats instead of a stale (smaller) range.
|
|
2215
|
+
this._postIntervalsToWorker();
|
|
2018
2216
|
}
|
|
2019
2217
|
this._sortIsDirty = true;
|
|
2020
2218
|
}
|
|
@@ -2039,6 +2237,11 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
2039
2237
|
}
|
|
2040
2238
|
const vertexCount = uBuffer.length / GaussianSplattingMeshBase._RowOutputLength;
|
|
2041
2239
|
if (vertexCount != this._vertexCount) {
|
|
2240
|
+
// The source set changed: drop any active range filter so the buffers resize to the full
|
|
2241
|
+
// set. Callers (e.g. streaming LOD) re-apply their ranges after the data is committed.
|
|
2242
|
+
this._activeSplatRanges = null;
|
|
2243
|
+
this._activeSplatRangeKey = "";
|
|
2244
|
+
this._activeSplatRenderCount = 0;
|
|
2042
2245
|
this._updateSplatIndexBuffer(vertexCount);
|
|
2043
2246
|
}
|
|
2044
2247
|
this._vertexCount = vertexCount;
|
|
@@ -2180,19 +2383,40 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
2180
2383
|
}
|
|
2181
2384
|
// in case size is different
|
|
2182
2385
|
_updateSplatIndexBuffer(vertexCount) {
|
|
2183
|
-
const
|
|
2184
|
-
|
|
2386
|
+
const renderedSplatCount = this._activeSplatRanges ? this._activeSplatRenderCount : vertexCount;
|
|
2387
|
+
const paddedVertexCount = Math.max((renderedSplatCount + 15) & ~0xf, 16);
|
|
2388
|
+
const previousIndex = this._splatIndex;
|
|
2389
|
+
if (!previousIndex || paddedVertexCount !== previousIndex.length) {
|
|
2185
2390
|
this._splatIndex = new Float32Array(paddedVertexCount);
|
|
2186
|
-
for (let i = 0; i < paddedVertexCount; i++) {
|
|
2187
|
-
this._splatIndex[i] = i;
|
|
2188
|
-
}
|
|
2189
2391
|
// update meshes for knowns cameras
|
|
2190
2392
|
this._cameraViewInfos.forEach((cameraViewInfos) => {
|
|
2191
2393
|
cameraViewInfos.mesh.thinInstanceSetBuffer("splatIndex", this._splatIndex, 16, false);
|
|
2192
2394
|
});
|
|
2193
2395
|
}
|
|
2396
|
+
const splatIndex = this._splatIndex;
|
|
2397
|
+
// Populate the buffer with the current active source indices (identity when unfiltered) so every
|
|
2398
|
+
// rendered slot points at a valid splat. This is the synchronous (no async sort worker) path; the
|
|
2399
|
+
// worker path instead defers the index-buffer swap until a matching sort lands (see _onWorkerCreated).
|
|
2400
|
+
if (this._activeSplatRanges) {
|
|
2401
|
+
let index = 0;
|
|
2402
|
+
for (let rangeIndex = 0; rangeIndex < this._activeSplatRanges.length; rangeIndex += 2) {
|
|
2403
|
+
const start = this._activeSplatRanges[rangeIndex];
|
|
2404
|
+
const count = this._activeSplatRanges[rangeIndex + 1];
|
|
2405
|
+
for (let sourceIndex = start; sourceIndex < start + count; sourceIndex++) {
|
|
2406
|
+
splatIndex[index++] = sourceIndex;
|
|
2407
|
+
}
|
|
2408
|
+
}
|
|
2409
|
+
for (; index < paddedVertexCount; index++) {
|
|
2410
|
+
splatIndex[index] = 0;
|
|
2411
|
+
}
|
|
2412
|
+
}
|
|
2413
|
+
else {
|
|
2414
|
+
for (let i = 0; i < paddedVertexCount; i++) {
|
|
2415
|
+
splatIndex[i] = i;
|
|
2416
|
+
}
|
|
2417
|
+
}
|
|
2194
2418
|
// Update depthMix
|
|
2195
|
-
if ((!this._depthMix ||
|
|
2419
|
+
if ((!this._depthMix || paddedVertexCount !== this._depthMix.length) && !IsNative) {
|
|
2196
2420
|
this._depthMix = new BigInt64Array(paddedVertexCount);
|
|
2197
2421
|
}
|
|
2198
2422
|
this.forcedInstanceCount = Math.max(paddedVertexCount >> 4, 1);
|
|
@@ -2288,21 +2512,28 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
2288
2512
|
// If the previous worker was terminated mid-sort it would never have set _canPostToWorker
|
|
2289
2513
|
// back to true, leaving the sort permanently frozen on the new worker.
|
|
2290
2514
|
this._canPostToWorker = true;
|
|
2291
|
-
this._worker = new Worker(URL.createObjectURL(new Blob(["(",
|
|
2515
|
+
this._worker = new Worker(URL.createObjectURL(new Blob(["(", GaussianSplattingSortWorker.toString(), ")(self)"], {
|
|
2292
2516
|
type: "application/javascript",
|
|
2293
2517
|
})));
|
|
2294
2518
|
const positions = Float32Array.from(this._splatPositions);
|
|
2295
|
-
this._worker.postMessage({ positions }, [positions.buffer]);
|
|
2519
|
+
this._worker.postMessage({ command: GaussianSplattingSortWorkerCommand.POSITIONS, positions }, [positions.buffer]);
|
|
2520
|
+
// The main thread owns the active interval set: send it explicitly (covering all indices when
|
|
2521
|
+
// no LOD filter is active) rather than letting the worker assume the full source set.
|
|
2522
|
+
this._postIntervalsToWorker();
|
|
2296
2523
|
this._onWorkerCreated(this._worker);
|
|
2297
2524
|
this._worker.onerror = () => {
|
|
2298
2525
|
// If the worker throws an unhandled error, unlock the posting gate so the next frame can retry the sort.
|
|
2299
2526
|
this._canPostToWorker = true;
|
|
2300
2527
|
};
|
|
2301
2528
|
this._worker.onmessage = (e) => {
|
|
2302
|
-
//
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
if
|
|
2529
|
+
// Size the result against the active (rendered) splat count, which may be a subset of the
|
|
2530
|
+
// full source set when an interval/LOD filter is active.
|
|
2531
|
+
const renderedPadded = Math.max((this.renderedSplatCount + 15) & ~0xf, 16);
|
|
2532
|
+
// Discard the result and trigger a fresh sort if it no longer matches the current active set:
|
|
2533
|
+
// either the active count changed since it was posted, or it was computed for a stale range
|
|
2534
|
+
// version (the active ranges changed while it was in flight). Applying it would render indices
|
|
2535
|
+
// that belong to a different active set.
|
|
2536
|
+
if (e.data.depthMix.length != renderedPadded || e.data.rangeVersion !== this._activeRangeVersion) {
|
|
2306
2537
|
// Only re-enable posting and trigger a re-sort if the buffer is available.
|
|
2307
2538
|
// If byteLength === 0 the buffer is already in-flight for a newer sort;
|
|
2308
2539
|
// that sort's onmessage will handle things when it returns.
|
|
@@ -2316,13 +2547,25 @@ export class GaussianSplattingMeshBase extends Mesh {
|
|
|
2316
2547
|
this._depthMix = e.data.depthMix;
|
|
2317
2548
|
const cameraId = e.data.cameraId;
|
|
2318
2549
|
const sortRequestId = e.data.sortRequestId;
|
|
2550
|
+
// The index buffer swap is deferred to here so the previous fully-sorted state stays on screen
|
|
2551
|
+
// until this matching sort lands. Resize it now (the active count may have grown/shrunk since the
|
|
2552
|
+
// last applied sort) and rebind it for every known camera.
|
|
2553
|
+
if (!this._splatIndex || this._splatIndex.length !== renderedPadded) {
|
|
2554
|
+
this._splatIndex = new Float32Array(renderedPadded);
|
|
2555
|
+
this._cameraViewInfos.forEach((info) => {
|
|
2556
|
+
info.mesh.thinInstanceSetBuffer("splatIndex", this._splatIndex, 16, false);
|
|
2557
|
+
info.splatIndexBufferSet = true;
|
|
2558
|
+
});
|
|
2559
|
+
}
|
|
2319
2560
|
const indexMix = new Uint32Array(e.data.depthMix.buffer);
|
|
2320
2561
|
if (this._splatIndex) {
|
|
2321
|
-
for (let j = 0; j <
|
|
2562
|
+
for (let j = 0; j < renderedPadded; j++) {
|
|
2322
2563
|
this._splatIndex[j] = indexMix[2 * j];
|
|
2323
2564
|
}
|
|
2324
2565
|
}
|
|
2566
|
+
this.forcedInstanceCount = Math.max(renderedPadded >> 4, 1);
|
|
2325
2567
|
if (this._delayedTextureUpdate) {
|
|
2568
|
+
const vertexCountPadded = (this._vertexCount + 15) & ~0xf;
|
|
2326
2569
|
const textureSize = this._getTextureSize(vertexCountPadded);
|
|
2327
2570
|
this._updateSubTextures(this._delayedTextureUpdate.centers, this._delayedTextureUpdate.covA, this._delayedTextureUpdate.covB, this._delayedTextureUpdate.colors, 0, textureSize.y, this._delayedTextureUpdate.sh);
|
|
2328
2571
|
this._delayedTextureUpdate = null;
|
|
@@ -2498,93 +2741,6 @@ GaussianSplattingMeshBase._DefaultViewUpdateThreshold = 1e-4;
|
|
|
2498
2741
|
* A value of 0 (default) means display update will not happens before splat is ready.
|
|
2499
2742
|
*/
|
|
2500
2743
|
GaussianSplattingMeshBase.ProgressiveUpdateAmount = 0;
|
|
2501
|
-
GaussianSplattingMeshBase._CreateWorker = function (self) {
|
|
2502
|
-
let positions;
|
|
2503
|
-
let depthMix;
|
|
2504
|
-
let indices;
|
|
2505
|
-
let floatMix;
|
|
2506
|
-
let partIndices;
|
|
2507
|
-
let partMatrices;
|
|
2508
|
-
self.onmessage = (e) => {
|
|
2509
|
-
// updated on init
|
|
2510
|
-
if (e.data.positions) {
|
|
2511
|
-
positions = e.data.positions;
|
|
2512
|
-
}
|
|
2513
|
-
// update on rig node changed
|
|
2514
|
-
else if (e.data.partMatrices) {
|
|
2515
|
-
partMatrices = e.data.partMatrices;
|
|
2516
|
-
}
|
|
2517
|
-
// update on rig node indices changed
|
|
2518
|
-
else if (e.data.partIndices !== undefined) {
|
|
2519
|
-
partIndices = e.data.partIndices;
|
|
2520
|
-
}
|
|
2521
|
-
// update on view changed
|
|
2522
|
-
else {
|
|
2523
|
-
const cameraId = e.data.cameraId;
|
|
2524
|
-
const sortRequestId = e.data.sortRequestId;
|
|
2525
|
-
const globalWorldMatrix = e.data.worldMatrix;
|
|
2526
|
-
const cameraForward = e.data.cameraForward;
|
|
2527
|
-
const cameraPosition = e.data.cameraPosition;
|
|
2528
|
-
depthMix = e.data.depthMix;
|
|
2529
|
-
if (!positions || !cameraForward) {
|
|
2530
|
-
// Sort request arrived before positions were initialized — return the buffer unchanged so the main thread can unlock _canPostToWorker.
|
|
2531
|
-
self.postMessage({ depthMix, cameraId, sortRequestId }, [depthMix.buffer]);
|
|
2532
|
-
return;
|
|
2533
|
-
}
|
|
2534
|
-
const vertexCountPadded = (positions.length / 4 + 15) & ~0xf;
|
|
2535
|
-
indices = new Uint32Array(depthMix.buffer);
|
|
2536
|
-
floatMix = new Float32Array(depthMix.buffer);
|
|
2537
|
-
// Sort
|
|
2538
|
-
for (let j = 0; j < vertexCountPadded; j++) {
|
|
2539
|
-
indices[2 * j] = j;
|
|
2540
|
-
}
|
|
2541
|
-
// depth = dot(cameraForward, worldPos - cameraPos)
|
|
2542
|
-
const camDot = cameraForward[0] * cameraPosition[0] + cameraForward[1] * cameraPosition[1] + cameraForward[2] * cameraPosition[2];
|
|
2543
|
-
const computeDepthCoeffs = (m) => {
|
|
2544
|
-
return [
|
|
2545
|
-
cameraForward[0] * m[0] + cameraForward[1] * m[1] + cameraForward[2] * m[2],
|
|
2546
|
-
cameraForward[0] * m[4] + cameraForward[1] * m[5] + cameraForward[2] * m[6],
|
|
2547
|
-
cameraForward[0] * m[8] + cameraForward[1] * m[9] + cameraForward[2] * m[10],
|
|
2548
|
-
cameraForward[0] * m[12] + cameraForward[1] * m[13] + cameraForward[2] * m[14] - camDot,
|
|
2549
|
-
];
|
|
2550
|
-
};
|
|
2551
|
-
try {
|
|
2552
|
-
if (partMatrices && partIndices) {
|
|
2553
|
-
// Precompute depth coefficients for each rig node
|
|
2554
|
-
const depthCoeffs = partMatrices.map((m) => computeDepthCoeffs(m));
|
|
2555
|
-
// NB: For performance reasons, we assume that part indices are valid
|
|
2556
|
-
const length = partIndices.length;
|
|
2557
|
-
for (let j = 0; j < vertexCountPadded; j++) {
|
|
2558
|
-
// NB: We need this 'min' because vertex array is padded, not partIndices
|
|
2559
|
-
const partIndex = partIndices[Math.min(j, length - 1)];
|
|
2560
|
-
const coeff = depthCoeffs[partIndex];
|
|
2561
|
-
floatMix[2 * j + 1] = coeff[0] * positions[4 * j + 0] + coeff[1] * positions[4 * j + 1] + coeff[2] * positions[4 * j + 2] + coeff[3];
|
|
2562
|
-
// instead of using minus to sort back to front, we use bitwise not operator to invert the order of indices
|
|
2563
|
-
// might not be faster but a minus sign implies a reference value that may not be enough and will decrease floatting precision
|
|
2564
|
-
indices[2 * j + 1] = ~indices[2 * j + 1];
|
|
2565
|
-
}
|
|
2566
|
-
}
|
|
2567
|
-
else {
|
|
2568
|
-
// Compute depth coefficients from global world matrix
|
|
2569
|
-
const [a, b, c, d] = computeDepthCoeffs(globalWorldMatrix);
|
|
2570
|
-
for (let j = 0; j < vertexCountPadded; j++) {
|
|
2571
|
-
floatMix[2 * j + 1] = a * positions[4 * j + 0] + b * positions[4 * j + 1] + c * positions[4 * j + 2] + d;
|
|
2572
|
-
indices[2 * j + 1] = ~indices[2 * j + 1];
|
|
2573
|
-
}
|
|
2574
|
-
}
|
|
2575
|
-
depthMix.sort();
|
|
2576
|
-
}
|
|
2577
|
-
catch (sortError) {
|
|
2578
|
-
// Transient data inconsistency (e.g. partIndices/partMatrices mismatch during addPart/removePart rebuild).
|
|
2579
|
-
// Return the buffer unsorted so the main thread can unlock _canPostToWorker and retry next frame.
|
|
2580
|
-
// Logger is unavailable inside the worker — console is the only option.
|
|
2581
|
-
// eslint-disable-next-line no-console
|
|
2582
|
-
console.error("Gaussian splat sort worker encountered an error (will retry next frame):", sortError);
|
|
2583
|
-
}
|
|
2584
|
-
self.postMessage({ depthMix, cameraId, sortRequestId }, [depthMix.buffer]);
|
|
2585
|
-
}
|
|
2586
|
-
};
|
|
2587
|
-
};
|
|
2588
2744
|
/**
|
|
2589
2745
|
* Allocates SH texture buffers pre-filled with 128 (the neutral encoding of ~0.0 in the
|
|
2590
2746
|
* shader's decompose() function). Padding bytes beyond the actual coefficients in the last
|