@babylonjs/core 5.24.0 → 5.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Actions/action.d.ts +12 -21
- package/Actions/action.js +8 -17
- package/Actions/action.js.map +1 -1
- package/Actions/actionManager.d.ts +2 -5
- package/Actions/actionManager.js +2 -5
- package/Actions/actionManager.js.map +1 -1
- package/Actions/condition.d.ts +9 -50
- package/Actions/condition.js +3 -26
- package/Actions/condition.js.map +1 -1
- package/Actions/directActions.d.ts +7 -7
- package/Actions/directActions.js +7 -7
- package/Actions/directActions.js.map +1 -1
- package/Actions/directAudioActions.d.ts +2 -2
- package/Actions/directAudioActions.js +2 -2
- package/Actions/directAudioActions.js.map +1 -1
- package/Actions/interpolateValueAction.d.ts +1 -1
- package/Actions/interpolateValueAction.js +1 -1
- package/Actions/interpolateValueAction.js.map +1 -1
- package/Animations/animatable.d.ts +5 -6
- package/Animations/animatable.js +1 -2
- package/Animations/animatable.js.map +1 -1
- package/Animations/animation.d.ts +6 -20
- package/Animations/animation.js +6 -20
- package/Animations/animation.js.map +1 -1
- package/Animations/animationEvent.d.ts +1 -1
- package/Animations/animationEvent.js +1 -1
- package/Animations/animationEvent.js.map +1 -1
- package/Animations/animationGroup.d.ts +1 -1
- package/Animations/animationGroup.js +1 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/easing.d.ts +13 -26
- package/Animations/easing.js +13 -26
- package/Animations/easing.js.map +1 -1
- package/Animations/runtimeAnimation.d.ts +3 -4
- package/Animations/runtimeAnimation.js +1 -2
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioEngine.js +1 -2
- package/Audio/audioEngine.js.map +1 -1
- package/Audio/audioSceneComponent.d.ts +1 -1
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Audio/sound.d.ts +3 -4
- package/Audio/sound.js +2 -3
- package/Audio/sound.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/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
- package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
- package/Behaviors/Meshes/baseSixDofDragBehavior.js +5 -5
- package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.d.ts +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -1
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.d.ts +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Bones/bone.d.ts +7 -9
- package/Bones/bone.js +7 -9
- package/Bones/bone.js.map +1 -1
- package/Bones/skeleton.d.ts +6 -8
- package/Bones/skeleton.js +6 -8
- package/Bones/skeleton.js.map +1 -1
- package/Buffers/buffer.d.ts +6 -6
- package/Buffers/buffer.js +14 -16
- package/Buffers/buffer.js.map +1 -1
- package/Buffers/storageBuffer.d.ts +1 -1
- package/Buffers/storageBuffer.js +1 -1
- package/Buffers/storageBuffer.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.d.ts +1 -2
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +1 -2
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.d.ts +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.d.ts +6 -3
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +18 -5
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.d.ts +1 -2
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +1 -2
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
- package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -2
- package/Cameras/RigModes/stereoscopicRigMode.js +1 -2
- package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
- package/Cameras/RigModes/vrRigMode.d.ts +1 -3
- package/Cameras/RigModes/vrRigMode.js +1 -3
- package/Cameras/RigModes/vrRigMode.js.map +1 -1
- package/Cameras/RigModes/webVRRigMode.d.ts +1 -3
- package/Cameras/RigModes/webVRRigMode.js +1 -3
- package/Cameras/RigModes/webVRRigMode.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +2 -3
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +2 -3
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrCameraMetrics.d.ts +4 -4
- package/Cameras/VR/vrCameraMetrics.js +4 -4
- package/Cameras/VR/vrCameraMetrics.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.js +20 -48
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/webVRCamera.d.ts +9 -9
- package/Cameras/VR/webVRCamera.js +9 -9
- package/Cameras/VR/webVRCamera.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +11 -12
- package/Cameras/arcRotateCamera.js +8 -9
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +29 -38
- package/Cameras/camera.js +27 -36
- package/Cameras/camera.js.map +1 -1
- package/Cameras/deviceOrientationCamera.d.ts +1 -1
- package/Cameras/deviceOrientationCamera.js +1 -1
- package/Cameras/deviceOrientationCamera.js.map +1 -1
- package/Cameras/flyCamera.d.ts +8 -12
- package/Cameras/flyCamera.js +6 -10
- package/Cameras/flyCamera.js.map +1 -1
- package/Cameras/followCamera.d.ts +2 -2
- package/Cameras/followCamera.js +2 -2
- package/Cameras/followCamera.js.map +1 -1
- package/Cameras/freeCamera.d.ts +6 -7
- package/Cameras/freeCamera.js +4 -5
- package/Cameras/freeCamera.js.map +1 -1
- package/Cameras/freeCameraInputsManager.d.ts +2 -2
- package/Cameras/freeCameraInputsManager.js +2 -2
- package/Cameras/freeCameraInputsManager.js.map +1 -1
- package/Cameras/targetCamera.d.ts +21 -24
- package/Cameras/targetCamera.js +20 -23
- package/Cameras/targetCamera.js.map +1 -1
- package/Cameras/touchCamera.d.ts +1 -1
- package/Cameras/touchCamera.js +1 -1
- package/Cameras/touchCamera.js.map +1 -1
- package/Collisions/collider.d.ts +13 -44
- package/Collisions/collider.js +10 -41
- package/Collisions/collider.js.map +1 -1
- package/Collisions/collisionCoordinator.d.ts +2 -2
- package/Collisions/collisionCoordinator.js +1 -1
- package/Collisions/collisionCoordinator.js.map +1 -1
- package/Collisions/intersectionInfo.d.ts +1 -1
- package/Collisions/intersectionInfo.js +1 -1
- package/Collisions/intersectionInfo.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 +1 -1
- package/Collisions/pickingInfo.js.map +1 -1
- package/Compute/IComputeContext.d.ts +1 -1
- package/Compute/IComputeContext.js.map +1 -1
- package/Compute/IComputePipelineContext.d.ts +2 -2
- package/Compute/IComputePipelineContext.js.map +1 -1
- package/Compute/computeEffect.d.ts +5 -5
- package/Compute/computeEffect.js +5 -5
- package/Compute/computeEffect.js.map +1 -1
- package/Culling/Octrees/octreeBlock.d.ts +1 -9
- package/Culling/Octrees/octreeBlock.js +1 -9
- package/Culling/Octrees/octreeBlock.js.map +1 -1
- package/Culling/Octrees/octreeSceneComponent.d.ts +2 -2
- package/Culling/Octrees/octreeSceneComponent.js +1 -5
- package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
- package/Culling/boundingBox.d.ts +4 -5
- package/Culling/boundingBox.js +3 -4
- package/Culling/boundingBox.js.map +1 -1
- package/Culling/boundingInfo.d.ts +1 -2
- package/Culling/boundingInfo.js +1 -2
- package/Culling/boundingInfo.js.map +1 -1
- package/Culling/boundingSphere.d.ts +1 -2
- package/Culling/boundingSphere.js +1 -2
- package/Culling/boundingSphere.js.map +1 -1
- package/Culling/ray.d.ts +6 -6
- package/Culling/ray.js.map +1 -1
- package/Debug/debugLayer.d.ts +1 -1
- package/Debug/debugLayer.js.map +1 -1
- package/Debug/physicsViewer.d.ts +6 -6
- package/Debug/physicsViewer.js +4 -4
- package/Debug/physicsViewer.js.map +1 -1
- package/DeviceInput/InputDevices/deviceEnums.d.ts +1 -1
- package/DeviceInput/InputDevices/deviceEnums.js +1 -1
- package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -3
- package/DeviceInput/InputDevices/deviceSourceManager.js +3 -3
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/internalDeviceSourceManager.d.ts +3 -3
- package/DeviceInput/internalDeviceSourceManager.js +1 -1
- package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
- package/DeviceInput/nativeDeviceInputSystem.d.ts +1 -1
- package/DeviceInput/nativeDeviceInputSystem.js +1 -1
- package/DeviceInput/nativeDeviceInputSystem.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.d.ts +1 -1
- package/DeviceInput/webDeviceInputSystem.js +1 -19
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.computeShader.d.ts +7 -7
- package/Engines/Extensions/engine.computeShader.js +1 -1
- package/Engines/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/Extensions/engine.cubeTexture.d.ts +6 -6
- package/Engines/Extensions/engine.cubeTexture.js +3 -2
- package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/Extensions/engine.debugging.d.ts +4 -4
- package/Engines/Extensions/engine.debugging.js.map +1 -1
- package/Engines/Extensions/engine.multiview.d.ts +9 -9
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Extensions/engine.query.d.ts +22 -22
- package/Engines/Extensions/engine.query.js +8 -8
- package/Engines/Extensions/engine.query.js.map +1 -1
- package/Engines/Extensions/engine.rawTexture.js +3 -7
- package/Engines/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/Extensions/engine.readTexture.d.ts +2 -2
- package/Engines/Extensions/engine.readTexture.js.map +1 -1
- package/Engines/Extensions/engine.renderTarget.d.ts +2 -2
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/Extensions/engine.textureSelector.d.ts +2 -2
- package/Engines/Extensions/engine.textureSelector.js.map +1 -1
- package/Engines/Extensions/engine.transformFeedback.d.ts +1 -1
- package/Engines/Extensions/engine.transformFeedback.js +1 -1
- package/Engines/Extensions/engine.transformFeedback.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +2 -2
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Extensions/engine.webVR.d.ts +13 -13
- package/Engines/Extensions/engine.webVR.js.map +1 -1
- package/Engines/IDrawContext.d.ts +1 -1
- package/Engines/IDrawContext.js.map +1 -1
- package/Engines/IMaterialContext.d.ts +1 -1
- package/Engines/IMaterialContext.js.map +1 -1
- package/Engines/IPipelineContext.d.ts +5 -5
- package/Engines/IPipelineContext.js.map +1 -1
- package/Engines/Native/nativeDataStream.d.ts +2 -2
- package/Engines/Native/nativeDataStream.js +1 -1
- package/Engines/Native/nativeDataStream.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +10 -10
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js.map +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.d.ts +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
- package/Engines/Processors/iShaderProcessor.d.ts +1 -1
- package/Engines/Processors/iShaderProcessor.js.map +1 -1
- package/Engines/Processors/shaderCodeConditionNode.d.ts +1 -1
- package/Engines/Processors/shaderCodeConditionNode.js +1 -1
- package/Engines/Processors/shaderCodeConditionNode.js.map +1 -1
- package/Engines/Processors/shaderCodeCursor.d.ts +1 -1
- package/Engines/Processors/shaderCodeCursor.js +1 -1
- package/Engines/Processors/shaderCodeCursor.js.map +1 -1
- package/Engines/Processors/shaderCodeNode.d.ts +1 -1
- package/Engines/Processors/shaderCodeNode.js +1 -1
- package/Engines/Processors/shaderCodeNode.js.map +1 -1
- package/Engines/Processors/shaderCodeTestNode.d.ts +1 -1
- package/Engines/Processors/shaderCodeTestNode.js +1 -1
- package/Engines/Processors/shaderCodeTestNode.js.map +1 -1
- package/Engines/Processors/shaderProcessingOptions.d.ts +2 -2
- package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
- package/Engines/Processors/shaderProcessor.d.ts +2 -2
- package/Engines/Processors/shaderProcessor.js +2 -2
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.d.ts +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.js +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
- package/Engines/WebGL/webGLHardwareTexture.d.ts +1 -1
- package/Engines/WebGL/webGLHardwareTexture.js +1 -1
- package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
- package/Engines/WebGL/webGLPipelineContext.d.ts +6 -25
- package/Engines/WebGL/webGLPipelineContext.js +6 -25
- package/Engines/WebGL/webGLPipelineContext.js.map +1 -1
- package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +2 -2
- package/Engines/WebGL/webGLRenderTargetWrapper.js +2 -2
- package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGL/webGLShaderProcessors.d.ts +1 -1
- package/Engines/WebGL/webGLShaderProcessors.js +1 -1
- package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.d.ts +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.rawTexture.js +1 -5
- package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuBundleList.d.ts +8 -8
- package/Engines/WebGPU/webgpuBundleList.js +7 -7
- package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineString.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineString.js +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineString.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.d.ts +2 -2
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +2 -2
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.d.ts +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.d.ts +2 -2
- package/Engines/WebGPU/webgpuComputePipelineContext.js +1 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +38 -38
- package/Engines/WebGPU/webgpuConstants.js +38 -38
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.d.ts +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.js +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuExternalTexture.d.ts +1 -1
- package/Engines/WebGPU/webgpuExternalTexture.js +1 -1
- package/Engines/WebGPU/webgpuExternalTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +9 -9
- package/Engines/WebGPU/webgpuHardwareTexture.js +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuMaterialContext.d.ts +3 -3
- package/Engines/WebGPU/webgpuMaterialContext.js +1 -1
- package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.d.ts +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuPipelineContext.d.ts +4 -4
- package/Engines/WebGPU/webgpuPipelineContext.js +2 -2
- package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuQuerySet.d.ts +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
- package/Engines/WebGPU/webgpuRenderPassWrapper.d.ts +1 -1
- package/Engines/WebGPU/webgpuRenderPassWrapper.js +1 -1
- package/Engines/WebGPU/webgpuRenderPassWrapper.js.map +1 -1
- package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +2 -2
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js +1 -1
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.d.ts +7 -7
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -2
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.js +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.d.ts +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.js +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTimestampQuery.d.ts +2 -2
- package/Engines/WebGPU/webgpuTimestampQuery.js +2 -2
- package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.d.ts +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/constants.d.ts +1 -1
- package/Engines/constants.js +1 -1
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +16 -35
- package/Engines/engine.js +19 -69
- package/Engines/engine.js.map +1 -1
- package/Engines/engineFeatures.d.ts +2 -2
- package/Engines/engineFeatures.js.map +1 -1
- package/Engines/engineStore.d.ts +1 -1
- package/Engines/engineStore.js +1 -1
- package/Engines/engineStore.js.map +1 -1
- package/Engines/nativeEngine.d.ts +15 -47
- package/Engines/nativeEngine.js +20 -66
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.d.ts +12 -40
- package/Engines/nullEngine.js +12 -40
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/performanceConfigurator.d.ts +6 -7
- package/Engines/performanceConfigurator.js +6 -7
- package/Engines/performanceConfigurator.js.map +1 -1
- package/Engines/renderTargetWrapper.d.ts +8 -9
- package/Engines/renderTargetWrapper.js +7 -8
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.d.ts +90 -187
- package/Engines/thinEngine.js +73 -182
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +89 -145
- package/Engines/webgpuEngine.js +71 -127
- package/Engines/webgpuEngine.js.map +1 -1
- package/Events/pointerEvents.d.ts +4 -0
- package/Events/pointerEvents.js +4 -0
- package/Events/pointerEvents.js.map +1 -1
- package/Gamepads/Controllers/oculusTouchController.d.ts +1 -1
- package/Gamepads/Controllers/oculusTouchController.js +1 -1
- package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
- package/Gamepads/Controllers/poseEnabledController.d.ts +9 -10
- package/Gamepads/Controllers/poseEnabledController.js +6 -7
- package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
- package/Gamepads/Controllers/windowsMotionController.d.ts +1 -1
- package/Gamepads/Controllers/windowsMotionController.js +1 -1
- package/Gamepads/Controllers/windowsMotionController.js.map +1 -1
- package/Gamepads/gamepad.d.ts +1 -1
- package/Gamepads/gamepad.js +1 -1
- package/Gamepads/gamepad.js.map +1 -1
- package/Gamepads/gamepadManager.d.ts +2 -2
- package/Gamepads/gamepadManager.js +4 -4
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gamepads/gamepadSceneComponent.d.ts +1 -1
- package/Gamepads/gamepadSceneComponent.js.map +1 -1
- package/Gizmos/axisDragGizmo.d.ts +2 -8
- package/Gizmos/axisDragGizmo.js +2 -8
- package/Gizmos/axisDragGizmo.js.map +1 -1
- package/Gizmos/cameraGizmo.d.ts +1 -1
- package/Gizmos/cameraGizmo.js +1 -1
- package/Gizmos/cameraGizmo.js.map +1 -1
- package/Gizmos/lightGizmo.d.ts +1 -1
- package/Gizmos/lightGizmo.js +1 -1
- package/Gizmos/lightGizmo.js.map +1 -1
- package/Gizmos/planeDragGizmo.d.ts +1 -3
- package/Gizmos/planeDragGizmo.js +1 -3
- package/Gizmos/planeDragGizmo.js.map +1 -1
- package/Helpers/sceneHelpers.d.ts +1 -1
- package/Helpers/sceneHelpers.js +1 -1
- package/Helpers/sceneHelpers.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +3 -3
- package/Inputs/scene.inputManager.js +5 -4
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Instrumentation/timeToken.d.ts +1 -1
- package/Instrumentation/timeToken.js +1 -1
- package/Instrumentation/timeToken.js.map +1 -1
- package/Layers/effectLayer.d.ts +2 -3
- package/Layers/effectLayer.js +2 -3
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +1 -1
- package/Layers/glowLayer.js +1 -1
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +1 -1
- package/Layers/highlightLayer.js +1 -1
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/layer.d.ts +8 -1
- package/Layers/layer.js +12 -1
- package/Layers/layer.js.map +1 -1
- package/Layers/layerSceneComponent.d.ts +4 -2
- package/Layers/layerSceneComponent.js +27 -11
- package/Layers/layerSceneComponent.js.map +1 -1
- package/LensFlares/lensFlare.d.ts +1 -1
- package/LensFlares/lensFlare.js.map +1 -1
- package/LensFlares/lensFlareSystem.d.ts +4 -6
- package/LensFlares/lensFlareSystem.js +4 -6
- package/LensFlares/lensFlareSystem.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -2
- package/Lights/Shadows/cascadedShadowGenerator.js +1 -2
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +1 -2
- package/Lights/Shadows/shadowGenerator.js +1 -2
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/light.d.ts +9 -9
- package/Lights/light.js +6 -6
- package/Lights/light.js.map +1 -1
- package/Lights/shadowLight.d.ts +3 -3
- package/Lights/shadowLight.js +3 -3
- package/Lights/shadowLight.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.d.ts +1 -1
- package/Loading/Plugins/babylonFileLoader.js +1 -1
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Loading/loadingScreen.js +6 -6
- package/Loading/loadingScreen.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +1 -1
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +18 -18
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.d.ts +4 -11
- package/Materials/Node/Blocks/Input/inputBlock.js +4 -11
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +2 -2
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +9 -9
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +12 -12
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +2 -2
- package/Materials/Node/nodeMaterial.js +2 -2
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.d.ts +8 -14
- package/Materials/Node/nodeMaterialBlock.js +6 -12
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +8 -8
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js +7 -7
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +22 -58
- package/Materials/Node/nodeMaterialBuildState.js +21 -57
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js +2 -2
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrBRDFConfiguration.js +2 -2
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +65 -65
- package/Materials/PBR/pbrBaseMaterial.js +65 -65
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +4 -4
- package/Materials/PBR/pbrClearCoatConfiguration.js +3 -3
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +6 -6
- package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrSheenConfiguration.js +2 -2
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +6 -6
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +5 -5
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.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/Procedurals/proceduralTexture.d.ts +6 -7
- package/Materials/Textures/Procedurals/proceduralTexture.js +4 -5
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/baseTexture.d.ts +17 -23
- package/Materials/Textures/baseTexture.js +20 -23
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +1 -1
- package/Materials/Textures/cubeTexture.js +1 -1
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +1 -1
- package/Materials/Textures/dynamicTexture.js +1 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/hardwareTextureWrapper.d.ts +1 -1
- package/Materials/Textures/hardwareTextureWrapper.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +35 -37
- package/Materials/Textures/internalTexture.js +34 -36
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +1 -3
- package/Materials/Textures/multiRenderTarget.js +1 -3
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/prePassRenderTarget.d.ts +9 -9
- package/Materials/Textures/prePassRenderTarget.js +6 -6
- package/Materials/Textures/prePassRenderTarget.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +7 -11
- package/Materials/Textures/renderTargetTexture.js +8 -9
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.d.ts +6 -18
- package/Materials/Textures/texture.js +13 -23
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/textureSampler.d.ts +5 -5
- package/Materials/Textures/textureSampler.js +5 -5
- package/Materials/Textures/textureSampler.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.d.ts +2 -2
- package/Materials/Textures/thinTexture.js +2 -2
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.d.ts +1 -1
- package/Materials/Textures/videoTexture.js +3 -3
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/drawWrapper.d.ts +1 -1
- package/Materials/drawWrapper.js +1 -1
- package/Materials/drawWrapper.js.map +1 -1
- package/Materials/effect.d.ts +17 -17
- package/Materials/effect.js +28 -22
- package/Materials/effect.js.map +1 -1
- package/Materials/effectRenderer.d.ts +1 -1
- package/Materials/effectRenderer.js.map +1 -1
- package/Materials/imageProcessingConfiguration.d.ts +5 -5
- package/Materials/imageProcessingConfiguration.js +4 -4
- package/Materials/imageProcessingConfiguration.js.map +1 -1
- package/Materials/material.d.ts +21 -26
- package/Materials/material.detailMapConfiguration.d.ts +3 -3
- package/Materials/material.detailMapConfiguration.js +2 -2
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.js +22 -24
- package/Materials/material.js.map +1 -1
- package/Materials/materialDefines.d.ts +14 -14
- package/Materials/materialDefines.js +13 -13
- package/Materials/materialDefines.js.map +1 -1
- package/Materials/materialHelper.js +2 -7
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginEvent.d.ts +15 -15
- package/Materials/materialPluginEvent.js +1 -1
- package/Materials/materialPluginEvent.js.map +1 -1
- package/Materials/materialPluginManager.d.ts +2 -4
- package/Materials/materialPluginManager.js +2 -4
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/multiMaterial.d.ts +1 -1
- package/Materials/multiMaterial.js +1 -1
- package/Materials/multiMaterial.js.map +1 -1
- package/Materials/pushMaterial.d.ts +1 -1
- package/Materials/pushMaterial.js +1 -1
- package/Materials/pushMaterial.js.map +1 -1
- package/Materials/standardMaterial.d.ts +3 -3
- package/Materials/standardMaterial.js +3 -3
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.d.ts +4 -4
- package/Materials/uniformBuffer.js +4 -4
- package/Materials/uniformBuffer.js.map +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.d.ts +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.js +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
- package/Maths/math.color.d.ts +1 -1
- package/Maths/math.color.js +1 -1
- package/Maths/math.color.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.like.d.ts +8 -8
- package/Maths/math.like.js.map +1 -1
- package/Maths/math.polar.d.ts +343 -0
- package/Maths/math.polar.js +537 -0
- package/Maths/math.polar.js.map +1 -1
- package/Maths/math.vector.d.ts +58 -24
- package/Maths/math.vector.js +94 -18
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/tubeBuilder.d.ts +2 -2
- package/Meshes/Builders/tubeBuilder.js +2 -2
- package/Meshes/Builders/tubeBuilder.js.map +1 -1
- package/Meshes/WebGL/webGLDataBuffer.d.ts +1 -1
- package/Meshes/WebGL/webGLDataBuffer.js +1 -1
- package/Meshes/WebGL/webGLDataBuffer.js.map +1 -1
- package/Meshes/WebGPU/webgpuDataBuffer.d.ts +1 -1
- package/Meshes/WebGPU/webgpuDataBuffer.js +1 -1
- package/Meshes/WebGPU/webgpuDataBuffer.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +48 -70
- package/Meshes/abstractMesh.js +47 -69
- package/Meshes/abstractMesh.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/geodesicMesh.d.ts +15 -28
- package/Meshes/geodesicMesh.js +11 -24
- package/Meshes/geodesicMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +15 -20
- package/Meshes/geometry.js +7 -12
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/groundMesh.d.ts +8 -8
- package/Meshes/groundMesh.js.map +1 -1
- package/Meshes/instancedMesh.d.ts +12 -16
- package/Meshes/instancedMesh.js +11 -15
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/linesMesh.d.ts +5 -8
- package/Meshes/linesMesh.js +5 -8
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +47 -92
- package/Meshes/mesh.js +50 -98
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +3 -18
- package/Meshes/mesh.vertexData.js +3 -18
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/meshSimplificationSceneComponent.d.ts +1 -1
- package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
- package/Meshes/subMesh.d.ts +23 -51
- package/Meshes/subMesh.js +20 -48
- package/Meshes/subMesh.js.map +1 -1
- package/Meshes/subMesh.project.d.ts +2 -2
- package/Meshes/subMesh.project.js +2 -12
- package/Meshes/subMesh.project.js.map +1 -1
- package/Meshes/thinInstanceMesh.d.ts +4 -4
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/transformNode.d.ts +8 -9
- package/Meshes/transformNode.js +8 -9
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/arrayTools.d.ts +3 -3
- package/Misc/arrayTools.js +1 -1
- package/Misc/arrayTools.js.map +1 -1
- package/Misc/assetsManager.d.ts +1 -3
- package/Misc/assetsManager.js +1 -3
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +1 -1
- package/Misc/basis.js.map +1 -1
- package/Misc/coroutine.d.ts +11 -25
- package/Misc/coroutine.js +7 -21
- package/Misc/coroutine.js.map +1 -1
- package/Misc/dds.d.ts +1 -10
- package/Misc/dds.js +1 -10
- package/Misc/dds.js.map +1 -1
- package/Misc/decorators.d.ts +5 -15
- package/Misc/decorators.js +6 -16
- package/Misc/decorators.js.map +1 -1
- package/Misc/depthReducer.d.ts +1 -5
- package/Misc/depthReducer.js +1 -5
- package/Misc/depthReducer.js.map +1 -1
- package/Misc/devTools.d.ts +1 -2
- package/Misc/devTools.js +1 -2
- package/Misc/devTools.js.map +1 -1
- package/Misc/environmentTextureTools.d.ts +1 -6
- package/Misc/environmentTextureTools.js +1 -6
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/fileTools.d.ts +12 -24
- package/Misc/fileTools.js +14 -26
- package/Misc/fileTools.js.map +1 -1
- package/Misc/khronosTextureContainer.d.ts +1 -3
- package/Misc/khronosTextureContainer.js +1 -3
- package/Misc/khronosTextureContainer.js.map +1 -1
- package/Misc/khronosTextureContainer2.d.ts +1 -4
- package/Misc/khronosTextureContainer2.js +1 -4
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/observable.d.ts +3 -4
- package/Misc/observable.js +2 -3
- package/Misc/observable.js.map +1 -1
- package/Misc/pivotTools.d.ts +3 -5
- package/Misc/pivotTools.js +3 -5
- package/Misc/pivotTools.js.map +1 -1
- package/Misc/screenshotTools.js +1 -1
- package/Misc/screenshotTools.js.map +1 -1
- package/Misc/tags.d.ts +2 -6
- package/Misc/tags.js +2 -6
- package/Misc/tags.js.map +1 -1
- package/Misc/tga.d.ts +14 -70
- package/Misc/tga.js +14 -70
- package/Misc/tga.js.map +1 -1
- package/Misc/tools.d.ts +9 -0
- package/Misc/tools.js +14 -5
- package/Misc/tools.js.map +1 -1
- package/Misc/typeStore.d.ts +2 -5
- package/Misc/typeStore.js +3 -6
- package/Misc/typeStore.js.map +1 -1
- package/Misc/virtualJoystick.js +0 -1
- package/Misc/virtualJoystick.js.map +1 -1
- package/Misc/webRequest.d.ts +2 -2
- package/Misc/webRequest.js +1 -1
- package/Misc/webRequest.js.map +1 -1
- package/Morph/morphTarget.d.ts +1 -1
- package/Morph/morphTarget.js +1 -1
- package/Morph/morphTarget.js.map +1 -1
- package/Morph/morphTargetManager.d.ts +3 -4
- package/Morph/morphTargetManager.js +2 -3
- package/Morph/morphTargetManager.js.map +1 -1
- package/Particles/IGPUParticleSystemPlatform.d.ts +1 -1
- package/Particles/IGPUParticleSystemPlatform.js.map +1 -1
- package/Particles/IParticleSystem.d.ts +6 -0
- package/Particles/IParticleSystem.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +14 -9
- package/Particles/baseParticleSystem.js +17 -8
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/cloudPoint.d.ts +16 -19
- package/Particles/cloudPoint.js +21 -29
- package/Particles/cloudPoint.js.map +1 -1
- package/Particles/computeShaderParticleSystem.d.ts +1 -1
- package/Particles/computeShaderParticleSystem.js +1 -1
- package/Particles/computeShaderParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +14 -20
- package/Particles/gpuParticleSystem.js +17 -13
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particle.d.ts +30 -31
- package/Particles/particle.js +16 -17
- package/Particles/particle.js.map +1 -1
- package/Particles/particleSystem.d.ts +16 -32
- package/Particles/particleSystem.js +30 -31
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/pointsCloudSystem.d.ts +3 -4
- package/Particles/pointsCloudSystem.js +27 -20
- package/Particles/pointsCloudSystem.js.map +1 -1
- package/Particles/solidParticle.d.ts +21 -31
- package/Particles/solidParticle.js +9 -19
- package/Particles/solidParticle.js.map +1 -1
- package/Particles/solidParticleSystem.d.ts +14 -16
- package/Particles/solidParticleSystem.js +14 -16
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/subEmitter.d.ts +1 -5
- package/Particles/subEmitter.js +1 -5
- package/Particles/subEmitter.js.map +1 -1
- package/Particles/webgl2ParticleSystem.d.ts +1 -1
- package/Particles/webgl2ParticleSystem.js +1 -1
- package/Particles/webgl2ParticleSystem.js.map +1 -1
- package/Physics/IPhysicsEngine.d.ts +1 -1
- package/Physics/IPhysicsEngine.js.map +1 -1
- package/Physics/Plugins/ammoJSPlugin.d.ts +3 -0
- package/Physics/Plugins/ammoJSPlugin.js +21 -2
- package/Physics/Plugins/ammoJSPlugin.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/Plugins/oimoJSPlugin.d.ts +1 -1
- package/Physics/Plugins/oimoJSPlugin.js +3 -3
- package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
- package/Physics/physicsEngineComponent.d.ts +4 -4
- package/Physics/physicsEngineComponent.js +1 -2
- package/Physics/physicsEngineComponent.js.map +1 -1
- package/Physics/physicsImpostor.d.ts +13 -7
- package/Physics/physicsImpostor.js +9 -6
- package/Physics/physicsImpostor.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.d.ts +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +2 -2
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +2 -4
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +2 -4
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +10 -10
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +5 -5
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +13 -13
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +7 -14
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.d.ts +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.d.ts +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.d.ts +1 -5
- package/PostProcesses/blackAndWhitePostProcess.js +1 -5
- package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
- package/PostProcesses/bloomEffect.d.ts +4 -4
- package/PostProcesses/bloomEffect.js +3 -3
- package/PostProcesses/bloomEffect.js.map +1 -1
- package/PostProcesses/blurPostProcess.d.ts +1 -5
- package/PostProcesses/blurPostProcess.js +1 -5
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/chromaticAberrationPostProcess.d.ts +1 -5
- package/PostProcesses/chromaticAberrationPostProcess.js +1 -5
- package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.d.ts +1 -5
- package/PostProcesses/colorCorrectionPostProcess.js +1 -5
- package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
- package/PostProcesses/convolutionPostProcess.d.ts +1 -5
- package/PostProcesses/convolutionPostProcess.js +1 -5
- package/PostProcesses/convolutionPostProcess.js.map +1 -1
- package/PostProcesses/depthOfFieldEffect.d.ts +4 -4
- package/PostProcesses/depthOfFieldEffect.js +3 -3
- package/PostProcesses/depthOfFieldEffect.js.map +1 -1
- package/PostProcesses/displayPassPostProcess.d.ts +1 -5
- package/PostProcesses/displayPassPostProcess.js +1 -5
- package/PostProcesses/displayPassPostProcess.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.d.ts +2 -2
- package/PostProcesses/extractHighlightsPostProcess.js +2 -2
- package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
- package/PostProcesses/filterPostProcess.d.ts +1 -5
- package/PostProcesses/filterPostProcess.js +1 -5
- package/PostProcesses/filterPostProcess.js.map +1 -1
- package/PostProcesses/fxaaPostProcess.d.ts +1 -5
- package/PostProcesses/fxaaPostProcess.js +1 -5
- package/PostProcesses/fxaaPostProcess.js.map +1 -1
- package/PostProcesses/grainPostProcess.d.ts +1 -5
- package/PostProcesses/grainPostProcess.js +1 -5
- package/PostProcesses/grainPostProcess.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/motionBlurPostProcess.d.ts +1 -5
- package/PostProcesses/motionBlurPostProcess.js +1 -5
- package/PostProcesses/motionBlurPostProcess.js.map +1 -1
- package/PostProcesses/passPostProcess.d.ts +2 -10
- package/PostProcesses/passPostProcess.js +2 -10
- package/PostProcesses/passPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.d.ts +8 -12
- package/PostProcesses/postProcess.js +6 -10
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.d.ts +3 -3
- package/PostProcesses/postProcessManager.js +3 -3
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/PostProcesses/refractionPostProcess.d.ts +1 -5
- package/PostProcesses/refractionPostProcess.js +1 -5
- package/PostProcesses/refractionPostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.d.ts +1 -5
- package/PostProcesses/screenSpaceCurvaturePostProcess.js +1 -5
- package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +1 -5
- package/PostProcesses/screenSpaceReflectionPostProcess.js +1 -5
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.d.ts +1 -5
- package/PostProcesses/sharpenPostProcess.js +1 -5
- package/PostProcesses/sharpenPostProcess.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/Probes/reflectionProbe.d.ts +1 -1
- package/Probes/reflectionProbe.js +1 -1
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/boundingBoxRenderer.d.ts +5 -5
- package/Rendering/boundingBoxRenderer.js +2 -2
- package/Rendering/boundingBoxRenderer.js.map +1 -1
- package/Rendering/depthPeelingSceneComponent.d.ts +2 -2
- package/Rendering/depthPeelingSceneComponent.js.map +1 -1
- package/Rendering/depthRenderer.d.ts +1 -2
- package/Rendering/depthRenderer.js +1 -2
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/depthRendererSceneComponent.d.ts +1 -1
- package/Rendering/depthRendererSceneComponent.js.map +1 -1
- package/Rendering/edgesRenderer.d.ts +2 -2
- package/Rendering/edgesRenderer.js +1 -1
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +10 -16
- package/Rendering/geometryBufferRenderer.js +9 -15
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/geometryBufferRendererSceneComponent.d.ts +1 -1
- package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
- package/Rendering/outlineRenderer.d.ts +3 -3
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.d.ts +7 -14
- package/Rendering/prePassRenderer.js +8 -15
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/prePassRendererSceneComponent.d.ts +2 -2
- package/Rendering/prePassRendererSceneComponent.js.map +1 -1
- package/Rendering/renderingGroup.d.ts +3 -3
- package/Rendering/renderingGroup.js +3 -3
- package/Rendering/renderingGroup.js.map +1 -1
- package/Rendering/renderingManager.d.ts +15 -8
- package/Rendering/renderingManager.js +59 -17
- package/Rendering/renderingManager.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.d.ts +2 -4
- package/Rendering/subSurfaceConfiguration.js +2 -4
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/subSurfaceSceneComponent.d.ts +1 -1
- package/Rendering/subSurfaceSceneComponent.js.map +1 -1
- package/Rendering/utilityLayerRenderer.d.ts +4 -4
- package/Rendering/utilityLayerRenderer.js +15 -10
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.js +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bonesVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpFragment.js +1 -1
- package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/depthPrePass.d.ts +1 -1
- package/Shaders/ShadersInclude/depthPrePass.js +1 -1
- package/Shaders/ShadersInclude/depthPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.d.ts +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.js +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.js.map +1 -1
- package/Shaders/ShadersInclude/fibonacci.d.ts +1 -1
- package/Shaders/ShadersInclude/fibonacci.js +1 -1
- package/Shaders/ShadersInclude/fibonacci.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/fogFragment.js +1 -1
- package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/fogVertex.js +1 -1
- package/Shaders/ShadersInclude/fogVertex.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.d.ts +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.js +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.js.map +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.js +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.d.ts +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/importanceSampling.d.ts +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/instancesVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/instancesVertex.js +1 -1
- package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +1 -1
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.js +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.js +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.js.map +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/oitFragment.js +1 -1
- package/Shaders/ShadersInclude/oitFragment.js.map +1 -1
- package/Shaders/ShadersInclude/packingFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/packingFunctions.js +1 -1
- package/Shaders/ShadersInclude/packingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +3 -3
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +2 -2
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.d.ts +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.js +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.js +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.js.map +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.js +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.js +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.js +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/vertexColorMixing.d.ts +1 -1
- package/Shaders/ShadersInclude/vertexColorMixing.js +2 -2
- package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
- package/Shaders/anaglyph.fragment.d.ts +1 -1
- package/Shaders/anaglyph.fragment.js +1 -1
- package/Shaders/anaglyph.fragment.js.map +1 -1
- package/Shaders/background.fragment.d.ts +1 -1
- package/Shaders/background.fragment.js +1 -1
- package/Shaders/background.fragment.js.map +1 -1
- package/Shaders/background.vertex.d.ts +1 -1
- package/Shaders/background.vertex.js +1 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/blackAndWhite.fragment.d.ts +1 -1
- package/Shaders/blackAndWhite.fragment.js +1 -1
- package/Shaders/blackAndWhite.fragment.js.map +1 -1
- package/Shaders/bloomMerge.fragment.d.ts +1 -1
- package/Shaders/bloomMerge.fragment.js +1 -1
- package/Shaders/bloomMerge.fragment.js.map +1 -1
- package/Shaders/blur.fragment.d.ts +1 -1
- package/Shaders/blur.fragment.js +1 -1
- package/Shaders/blur.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.fragment.d.ts +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.vertex.d.ts +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
- package/Shaders/chromaticAberration.fragment.d.ts +1 -1
- package/Shaders/chromaticAberration.fragment.js +2 -1
- package/Shaders/chromaticAberration.fragment.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.d.ts +1 -1
- package/Shaders/circleOfConfusion.fragment.js +1 -1
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Shaders/clearQuad.fragment.d.ts +1 -1
- package/Shaders/clearQuad.fragment.js +1 -1
- package/Shaders/clearQuad.fragment.js.map +1 -1
- package/Shaders/clearQuad.vertex.d.ts +1 -1
- package/Shaders/clearQuad.vertex.js +1 -1
- package/Shaders/clearQuad.vertex.js.map +1 -1
- package/Shaders/color.fragment.d.ts +1 -1
- package/Shaders/color.fragment.js +4 -3
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.d.ts +1 -1
- package/Shaders/color.vertex.js +2 -2
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/colorCorrection.fragment.d.ts +1 -1
- package/Shaders/colorCorrection.fragment.js +1 -1
- package/Shaders/colorCorrection.fragment.js.map +1 -1
- package/Shaders/convolution.fragment.d.ts +1 -1
- package/Shaders/convolution.fragment.js +1 -1
- package/Shaders/convolution.fragment.js.map +1 -1
- package/Shaders/default.fragment.d.ts +1 -1
- package/Shaders/default.fragment.js +4 -4
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.d.ts +1 -1
- package/Shaders/default.vertex.js +2 -2
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/depth.fragment.d.ts +1 -1
- package/Shaders/depth.fragment.js +1 -1
- package/Shaders/depth.fragment.js.map +1 -1
- package/Shaders/depth.vertex.d.ts +1 -1
- package/Shaders/depth.vertex.js +1 -1
- package/Shaders/depth.vertex.js.map +1 -1
- package/Shaders/depthBoxBlur.fragment.d.ts +1 -1
- package/Shaders/depthBoxBlur.fragment.js +1 -1
- package/Shaders/depthBoxBlur.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.d.ts +1 -1
- package/Shaders/depthOfField.fragment.js +1 -1
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/depthOfFieldMerge.fragment.d.ts +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
- package/Shaders/displayPass.fragment.d.ts +1 -1
- package/Shaders/displayPass.fragment.js +1 -1
- package/Shaders/displayPass.fragment.js.map +1 -1
- package/Shaders/extractHighlights.fragment.d.ts +1 -1
- package/Shaders/extractHighlights.fragment.js +1 -1
- package/Shaders/extractHighlights.fragment.js.map +1 -1
- package/Shaders/filter.fragment.d.ts +1 -1
- package/Shaders/filter.fragment.js +1 -1
- package/Shaders/filter.fragment.js.map +1 -1
- package/Shaders/fxaa.fragment.d.ts +1 -1
- package/Shaders/fxaa.fragment.js +1 -1
- package/Shaders/fxaa.fragment.js.map +1 -1
- package/Shaders/fxaa.vertex.d.ts +1 -1
- package/Shaders/fxaa.vertex.js +1 -1
- package/Shaders/fxaa.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.d.ts +1 -1
- package/Shaders/geometry.fragment.js +14 -2
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/geometry.vertex.d.ts +1 -1
- package/Shaders/geometry.vertex.js +1 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/glowBlurPostProcess.fragment.d.ts +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.fragment.d.ts +1 -1
- package/Shaders/glowMapGeneration.fragment.js +1 -1
- package/Shaders/glowMapGeneration.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.vertex.d.ts +1 -1
- package/Shaders/glowMapGeneration.vertex.js +1 -1
- package/Shaders/glowMapGeneration.vertex.js.map +1 -1
- package/Shaders/glowMapMerge.fragment.d.ts +1 -1
- package/Shaders/glowMapMerge.fragment.js +1 -1
- package/Shaders/glowMapMerge.fragment.js.map +1 -1
- package/Shaders/glowMapMerge.vertex.d.ts +1 -1
- package/Shaders/glowMapMerge.vertex.js +1 -1
- package/Shaders/glowMapMerge.vertex.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.d.ts +3 -1
- package/Shaders/gpuRenderParticles.fragment.js +9 -2
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.d.ts +3 -1
- package/Shaders/gpuRenderParticles.vertex.js +5 -1
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/gpuUpdateParticles.fragment.d.ts +1 -1
- package/Shaders/gpuUpdateParticles.fragment.js +1 -1
- package/Shaders/gpuUpdateParticles.fragment.js.map +1 -1
- package/Shaders/gpuUpdateParticles.vertex.d.ts +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
- package/Shaders/grain.fragment.d.ts +1 -1
- package/Shaders/grain.fragment.js +1 -1
- package/Shaders/grain.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.fragment.d.ts +1 -1
- package/Shaders/hdrFiltering.fragment.js +1 -1
- package/Shaders/hdrFiltering.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.vertex.d.ts +1 -1
- package/Shaders/hdrFiltering.vertex.js +1 -1
- package/Shaders/hdrFiltering.vertex.js.map +1 -1
- package/Shaders/highlights.fragment.d.ts +1 -1
- package/Shaders/highlights.fragment.js +1 -1
- package/Shaders/highlights.fragment.js.map +1 -1
- package/Shaders/imageProcessing.fragment.d.ts +1 -1
- package/Shaders/imageProcessing.fragment.js +1 -1
- package/Shaders/imageProcessing.fragment.js.map +1 -1
- package/Shaders/kernelBlur.fragment.d.ts +1 -1
- package/Shaders/kernelBlur.fragment.js +1 -1
- package/Shaders/kernelBlur.fragment.js.map +1 -1
- package/Shaders/kernelBlur.vertex.d.ts +1 -1
- package/Shaders/kernelBlur.vertex.js +1 -1
- package/Shaders/kernelBlur.vertex.js.map +1 -1
- package/Shaders/layer.fragment.d.ts +1 -1
- package/Shaders/layer.fragment.js +1 -1
- package/Shaders/layer.fragment.js.map +1 -1
- package/Shaders/layer.vertex.d.ts +1 -1
- package/Shaders/layer.vertex.js +1 -1
- package/Shaders/layer.vertex.js.map +1 -1
- package/Shaders/lensFlare.fragment.d.ts +1 -1
- package/Shaders/lensFlare.fragment.js +1 -1
- package/Shaders/lensFlare.fragment.js.map +1 -1
- package/Shaders/lensFlare.vertex.d.ts +1 -1
- package/Shaders/lensFlare.vertex.js +1 -1
- package/Shaders/lensFlare.vertex.js.map +1 -1
- package/Shaders/lensHighlights.fragment.d.ts +1 -1
- package/Shaders/lensHighlights.fragment.js +1 -1
- package/Shaders/lensHighlights.fragment.js.map +1 -1
- package/Shaders/line.fragment.d.ts +1 -1
- package/Shaders/line.fragment.js +1 -1
- package/Shaders/line.fragment.js.map +1 -1
- package/Shaders/line.vertex.d.ts +1 -1
- package/Shaders/line.vertex.js +1 -1
- package/Shaders/line.vertex.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.d.ts +1 -1
- package/Shaders/minmaxRedux.fragment.js +1 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/motionBlur.fragment.d.ts +1 -1
- package/Shaders/motionBlur.fragment.js +1 -1
- package/Shaders/motionBlur.fragment.js.map +1 -1
- package/Shaders/noise.fragment.d.ts +1 -1
- package/Shaders/noise.fragment.js +1 -1
- package/Shaders/noise.fragment.js.map +1 -1
- package/Shaders/oitBackBlend.fragment.d.ts +1 -1
- package/Shaders/oitBackBlend.fragment.js +1 -1
- package/Shaders/oitBackBlend.fragment.js.map +1 -1
- package/Shaders/oitFinal.fragment.d.ts +1 -1
- package/Shaders/oitFinal.fragment.js +1 -1
- package/Shaders/oitFinal.fragment.js.map +1 -1
- package/Shaders/outline.fragment.d.ts +1 -1
- package/Shaders/outline.fragment.js +1 -1
- package/Shaders/outline.fragment.js.map +1 -1
- package/Shaders/outline.vertex.d.ts +1 -1
- package/Shaders/outline.vertex.js +1 -1
- package/Shaders/outline.vertex.js.map +1 -1
- package/Shaders/particles.fragment.d.ts +3 -1
- package/Shaders/particles.fragment.js +9 -2
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.d.ts +3 -1
- package/Shaders/particles.vertex.js +5 -1
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/pass.fragment.d.ts +1 -1
- package/Shaders/pass.fragment.js +1 -1
- package/Shaders/pass.fragment.js.map +1 -1
- package/Shaders/passCube.fragment.d.ts +1 -1
- package/Shaders/passCube.fragment.js +1 -1
- package/Shaders/passCube.fragment.js.map +1 -1
- package/Shaders/pbr.fragment.d.ts +1 -1
- package/Shaders/pbr.fragment.js +1 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.d.ts +1 -1
- package/Shaders/pbr.vertex.js +2 -2
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/postprocess.vertex.d.ts +1 -1
- package/Shaders/postprocess.vertex.js +1 -1
- package/Shaders/postprocess.vertex.js.map +1 -1
- package/Shaders/procedural.vertex.d.ts +1 -1
- package/Shaders/procedural.vertex.js +1 -1
- package/Shaders/procedural.vertex.js.map +1 -1
- package/Shaders/refraction.fragment.d.ts +1 -1
- package/Shaders/refraction.fragment.js +1 -1
- package/Shaders/refraction.fragment.js.map +1 -1
- package/Shaders/rgbdDecode.fragment.d.ts +1 -1
- package/Shaders/rgbdDecode.fragment.js +1 -1
- package/Shaders/rgbdDecode.fragment.js.map +1 -1
- package/Shaders/rgbdEncode.fragment.d.ts +1 -1
- package/Shaders/rgbdEncode.fragment.js +1 -1
- package/Shaders/rgbdEncode.fragment.js.map +1 -1
- package/Shaders/screenSpaceCurvature.fragment.d.ts +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection.fragment.d.ts +1 -1
- package/Shaders/screenSpaceReflection.fragment.js +1 -1
- package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
- package/Shaders/shadowMap.fragment.d.ts +1 -1
- package/Shaders/shadowMap.fragment.js +1 -1
- package/Shaders/shadowMap.fragment.js.map +1 -1
- package/Shaders/shadowMap.vertex.d.ts +1 -1
- package/Shaders/shadowMap.vertex.js +1 -1
- package/Shaders/shadowMap.vertex.js.map +1 -1
- package/Shaders/sharpen.fragment.d.ts +1 -1
- package/Shaders/sharpen.fragment.js +1 -1
- package/Shaders/sharpen.fragment.js.map +1 -1
- package/Shaders/spriteMap.fragment.d.ts +1 -1
- package/Shaders/spriteMap.fragment.js +1 -1
- package/Shaders/spriteMap.fragment.js.map +1 -1
- package/Shaders/spriteMap.vertex.d.ts +1 -1
- package/Shaders/spriteMap.vertex.js +1 -1
- package/Shaders/spriteMap.vertex.js.map +1 -1
- package/Shaders/sprites.fragment.d.ts +1 -1
- package/Shaders/sprites.fragment.js +1 -1
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.d.ts +1 -1
- package/Shaders/sprites.vertex.js +1 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/Shaders/ssao.fragment.d.ts +1 -1
- package/Shaders/ssao.fragment.js +1 -1
- package/Shaders/ssao.fragment.js.map +1 -1
- package/Shaders/ssao2.fragment.d.ts +1 -1
- package/Shaders/ssao2.fragment.js +1 -1
- package/Shaders/ssao2.fragment.js.map +1 -1
- package/Shaders/ssaoCombine.fragment.d.ts +1 -1
- package/Shaders/ssaoCombine.fragment.js +1 -1
- package/Shaders/ssaoCombine.fragment.js.map +1 -1
- package/Shaders/standard.fragment.d.ts +1 -1
- package/Shaders/standard.fragment.js +1 -1
- package/Shaders/standard.fragment.js.map +1 -1
- package/Shaders/stereoscopicInterlace.fragment.d.ts +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
- package/Shaders/subSurfaceScattering.fragment.d.ts +1 -1
- package/Shaders/subSurfaceScattering.fragment.js +1 -1
- package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
- package/Shaders/tonemap.fragment.d.ts +1 -1
- package/Shaders/tonemap.fragment.js +1 -1
- package/Shaders/tonemap.fragment.js.map +1 -1
- package/Shaders/volumetricLightScattering.fragment.d.ts +1 -1
- package/Shaders/volumetricLightScattering.fragment.js +1 -1
- package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.d.ts +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.d.ts +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
- package/Shaders/vrDistortionCorrection.fragment.d.ts +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.d.ts +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.d.ts +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/Sprites/spriteManager.d.ts +4 -0
- package/Sprites/spriteManager.js +2 -0
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteSceneComponent.d.ts +6 -6
- package/Sprites/spriteSceneComponent.js.map +1 -1
- package/Sprites/thinSprite.d.ts +5 -6
- package/Sprites/thinSprite.js +1 -2
- package/Sprites/thinSprite.js.map +1 -1
- package/States/IStencilState.d.ts +1 -1
- package/States/IStencilState.js.map +1 -1
- package/States/alphaCullingState.d.ts +1 -1
- package/States/alphaCullingState.js +1 -1
- package/States/alphaCullingState.js.map +1 -1
- package/States/depthCullingState.d.ts +1 -1
- package/States/depthCullingState.js +1 -1
- package/States/depthCullingState.js.map +1 -1
- package/States/stencilState.d.ts +1 -1
- package/States/stencilState.js +1 -1
- package/States/stencilState.js.map +1 -1
- package/States/stencilStateComposer.d.ts +1 -1
- package/States/stencilStateComposer.js +1 -1
- package/States/stencilStateComposer.js.map +1 -1
- package/XR/features/WebXRControllerPhysics.d.ts +1 -1
- package/XR/features/WebXRControllerPhysics.js +1 -1
- package/XR/features/WebXRControllerPhysics.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.d.ts +3 -6
- package/XR/features/WebXRControllerPointerSelection.js +3 -6
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRLayers.d.ts +2 -2
- package/XR/features/WebXRLayers.js +4 -4
- package/XR/features/WebXRLayers.js.map +1 -1
- package/XR/features/WebXRNearInteraction.js +2 -2
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.d.ts +3 -4
- package/XR/motionController/webXRAbstractMotionController.js +2 -3
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/native/nativeXRFrame.d.ts +2 -2
- package/XR/native/nativeXRFrame.js +1 -1
- package/XR/native/nativeXRFrame.js.map +1 -1
- package/XR/native/nativeXRRenderTarget.d.ts +3 -3
- package/XR/native/nativeXRRenderTarget.js +3 -3
- package/XR/native/nativeXRRenderTarget.js.map +1 -1
- package/XR/webXRCamera.d.ts +2 -2
- package/XR/webXRCamera.js +1 -1
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRDefaultExperience.d.ts +6 -6
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXRExperienceHelper.d.ts +21 -1
- package/XR/webXRExperienceHelper.js +37 -7
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRInputSource.d.ts +1 -1
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRLayerWrapper.d.ts +1 -1
- package/XR/webXRLayerWrapper.js +1 -1
- package/XR/webXRLayerWrapper.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/XR/webXRSessionManager.d.ts +1 -2
- package/XR/webXRSessionManager.js +1 -2
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +2 -2
- package/XR/webXRWebGLLayer.js +2 -2
- package/XR/webXRWebGLLayer.js.map +1 -1
- package/abstractScene.d.ts +1 -1
- package/abstractScene.js +1 -1
- package/abstractScene.js.map +1 -1
- package/node.d.ts +40 -52
- package/node.js +40 -55
- package/node.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +83 -107
- package/scene.js +94 -108
- package/scene.js.map +1 -1
- package/sceneComponent.d.ts +4 -2
- package/sceneComponent.js +4 -2
- package/sceneComponent.js.map +1 -1
- package/types.d.ts +2 -2
- package/types.js +1 -1
- package/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.cubeTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/Extensions/engine.cubeTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { ThinEngine } from \"../../Engines/thinEngine\";\r\nimport { InternalTexture, InternalTextureSource } from \"../../Materials/Textures/internalTexture\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Scene } from \"../../scene\";\r\nimport type { IInternalTextureLoader } from \"../../Materials/Textures/internalTextureLoader\";\r\nimport { LoadImage } from \"../../Misc/fileTools\";\r\nimport { RandomGUID } from \"../../Misc/guid\";\r\nimport type { IWebRequest } from \"../../Misc/interfaces/iWebRequest\";\r\nimport { Constants } from \"../constants\";\r\nimport type { DepthTextureCreationOptions } from \"../../Materials/Textures/textureCreationOptions\";\r\nimport type { RenderTargetWrapper } from \"../renderTargetWrapper\";\r\n\r\ndeclare module \"../../Engines/thinEngine\" {\r\n export interface ThinEngine {\r\n /**\r\n * Creates a depth stencil cube texture.\r\n * This is only available in WebGL 2.\r\n * @param size The size of face edge in the cube texture.\r\n * @param options The options defining the cube texture.\r\n * @param rtWrapper The render target wrapper for which the depth/stencil texture must be created\r\n * @returns The cube texture\r\n */\r\n _createDepthStencilCubeTexture(size: number, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture;\r\n\r\n /**\r\n * Creates a cube texture\r\n * @param rootUrl defines the url where the files to load is located\r\n * @param scene defines the current scene\r\n * @param files defines the list of files to load (1 per face)\r\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated (false by default)\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param createPolynomials if a polynomial sphere should be created for the cube texture\r\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\r\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\r\n * @param fallback defines texture to use while falling back when (compressed) texture file not found.\r\n * @param loaderOptions options to be passed to the loader\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n createCubeTexture(\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap: boolean | undefined,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n format: number | undefined,\r\n forcedExtension: any,\r\n createPolynomials: boolean,\r\n lodScale: number,\r\n lodOffset: number,\r\n fallback: Nullable<InternalTexture>,\r\n loaderOptions: any,\r\n useSRGBBuffer: boolean\r\n ): InternalTexture;\r\n\r\n /**\r\n * Creates a cube texture\r\n * @param rootUrl defines the url where the files to load is located\r\n * @param scene defines the current scene\r\n * @param files defines the list of files to load (1 per face)\r\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated (false by default)\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n createCubeTexture(\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n format: number | undefined,\r\n forcedExtension: any\r\n ): InternalTexture;\r\n\r\n /**\r\n * Creates a cube texture\r\n * @param rootUrl defines the url where the files to load is located\r\n * @param scene defines the current scene\r\n * @param files defines the list of files to load (1 per face)\r\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated (false by default)\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param createPolynomials if a polynomial sphere should be created for the cube texture\r\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\r\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n createCubeTexture(\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n format: number | undefined,\r\n forcedExtension: any,\r\n createPolynomials: boolean,\r\n lodScale: number,\r\n lodOffset: number\r\n ): InternalTexture;\r\n\r\n /** @hidden */\r\n createCubeTextureBase(\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n format: number | undefined,\r\n forcedExtension: any,\r\n createPolynomials: boolean,\r\n lodScale: number,\r\n lodOffset: number,\r\n fallback: Nullable<InternalTexture>,\r\n beforeLoadCubeDataCallback: Nullable<(texture: InternalTexture, data: ArrayBufferView | ArrayBufferView[]) => void>,\r\n imageHandler: Nullable<(texture: InternalTexture, imgs: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n useSRGBBuffer: boolean\r\n ): InternalTexture;\r\n\r\n /** @hidden */\r\n _partialLoadFile(\r\n url: string,\r\n index: number,\r\n loadedFiles: ArrayBuffer[],\r\n onfinish: (files: ArrayBuffer[]) => void,\r\n onErrorCallBack: Nullable<(message?: string, exception?: any) => void>\r\n ): void;\r\n\r\n /** @hidden */\r\n _cascadeLoadFiles(scene: Nullable<Scene>, onfinish: (images: ArrayBuffer[]) => void, files: string[], onError: Nullable<(message?: string, exception?: any) => void>): void;\r\n\r\n /** @hidden */\r\n _cascadeLoadImgs(\r\n scene: Nullable<Scene>,\r\n texture: InternalTexture,\r\n onfinish: Nullable<(texture: InternalTexture, images: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n files: string[],\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n mimeType?: string\r\n ): void;\r\n\r\n /** @hidden */\r\n _partialLoadImg(\r\n url: string,\r\n index: number,\r\n loadedImages: HTMLImageElement[] | ImageBitmap[],\r\n scene: Nullable<Scene>,\r\n texture: InternalTexture,\r\n onfinish: Nullable<(texture: InternalTexture, images: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n onErrorCallBack: Nullable<(message?: string, exception?: any) => void>,\r\n mimeType?: string\r\n ): void;\r\n\r\n /**\r\n * @hidden\r\n */\r\n _setCubeMapTextureParams(texture: InternalTexture, loadMipmap: boolean, maxLevel?: number): void;\r\n }\r\n}\r\n\r\nThinEngine.prototype._createDepthStencilCubeTexture = function (size: number, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture {\r\n const internalTexture = new InternalTexture(this, InternalTextureSource.DepthStencil);\r\n internalTexture.isCube = true;\r\n\r\n if (this.webGLVersion === 1) {\r\n Logger.Error(\"Depth cube texture is not supported by WebGL 1.\");\r\n return internalTexture;\r\n }\r\n\r\n const internalOptions = {\r\n bilinearFiltering: false,\r\n comparisonFunction: 0,\r\n generateStencil: false,\r\n ...options,\r\n };\r\n\r\n const gl = this._gl;\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, internalTexture, true);\r\n\r\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.generateStencil, internalOptions.bilinearFiltering, internalOptions.comparisonFunction);\r\n\r\n rtWrapper._depthStencilTexture = internalTexture;\r\n rtWrapper._depthStencilTextureWithStencil = internalOptions.generateStencil;\r\n\r\n // Create the depth/stencil buffer\r\n for (let face = 0; face < 6; face++) {\r\n if (internalOptions.generateStencil) {\r\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, gl.DEPTH24_STENCIL8, size, size, 0, gl.DEPTH_STENCIL, gl.UNSIGNED_INT_24_8, null);\r\n } else {\r\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, gl.DEPTH_COMPONENT24, size, size, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null);\r\n }\r\n }\r\n\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\r\n\r\n this._internalTexturesCache.push(internalTexture);\r\n\r\n return internalTexture;\r\n};\r\n\r\nThinEngine.prototype._partialLoadFile = function (\r\n url: string,\r\n index: number,\r\n loadedFiles: ArrayBuffer[],\r\n onfinish: (files: ArrayBuffer[]) => void,\r\n onErrorCallBack: Nullable<(message?: string, exception?: any) => void> = null\r\n): void {\r\n const onload = (data: ArrayBuffer) => {\r\n loadedFiles[index] = data;\r\n (<any>loadedFiles)._internalCount++;\r\n\r\n if ((<any>loadedFiles)._internalCount === 6) {\r\n onfinish(loadedFiles);\r\n }\r\n };\r\n\r\n const onerror = (request?: IWebRequest, exception?: any) => {\r\n if (onErrorCallBack && request) {\r\n onErrorCallBack(request.status + \" \" + request.statusText, exception);\r\n }\r\n };\r\n\r\n this._loadFile(url, onload as (data: string | ArrayBuffer) => void, undefined, undefined, true, onerror);\r\n};\r\n\r\nThinEngine.prototype._cascadeLoadFiles = function (\r\n scene: Nullable<Scene>,\r\n onfinish: (images: ArrayBuffer[]) => void,\r\n files: string[],\r\n onError: Nullable<(message?: string, exception?: any) => void> = null\r\n): void {\r\n const loadedFiles: ArrayBuffer[] = [];\r\n (<any>loadedFiles)._internalCount = 0;\r\n\r\n for (let index = 0; index < 6; index++) {\r\n this._partialLoadFile(files[index], index, loadedFiles, onfinish, onError);\r\n }\r\n};\r\n\r\nThinEngine.prototype._cascadeLoadImgs = function (\r\n scene: Nullable<Scene>,\r\n texture: InternalTexture,\r\n onfinish: Nullable<(texture: InternalTexture, images: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n files: string[],\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n mimeType?: string\r\n) {\r\n const loadedImages: HTMLImageElement[] | ImageBitmap[] = [];\r\n (<any>loadedImages)._internalCount = 0;\r\n\r\n for (let index = 0; index < 6; index++) {\r\n this._partialLoadImg(files[index], index, loadedImages, scene, texture, onfinish, onError, mimeType);\r\n }\r\n};\r\n\r\nThinEngine.prototype._partialLoadImg = function (\r\n url: string,\r\n index: number,\r\n loadedImages: HTMLImageElement[] | ImageBitmap[],\r\n scene: Nullable<Scene>,\r\n texture: InternalTexture,\r\n onfinish: Nullable<(texture: InternalTexture, images: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n onErrorCallBack: Nullable<(message?: string, exception?: any) => void> = null,\r\n mimeType?: string\r\n) {\r\n const tokenPendingData = RandomGUID();\r\n\r\n const onload = (img: HTMLImageElement | ImageBitmap) => {\r\n loadedImages[index] = img;\r\n (<any>loadedImages)._internalCount++;\r\n\r\n if (scene) {\r\n scene.removePendingData(tokenPendingData);\r\n }\r\n\r\n if ((<any>loadedImages)._internalCount === 6 && onfinish) {\r\n onfinish(texture, loadedImages);\r\n }\r\n };\r\n\r\n const onerror = (message?: string, exception?: any) => {\r\n if (scene) {\r\n scene.removePendingData(tokenPendingData);\r\n }\r\n\r\n if (onErrorCallBack) {\r\n onErrorCallBack(message, exception);\r\n }\r\n };\r\n\r\n LoadImage(url, onload, onerror, scene ? scene.offlineProvider : null, mimeType);\r\n if (scene) {\r\n scene.addPendingData(tokenPendingData);\r\n }\r\n};\r\n\r\nThinEngine.prototype._setCubeMapTextureParams = function (texture: InternalTexture, loadMipmap: boolean, maxLevel?: number): void {\r\n const gl = this._gl;\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, loadMipmap ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\r\n texture.samplingMode = loadMipmap ? Constants.TEXTURE_TRILINEAR_SAMPLINGMODE : Constants.TEXTURE_LINEAR_LINEAR;\r\n\r\n if (loadMipmap && this.getCaps().textureMaxLevel && maxLevel !== undefined && maxLevel > 0) {\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAX_LEVEL, maxLevel);\r\n texture._maxLodLevel = maxLevel;\r\n }\r\n\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\r\n};\r\n\r\nThinEngine.prototype.createCubeTextureBase = function (\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap?: boolean,\r\n onLoad: Nullable<(data?: any) => void> = null,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n format?: number,\r\n forcedExtension: any = null,\r\n createPolynomials: boolean = false,\r\n lodScale: number = 0,\r\n lodOffset: number = 0,\r\n fallback: Nullable<InternalTexture> = null,\r\n beforeLoadCubeDataCallback: Nullable<(texture: InternalTexture, data: ArrayBufferView | ArrayBufferView[]) => void> = null,\r\n imageHandler: Nullable<(texture: InternalTexture, imgs: HTMLImageElement[] | ImageBitmap[]) => void> = null,\r\n useSRGBBuffer = false\r\n): InternalTexture {\r\n const texture = fallback ? fallback : new InternalTexture(this, InternalTextureSource.Cube);\r\n texture.isCube = true;\r\n texture.url = rootUrl;\r\n texture.generateMipMaps = !noMipmap;\r\n texture._lodGenerationScale = lodScale;\r\n texture._lodGenerationOffset = lodOffset;\r\n texture._useSRGBBuffer = !!useSRGBBuffer && this._caps.supportSRGBBuffers && (this.webGLVersion > 1 || this.isWebGPU || !!noMipmap);\r\n\r\n if (!this._doNotHandleContextLost) {\r\n texture._extension = forcedExtension;\r\n texture._files = files;\r\n }\r\n\r\n const originalRootUrl = rootUrl;\r\n if (this._transformTextureUrl && !fallback) {\r\n rootUrl = this._transformTextureUrl(rootUrl);\r\n }\r\n\r\n const lastDot = rootUrl.lastIndexOf(\".\");\r\n const extension = forcedExtension ? forcedExtension : lastDot > -1 ? rootUrl.substring(lastDot).toLowerCase() : \"\";\r\n\r\n let loader: Nullable<IInternalTextureLoader> = null;\r\n for (const availableLoader of ThinEngine._TextureLoaders) {\r\n if (availableLoader.canLoad(extension)) {\r\n loader = availableLoader;\r\n break;\r\n }\r\n }\r\n\r\n const onInternalError = (request?: IWebRequest, exception?: any) => {\r\n if (rootUrl === originalRootUrl) {\r\n if (onError && request) {\r\n onError(request.status + \" \" + request.statusText, exception);\r\n }\r\n } else {\r\n // fall back to the original url if the transformed url fails to load\r\n Logger.Warn(`Failed to load ${rootUrl}, falling back to the ${originalRootUrl}`);\r\n this.createCubeTextureBase(\r\n originalRootUrl,\r\n scene,\r\n files,\r\n !!noMipmap,\r\n onLoad,\r\n onError,\r\n format,\r\n forcedExtension,\r\n createPolynomials,\r\n lodScale,\r\n lodOffset,\r\n texture,\r\n beforeLoadCubeDataCallback,\r\n imageHandler,\r\n useSRGBBuffer\r\n );\r\n }\r\n };\r\n\r\n if (loader) {\r\n const onloaddata = (data: ArrayBufferView | ArrayBufferView[]) => {\r\n if (beforeLoadCubeDataCallback) {\r\n beforeLoadCubeDataCallback(texture, data);\r\n }\r\n loader!.loadCubeData(data, texture, createPolynomials, onLoad, onError);\r\n };\r\n if (files && files.length === 6) {\r\n if (loader.supportCascades) {\r\n this._cascadeLoadFiles(scene, (images) => onloaddata(images.map((image) => new Uint8Array(image))), files, onError);\r\n } else {\r\n if (onError) {\r\n onError(\"Textures type does not support cascades.\");\r\n } else {\r\n Logger.Warn(\"Texture loader does not support cascades.\");\r\n }\r\n }\r\n } else {\r\n this._loadFile(rootUrl, (data) => onloaddata(new Uint8Array(data as ArrayBuffer)), undefined, undefined, true, onInternalError);\r\n }\r\n } else {\r\n if (!files) {\r\n throw new Error(\"Cannot load cubemap because files were not defined\");\r\n }\r\n\r\n this._cascadeLoadImgs(\r\n scene,\r\n texture,\r\n (texture: InternalTexture, imgs: HTMLImageElement[] | ImageBitmap[]) => {\r\n if (imageHandler) {\r\n imageHandler(texture, imgs);\r\n }\r\n },\r\n files,\r\n onError\r\n );\r\n }\r\n\r\n this._internalTexturesCache.push(texture);\r\n\r\n return texture;\r\n};\r\n\r\nThinEngine.prototype.createCubeTexture = function (\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap?: boolean,\r\n onLoad: Nullable<(data?: any) => void> = null,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n format?: number,\r\n forcedExtension: any = null,\r\n createPolynomials: boolean = false,\r\n lodScale: number = 0,\r\n lodOffset: number = 0,\r\n fallback: Nullable<InternalTexture> = null,\r\n loaderOptions?: any,\r\n useSRGBBuffer = false\r\n): InternalTexture {\r\n const gl = this._gl;\r\n\r\n return this.createCubeTextureBase(\r\n rootUrl,\r\n scene,\r\n files,\r\n !!noMipmap,\r\n onLoad,\r\n onError,\r\n format,\r\n forcedExtension,\r\n createPolynomials,\r\n lodScale,\r\n lodOffset,\r\n fallback,\r\n (texture: InternalTexture) => this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true),\r\n (texture: InternalTexture, imgs: HTMLImageElement[] | ImageBitmap[]) => {\r\n const width = this.needPOTTextures ? ThinEngine.GetExponentOfTwo(imgs[0].width, this._caps.maxCubemapTextureSize) : imgs[0].width;\r\n const height = width;\r\n\r\n const faces = [\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_X,\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_Y,\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_Z,\r\n gl.TEXTURE_CUBE_MAP_NEGATIVE_X,\r\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,\r\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Z,\r\n ];\r\n\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\r\n this._unpackFlipY(false);\r\n\r\n const internalFormat = format ? this._getInternalFormat(format, texture._useSRGBBuffer) : texture._useSRGBBuffer ? gl.SRGB8_ALPHA8 : gl.RGBA;\r\n let texelFormat = format ? this._getInternalFormat(format) : gl.RGBA;\r\n\r\n if (texture._useSRGBBuffer && this.webGLVersion === 1) {\r\n texelFormat = internalFormat;\r\n }\r\n\r\n for (let index = 0; index < faces.length; index++) {\r\n if (imgs[index].width !== width || imgs[index].height !== height) {\r\n this._prepareWorkingCanvas();\r\n\r\n if (!this._workingCanvas || !this._workingContext) {\r\n Logger.Warn(\"Cannot create canvas to resize texture.\");\r\n return;\r\n }\r\n this._workingCanvas.width = width;\r\n this._workingCanvas.height = height;\r\n\r\n this._workingContext.drawImage(imgs[index], 0, 0, imgs[index].width, imgs[index].height, 0, 0, width, height);\r\n gl.texImage2D(faces[index], 0, internalFormat, texelFormat, gl.UNSIGNED_BYTE, this._workingCanvas as TexImageSource);\r\n } else {\r\n gl.texImage2D(faces[index], 0, internalFormat, texelFormat, gl.UNSIGNED_BYTE, imgs[index]);\r\n }\r\n }\r\n\r\n if (!noMipmap) {\r\n gl.generateMipmap(gl.TEXTURE_CUBE_MAP);\r\n }\r\n\r\n this._setCubeMapTextureParams(texture, !noMipmap);\r\n\r\n texture.width = width;\r\n texture.height = height;\r\n texture.isReady = true;\r\n if (format) {\r\n texture.format = format;\r\n }\r\n\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n },\r\n !!useSRGBBuffer\r\n );\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"engine.cubeTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/Extensions/engine.cubeTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { ThinEngine } from \"../../Engines/thinEngine\";\r\nimport { InternalTexture, InternalTextureSource } from \"../../Materials/Textures/internalTexture\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Scene } from \"../../scene\";\r\nimport type { IInternalTextureLoader } from \"../../Materials/Textures/internalTextureLoader\";\r\nimport { LoadImage } from \"../../Misc/fileTools\";\r\nimport { RandomGUID } from \"../../Misc/guid\";\r\nimport type { IWebRequest } from \"../../Misc/interfaces/iWebRequest\";\r\nimport { Constants } from \"../constants\";\r\nimport type { DepthTextureCreationOptions } from \"../../Materials/Textures/textureCreationOptions\";\r\nimport type { RenderTargetWrapper } from \"../renderTargetWrapper\";\r\n\r\ndeclare module \"../../Engines/thinEngine\" {\r\n export interface ThinEngine {\r\n /**\r\n * Creates a depth stencil cube texture.\r\n * This is only available in WebGL 2.\r\n * @param size The size of face edge in the cube texture.\r\n * @param options The options defining the cube texture.\r\n * @param rtWrapper The render target wrapper for which the depth/stencil texture must be created\r\n * @returns The cube texture\r\n */\r\n _createDepthStencilCubeTexture(size: number, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture;\r\n\r\n /**\r\n * Creates a cube texture\r\n * @param rootUrl defines the url where the files to load is located\r\n * @param scene defines the current scene\r\n * @param files defines the list of files to load (1 per face)\r\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated (false by default)\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param createPolynomials if a polynomial sphere should be created for the cube texture\r\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\r\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\r\n * @param fallback defines texture to use while falling back when (compressed) texture file not found.\r\n * @param loaderOptions options to be passed to the loader\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n createCubeTexture(\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap: boolean | undefined,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n format: number | undefined,\r\n forcedExtension: any,\r\n createPolynomials: boolean,\r\n lodScale: number,\r\n lodOffset: number,\r\n fallback: Nullable<InternalTexture>,\r\n loaderOptions: any,\r\n useSRGBBuffer: boolean\r\n ): InternalTexture;\r\n\r\n /**\r\n * Creates a cube texture\r\n * @param rootUrl defines the url where the files to load is located\r\n * @param scene defines the current scene\r\n * @param files defines the list of files to load (1 per face)\r\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated (false by default)\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n createCubeTexture(\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n format: number | undefined,\r\n forcedExtension: any\r\n ): InternalTexture;\r\n\r\n /**\r\n * Creates a cube texture\r\n * @param rootUrl defines the url where the files to load is located\r\n * @param scene defines the current scene\r\n * @param files defines the list of files to load (1 per face)\r\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated (false by default)\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param createPolynomials if a polynomial sphere should be created for the cube texture\r\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\r\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n createCubeTexture(\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n format: number | undefined,\r\n forcedExtension: any,\r\n createPolynomials: boolean,\r\n lodScale: number,\r\n lodOffset: number\r\n ): InternalTexture;\r\n\r\n /** @internal */\r\n createCubeTextureBase(\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n format: number | undefined,\r\n forcedExtension: any,\r\n createPolynomials: boolean,\r\n lodScale: number,\r\n lodOffset: number,\r\n fallback: Nullable<InternalTexture>,\r\n beforeLoadCubeDataCallback: Nullable<(texture: InternalTexture, data: ArrayBufferView | ArrayBufferView[]) => void>,\r\n imageHandler: Nullable<(texture: InternalTexture, imgs: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n useSRGBBuffer: boolean\r\n ): InternalTexture;\r\n\r\n /** @internal */\r\n _partialLoadFile(\r\n url: string,\r\n index: number,\r\n loadedFiles: ArrayBuffer[],\r\n onfinish: (files: ArrayBuffer[]) => void,\r\n onErrorCallBack: Nullable<(message?: string, exception?: any) => void>\r\n ): void;\r\n\r\n /** @internal */\r\n _cascadeLoadFiles(scene: Nullable<Scene>, onfinish: (images: ArrayBuffer[]) => void, files: string[], onError: Nullable<(message?: string, exception?: any) => void>): void;\r\n\r\n /** @internal */\r\n _cascadeLoadImgs(\r\n scene: Nullable<Scene>,\r\n texture: InternalTexture,\r\n onfinish: Nullable<(texture: InternalTexture, images: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n files: string[],\r\n onError: Nullable<(message?: string, exception?: any) => void>,\r\n mimeType?: string\r\n ): void;\r\n\r\n /** @internal */\r\n _partialLoadImg(\r\n url: string,\r\n index: number,\r\n loadedImages: HTMLImageElement[] | ImageBitmap[],\r\n scene: Nullable<Scene>,\r\n texture: InternalTexture,\r\n onfinish: Nullable<(texture: InternalTexture, images: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n onErrorCallBack: Nullable<(message?: string, exception?: any) => void>,\r\n mimeType?: string\r\n ): void;\r\n\r\n /**\r\n * @internal\r\n */\r\n _setCubeMapTextureParams(texture: InternalTexture, loadMipmap: boolean, maxLevel?: number): void;\r\n }\r\n}\r\n\r\nThinEngine.prototype._createDepthStencilCubeTexture = function (size: number, options: DepthTextureCreationOptions, rtWrapper: RenderTargetWrapper): InternalTexture {\r\n const internalTexture = new InternalTexture(this, InternalTextureSource.DepthStencil);\r\n internalTexture.isCube = true;\r\n\r\n if (this.webGLVersion === 1) {\r\n Logger.Error(\"Depth cube texture is not supported by WebGL 1.\");\r\n return internalTexture;\r\n }\r\n\r\n const internalOptions = {\r\n bilinearFiltering: false,\r\n comparisonFunction: 0,\r\n generateStencil: false,\r\n ...options,\r\n };\r\n\r\n const gl = this._gl;\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, internalTexture, true);\r\n\r\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.generateStencil, internalOptions.bilinearFiltering, internalOptions.comparisonFunction);\r\n\r\n rtWrapper._depthStencilTexture = internalTexture;\r\n rtWrapper._depthStencilTextureWithStencil = internalOptions.generateStencil;\r\n\r\n // Create the depth/stencil buffer\r\n for (let face = 0; face < 6; face++) {\r\n if (internalOptions.generateStencil) {\r\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, gl.DEPTH24_STENCIL8, size, size, 0, gl.DEPTH_STENCIL, gl.UNSIGNED_INT_24_8, null);\r\n } else {\r\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, gl.DEPTH_COMPONENT24, size, size, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null);\r\n }\r\n }\r\n\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\r\n\r\n this._internalTexturesCache.push(internalTexture);\r\n\r\n return internalTexture;\r\n};\r\n\r\nThinEngine.prototype._partialLoadFile = function (\r\n url: string,\r\n index: number,\r\n loadedFiles: ArrayBuffer[],\r\n onfinish: (files: ArrayBuffer[]) => void,\r\n onErrorCallBack: Nullable<(message?: string, exception?: any) => void> = null\r\n): void {\r\n const onload = (data: ArrayBuffer) => {\r\n loadedFiles[index] = data;\r\n (<any>loadedFiles)._internalCount++;\r\n\r\n if ((<any>loadedFiles)._internalCount === 6) {\r\n onfinish(loadedFiles);\r\n }\r\n };\r\n\r\n const onerror = (request?: IWebRequest, exception?: any) => {\r\n if (onErrorCallBack && request) {\r\n onErrorCallBack(request.status + \" \" + request.statusText, exception);\r\n }\r\n };\r\n\r\n this._loadFile(url, onload as (data: string | ArrayBuffer) => void, undefined, undefined, true, onerror);\r\n};\r\n\r\nThinEngine.prototype._cascadeLoadFiles = function (\r\n scene: Nullable<Scene>,\r\n onfinish: (images: ArrayBuffer[]) => void,\r\n files: string[],\r\n onError: Nullable<(message?: string, exception?: any) => void> = null\r\n): void {\r\n const loadedFiles: ArrayBuffer[] = [];\r\n (<any>loadedFiles)._internalCount = 0;\r\n\r\n for (let index = 0; index < 6; index++) {\r\n this._partialLoadFile(files[index], index, loadedFiles, onfinish, onError);\r\n }\r\n};\r\n\r\nThinEngine.prototype._cascadeLoadImgs = function (\r\n scene: Nullable<Scene>,\r\n texture: InternalTexture,\r\n onfinish: Nullable<(texture: InternalTexture, images: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n files: string[],\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n mimeType?: string\r\n) {\r\n const loadedImages: HTMLImageElement[] | ImageBitmap[] = [];\r\n (<any>loadedImages)._internalCount = 0;\r\n\r\n for (let index = 0; index < 6; index++) {\r\n this._partialLoadImg(files[index], index, loadedImages, scene, texture, onfinish, onError, mimeType);\r\n }\r\n};\r\n\r\nThinEngine.prototype._partialLoadImg = function (\r\n url: string,\r\n index: number,\r\n loadedImages: HTMLImageElement[] | ImageBitmap[],\r\n scene: Nullable<Scene>,\r\n texture: InternalTexture,\r\n onfinish: Nullable<(texture: InternalTexture, images: HTMLImageElement[] | ImageBitmap[]) => void>,\r\n onErrorCallBack: Nullable<(message?: string, exception?: any) => void> = null,\r\n mimeType?: string\r\n) {\r\n const tokenPendingData = RandomGUID();\r\n\r\n const onload = (img: HTMLImageElement | ImageBitmap) => {\r\n loadedImages[index] = img;\r\n (<any>loadedImages)._internalCount++;\r\n\r\n if (scene) {\r\n scene.removePendingData(tokenPendingData);\r\n }\r\n\r\n if ((<any>loadedImages)._internalCount === 6 && onfinish) {\r\n onfinish(texture, loadedImages);\r\n }\r\n };\r\n\r\n const onerror = (message?: string, exception?: any) => {\r\n if (scene) {\r\n scene.removePendingData(tokenPendingData);\r\n }\r\n\r\n if (onErrorCallBack) {\r\n onErrorCallBack(message, exception);\r\n }\r\n };\r\n\r\n LoadImage(url, onload, onerror, scene ? scene.offlineProvider : null, mimeType);\r\n if (scene) {\r\n scene.addPendingData(tokenPendingData);\r\n }\r\n};\r\n\r\nThinEngine.prototype._setCubeMapTextureParams = function (texture: InternalTexture, loadMipmap: boolean, maxLevel?: number): void {\r\n const gl = this._gl;\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, loadMipmap ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\r\n texture.samplingMode = loadMipmap ? Constants.TEXTURE_TRILINEAR_SAMPLINGMODE : Constants.TEXTURE_LINEAR_LINEAR;\r\n\r\n if (loadMipmap && this.getCaps().textureMaxLevel && maxLevel !== undefined && maxLevel > 0) {\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAX_LEVEL, maxLevel);\r\n texture._maxLodLevel = maxLevel;\r\n }\r\n\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\r\n};\r\n\r\nThinEngine.prototype.createCubeTextureBase = function (\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap?: boolean,\r\n onLoad: Nullable<(data?: any) => void> = null,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n format?: number,\r\n forcedExtension: any = null,\r\n createPolynomials: boolean = false,\r\n lodScale: number = 0,\r\n lodOffset: number = 0,\r\n fallback: Nullable<InternalTexture> = null,\r\n beforeLoadCubeDataCallback: Nullable<(texture: InternalTexture, data: ArrayBufferView | ArrayBufferView[]) => void> = null,\r\n imageHandler: Nullable<(texture: InternalTexture, imgs: HTMLImageElement[] | ImageBitmap[]) => void> = null,\r\n useSRGBBuffer = false\r\n): InternalTexture {\r\n const texture = fallback ? fallback : new InternalTexture(this, InternalTextureSource.Cube);\r\n texture.isCube = true;\r\n texture.url = rootUrl;\r\n texture.generateMipMaps = !noMipmap;\r\n texture._lodGenerationScale = lodScale;\r\n texture._lodGenerationOffset = lodOffset;\r\n texture._useSRGBBuffer = !!useSRGBBuffer && this._caps.supportSRGBBuffers && (this.webGLVersion > 1 || this.isWebGPU || !!noMipmap);\r\n\r\n if (!this._doNotHandleContextLost) {\r\n texture._extension = forcedExtension;\r\n texture._files = files;\r\n }\r\n\r\n const originalRootUrl = rootUrl;\r\n if (this._transformTextureUrl && !fallback) {\r\n rootUrl = this._transformTextureUrl(rootUrl);\r\n }\r\n\r\n const rootUrlWithoutUriParams = rootUrl.split(\"?\")[0];\r\n const lastDot = rootUrlWithoutUriParams.lastIndexOf(\".\");\r\n const extension = forcedExtension ? forcedExtension : lastDot > -1 ? rootUrlWithoutUriParams.substring(lastDot).toLowerCase() : \"\";\r\n\r\n let loader: Nullable<IInternalTextureLoader> = null;\r\n for (const availableLoader of ThinEngine._TextureLoaders) {\r\n if (availableLoader.canLoad(extension)) {\r\n loader = availableLoader;\r\n break;\r\n }\r\n }\r\n\r\n const onInternalError = (request?: IWebRequest, exception?: any) => {\r\n if (rootUrl === originalRootUrl) {\r\n if (onError && request) {\r\n onError(request.status + \" \" + request.statusText, exception);\r\n }\r\n } else {\r\n // fall back to the original url if the transformed url fails to load\r\n Logger.Warn(`Failed to load ${rootUrl}, falling back to the ${originalRootUrl}`);\r\n this.createCubeTextureBase(\r\n originalRootUrl,\r\n scene,\r\n files,\r\n !!noMipmap,\r\n onLoad,\r\n onError,\r\n format,\r\n forcedExtension,\r\n createPolynomials,\r\n lodScale,\r\n lodOffset,\r\n texture,\r\n beforeLoadCubeDataCallback,\r\n imageHandler,\r\n useSRGBBuffer\r\n );\r\n }\r\n };\r\n\r\n if (loader) {\r\n const onloaddata = (data: ArrayBufferView | ArrayBufferView[]) => {\r\n if (beforeLoadCubeDataCallback) {\r\n beforeLoadCubeDataCallback(texture, data);\r\n }\r\n loader!.loadCubeData(data, texture, createPolynomials, onLoad, onError);\r\n };\r\n if (files && files.length === 6) {\r\n if (loader.supportCascades) {\r\n this._cascadeLoadFiles(scene, (images) => onloaddata(images.map((image) => new Uint8Array(image))), files, onError);\r\n } else {\r\n if (onError) {\r\n onError(\"Textures type does not support cascades.\");\r\n } else {\r\n Logger.Warn(\"Texture loader does not support cascades.\");\r\n }\r\n }\r\n } else {\r\n this._loadFile(rootUrl, (data) => onloaddata(new Uint8Array(data as ArrayBuffer)), undefined, undefined, true, onInternalError);\r\n }\r\n } else {\r\n if (!files) {\r\n throw new Error(\"Cannot load cubemap because files were not defined\");\r\n }\r\n\r\n this._cascadeLoadImgs(\r\n scene,\r\n texture,\r\n (texture: InternalTexture, imgs: HTMLImageElement[] | ImageBitmap[]) => {\r\n if (imageHandler) {\r\n imageHandler(texture, imgs);\r\n }\r\n },\r\n files,\r\n onError\r\n );\r\n }\r\n\r\n this._internalTexturesCache.push(texture);\r\n\r\n return texture;\r\n};\r\n\r\nThinEngine.prototype.createCubeTexture = function (\r\n rootUrl: string,\r\n scene: Nullable<Scene>,\r\n files: Nullable<string[]>,\r\n noMipmap?: boolean,\r\n onLoad: Nullable<(data?: any) => void> = null,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n format?: number,\r\n forcedExtension: any = null,\r\n createPolynomials: boolean = false,\r\n lodScale: number = 0,\r\n lodOffset: number = 0,\r\n fallback: Nullable<InternalTexture> = null,\r\n loaderOptions?: any,\r\n useSRGBBuffer = false\r\n): InternalTexture {\r\n const gl = this._gl;\r\n\r\n return this.createCubeTextureBase(\r\n rootUrl,\r\n scene,\r\n files,\r\n !!noMipmap,\r\n onLoad,\r\n onError,\r\n format,\r\n forcedExtension,\r\n createPolynomials,\r\n lodScale,\r\n lodOffset,\r\n fallback,\r\n (texture: InternalTexture) => this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true),\r\n (texture: InternalTexture, imgs: HTMLImageElement[] | ImageBitmap[]) => {\r\n const width = this.needPOTTextures ? ThinEngine.GetExponentOfTwo(imgs[0].width, this._caps.maxCubemapTextureSize) : imgs[0].width;\r\n const height = width;\r\n\r\n const faces = [\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_X,\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_Y,\r\n gl.TEXTURE_CUBE_MAP_POSITIVE_Z,\r\n gl.TEXTURE_CUBE_MAP_NEGATIVE_X,\r\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,\r\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Z,\r\n ];\r\n\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\r\n this._unpackFlipY(false);\r\n\r\n const internalFormat = format ? this._getInternalFormat(format, texture._useSRGBBuffer) : texture._useSRGBBuffer ? gl.SRGB8_ALPHA8 : gl.RGBA;\r\n let texelFormat = format ? this._getInternalFormat(format) : gl.RGBA;\r\n\r\n if (texture._useSRGBBuffer && this.webGLVersion === 1) {\r\n texelFormat = internalFormat;\r\n }\r\n\r\n for (let index = 0; index < faces.length; index++) {\r\n if (imgs[index].width !== width || imgs[index].height !== height) {\r\n this._prepareWorkingCanvas();\r\n\r\n if (!this._workingCanvas || !this._workingContext) {\r\n Logger.Warn(\"Cannot create canvas to resize texture.\");\r\n return;\r\n }\r\n this._workingCanvas.width = width;\r\n this._workingCanvas.height = height;\r\n\r\n this._workingContext.drawImage(imgs[index], 0, 0, imgs[index].width, imgs[index].height, 0, 0, width, height);\r\n gl.texImage2D(faces[index], 0, internalFormat, texelFormat, gl.UNSIGNED_BYTE, this._workingCanvas as TexImageSource);\r\n } else {\r\n gl.texImage2D(faces[index], 0, internalFormat, texelFormat, gl.UNSIGNED_BYTE, imgs[index]);\r\n }\r\n }\r\n\r\n if (!noMipmap) {\r\n gl.generateMipmap(gl.TEXTURE_CUBE_MAP);\r\n }\r\n\r\n this._setCubeMapTextureParams(texture, !noMipmap);\r\n\r\n texture.width = width;\r\n texture.height = height;\r\n texture.isReady = true;\r\n if (format) {\r\n texture.format = format;\r\n }\r\n\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n },\r\n !!useSRGBBuffer\r\n );\r\n};\r\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
declare module "../../Engines/thinEngine" {
|
|
2
2
|
interface ThinEngine {
|
|
3
|
-
/** @
|
|
3
|
+
/** @internal */
|
|
4
4
|
_debugPushGroup(groupName: string, targetObject?: number): void;
|
|
5
|
-
/** @
|
|
5
|
+
/** @internal */
|
|
6
6
|
_debugPopGroup(targetObject?: number): void;
|
|
7
|
-
/** @
|
|
7
|
+
/** @internal */
|
|
8
8
|
_debugInsertMarker(text: string, targetObject?: number): void;
|
|
9
|
-
/** @
|
|
9
|
+
/** @internal */
|
|
10
10
|
_debugFlushPendingCommands(): void;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.debugging.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/Extensions/engine.debugging.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAkBtD,UAAU,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,SAAiB,EAAE,YAAqB,IAAS,CAAC,CAAC;AAEpG,UAAU,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,YAAqB,IAAS,CAAC,CAAC;AAEhF,UAAU,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,IAAY,EAAE,YAAqB,IAAS,CAAC,CAAC;AAElG,UAAU,CAAC,SAAS,CAAC,0BAA0B,GAAG,cAAmB,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { ThinEngine } from \"../../Engines/thinEngine\";\r\n\r\ndeclare module \"../../Engines/thinEngine\" {\r\n export interface ThinEngine {\r\n /** @
|
|
1
|
+
{"version":3,"file":"engine.debugging.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/Extensions/engine.debugging.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAkBtD,UAAU,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,SAAiB,EAAE,YAAqB,IAAS,CAAC,CAAC;AAEpG,UAAU,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,YAAqB,IAAS,CAAC,CAAC;AAEhF,UAAU,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,IAAY,EAAE,YAAqB,IAAS,CAAC,CAAC;AAElG,UAAU,CAAC,SAAS,CAAC,0BAA0B,GAAG,cAAmB,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { ThinEngine } from \"../../Engines/thinEngine\";\r\n\r\ndeclare module \"../../Engines/thinEngine\" {\r\n export interface ThinEngine {\r\n /** @internal */\r\n _debugPushGroup(groupName: string, targetObject?: number): void;\r\n\r\n /** @internal */\r\n _debugPopGroup(targetObject?: number): void;\r\n\r\n /** @internal */\r\n _debugInsertMarker(text: string, targetObject?: number): void;\r\n\r\n /** @internal */\r\n _debugFlushPendingCommands(): void;\r\n }\r\n}\r\n\r\nThinEngine.prototype._debugPushGroup = function (groupName: string, targetObject?: number): void {};\r\n\r\nThinEngine.prototype._debugPopGroup = function (targetObject?: number): void {};\r\n\r\nThinEngine.prototype._debugInsertMarker = function (text: string, targetObject?: number): void {};\r\n\r\nThinEngine.prototype._debugFlushPendingCommands = function (): void {};\r\n"]}
|
|
@@ -23,22 +23,22 @@ declare module "../../Engines/engine" {
|
|
|
23
23
|
declare module "../../Cameras/camera" {
|
|
24
24
|
interface Camera {
|
|
25
25
|
/**
|
|
26
|
-
* @
|
|
26
|
+
* @internal
|
|
27
27
|
* For cameras that cannot use multiview images to display directly. (e.g. webVR camera will render to multiview texture, then copy to each eye texture and go from there)
|
|
28
28
|
*/
|
|
29
29
|
_useMultiviewToSingleView: boolean;
|
|
30
30
|
/**
|
|
31
|
-
* @
|
|
31
|
+
* @internal
|
|
32
32
|
* For cameras that cannot use multiview images to display directly. (e.g. webVR camera will render to multiview texture, then copy to each eye texture and go from there)
|
|
33
33
|
*/
|
|
34
34
|
_multiviewTexture: Nullable<RenderTargetTexture>;
|
|
35
35
|
/**
|
|
36
|
-
* @
|
|
36
|
+
* @internal
|
|
37
37
|
* For WebXR cameras that are rendering to multiview texture arrays.
|
|
38
38
|
*/
|
|
39
39
|
_renderingMultiview: boolean;
|
|
40
40
|
/**
|
|
41
|
-
* @
|
|
41
|
+
* @internal
|
|
42
42
|
* ensures the multiview texture of the camera exists and has the specified width/height
|
|
43
43
|
* @param width height to set on the multiview texture
|
|
44
44
|
* @param height width to set on the multiview texture
|
|
@@ -48,15 +48,15 @@ declare module "../../Cameras/camera" {
|
|
|
48
48
|
}
|
|
49
49
|
declare module "../../scene" {
|
|
50
50
|
interface Scene {
|
|
51
|
-
/** @
|
|
51
|
+
/** @internal */
|
|
52
52
|
_transformMatrixR: Matrix;
|
|
53
|
-
/** @
|
|
53
|
+
/** @internal */
|
|
54
54
|
_multiviewSceneUbo: Nullable<UniformBuffer>;
|
|
55
|
-
/** @
|
|
55
|
+
/** @internal */
|
|
56
56
|
_createMultiviewUbo(): void;
|
|
57
|
-
/** @
|
|
57
|
+
/** @internal */
|
|
58
58
|
_updateMultiviewUbo(viewR?: Matrix, projectionR?: Matrix): void;
|
|
59
|
-
/** @
|
|
59
|
+
/** @internal */
|
|
60
60
|
_renderMultiviewToSingleView(camera: Camera): void;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.multiview.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/Extensions/engine.multiview.ts"],"names":[],"mappings":"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","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { Engine } from \"../../Engines/engine\";\r\nimport { Scene } from \"../../scene\";\r\nimport { InternalTexture, InternalTextureSource } from \"../../Materials/Textures/internalTexture\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { RenderTargetTexture } from \"../../Materials/Textures/renderTargetTexture\";\r\nimport { Matrix, TmpVectors } from \"../../Maths/math.vector\";\r\nimport { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { MultiviewRenderTarget } from \"../../Materials/Textures/MultiviewRenderTarget\";\r\nimport { Frustum } from \"../../Maths/math.frustum\";\r\nimport type { WebGLRenderTargetWrapper } from \"../WebGL/webGLRenderTargetWrapper\";\r\nimport type { RenderTargetWrapper } from \"../renderTargetWrapper\";\r\n\r\ndeclare module \"../../Engines/engine\" {\r\n export interface Engine {\r\n /**\r\n * Creates a new multiview render target\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @returns the created multiview render target wrapper\r\n */\r\n createMultiviewRenderTargetTexture(width: number, height: number): RenderTargetWrapper;\r\n\r\n /**\r\n * Binds a multiview render target wrapper to be drawn to\r\n * @param multiviewTexture render target wrapper to bind\r\n */\r\n bindMultiviewFramebuffer(multiviewTexture: RenderTargetWrapper): void;\r\n }\r\n}\r\n\r\nEngine.prototype.createMultiviewRenderTargetTexture = function (width: number, height: number) {\r\n const gl = this._gl;\r\n\r\n if (!this.getCaps().multiview) {\r\n throw \"Multiview is not supported\";\r\n }\r\n\r\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, { width, height }) as WebGLRenderTargetWrapper;\r\n\r\n rtWrapper._framebuffer = gl.createFramebuffer();\r\n\r\n const internalTexture = new InternalTexture(this, InternalTextureSource.Unknown, true);\r\n internalTexture.width = width;\r\n internalTexture.height = height;\r\n internalTexture.isMultiview = true;\r\n\r\n rtWrapper._colorTextureArray = gl.createTexture();\r\n gl.bindTexture(gl.TEXTURE_2D_ARRAY, rtWrapper._colorTextureArray);\r\n (gl as any).texStorage3D(gl.TEXTURE_2D_ARRAY, 1, gl.RGBA8, width, height, 2);\r\n\r\n rtWrapper._depthStencilTextureArray = gl.createTexture();\r\n gl.bindTexture(gl.TEXTURE_2D_ARRAY, rtWrapper._depthStencilTextureArray);\r\n (gl as any).texStorage3D(gl.TEXTURE_2D_ARRAY, 1, (gl as any).DEPTH24_STENCIL8, width, height, 2);\r\n\r\n internalTexture.isReady = true;\r\n\r\n rtWrapper.setTextures(internalTexture);\r\n rtWrapper._depthStencilTexture = internalTexture;\r\n\r\n return rtWrapper;\r\n};\r\n\r\nEngine.prototype.bindMultiviewFramebuffer = function (_multiviewTexture: RenderTargetWrapper) {\r\n const multiviewTexture = _multiviewTexture as WebGLRenderTargetWrapper;\r\n\r\n const gl: any = this._gl;\r\n const ext = this.getCaps().oculusMultiview || this.getCaps().multiview;\r\n\r\n this.bindFramebuffer(multiviewTexture, undefined, undefined, undefined, true);\r\n gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, multiviewTexture._framebuffer);\r\n if (multiviewTexture._colorTextureArray && multiviewTexture._depthStencilTextureArray) {\r\n if (this.getCaps().oculusMultiview) {\r\n ext.framebufferTextureMultisampleMultiviewOVR(gl.DRAW_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, multiviewTexture._colorTextureArray, 0, multiviewTexture.samples, 0, 2);\r\n ext.framebufferTextureMultisampleMultiviewOVR(\r\n gl.DRAW_FRAMEBUFFER,\r\n gl.DEPTH_STENCIL_ATTACHMENT,\r\n multiviewTexture._depthStencilTextureArray,\r\n 0,\r\n multiviewTexture.samples,\r\n 0,\r\n 2\r\n );\r\n } else {\r\n ext.framebufferTextureMultiviewOVR(gl.DRAW_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, multiviewTexture._colorTextureArray, 0, 0, 2);\r\n ext.framebufferTextureMultiviewOVR(gl.DRAW_FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, multiviewTexture._depthStencilTextureArray, 0, 0, 2);\r\n }\r\n } else {\r\n throw \"Invalid multiview frame buffer\";\r\n }\r\n};\r\n\r\ndeclare module \"../../Cameras/camera\" {\r\n export interface Camera {\r\n /**\r\n * @hidden\r\n * For cameras that cannot use multiview images to display directly. (e.g. webVR camera will render to multiview texture, then copy to each eye texture and go from there)\r\n */\r\n _useMultiviewToSingleView: boolean;\r\n /**\r\n * @hidden\r\n * For cameras that cannot use multiview images to display directly. (e.g. webVR camera will render to multiview texture, then copy to each eye texture and go from there)\r\n */\r\n _multiviewTexture: Nullable<RenderTargetTexture>;\r\n\r\n /**\r\n * @hidden\r\n * For WebXR cameras that are rendering to multiview texture arrays.\r\n */\r\n _renderingMultiview: boolean;\r\n\r\n /**\r\n * @hidden\r\n * ensures the multiview texture of the camera exists and has the specified width/height\r\n * @param width height to set on the multiview texture\r\n * @param height width to set on the multiview texture\r\n */\r\n _resizeOrCreateMultiviewTexture(width: number, height: number): void;\r\n }\r\n}\r\n\r\nCamera.prototype._useMultiviewToSingleView = false;\r\n\r\nCamera.prototype._multiviewTexture = null;\r\n\r\nCamera.prototype._resizeOrCreateMultiviewTexture = function (width: number, height: number) {\r\n if (!this._multiviewTexture) {\r\n this._multiviewTexture = new MultiviewRenderTarget(this.getScene(), { width: width, height: height });\r\n } else if (this._multiviewTexture.getRenderWidth() != width || this._multiviewTexture.getRenderHeight() != height) {\r\n this._multiviewTexture.dispose();\r\n this._multiviewTexture = new MultiviewRenderTarget(this.getScene(), { width: width, height: height });\r\n }\r\n};\r\n\r\ndeclare module \"../../scene\" {\r\n export interface Scene {\r\n /** @hidden */\r\n _transformMatrixR: Matrix;\r\n /** @hidden */\r\n _multiviewSceneUbo: Nullable<UniformBuffer>;\r\n /** @hidden */\r\n _createMultiviewUbo(): void;\r\n /** @hidden */\r\n _updateMultiviewUbo(viewR?: Matrix, projectionR?: Matrix): void;\r\n /** @hidden */\r\n _renderMultiviewToSingleView(camera: Camera): void;\r\n }\r\n}\r\n\r\nfunction createMultiviewUbo(engine: Engine, name?: string) {\r\n const ubo = new UniformBuffer(engine, undefined, true, name);\r\n ubo.addUniform(\"viewProjection\", 16);\r\n ubo.addUniform(\"viewProjectionR\", 16);\r\n ubo.addUniform(\"view\", 16);\r\n ubo.addUniform(\"projection\", 16);\r\n ubo.addUniform(\"vEyePosition\", 4);\r\n return ubo;\r\n}\r\n\r\nconst currentCreateSceneUniformBuffer = Scene.prototype.createSceneUniformBuffer;\r\n\r\nScene.prototype._transformMatrixR = Matrix.Zero();\r\nScene.prototype._multiviewSceneUbo = null;\r\nScene.prototype._createMultiviewUbo = function () {\r\n this._multiviewSceneUbo = createMultiviewUbo(this.getEngine(), \"scene_multiview\");\r\n};\r\nScene.prototype.createSceneUniformBuffer = function (name?: string): UniformBuffer {\r\n if (this._multiviewSceneUbo) {\r\n return createMultiviewUbo(this.getEngine(), name);\r\n }\r\n return currentCreateSceneUniformBuffer.bind(this)(name);\r\n};\r\nScene.prototype._updateMultiviewUbo = function (viewR?: Matrix, projectionR?: Matrix) {\r\n if (viewR && projectionR) {\r\n viewR.multiplyToRef(projectionR, this._transformMatrixR);\r\n }\r\n\r\n if (viewR && projectionR) {\r\n viewR.multiplyToRef(projectionR, TmpVectors.Matrix[0]);\r\n Frustum.GetRightPlaneToRef(TmpVectors.Matrix[0], this._frustumPlanes[3]); // Replace right plane by second camera right plane\r\n }\r\n\r\n if (this._multiviewSceneUbo) {\r\n this._multiviewSceneUbo.updateMatrix(\"viewProjection\", this.getTransformMatrix());\r\n this._multiviewSceneUbo.updateMatrix(\"viewProjectionR\", this._transformMatrixR);\r\n this._multiviewSceneUbo.updateMatrix(\"view\", this._viewMatrix);\r\n this._multiviewSceneUbo.updateMatrix(\"projection\", this._projectionMatrix);\r\n }\r\n};\r\nScene.prototype._renderMultiviewToSingleView = function (camera: Camera) {\r\n // Multiview is only able to be displayed directly for API's such as webXR\r\n // This displays a multiview image by rendering to the multiview image and then\r\n // copying the result into the sub cameras instead of rendering them and proceeding as normal from there\r\n\r\n // Render to a multiview texture\r\n camera._resizeOrCreateMultiviewTexture(\r\n camera._rigPostProcess && camera._rigPostProcess && camera._rigPostProcess.width > 0 ? camera._rigPostProcess.width : this.getEngine().getRenderWidth(true),\r\n camera._rigPostProcess && camera._rigPostProcess && camera._rigPostProcess.height > 0 ? camera._rigPostProcess.height : this.getEngine().getRenderHeight(true)\r\n );\r\n if (!this._multiviewSceneUbo) {\r\n this._createMultiviewUbo();\r\n }\r\n camera.outputRenderTarget = camera._multiviewTexture;\r\n this._renderForCamera(camera);\r\n camera.outputRenderTarget = null;\r\n\r\n // Consume the multiview texture through a shader for each eye\r\n for (let index = 0; index < camera._rigCameras.length; index++) {\r\n const engine = this.getEngine();\r\n this._activeCamera = camera._rigCameras[index];\r\n engine.setViewport(this._activeCamera.viewport);\r\n if (this.postProcessManager) {\r\n this.postProcessManager._prepareFrame();\r\n this.postProcessManager._finalizeFrame(this._activeCamera.isIntermediate);\r\n }\r\n }\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"engine.multiview.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/Extensions/engine.multiview.ts"],"names":[],"mappings":"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","sourcesContent":["import { Camera } from \"../../Cameras/camera\";\r\nimport { Engine } from \"../../Engines/engine\";\r\nimport { Scene } from \"../../scene\";\r\nimport { InternalTexture, InternalTextureSource } from \"../../Materials/Textures/internalTexture\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { RenderTargetTexture } from \"../../Materials/Textures/renderTargetTexture\";\r\nimport { Matrix, TmpVectors } from \"../../Maths/math.vector\";\r\nimport { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { MultiviewRenderTarget } from \"../../Materials/Textures/MultiviewRenderTarget\";\r\nimport { Frustum } from \"../../Maths/math.frustum\";\r\nimport type { WebGLRenderTargetWrapper } from \"../WebGL/webGLRenderTargetWrapper\";\r\nimport type { RenderTargetWrapper } from \"../renderTargetWrapper\";\r\n\r\ndeclare module \"../../Engines/engine\" {\r\n export interface Engine {\r\n /**\r\n * Creates a new multiview render target\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @returns the created multiview render target wrapper\r\n */\r\n createMultiviewRenderTargetTexture(width: number, height: number): RenderTargetWrapper;\r\n\r\n /**\r\n * Binds a multiview render target wrapper to be drawn to\r\n * @param multiviewTexture render target wrapper to bind\r\n */\r\n bindMultiviewFramebuffer(multiviewTexture: RenderTargetWrapper): void;\r\n }\r\n}\r\n\r\nEngine.prototype.createMultiviewRenderTargetTexture = function (width: number, height: number) {\r\n const gl = this._gl;\r\n\r\n if (!this.getCaps().multiview) {\r\n throw \"Multiview is not supported\";\r\n }\r\n\r\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, { width, height }) as WebGLRenderTargetWrapper;\r\n\r\n rtWrapper._framebuffer = gl.createFramebuffer();\r\n\r\n const internalTexture = new InternalTexture(this, InternalTextureSource.Unknown, true);\r\n internalTexture.width = width;\r\n internalTexture.height = height;\r\n internalTexture.isMultiview = true;\r\n\r\n rtWrapper._colorTextureArray = gl.createTexture();\r\n gl.bindTexture(gl.TEXTURE_2D_ARRAY, rtWrapper._colorTextureArray);\r\n (gl as any).texStorage3D(gl.TEXTURE_2D_ARRAY, 1, gl.RGBA8, width, height, 2);\r\n\r\n rtWrapper._depthStencilTextureArray = gl.createTexture();\r\n gl.bindTexture(gl.TEXTURE_2D_ARRAY, rtWrapper._depthStencilTextureArray);\r\n (gl as any).texStorage3D(gl.TEXTURE_2D_ARRAY, 1, (gl as any).DEPTH24_STENCIL8, width, height, 2);\r\n\r\n internalTexture.isReady = true;\r\n\r\n rtWrapper.setTextures(internalTexture);\r\n rtWrapper._depthStencilTexture = internalTexture;\r\n\r\n return rtWrapper;\r\n};\r\n\r\nEngine.prototype.bindMultiviewFramebuffer = function (_multiviewTexture: RenderTargetWrapper) {\r\n const multiviewTexture = _multiviewTexture as WebGLRenderTargetWrapper;\r\n\r\n const gl: any = this._gl;\r\n const ext = this.getCaps().oculusMultiview || this.getCaps().multiview;\r\n\r\n this.bindFramebuffer(multiviewTexture, undefined, undefined, undefined, true);\r\n gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, multiviewTexture._framebuffer);\r\n if (multiviewTexture._colorTextureArray && multiviewTexture._depthStencilTextureArray) {\r\n if (this.getCaps().oculusMultiview) {\r\n ext.framebufferTextureMultisampleMultiviewOVR(gl.DRAW_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, multiviewTexture._colorTextureArray, 0, multiviewTexture.samples, 0, 2);\r\n ext.framebufferTextureMultisampleMultiviewOVR(\r\n gl.DRAW_FRAMEBUFFER,\r\n gl.DEPTH_STENCIL_ATTACHMENT,\r\n multiviewTexture._depthStencilTextureArray,\r\n 0,\r\n multiviewTexture.samples,\r\n 0,\r\n 2\r\n );\r\n } else {\r\n ext.framebufferTextureMultiviewOVR(gl.DRAW_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, multiviewTexture._colorTextureArray, 0, 0, 2);\r\n ext.framebufferTextureMultiviewOVR(gl.DRAW_FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, multiviewTexture._depthStencilTextureArray, 0, 0, 2);\r\n }\r\n } else {\r\n throw \"Invalid multiview frame buffer\";\r\n }\r\n};\r\n\r\ndeclare module \"../../Cameras/camera\" {\r\n export interface Camera {\r\n /**\r\n * @internal\r\n * For cameras that cannot use multiview images to display directly. (e.g. webVR camera will render to multiview texture, then copy to each eye texture and go from there)\r\n */\r\n _useMultiviewToSingleView: boolean;\r\n /**\r\n * @internal\r\n * For cameras that cannot use multiview images to display directly. (e.g. webVR camera will render to multiview texture, then copy to each eye texture and go from there)\r\n */\r\n _multiviewTexture: Nullable<RenderTargetTexture>;\r\n\r\n /**\r\n * @internal\r\n * For WebXR cameras that are rendering to multiview texture arrays.\r\n */\r\n _renderingMultiview: boolean;\r\n\r\n /**\r\n * @internal\r\n * ensures the multiview texture of the camera exists and has the specified width/height\r\n * @param width height to set on the multiview texture\r\n * @param height width to set on the multiview texture\r\n */\r\n _resizeOrCreateMultiviewTexture(width: number, height: number): void;\r\n }\r\n}\r\n\r\nCamera.prototype._useMultiviewToSingleView = false;\r\n\r\nCamera.prototype._multiviewTexture = null;\r\n\r\nCamera.prototype._resizeOrCreateMultiviewTexture = function (width: number, height: number) {\r\n if (!this._multiviewTexture) {\r\n this._multiviewTexture = new MultiviewRenderTarget(this.getScene(), { width: width, height: height });\r\n } else if (this._multiviewTexture.getRenderWidth() != width || this._multiviewTexture.getRenderHeight() != height) {\r\n this._multiviewTexture.dispose();\r\n this._multiviewTexture = new MultiviewRenderTarget(this.getScene(), { width: width, height: height });\r\n }\r\n};\r\n\r\ndeclare module \"../../scene\" {\r\n export interface Scene {\r\n /** @internal */\r\n _transformMatrixR: Matrix;\r\n /** @internal */\r\n _multiviewSceneUbo: Nullable<UniformBuffer>;\r\n /** @internal */\r\n _createMultiviewUbo(): void;\r\n /** @internal */\r\n _updateMultiviewUbo(viewR?: Matrix, projectionR?: Matrix): void;\r\n /** @internal */\r\n _renderMultiviewToSingleView(camera: Camera): void;\r\n }\r\n}\r\n\r\nfunction createMultiviewUbo(engine: Engine, name?: string) {\r\n const ubo = new UniformBuffer(engine, undefined, true, name);\r\n ubo.addUniform(\"viewProjection\", 16);\r\n ubo.addUniform(\"viewProjectionR\", 16);\r\n ubo.addUniform(\"view\", 16);\r\n ubo.addUniform(\"projection\", 16);\r\n ubo.addUniform(\"vEyePosition\", 4);\r\n return ubo;\r\n}\r\n\r\nconst currentCreateSceneUniformBuffer = Scene.prototype.createSceneUniformBuffer;\r\n\r\nScene.prototype._transformMatrixR = Matrix.Zero();\r\nScene.prototype._multiviewSceneUbo = null;\r\nScene.prototype._createMultiviewUbo = function () {\r\n this._multiviewSceneUbo = createMultiviewUbo(this.getEngine(), \"scene_multiview\");\r\n};\r\nScene.prototype.createSceneUniformBuffer = function (name?: string): UniformBuffer {\r\n if (this._multiviewSceneUbo) {\r\n return createMultiviewUbo(this.getEngine(), name);\r\n }\r\n return currentCreateSceneUniformBuffer.bind(this)(name);\r\n};\r\nScene.prototype._updateMultiviewUbo = function (viewR?: Matrix, projectionR?: Matrix) {\r\n if (viewR && projectionR) {\r\n viewR.multiplyToRef(projectionR, this._transformMatrixR);\r\n }\r\n\r\n if (viewR && projectionR) {\r\n viewR.multiplyToRef(projectionR, TmpVectors.Matrix[0]);\r\n Frustum.GetRightPlaneToRef(TmpVectors.Matrix[0], this._frustumPlanes[3]); // Replace right plane by second camera right plane\r\n }\r\n\r\n if (this._multiviewSceneUbo) {\r\n this._multiviewSceneUbo.updateMatrix(\"viewProjection\", this.getTransformMatrix());\r\n this._multiviewSceneUbo.updateMatrix(\"viewProjectionR\", this._transformMatrixR);\r\n this._multiviewSceneUbo.updateMatrix(\"view\", this._viewMatrix);\r\n this._multiviewSceneUbo.updateMatrix(\"projection\", this._projectionMatrix);\r\n }\r\n};\r\nScene.prototype._renderMultiviewToSingleView = function (camera: Camera) {\r\n // Multiview is only able to be displayed directly for API's such as webXR\r\n // This displays a multiview image by rendering to the multiview image and then\r\n // copying the result into the sub cameras instead of rendering them and proceeding as normal from there\r\n\r\n // Render to a multiview texture\r\n camera._resizeOrCreateMultiviewTexture(\r\n camera._rigPostProcess && camera._rigPostProcess && camera._rigPostProcess.width > 0 ? camera._rigPostProcess.width : this.getEngine().getRenderWidth(true),\r\n camera._rigPostProcess && camera._rigPostProcess && camera._rigPostProcess.height > 0 ? camera._rigPostProcess.height : this.getEngine().getRenderHeight(true)\r\n );\r\n if (!this._multiviewSceneUbo) {\r\n this._createMultiviewUbo();\r\n }\r\n camera.outputRenderTarget = camera._multiviewTexture;\r\n this._renderForCamera(camera);\r\n camera.outputRenderTarget = null;\r\n\r\n // Consume the multiview texture through a shader for each eye\r\n for (let index = 0; index < camera._rigCameras.length; index++) {\r\n const engine = this.getEngine();\r\n this._activeCamera = camera._rigCameras[index];\r\n engine.setViewport(this._activeCamera.viewport);\r\n if (this.postProcessManager) {\r\n this.postProcessManager._prepareFrame();\r\n this.postProcessManager._finalizeFrame(this._activeCamera.isIntermediate);\r\n }\r\n }\r\n};\r\n"]}
|
|
@@ -2,23 +2,23 @@ import type { Nullable, int } from "../../types";
|
|
|
2
2
|
import { _TimeToken } from "../../Instrumentation/timeToken";
|
|
3
3
|
import { PerfCounter } from "../../Misc/perfCounter";
|
|
4
4
|
import type { Observer } from "../../Misc/observable";
|
|
5
|
-
/** @
|
|
5
|
+
/** @internal */
|
|
6
6
|
export declare type OcclusionQuery = WebGLQuery | number;
|
|
7
|
-
/** @
|
|
7
|
+
/** @internal */
|
|
8
8
|
export declare class _OcclusionDataStorage {
|
|
9
|
-
/** @
|
|
9
|
+
/** @internal */
|
|
10
10
|
occlusionInternalRetryCounter: number;
|
|
11
|
-
/** @
|
|
11
|
+
/** @internal */
|
|
12
12
|
isOcclusionQueryInProgress: boolean;
|
|
13
|
-
/** @
|
|
13
|
+
/** @internal */
|
|
14
14
|
isOccluded: boolean;
|
|
15
|
-
/** @
|
|
15
|
+
/** @internal */
|
|
16
16
|
occlusionRetryCount: number;
|
|
17
|
-
/** @
|
|
17
|
+
/** @internal */
|
|
18
18
|
occlusionType: number;
|
|
19
|
-
/** @
|
|
19
|
+
/** @internal */
|
|
20
20
|
occlusionQueryAlgorithmType: number;
|
|
21
|
-
/** @
|
|
21
|
+
/** @internal */
|
|
22
22
|
forceRenderingWhenOccluded: boolean;
|
|
23
23
|
}
|
|
24
24
|
declare module "../../Engines/engine" {
|
|
@@ -83,27 +83,27 @@ declare module "../../Engines/engine" {
|
|
|
83
83
|
* @param value True to enable, false to disable
|
|
84
84
|
*/
|
|
85
85
|
captureGPUFrameTime(value: boolean): void;
|
|
86
|
-
/** @
|
|
86
|
+
/** @internal */
|
|
87
87
|
_currentNonTimestampToken: Nullable<_TimeToken>;
|
|
88
|
-
/** @
|
|
88
|
+
/** @internal */
|
|
89
89
|
_captureGPUFrameTime: boolean;
|
|
90
|
-
/** @
|
|
90
|
+
/** @internal */
|
|
91
91
|
_gpuFrameTimeToken: Nullable<_TimeToken>;
|
|
92
|
-
/** @
|
|
92
|
+
/** @internal */
|
|
93
93
|
_gpuFrameTime: PerfCounter;
|
|
94
|
-
/** @
|
|
94
|
+
/** @internal */
|
|
95
95
|
_onBeginFrameObserver: Nullable<Observer<Engine>>;
|
|
96
|
-
/** @
|
|
96
|
+
/** @internal */
|
|
97
97
|
_onEndFrameObserver: Nullable<Observer<Engine>>;
|
|
98
|
-
/** @
|
|
98
|
+
/** @internal */
|
|
99
99
|
_createTimeQuery(): WebGLQuery;
|
|
100
|
-
/** @
|
|
100
|
+
/** @internal */
|
|
101
101
|
_deleteTimeQuery(query: WebGLQuery): void;
|
|
102
|
-
/** @
|
|
102
|
+
/** @internal */
|
|
103
103
|
_getGlAlgorithmType(algorithmType: number): number;
|
|
104
|
-
/** @
|
|
104
|
+
/** @internal */
|
|
105
105
|
_getTimeQueryResult(query: WebGLQuery): any;
|
|
106
|
-
/** @
|
|
106
|
+
/** @internal */
|
|
107
107
|
_getTimeQueryAvailability(query: WebGLQuery): any;
|
|
108
108
|
}
|
|
109
109
|
}
|
|
@@ -111,12 +111,12 @@ declare module "../../Meshes/abstractMesh" {
|
|
|
111
111
|
interface AbstractMesh {
|
|
112
112
|
/**
|
|
113
113
|
* Backing filed
|
|
114
|
-
* @
|
|
114
|
+
* @internal
|
|
115
115
|
*/
|
|
116
116
|
__occlusionDataStorage: _OcclusionDataStorage;
|
|
117
117
|
/**
|
|
118
118
|
* Access property
|
|
119
|
-
* @
|
|
119
|
+
* @internal
|
|
120
120
|
*/
|
|
121
121
|
_occlusionDataStorage: _OcclusionDataStorage;
|
|
122
122
|
/**
|
|
@@ -2,23 +2,23 @@ import { Engine } from "../../Engines/engine.js";
|
|
|
2
2
|
import { AbstractMesh } from "../../Meshes/abstractMesh.js";
|
|
3
3
|
import { _TimeToken } from "../../Instrumentation/timeToken.js";
|
|
4
4
|
import { PerfCounter } from "../../Misc/perfCounter.js";
|
|
5
|
-
/** @
|
|
5
|
+
/** @internal */
|
|
6
6
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
7
7
|
export class _OcclusionDataStorage {
|
|
8
8
|
constructor() {
|
|
9
|
-
/** @
|
|
9
|
+
/** @internal */
|
|
10
10
|
this.occlusionInternalRetryCounter = 0;
|
|
11
|
-
/** @
|
|
11
|
+
/** @internal */
|
|
12
12
|
this.isOcclusionQueryInProgress = false;
|
|
13
|
-
/** @
|
|
13
|
+
/** @internal */
|
|
14
14
|
this.isOccluded = false;
|
|
15
|
-
/** @
|
|
15
|
+
/** @internal */
|
|
16
16
|
this.occlusionRetryCount = -1;
|
|
17
|
-
/** @
|
|
17
|
+
/** @internal */
|
|
18
18
|
this.occlusionType = AbstractMesh.OCCLUSION_TYPE_NONE;
|
|
19
|
-
/** @
|
|
19
|
+
/** @internal */
|
|
20
20
|
this.occlusionQueryAlgorithmType = AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE;
|
|
21
|
-
/** @
|
|
21
|
+
/** @internal */
|
|
22
22
|
this.forceRenderingWhenOccluded = false;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.query.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/Extensions/engine.query.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable, int } from \"../../types\";\r\nimport { Engine } from \"../../Engines/engine\";\r\nimport { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { _TimeToken } from \"../../Instrumentation/timeToken\";\r\nimport { PerfCounter } from \"../../Misc/perfCounter\";\r\nimport type { Observer } from \"../../Misc/observable\";\r\n\r\n/** @hidden */\r\nexport type OcclusionQuery = WebGLQuery | number;\r\n\r\n/** @hidden */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _OcclusionDataStorage {\r\n /** @hidden */\r\n public occlusionInternalRetryCounter = 0;\r\n\r\n /** @hidden */\r\n public isOcclusionQueryInProgress = false;\r\n\r\n /** @hidden */\r\n public isOccluded = false;\r\n\r\n /** @hidden */\r\n public occlusionRetryCount = -1;\r\n\r\n /** @hidden */\r\n public occlusionType = AbstractMesh.OCCLUSION_TYPE_NONE;\r\n\r\n /** @hidden */\r\n public occlusionQueryAlgorithmType = AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE;\r\n\r\n /** @hidden */\r\n public forceRenderingWhenOccluded = false;\r\n}\r\n\r\ndeclare module \"../../Engines/engine\" {\r\n export interface Engine {\r\n /**\r\n * Create a new webGL query (you must be sure that queries are supported by checking getCaps() function)\r\n * @returns the new query\r\n */\r\n createQuery(): OcclusionQuery;\r\n\r\n /**\r\n * Delete and release a webGL query\r\n * @param query defines the query to delete\r\n * @returns the current engine\r\n */\r\n deleteQuery(query: OcclusionQuery): Engine;\r\n\r\n /**\r\n * Check if a given query has resolved and got its value\r\n * @param query defines the query to check\r\n * @returns true if the query got its value\r\n */\r\n isQueryResultAvailable(query: OcclusionQuery): boolean;\r\n\r\n /**\r\n * Gets the value of a given query\r\n * @param query defines the query to check\r\n * @returns the value of the query\r\n */\r\n getQueryResult(query: OcclusionQuery): number;\r\n\r\n /**\r\n * Initiates an occlusion query\r\n * @param algorithmType defines the algorithm to use\r\n * @param query defines the query to use\r\n * @returns the current engine\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n beginOcclusionQuery(algorithmType: number, query: OcclusionQuery): boolean;\r\n\r\n /**\r\n * Ends an occlusion query\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n * @param algorithmType defines the algorithm to use\r\n * @returns the current engine\r\n */\r\n endOcclusionQuery(algorithmType: number): Engine;\r\n\r\n /**\r\n * Starts a time query (used to measure time spent by the GPU on a specific frame)\r\n * Please note that only one query can be issued at a time\r\n * @returns a time token used to track the time span\r\n */\r\n startTimeQuery(): Nullable<_TimeToken>;\r\n\r\n /**\r\n * Ends a time query\r\n * @param token defines the token used to measure the time span\r\n * @returns the time spent (in ns)\r\n */\r\n endTimeQuery(token: _TimeToken): int;\r\n\r\n /**\r\n * Get the performance counter associated with the frame time computation\r\n * @returns the perf counter\r\n */\r\n getGPUFrameTimeCounter(): PerfCounter;\r\n\r\n /**\r\n * Enable or disable the GPU frame time capture\r\n * @param value True to enable, false to disable\r\n */\r\n captureGPUFrameTime(value: boolean): void;\r\n\r\n /** @hidden */\r\n _currentNonTimestampToken: Nullable<_TimeToken>;\r\n /** @hidden */\r\n _captureGPUFrameTime: boolean;\r\n /** @hidden */\r\n _gpuFrameTimeToken: Nullable<_TimeToken>;\r\n /** @hidden */\r\n _gpuFrameTime: PerfCounter;\r\n /** @hidden */\r\n _onBeginFrameObserver: Nullable<Observer<Engine>>;\r\n /** @hidden */\r\n _onEndFrameObserver: Nullable<Observer<Engine>>;\r\n\r\n /** @hidden */\r\n _createTimeQuery(): WebGLQuery;\r\n\r\n /** @hidden */\r\n _deleteTimeQuery(query: WebGLQuery): void;\r\n\r\n /** @hidden */\r\n _getGlAlgorithmType(algorithmType: number): number;\r\n\r\n /** @hidden */\r\n _getTimeQueryResult(query: WebGLQuery): any;\r\n\r\n /** @hidden */\r\n _getTimeQueryAvailability(query: WebGLQuery): any;\r\n }\r\n}\r\n\r\nEngine.prototype.createQuery = function (): OcclusionQuery {\r\n const query = this._gl.createQuery();\r\n if (!query) {\r\n throw new Error(\"Unable to create Occlusion Query\");\r\n }\r\n return query;\r\n};\r\n\r\nEngine.prototype.deleteQuery = function (query: OcclusionQuery): Engine {\r\n this._gl.deleteQuery(query);\r\n\r\n return this;\r\n};\r\n\r\nEngine.prototype.isQueryResultAvailable = function (query: OcclusionQuery): boolean {\r\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT_AVAILABLE) as boolean;\r\n};\r\n\r\nEngine.prototype.getQueryResult = function (query: OcclusionQuery): number {\r\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT) as number;\r\n};\r\n\r\nEngine.prototype.beginOcclusionQuery = function (algorithmType: number, query: OcclusionQuery): boolean {\r\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\r\n this._gl.beginQuery(glAlgorithm, query);\r\n\r\n return true;\r\n};\r\n\r\nEngine.prototype.endOcclusionQuery = function (algorithmType: number): Engine {\r\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\r\n this._gl.endQuery(glAlgorithm);\r\n\r\n return this;\r\n};\r\n\r\nEngine.prototype._createTimeQuery = function (): WebGLQuery {\r\n const timerQuery = <EXT_disjoint_timer_query>this.getCaps().timerQuery;\r\n\r\n if (timerQuery.createQueryEXT) {\r\n return timerQuery.createQueryEXT();\r\n }\r\n\r\n return this.createQuery();\r\n};\r\n\r\nEngine.prototype._deleteTimeQuery = function (query: WebGLQuery): void {\r\n const timerQuery = <EXT_disjoint_timer_query>this.getCaps().timerQuery;\r\n\r\n if (timerQuery.deleteQueryEXT) {\r\n timerQuery.deleteQueryEXT(query);\r\n return;\r\n }\r\n\r\n this.deleteQuery(query);\r\n};\r\n\r\nEngine.prototype._getTimeQueryResult = function (query: WebGLQuery): any {\r\n const timerQuery = <EXT_disjoint_timer_query>this.getCaps().timerQuery;\r\n\r\n if (timerQuery.getQueryObjectEXT) {\r\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_EXT);\r\n }\r\n return this.getQueryResult(query);\r\n};\r\n\r\nEngine.prototype._getTimeQueryAvailability = function (query: WebGLQuery): any {\r\n const timerQuery = <EXT_disjoint_timer_query>this.getCaps().timerQuery;\r\n\r\n if (timerQuery.getQueryObjectEXT) {\r\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_AVAILABLE_EXT);\r\n }\r\n return this.isQueryResultAvailable(query);\r\n};\r\n\r\nEngine.prototype.startTimeQuery = function (): Nullable<_TimeToken> {\r\n const caps = this.getCaps();\r\n const timerQuery = caps.timerQuery;\r\n if (!timerQuery) {\r\n return null;\r\n }\r\n\r\n const token = new _TimeToken();\r\n this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\r\n if (caps.canUseTimestampForTimerQuery) {\r\n token._startTimeQuery = this._createTimeQuery();\r\n\r\n timerQuery.queryCounterEXT(token._startTimeQuery, timerQuery.TIMESTAMP_EXT);\r\n } else {\r\n if (this._currentNonTimestampToken) {\r\n return this._currentNonTimestampToken;\r\n }\r\n\r\n token._timeElapsedQuery = this._createTimeQuery();\r\n if (timerQuery.beginQueryEXT) {\r\n timerQuery.beginQueryEXT(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\r\n } else {\r\n this._gl.beginQuery(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\r\n }\r\n\r\n this._currentNonTimestampToken = token;\r\n }\r\n return token;\r\n};\r\n\r\nEngine.prototype.endTimeQuery = function (token: _TimeToken): int {\r\n const caps = this.getCaps();\r\n const timerQuery = caps.timerQuery;\r\n if (!timerQuery || !token) {\r\n return -1;\r\n }\r\n\r\n if (caps.canUseTimestampForTimerQuery) {\r\n if (!token._startTimeQuery) {\r\n return -1;\r\n }\r\n if (!token._endTimeQuery) {\r\n token._endTimeQuery = this._createTimeQuery();\r\n timerQuery.queryCounterEXT(token._endTimeQuery, timerQuery.TIMESTAMP_EXT);\r\n }\r\n } else if (!token._timeElapsedQueryEnded) {\r\n if (!token._timeElapsedQuery) {\r\n return -1;\r\n }\r\n if (timerQuery.endQueryEXT) {\r\n timerQuery.endQueryEXT(timerQuery.TIME_ELAPSED_EXT);\r\n } else {\r\n this._gl.endQuery(timerQuery.TIME_ELAPSED_EXT);\r\n this._currentNonTimestampToken = null;\r\n }\r\n token._timeElapsedQueryEnded = true;\r\n }\r\n\r\n const disjoint = this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\r\n let available: boolean = false;\r\n if (token._endTimeQuery) {\r\n available = this._getTimeQueryAvailability(token._endTimeQuery);\r\n } else if (token._timeElapsedQuery) {\r\n available = this._getTimeQueryAvailability(token._timeElapsedQuery);\r\n }\r\n\r\n if (available && !disjoint) {\r\n let result = 0;\r\n if (caps.canUseTimestampForTimerQuery) {\r\n if (!token._startTimeQuery || !token._endTimeQuery) {\r\n return -1;\r\n }\r\n const timeStart = this._getTimeQueryResult(token._startTimeQuery);\r\n const timeEnd = this._getTimeQueryResult(token._endTimeQuery);\r\n\r\n result = timeEnd - timeStart;\r\n this._deleteTimeQuery(token._startTimeQuery);\r\n this._deleteTimeQuery(token._endTimeQuery);\r\n token._startTimeQuery = null;\r\n token._endTimeQuery = null;\r\n } else {\r\n if (!token._timeElapsedQuery) {\r\n return -1;\r\n }\r\n\r\n result = this._getTimeQueryResult(token._timeElapsedQuery);\r\n this._deleteTimeQuery(token._timeElapsedQuery);\r\n token._timeElapsedQuery = null;\r\n token._timeElapsedQueryEnded = false;\r\n }\r\n return result;\r\n }\r\n\r\n return -1;\r\n};\r\n\r\nEngine.prototype._captureGPUFrameTime = false;\r\nEngine.prototype._gpuFrameTime = new PerfCounter();\r\n\r\nEngine.prototype.getGPUFrameTimeCounter = function () {\r\n return this._gpuFrameTime;\r\n};\r\n\r\nEngine.prototype.captureGPUFrameTime = function (value: boolean) {\r\n if (value === this._captureGPUFrameTime) {\r\n return;\r\n }\r\n\r\n this._captureGPUFrameTime = value;\r\n\r\n if (value) {\r\n this._onBeginFrameObserver = this.onBeginFrameObservable.add(() => {\r\n if (!this._gpuFrameTimeToken) {\r\n this._gpuFrameTimeToken = this.startTimeQuery();\r\n }\r\n });\r\n\r\n this._onEndFrameObserver = this.onEndFrameObservable.add(() => {\r\n if (!this._gpuFrameTimeToken) {\r\n return;\r\n }\r\n const time = this.endTimeQuery(this._gpuFrameTimeToken);\r\n\r\n if (time > -1) {\r\n this._gpuFrameTimeToken = null;\r\n this._gpuFrameTime.fetchNewFrame();\r\n this._gpuFrameTime.addCount(time, true);\r\n }\r\n });\r\n } else {\r\n this.onBeginFrameObservable.remove(this._onBeginFrameObserver);\r\n this._onBeginFrameObserver = null;\r\n this.onEndFrameObservable.remove(this._onEndFrameObserver);\r\n this._onEndFrameObserver = null;\r\n }\r\n};\r\n\r\nEngine.prototype._getGlAlgorithmType = function (algorithmType: number): number {\r\n return algorithmType === AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE ? this._gl.ANY_SAMPLES_PASSED_CONSERVATIVE : this._gl.ANY_SAMPLES_PASSED;\r\n};\r\n\r\ndeclare module \"../../Meshes/abstractMesh\" {\r\n export interface AbstractMesh {\r\n /**\r\n * Backing filed\r\n * @hidden\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n __occlusionDataStorage: _OcclusionDataStorage;\r\n\r\n /**\r\n * Access property\r\n * @hidden\r\n */\r\n _occlusionDataStorage: _OcclusionDataStorage;\r\n\r\n /**\r\n * This number indicates the number of allowed retries before stop the occlusion query, this is useful if the occlusion query is taking long time before to the query result is retrieved, the query result indicates if the object is visible within the scene or not and based on that Babylon.Js engine decides to show or hide the object.\r\n * The default value is -1 which means don't break the query and wait till the result\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n occlusionRetryCount: number;\r\n\r\n /**\r\n * This property is responsible for starting the occlusion query within the Mesh or not, this property is also used to determine what should happen when the occlusionRetryCount is reached. It has supports 3 values:\r\n * * OCCLUSION_TYPE_NONE (Default Value): this option means no occlusion query within the Mesh.\r\n * * OCCLUSION_TYPE_OPTIMISTIC: this option is means use occlusion query and if occlusionRetryCount is reached and the query is broken show the mesh.\r\n * * OCCLUSION_TYPE_STRICT: this option is means use occlusion query and if occlusionRetryCount is reached and the query is broken restore the last state of the mesh occlusion if the mesh was visible then show the mesh if was hidden then hide don't show.\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n occlusionType: number;\r\n\r\n /**\r\n * This property determines the type of occlusion query algorithm to run in WebGl, you can use:\r\n * * AbstractMesh.OCCLUSION_ALGORITHM_TYPE_ACCURATE which is mapped to GL_ANY_SAMPLES_PASSED.\r\n * * AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE (Default Value) which is mapped to GL_ANY_SAMPLES_PASSED_CONSERVATIVE which is a false positive algorithm that is faster than GL_ANY_SAMPLES_PASSED but less accurate.\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n occlusionQueryAlgorithmType: number;\r\n\r\n /**\r\n * Gets or sets whether the mesh is occluded or not, it is used also to set the initial state of the mesh to be occluded or not\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n isOccluded: boolean;\r\n\r\n /**\r\n * Flag to check the progress status of the query\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n isOcclusionQueryInProgress: boolean;\r\n\r\n /**\r\n * Flag to force rendering the mesh even if occluded\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n forceRenderingWhenOccluded: boolean;\r\n }\r\n}\r\nObject.defineProperty(AbstractMesh.prototype, \"isOcclusionQueryInProgress\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.isOcclusionQueryInProgress;\r\n },\r\n set: function (this: AbstractMesh, value: boolean) {\r\n this._occlusionDataStorage.isOcclusionQueryInProgress = value;\r\n },\r\n enumerable: false,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"_occlusionDataStorage\", {\r\n get: function (this: AbstractMesh) {\r\n if (!this.__occlusionDataStorage) {\r\n this.__occlusionDataStorage = new _OcclusionDataStorage();\r\n }\r\n return this.__occlusionDataStorage;\r\n },\r\n enumerable: false,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"isOccluded\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.isOccluded;\r\n },\r\n set: function (this: AbstractMesh, value: boolean) {\r\n this._occlusionDataStorage.isOccluded = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"occlusionQueryAlgorithmType\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.occlusionQueryAlgorithmType;\r\n },\r\n set: function (this: AbstractMesh, value: number) {\r\n this._occlusionDataStorage.occlusionQueryAlgorithmType = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"occlusionType\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.occlusionType;\r\n },\r\n set: function (this: AbstractMesh, value: number) {\r\n this._occlusionDataStorage.occlusionType = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"occlusionRetryCount\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.occlusionRetryCount;\r\n },\r\n set: function (this: AbstractMesh, value: number) {\r\n this._occlusionDataStorage.occlusionRetryCount = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"forceRenderingWhenOccluded\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.forceRenderingWhenOccluded;\r\n },\r\n set: function (this: AbstractMesh, value: boolean) {\r\n this._occlusionDataStorage.forceRenderingWhenOccluded = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\n// We also need to update AbstractMesh as there is a portion of the code there\r\nAbstractMesh.prototype._checkOcclusionQuery = function () {\r\n const dataStorage = this._occlusionDataStorage;\r\n\r\n if (dataStorage.occlusionType === AbstractMesh.OCCLUSION_TYPE_NONE) {\r\n dataStorage.isOccluded = false;\r\n return false;\r\n }\r\n\r\n const engine = this.getEngine();\r\n\r\n if (!engine.getCaps().supportOcclusionQuery) {\r\n dataStorage.isOccluded = false;\r\n return false;\r\n }\r\n\r\n if (!engine.isQueryResultAvailable) {\r\n // Occlusion query where not referenced\r\n dataStorage.isOccluded = false;\r\n return false;\r\n }\r\n\r\n if (this.isOcclusionQueryInProgress && this._occlusionQuery) {\r\n const isOcclusionQueryAvailable = engine.isQueryResultAvailable(this._occlusionQuery);\r\n if (isOcclusionQueryAvailable) {\r\n const occlusionQueryResult = engine.getQueryResult(this._occlusionQuery);\r\n\r\n dataStorage.isOcclusionQueryInProgress = false;\r\n dataStorage.occlusionInternalRetryCounter = 0;\r\n dataStorage.isOccluded = occlusionQueryResult > 0 ? false : true;\r\n } else {\r\n dataStorage.occlusionInternalRetryCounter++;\r\n\r\n if (dataStorage.occlusionRetryCount !== -1 && dataStorage.occlusionInternalRetryCounter > dataStorage.occlusionRetryCount) {\r\n dataStorage.isOcclusionQueryInProgress = false;\r\n dataStorage.occlusionInternalRetryCounter = 0;\r\n\r\n // if optimistic set isOccluded to false regardless of the status of isOccluded. (Render in the current render loop)\r\n // if strict continue the last state of the object.\r\n dataStorage.isOccluded = dataStorage.occlusionType === AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC ? false : dataStorage.isOccluded;\r\n } else {\r\n return dataStorage.occlusionType === AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC ? false : dataStorage.isOccluded;\r\n }\r\n }\r\n }\r\n\r\n const scene = this.getScene();\r\n if (scene.getBoundingBoxRenderer) {\r\n const occlusionBoundingBoxRenderer = scene.getBoundingBoxRenderer();\r\n\r\n if (this._occlusionQuery === null) {\r\n this._occlusionQuery = engine.createQuery();\r\n }\r\n\r\n if (engine.beginOcclusionQuery(dataStorage.occlusionQueryAlgorithmType, this._occlusionQuery)) {\r\n occlusionBoundingBoxRenderer.renderOcclusionBoundingBox(this);\r\n engine.endOcclusionQuery(dataStorage.occlusionQueryAlgorithmType);\r\n this._occlusionDataStorage.isOcclusionQueryInProgress = true;\r\n }\r\n }\r\n\r\n return dataStorage.isOccluded;\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"engine.query.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Engines/Extensions/engine.query.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable, int } from \"../../types\";\r\nimport { Engine } from \"../../Engines/engine\";\r\nimport { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { _TimeToken } from \"../../Instrumentation/timeToken\";\r\nimport { PerfCounter } from \"../../Misc/perfCounter\";\r\nimport type { Observer } from \"../../Misc/observable\";\r\n\r\n/** @internal */\r\nexport type OcclusionQuery = WebGLQuery | number;\r\n\r\n/** @internal */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _OcclusionDataStorage {\r\n /** @internal */\r\n public occlusionInternalRetryCounter = 0;\r\n\r\n /** @internal */\r\n public isOcclusionQueryInProgress = false;\r\n\r\n /** @internal */\r\n public isOccluded = false;\r\n\r\n /** @internal */\r\n public occlusionRetryCount = -1;\r\n\r\n /** @internal */\r\n public occlusionType = AbstractMesh.OCCLUSION_TYPE_NONE;\r\n\r\n /** @internal */\r\n public occlusionQueryAlgorithmType = AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE;\r\n\r\n /** @internal */\r\n public forceRenderingWhenOccluded = false;\r\n}\r\n\r\ndeclare module \"../../Engines/engine\" {\r\n export interface Engine {\r\n /**\r\n * Create a new webGL query (you must be sure that queries are supported by checking getCaps() function)\r\n * @returns the new query\r\n */\r\n createQuery(): OcclusionQuery;\r\n\r\n /**\r\n * Delete and release a webGL query\r\n * @param query defines the query to delete\r\n * @returns the current engine\r\n */\r\n deleteQuery(query: OcclusionQuery): Engine;\r\n\r\n /**\r\n * Check if a given query has resolved and got its value\r\n * @param query defines the query to check\r\n * @returns true if the query got its value\r\n */\r\n isQueryResultAvailable(query: OcclusionQuery): boolean;\r\n\r\n /**\r\n * Gets the value of a given query\r\n * @param query defines the query to check\r\n * @returns the value of the query\r\n */\r\n getQueryResult(query: OcclusionQuery): number;\r\n\r\n /**\r\n * Initiates an occlusion query\r\n * @param algorithmType defines the algorithm to use\r\n * @param query defines the query to use\r\n * @returns the current engine\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n beginOcclusionQuery(algorithmType: number, query: OcclusionQuery): boolean;\r\n\r\n /**\r\n * Ends an occlusion query\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n * @param algorithmType defines the algorithm to use\r\n * @returns the current engine\r\n */\r\n endOcclusionQuery(algorithmType: number): Engine;\r\n\r\n /**\r\n * Starts a time query (used to measure time spent by the GPU on a specific frame)\r\n * Please note that only one query can be issued at a time\r\n * @returns a time token used to track the time span\r\n */\r\n startTimeQuery(): Nullable<_TimeToken>;\r\n\r\n /**\r\n * Ends a time query\r\n * @param token defines the token used to measure the time span\r\n * @returns the time spent (in ns)\r\n */\r\n endTimeQuery(token: _TimeToken): int;\r\n\r\n /**\r\n * Get the performance counter associated with the frame time computation\r\n * @returns the perf counter\r\n */\r\n getGPUFrameTimeCounter(): PerfCounter;\r\n\r\n /**\r\n * Enable or disable the GPU frame time capture\r\n * @param value True to enable, false to disable\r\n */\r\n captureGPUFrameTime(value: boolean): void;\r\n\r\n /** @internal */\r\n _currentNonTimestampToken: Nullable<_TimeToken>;\r\n /** @internal */\r\n _captureGPUFrameTime: boolean;\r\n /** @internal */\r\n _gpuFrameTimeToken: Nullable<_TimeToken>;\r\n /** @internal */\r\n _gpuFrameTime: PerfCounter;\r\n /** @internal */\r\n _onBeginFrameObserver: Nullable<Observer<Engine>>;\r\n /** @internal */\r\n _onEndFrameObserver: Nullable<Observer<Engine>>;\r\n\r\n /** @internal */\r\n _createTimeQuery(): WebGLQuery;\r\n\r\n /** @internal */\r\n _deleteTimeQuery(query: WebGLQuery): void;\r\n\r\n /** @internal */\r\n _getGlAlgorithmType(algorithmType: number): number;\r\n\r\n /** @internal */\r\n _getTimeQueryResult(query: WebGLQuery): any;\r\n\r\n /** @internal */\r\n _getTimeQueryAvailability(query: WebGLQuery): any;\r\n }\r\n}\r\n\r\nEngine.prototype.createQuery = function (): OcclusionQuery {\r\n const query = this._gl.createQuery();\r\n if (!query) {\r\n throw new Error(\"Unable to create Occlusion Query\");\r\n }\r\n return query;\r\n};\r\n\r\nEngine.prototype.deleteQuery = function (query: OcclusionQuery): Engine {\r\n this._gl.deleteQuery(query);\r\n\r\n return this;\r\n};\r\n\r\nEngine.prototype.isQueryResultAvailable = function (query: OcclusionQuery): boolean {\r\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT_AVAILABLE) as boolean;\r\n};\r\n\r\nEngine.prototype.getQueryResult = function (query: OcclusionQuery): number {\r\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT) as number;\r\n};\r\n\r\nEngine.prototype.beginOcclusionQuery = function (algorithmType: number, query: OcclusionQuery): boolean {\r\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\r\n this._gl.beginQuery(glAlgorithm, query);\r\n\r\n return true;\r\n};\r\n\r\nEngine.prototype.endOcclusionQuery = function (algorithmType: number): Engine {\r\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\r\n this._gl.endQuery(glAlgorithm);\r\n\r\n return this;\r\n};\r\n\r\nEngine.prototype._createTimeQuery = function (): WebGLQuery {\r\n const timerQuery = <EXT_disjoint_timer_query>this.getCaps().timerQuery;\r\n\r\n if (timerQuery.createQueryEXT) {\r\n return timerQuery.createQueryEXT();\r\n }\r\n\r\n return this.createQuery();\r\n};\r\n\r\nEngine.prototype._deleteTimeQuery = function (query: WebGLQuery): void {\r\n const timerQuery = <EXT_disjoint_timer_query>this.getCaps().timerQuery;\r\n\r\n if (timerQuery.deleteQueryEXT) {\r\n timerQuery.deleteQueryEXT(query);\r\n return;\r\n }\r\n\r\n this.deleteQuery(query);\r\n};\r\n\r\nEngine.prototype._getTimeQueryResult = function (query: WebGLQuery): any {\r\n const timerQuery = <EXT_disjoint_timer_query>this.getCaps().timerQuery;\r\n\r\n if (timerQuery.getQueryObjectEXT) {\r\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_EXT);\r\n }\r\n return this.getQueryResult(query);\r\n};\r\n\r\nEngine.prototype._getTimeQueryAvailability = function (query: WebGLQuery): any {\r\n const timerQuery = <EXT_disjoint_timer_query>this.getCaps().timerQuery;\r\n\r\n if (timerQuery.getQueryObjectEXT) {\r\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_AVAILABLE_EXT);\r\n }\r\n return this.isQueryResultAvailable(query);\r\n};\r\n\r\nEngine.prototype.startTimeQuery = function (): Nullable<_TimeToken> {\r\n const caps = this.getCaps();\r\n const timerQuery = caps.timerQuery;\r\n if (!timerQuery) {\r\n return null;\r\n }\r\n\r\n const token = new _TimeToken();\r\n this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\r\n if (caps.canUseTimestampForTimerQuery) {\r\n token._startTimeQuery = this._createTimeQuery();\r\n\r\n timerQuery.queryCounterEXT(token._startTimeQuery, timerQuery.TIMESTAMP_EXT);\r\n } else {\r\n if (this._currentNonTimestampToken) {\r\n return this._currentNonTimestampToken;\r\n }\r\n\r\n token._timeElapsedQuery = this._createTimeQuery();\r\n if (timerQuery.beginQueryEXT) {\r\n timerQuery.beginQueryEXT(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\r\n } else {\r\n this._gl.beginQuery(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\r\n }\r\n\r\n this._currentNonTimestampToken = token;\r\n }\r\n return token;\r\n};\r\n\r\nEngine.prototype.endTimeQuery = function (token: _TimeToken): int {\r\n const caps = this.getCaps();\r\n const timerQuery = caps.timerQuery;\r\n if (!timerQuery || !token) {\r\n return -1;\r\n }\r\n\r\n if (caps.canUseTimestampForTimerQuery) {\r\n if (!token._startTimeQuery) {\r\n return -1;\r\n }\r\n if (!token._endTimeQuery) {\r\n token._endTimeQuery = this._createTimeQuery();\r\n timerQuery.queryCounterEXT(token._endTimeQuery, timerQuery.TIMESTAMP_EXT);\r\n }\r\n } else if (!token._timeElapsedQueryEnded) {\r\n if (!token._timeElapsedQuery) {\r\n return -1;\r\n }\r\n if (timerQuery.endQueryEXT) {\r\n timerQuery.endQueryEXT(timerQuery.TIME_ELAPSED_EXT);\r\n } else {\r\n this._gl.endQuery(timerQuery.TIME_ELAPSED_EXT);\r\n this._currentNonTimestampToken = null;\r\n }\r\n token._timeElapsedQueryEnded = true;\r\n }\r\n\r\n const disjoint = this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\r\n let available: boolean = false;\r\n if (token._endTimeQuery) {\r\n available = this._getTimeQueryAvailability(token._endTimeQuery);\r\n } else if (token._timeElapsedQuery) {\r\n available = this._getTimeQueryAvailability(token._timeElapsedQuery);\r\n }\r\n\r\n if (available && !disjoint) {\r\n let result = 0;\r\n if (caps.canUseTimestampForTimerQuery) {\r\n if (!token._startTimeQuery || !token._endTimeQuery) {\r\n return -1;\r\n }\r\n const timeStart = this._getTimeQueryResult(token._startTimeQuery);\r\n const timeEnd = this._getTimeQueryResult(token._endTimeQuery);\r\n\r\n result = timeEnd - timeStart;\r\n this._deleteTimeQuery(token._startTimeQuery);\r\n this._deleteTimeQuery(token._endTimeQuery);\r\n token._startTimeQuery = null;\r\n token._endTimeQuery = null;\r\n } else {\r\n if (!token._timeElapsedQuery) {\r\n return -1;\r\n }\r\n\r\n result = this._getTimeQueryResult(token._timeElapsedQuery);\r\n this._deleteTimeQuery(token._timeElapsedQuery);\r\n token._timeElapsedQuery = null;\r\n token._timeElapsedQueryEnded = false;\r\n }\r\n return result;\r\n }\r\n\r\n return -1;\r\n};\r\n\r\nEngine.prototype._captureGPUFrameTime = false;\r\nEngine.prototype._gpuFrameTime = new PerfCounter();\r\n\r\nEngine.prototype.getGPUFrameTimeCounter = function () {\r\n return this._gpuFrameTime;\r\n};\r\n\r\nEngine.prototype.captureGPUFrameTime = function (value: boolean) {\r\n if (value === this._captureGPUFrameTime) {\r\n return;\r\n }\r\n\r\n this._captureGPUFrameTime = value;\r\n\r\n if (value) {\r\n this._onBeginFrameObserver = this.onBeginFrameObservable.add(() => {\r\n if (!this._gpuFrameTimeToken) {\r\n this._gpuFrameTimeToken = this.startTimeQuery();\r\n }\r\n });\r\n\r\n this._onEndFrameObserver = this.onEndFrameObservable.add(() => {\r\n if (!this._gpuFrameTimeToken) {\r\n return;\r\n }\r\n const time = this.endTimeQuery(this._gpuFrameTimeToken);\r\n\r\n if (time > -1) {\r\n this._gpuFrameTimeToken = null;\r\n this._gpuFrameTime.fetchNewFrame();\r\n this._gpuFrameTime.addCount(time, true);\r\n }\r\n });\r\n } else {\r\n this.onBeginFrameObservable.remove(this._onBeginFrameObserver);\r\n this._onBeginFrameObserver = null;\r\n this.onEndFrameObservable.remove(this._onEndFrameObserver);\r\n this._onEndFrameObserver = null;\r\n }\r\n};\r\n\r\nEngine.prototype._getGlAlgorithmType = function (algorithmType: number): number {\r\n return algorithmType === AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE ? this._gl.ANY_SAMPLES_PASSED_CONSERVATIVE : this._gl.ANY_SAMPLES_PASSED;\r\n};\r\n\r\ndeclare module \"../../Meshes/abstractMesh\" {\r\n export interface AbstractMesh {\r\n /**\r\n * Backing filed\r\n * @internal\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n __occlusionDataStorage: _OcclusionDataStorage;\r\n\r\n /**\r\n * Access property\r\n * @internal\r\n */\r\n _occlusionDataStorage: _OcclusionDataStorage;\r\n\r\n /**\r\n * This number indicates the number of allowed retries before stop the occlusion query, this is useful if the occlusion query is taking long time before to the query result is retrieved, the query result indicates if the object is visible within the scene or not and based on that Babylon.Js engine decides to show or hide the object.\r\n * The default value is -1 which means don't break the query and wait till the result\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n occlusionRetryCount: number;\r\n\r\n /**\r\n * This property is responsible for starting the occlusion query within the Mesh or not, this property is also used to determine what should happen when the occlusionRetryCount is reached. It has supports 3 values:\r\n * * OCCLUSION_TYPE_NONE (Default Value): this option means no occlusion query within the Mesh.\r\n * * OCCLUSION_TYPE_OPTIMISTIC: this option is means use occlusion query and if occlusionRetryCount is reached and the query is broken show the mesh.\r\n * * OCCLUSION_TYPE_STRICT: this option is means use occlusion query and if occlusionRetryCount is reached and the query is broken restore the last state of the mesh occlusion if the mesh was visible then show the mesh if was hidden then hide don't show.\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n occlusionType: number;\r\n\r\n /**\r\n * This property determines the type of occlusion query algorithm to run in WebGl, you can use:\r\n * * AbstractMesh.OCCLUSION_ALGORITHM_TYPE_ACCURATE which is mapped to GL_ANY_SAMPLES_PASSED.\r\n * * AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE (Default Value) which is mapped to GL_ANY_SAMPLES_PASSED_CONSERVATIVE which is a false positive algorithm that is faster than GL_ANY_SAMPLES_PASSED but less accurate.\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n occlusionQueryAlgorithmType: number;\r\n\r\n /**\r\n * Gets or sets whether the mesh is occluded or not, it is used also to set the initial state of the mesh to be occluded or not\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n isOccluded: boolean;\r\n\r\n /**\r\n * Flag to check the progress status of the query\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n isOcclusionQueryInProgress: boolean;\r\n\r\n /**\r\n * Flag to force rendering the mesh even if occluded\r\n * @see https://doc.babylonjs.com/features/occlusionquery\r\n */\r\n forceRenderingWhenOccluded: boolean;\r\n }\r\n}\r\nObject.defineProperty(AbstractMesh.prototype, \"isOcclusionQueryInProgress\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.isOcclusionQueryInProgress;\r\n },\r\n set: function (this: AbstractMesh, value: boolean) {\r\n this._occlusionDataStorage.isOcclusionQueryInProgress = value;\r\n },\r\n enumerable: false,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"_occlusionDataStorage\", {\r\n get: function (this: AbstractMesh) {\r\n if (!this.__occlusionDataStorage) {\r\n this.__occlusionDataStorage = new _OcclusionDataStorage();\r\n }\r\n return this.__occlusionDataStorage;\r\n },\r\n enumerable: false,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"isOccluded\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.isOccluded;\r\n },\r\n set: function (this: AbstractMesh, value: boolean) {\r\n this._occlusionDataStorage.isOccluded = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"occlusionQueryAlgorithmType\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.occlusionQueryAlgorithmType;\r\n },\r\n set: function (this: AbstractMesh, value: number) {\r\n this._occlusionDataStorage.occlusionQueryAlgorithmType = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"occlusionType\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.occlusionType;\r\n },\r\n set: function (this: AbstractMesh, value: number) {\r\n this._occlusionDataStorage.occlusionType = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"occlusionRetryCount\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.occlusionRetryCount;\r\n },\r\n set: function (this: AbstractMesh, value: number) {\r\n this._occlusionDataStorage.occlusionRetryCount = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"forceRenderingWhenOccluded\", {\r\n get: function (this: AbstractMesh) {\r\n return this._occlusionDataStorage.forceRenderingWhenOccluded;\r\n },\r\n set: function (this: AbstractMesh, value: boolean) {\r\n this._occlusionDataStorage.forceRenderingWhenOccluded = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\n// We also need to update AbstractMesh as there is a portion of the code there\r\nAbstractMesh.prototype._checkOcclusionQuery = function () {\r\n const dataStorage = this._occlusionDataStorage;\r\n\r\n if (dataStorage.occlusionType === AbstractMesh.OCCLUSION_TYPE_NONE) {\r\n dataStorage.isOccluded = false;\r\n return false;\r\n }\r\n\r\n const engine = this.getEngine();\r\n\r\n if (!engine.getCaps().supportOcclusionQuery) {\r\n dataStorage.isOccluded = false;\r\n return false;\r\n }\r\n\r\n if (!engine.isQueryResultAvailable) {\r\n // Occlusion query where not referenced\r\n dataStorage.isOccluded = false;\r\n return false;\r\n }\r\n\r\n if (this.isOcclusionQueryInProgress && this._occlusionQuery) {\r\n const isOcclusionQueryAvailable = engine.isQueryResultAvailable(this._occlusionQuery);\r\n if (isOcclusionQueryAvailable) {\r\n const occlusionQueryResult = engine.getQueryResult(this._occlusionQuery);\r\n\r\n dataStorage.isOcclusionQueryInProgress = false;\r\n dataStorage.occlusionInternalRetryCounter = 0;\r\n dataStorage.isOccluded = occlusionQueryResult > 0 ? false : true;\r\n } else {\r\n dataStorage.occlusionInternalRetryCounter++;\r\n\r\n if (dataStorage.occlusionRetryCount !== -1 && dataStorage.occlusionInternalRetryCounter > dataStorage.occlusionRetryCount) {\r\n dataStorage.isOcclusionQueryInProgress = false;\r\n dataStorage.occlusionInternalRetryCounter = 0;\r\n\r\n // if optimistic set isOccluded to false regardless of the status of isOccluded. (Render in the current render loop)\r\n // if strict continue the last state of the object.\r\n dataStorage.isOccluded = dataStorage.occlusionType === AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC ? false : dataStorage.isOccluded;\r\n } else {\r\n return dataStorage.occlusionType === AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC ? false : dataStorage.isOccluded;\r\n }\r\n }\r\n }\r\n\r\n const scene = this.getScene();\r\n if (scene.getBoundingBoxRenderer) {\r\n const occlusionBoundingBoxRenderer = scene.getBoundingBoxRenderer();\r\n\r\n if (this._occlusionQuery === null) {\r\n this._occlusionQuery = engine.createQuery();\r\n }\r\n\r\n if (engine.beginOcclusionQuery(dataStorage.occlusionQueryAlgorithmType, this._occlusionQuery)) {\r\n occlusionBoundingBoxRenderer.renderOcclusionBoundingBox(this);\r\n engine.endOcclusionQuery(dataStorage.occlusionQueryAlgorithmType);\r\n this._occlusionDataStorage.isOcclusionQueryInProgress = true;\r\n }\r\n }\r\n\r\n return dataStorage.isOccluded;\r\n};\r\n"]}
|