@babylonjs/core 5.23.0 → 5.25.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/abstractActionManager.d.ts +6 -6
- package/Actions/abstractActionManager.js +1 -1
- package/Actions/abstractActionManager.js.map +1 -1
- 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 +7 -10
- package/Actions/actionManager.js +7 -10
- 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 +4 -4
- package/Animations/animationGroup.js +4 -4
- 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/audioSceneComponent.d.ts +2 -2
- 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/Cameras/autoRotationBehavior.d.ts +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.js +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Behaviors/Cameras/bouncingBehavior.d.ts +1 -1
- package/Behaviors/Cameras/bouncingBehavior.js +1 -1
- package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
- package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
- package/Behaviors/Cameras/framingBehavior.js +1 -1
- package/Behaviors/Cameras/framingBehavior.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 +8 -10
- package/Bones/bone.js +8 -10
- package/Bones/bone.js.map +1 -1
- package/Bones/skeleton.d.ts +8 -10
- package/Bones/skeleton.js +8 -10
- 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 +2 -2
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +1 -1
- 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 +19 -24
- 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 +12 -13
- package/Cameras/arcRotateCamera.js +9 -10
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +31 -40
- package/Cameras/camera.js +29 -38
- 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 +7 -8
- package/Cameras/freeCamera.js +5 -6
- 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/gamepadCamera.d.ts +1 -1
- package/Cameras/gamepadCamera.js +1 -1
- package/Cameras/gamepadCamera.js.map +1 -1
- package/Cameras/targetCamera.d.ts +22 -25
- package/Cameras/targetCamera.js +21 -24
- package/Cameras/targetCamera.js.map +1 -1
- package/Cameras/touchCamera.d.ts +2 -2
- package/Cameras/touchCamera.js +2 -2
- package/Cameras/touchCamera.js.map +1 -1
- package/Cameras/universalCamera.d.ts +1 -1
- package/Cameras/universalCamera.js +1 -1
- package/Cameras/universalCamera.js.map +1 -1
- package/Cameras/virtualJoysticksCamera.d.ts +1 -1
- package/Cameras/virtualJoysticksCamera.js +1 -1
- package/Cameras/virtualJoysticksCamera.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.map +1 -1
- package/Culling/boundingBox.d.ts +6 -7
- package/Culling/boundingBox.js +5 -6
- 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 +7 -7
- package/Culling/ray.js +1 -1
- package/Culling/ray.js.map +1 -1
- package/Debug/debugLayer.d.ts +2 -2
- package/Debug/debugLayer.js +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 -1
- 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.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.multiRender.js +8 -10
- package/Engines/Extensions/engine.multiRender.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 +24 -24
- 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/ICanvas.d.ts +11 -0
- package/Engines/ICanvas.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 +29 -38
- package/Engines/WebGL/webGLPipelineContext.js +95 -326
- package/Engines/WebGL/webGLPipelineContext.js.map +1 -1
- package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +2 -2
- package/Engines/WebGL/webGLRenderTargetWrapper.js +3 -3
- 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 +18 -37
- package/Engines/engine.js +18 -37
- 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 +17 -49
- package/Engines/nativeEngine.js +22 -68
- 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 +9 -9
- package/Engines/renderTargetWrapper.js +12 -10
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.d.ts +96 -192
- package/Engines/thinEngine.js +82 -175
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +89 -145
- package/Engines/webgpuEngine.js +75 -128
- package/Engines/webgpuEngine.js.map +1 -1
- package/Events/clipboardEvents.d.ts +1 -1
- package/Events/clipboardEvents.js +1 -1
- package/Events/clipboardEvents.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 +2 -2
- package/Gamepads/Controllers/windowsMotionController.js +2 -2
- 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 +2 -2
- 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/boundingBoxGizmo.d.ts +4 -0
- package/Gizmos/boundingBoxGizmo.js +6 -0
- package/Gizmos/boundingBoxGizmo.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 +5 -6
- package/Layers/effectLayer.js +3 -4
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +4 -4
- package/Layers/glowLayer.js +3 -3
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +4 -4
- package/Layers/highlightLayer.js +3 -3
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/layer.d.ts +1 -1
- package/Layers/layer.js +1 -1
- package/Layers/layer.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/directionalLight.d.ts +2 -2
- package/Lights/directionalLight.js +2 -2
- package/Lights/directionalLight.js.map +1 -1
- package/Lights/hemisphericLight.d.ts +3 -3
- package/Lights/hemisphericLight.js +3 -3
- package/Lights/hemisphericLight.js.map +1 -1
- package/Lights/light.d.ts +11 -11
- package/Lights/light.js +8 -8
- package/Lights/light.js.map +1 -1
- package/Lights/lightConstants.d.ts +1 -1
- package/Lights/lightConstants.js +1 -1
- package/Lights/lightConstants.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/sceneLoader.d.ts +1 -1
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +2 -2
- 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 +3 -3
- package/Materials/Node/nodeMaterial.js +4 -4
- 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 +66 -66
- 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/Filtering/hdrFiltering.d.ts +1 -1
- package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
- package/Materials/Textures/Filtering/hdrFiltering.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/customProceduralTexture.d.ts +2 -1
- package/Materials/Textures/Procedurals/customProceduralTexture.js +9 -3
- package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.d.ts +15 -16
- package/Materials/Textures/Procedurals/proceduralTexture.js +13 -14
- 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/colorGradingTexture.d.ts +1 -1
- package/Materials/Textures/colorGradingTexture.js +1 -1
- package/Materials/Textures/colorGradingTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +3 -3
- package/Materials/Textures/cubeTexture.js +3 -3
- 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/rawCubeTexture.d.ts +1 -1
- package/Materials/Textures/rawCubeTexture.js +1 -1
- package/Materials/Textures/rawCubeTexture.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +10 -16
- package/Materials/Textures/renderTargetTexture.js +24 -28
- 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/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 +1 -1
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/colorCurves.d.ts +3 -3
- package/Materials/colorCurves.js +3 -3
- package/Materials/colorCurves.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 +44 -44
- package/Materials/effect.js +50 -310
- package/Materials/effect.js.map +1 -1
- package/Materials/effectRenderer.d.ts +1 -1
- package/Materials/effectRenderer.js.map +1 -1
- package/Materials/fresnelParameters.d.ts +1 -1
- package/Materials/fresnelParameters.js +1 -1
- package/Materials/fresnelParameters.js.map +1 -1
- package/Materials/imageProcessingConfiguration.d.ts +9 -9
- package/Materials/imageProcessingConfiguration.js +8 -8
- 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 +17 -22
- 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 +1 -1
- 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/shaderMaterial.d.ts +25 -25
- package/Materials/shaderMaterial.js +25 -25
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/standardMaterial.d.ts +3 -3
- package/Materials/standardMaterial.js +4 -4
- 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/index.d.ts +1 -0
- package/Maths/index.js +1 -0
- package/Maths/index.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.functions.d.ts +2 -2
- package/Maths/math.functions.js +2 -2
- package/Maths/math.functions.js.map +1 -1
- package/Maths/math.isovector.d.ts +1 -1
- package/Maths/math.isovector.js +1 -1
- package/Maths/math.isovector.js.map +1 -1
- package/Maths/math.like.d.ts +8 -8
- package/Maths/math.like.js.map +1 -1
- package/Maths/math.polar.d.ts +420 -0
- package/Maths/math.polar.js +651 -0
- package/Maths/math.polar.js.map +1 -0
- package/Maths/math.scalar.d.ts +2 -2
- package/Maths/math.scalar.js +2 -2
- package/Maths/math.scalar.js.map +1 -1
- package/Maths/math.vector.d.ts +24 -26
- package/Maths/math.vector.js +18 -20
- 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 +49 -71
- package/Meshes/abstractMesh.js +56 -73
- 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 +18 -23
- package/Meshes/geometry.js +10 -15
- 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 +13 -17
- 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 +49 -94
- package/Meshes/mesh.js +53 -95
- 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 +22 -52
- package/Meshes/subMesh.js +19 -49
- 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 +5 -5
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/transformNode.d.ts +8 -9
- package/Meshes/transformNode.js +11 -9
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +2 -2
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
- package/Misc/HighDynamicRange/hdr.d.ts +3 -3
- package/Misc/HighDynamicRange/hdr.js +3 -3
- package/Misc/HighDynamicRange/hdr.js.map +1 -1
- package/Misc/HighDynamicRange/panoramaToCubemap.d.ts +1 -1
- package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
- package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
- package/Misc/arrayTools.d.ts +14 -13
- package/Misc/arrayTools.js +70 -39
- package/Misc/arrayTools.js.map +1 -1
- package/Misc/assetsManager.d.ts +4 -6
- package/Misc/assetsManager.js +4 -6
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +2 -2
- 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 +5 -10
- package/Misc/environmentTextureTools.js +6 -11
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/fileTools.d.ts +15 -27
- package/Misc/fileTools.js +33 -38
- 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 +4 -5
- package/Misc/observable.js +3 -4
- package/Misc/observable.js.map +1 -1
- package/Misc/performanceMonitor.d.ts +3 -3
- package/Misc/performanceMonitor.js +3 -3
- package/Misc/performanceMonitor.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/rgbdTextureTools.d.ts +1 -1
- package/Misc/rgbdTextureTools.js +1 -1
- package/Misc/rgbdTextureTools.js.map +1 -1
- package/Misc/sceneOptimizer.d.ts +7 -7
- package/Misc/sceneOptimizer.js +7 -7
- package/Misc/sceneOptimizer.js.map +1 -1
- package/Misc/screenshotTools.js +1 -1
- package/Misc/screenshotTools.js.map +1 -1
- package/Misc/stringDictionary.d.ts +6 -6
- package/Misc/stringDictionary.js +6 -6
- package/Misc/stringDictionary.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/textureTools.d.ts +4 -4
- package/Misc/textureTools.js +4 -4
- package/Misc/textureTools.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 +6 -6
- package/Misc/tools.js +6 -6
- 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/videoRecorder.d.ts +1 -1
- package/Misc/videoRecorder.js +1 -1
- package/Misc/videoRecorder.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 +1 -1
- package/Particles/IParticleSystem.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +6 -9
- package/Particles/baseParticleSystem.js +5 -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 +6 -12
- 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 +14 -30
- 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 +18 -16
- package/Particles/solidParticleSystem.js +39 -19
- 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 +4 -1
- package/Physics/Plugins/ammoJSPlugin.js +22 -3
- 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 +4 -4
- package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
- package/Physics/physicsEngineComponent.d.ts +5 -5
- package/Physics/physicsEngineComponent.js +2 -3
- 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/defaultRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.d.ts +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +1 -1
- 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 +4 -8
- package/PostProcesses/blurPostProcess.js +4 -8
- 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 +4 -4
- package/PostProcesses/volumetricLightScatteringPostProcess.js +4 -4
- 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/depthPeelingRenderer.d.ts +1 -0
- package/Rendering/depthPeelingRenderer.js +32 -5
- package/Rendering/depthPeelingRenderer.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 +4 -4
- package/Rendering/edgesRenderer.js +2 -2
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +14 -18
- package/Rendering/geometryBufferRenderer.js +14 -18
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/geometryBufferRendererSceneComponent.d.ts +3 -2
- package/Rendering/geometryBufferRendererSceneComponent.js +3 -2
- 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 +18 -17
- package/Rendering/prePassRenderer.js +26 -18
- 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 +4 -8
- package/Rendering/renderingManager.js +4 -8
- package/Rendering/renderingManager.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.d.ts +4 -6
- package/Rendering/subSurfaceConfiguration.js +4 -6
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.d.ts +1 -1
- package/Shaders/color.vertex.js +1 -1
- 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 +1 -1
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.d.ts +1 -1
- package/Shaders/default.vertex.js +1 -1
- 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 +1 -1
- package/Shaders/gpuRenderParticles.fragment.js +1 -1
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.d.ts +1 -1
- package/Shaders/gpuRenderParticles.vertex.js +1 -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 +1 -1
- package/Shaders/particles.fragment.js +1 -1
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.d.ts +1 -1
- package/Shaders/particles.vertex.js +1 -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 +1 -1
- 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/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/WebXRControllerTeleportation.d.ts +4 -0
- package/XR/features/WebXRControllerTeleportation.js +24 -19
- package/XR/features/WebXRControllerTeleportation.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 +5 -6
- package/XR/motionController/webXRAbstractMotionController.js +4 -5
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/motionController/webXRControllerComponent.d.ts +1 -1
- package/XR/motionController/webXRControllerComponent.js +1 -1
- package/XR/motionController/webXRControllerComponent.js.map +1 -1
- package/XR/motionController/webXRMotionControllerManager.d.ts +3 -3
- package/XR/motionController/webXRMotionControllerManager.js +3 -3
- package/XR/motionController/webXRMotionControllerManager.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 +44 -56
- package/node.js +43 -58
- package/node.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +130 -168
- package/scene.js +115 -142
- package/scene.js.map +1 -1
- package/sceneComponent.d.ts +2 -2
- package/sceneComponent.js +2 -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":"boundingBoxRenderer.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/boundingBoxRenderer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scene } from \"../scene\";\r\nimport { VertexBuffer } from \"../Buffers/buffer\";\r\nimport type { SubMesh } from \"../Meshes/subMesh\";\r\nimport { AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport { Matrix } from \"../Maths/math.vector\";\r\nimport { SmartArray } from \"../Misc/smartArray\";\r\nimport type { Nullable, FloatArray, IndicesArray } from \"../types\";\r\nimport type { ISceneComponent } from \"../sceneComponent\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport type { BoundingBox } from \"../Culling/boundingBox\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { Material } from \"../Materials/material\";\r\nimport { ShaderMaterial } from \"../Materials/shaderMaterial\";\r\nimport type { DataBuffer } from \"../Buffers/dataBuffer\";\r\nimport { Color3 } from \"../Maths/math.color\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport { DrawWrapper } from \"../Materials/drawWrapper\";\r\nimport { UniformBuffer } from \"../Materials/uniformBuffer\";\r\nimport { CreateBoxVertexData } from \"../Meshes/Builders/boxBuilder\";\r\n\r\nimport \"../Shaders/boundingBoxRenderer.fragment\";\r\nimport \"../Shaders/boundingBoxRenderer.vertex\";\r\n\r\ndeclare module \"../scene\" {\r\n export interface Scene {\r\n /** @hidden (Backing field) */\r\n _boundingBoxRenderer: BoundingBoxRenderer;\r\n\r\n /** @hidden (Backing field) */\r\n _forceShowBoundingBoxes: boolean;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if all bounding boxes must be rendered\r\n */\r\n forceShowBoundingBoxes: boolean;\r\n\r\n /**\r\n * Gets the bounding box renderer associated with the scene\r\n * @returns a BoundingBoxRenderer\r\n */\r\n getBoundingBoxRenderer(): BoundingBoxRenderer;\r\n }\r\n}\r\n\r\nObject.defineProperty(Scene.prototype, \"forceShowBoundingBoxes\", {\r\n get: function (this: Scene) {\r\n return this._forceShowBoundingBoxes || false;\r\n },\r\n set: function (this: Scene, value: boolean) {\r\n this._forceShowBoundingBoxes = value;\r\n // Lazyly creates a BB renderer if needed.\r\n if (value) {\r\n this.getBoundingBoxRenderer();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nScene.prototype.getBoundingBoxRenderer = function (): BoundingBoxRenderer {\r\n if (!this._boundingBoxRenderer) {\r\n this._boundingBoxRenderer = new BoundingBoxRenderer(this);\r\n }\r\n\r\n return this._boundingBoxRenderer;\r\n};\r\n\r\ndeclare module \"../Meshes/abstractMesh\" {\r\n export interface AbstractMesh {\r\n /** @hidden (Backing field) */\r\n _showBoundingBox: boolean;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if the bounding box must be rendered as well (false by default)\r\n */\r\n showBoundingBox: boolean;\r\n }\r\n}\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"showBoundingBox\", {\r\n get: function (this: AbstractMesh) {\r\n return this._showBoundingBox || false;\r\n },\r\n set: function (this: AbstractMesh, value: boolean) {\r\n this._showBoundingBox = value;\r\n // Lazyly creates a BB renderer if needed.\r\n if (value) {\r\n this.getScene().getBoundingBoxRenderer();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\n/**\r\n * Component responsible of rendering the bounding box of the meshes in a scene.\r\n * This is usually used through the mesh.showBoundingBox or the scene.forceShowBoundingBoxes properties\r\n */\r\nexport class BoundingBoxRenderer implements ISceneComponent {\r\n /**\r\n * The component name helpful to identify the component in the list of scene components.\r\n */\r\n public readonly name = SceneComponentConstants.NAME_BOUNDINGBOXRENDERER;\r\n\r\n /**\r\n * The scene the component belongs to.\r\n */\r\n public scene: Scene;\r\n\r\n /**\r\n * Color of the bounding box lines placed in front of an object\r\n */\r\n public frontColor = new Color3(1, 1, 1);\r\n /**\r\n * Color of the bounding box lines placed behind an object\r\n */\r\n public backColor = new Color3(0.1, 0.1, 0.1);\r\n /**\r\n * Defines if the renderer should show the back lines or not\r\n */\r\n public showBackLines = true;\r\n\r\n /**\r\n * Observable raised before rendering a bounding box\r\n */\r\n public onBeforeBoxRenderingObservable = new Observable<BoundingBox>();\r\n\r\n /**\r\n * Observable raised after rendering a bounding box\r\n */\r\n public onAfterBoxRenderingObservable = new Observable<BoundingBox>();\r\n\r\n /**\r\n * Observable raised after resources are created\r\n */\r\n public onResourcesReadyObservable = new Observable<BoundingBoxRenderer>();\r\n\r\n /**\r\n * When false, no bounding boxes will be rendered\r\n */\r\n public enabled = true;\r\n\r\n /**\r\n * @hidden\r\n */\r\n public renderList = new SmartArray<BoundingBox>(32);\r\n\r\n private _colorShader: ShaderMaterial;\r\n private _colorShaderForOcclusionQuery: ShaderMaterial;\r\n private _vertexBuffers: { [key: string]: Nullable<VertexBuffer> } = {};\r\n private _indexBuffer: DataBuffer;\r\n private _fillIndexBuffer: Nullable<DataBuffer> = null;\r\n private _fillIndexData: Nullable<IndicesArray> = null;\r\n private _uniformBufferFront: UniformBuffer;\r\n private _uniformBufferBack: UniformBuffer;\r\n private _renderPassIdForOcclusionQuery: number;\r\n\r\n /**\r\n * Instantiates a new bounding box renderer in a scene.\r\n * @param scene the scene the renderer renders in\r\n */\r\n constructor(scene: Scene) {\r\n this.scene = scene;\r\n scene._addComponent(this);\r\n this._uniformBufferFront = new UniformBuffer(this.scene.getEngine(), undefined, undefined, \"BoundingBoxRendererFront\", !this.scene.getEngine().isWebGPU);\r\n this._buildUniformLayout(this._uniformBufferFront);\r\n this._uniformBufferBack = new UniformBuffer(this.scene.getEngine(), undefined, undefined, \"BoundingBoxRendererBack\", !this.scene.getEngine().isWebGPU);\r\n this._buildUniformLayout(this._uniformBufferBack);\r\n }\r\n\r\n private _buildUniformLayout(ubo: UniformBuffer): void {\r\n ubo.addUniform(\"color\", 4);\r\n ubo.addUniform(\"world\", 16);\r\n ubo.addUniform(\"viewProjection\", 16);\r\n ubo.addUniform(\"viewProjectionR\", 16);\r\n ubo.create();\r\n }\r\n\r\n /**\r\n * Registers the component in a given scene\r\n */\r\n public register(): void {\r\n this.scene._beforeEvaluateActiveMeshStage.registerStep(SceneComponentConstants.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER, this, this.reset);\r\n\r\n this.scene._preActiveMeshStage.registerStep(SceneComponentConstants.STEP_PREACTIVEMESH_BOUNDINGBOXRENDERER, this, this._preActiveMesh);\r\n\r\n this.scene._evaluateSubMeshStage.registerStep(SceneComponentConstants.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER, this, this._evaluateSubMesh);\r\n\r\n this.scene._afterRenderingGroupDrawStage.registerStep(SceneComponentConstants.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER, this, this.render);\r\n }\r\n\r\n private _evaluateSubMesh(mesh: AbstractMesh, subMesh: SubMesh): void {\r\n if (mesh.showSubMeshesBoundingBox) {\r\n const boundingInfo = subMesh.getBoundingInfo();\r\n if (boundingInfo !== null && boundingInfo !== undefined) {\r\n boundingInfo.boundingBox._tag = mesh.renderingGroupId;\r\n this.renderList.push(boundingInfo.boundingBox);\r\n }\r\n }\r\n }\r\n\r\n private _preActiveMesh(mesh: AbstractMesh): void {\r\n if (mesh.showBoundingBox || this.scene.forceShowBoundingBoxes) {\r\n const boundingInfo = mesh.getBoundingInfo();\r\n boundingInfo.boundingBox._tag = mesh.renderingGroupId;\r\n this.renderList.push(boundingInfo.boundingBox);\r\n }\r\n }\r\n\r\n private _prepareResources(): void {\r\n if (this._colorShader) {\r\n return;\r\n }\r\n\r\n this._colorShader = new ShaderMaterial(\r\n \"colorShader\",\r\n this.scene,\r\n \"boundingBoxRenderer\",\r\n {\r\n attributes: [VertexBuffer.PositionKind],\r\n uniforms: [\"world\", \"viewProjection\", \"viewProjectionR\", \"color\"],\r\n uniformBuffers: [\"BoundingBoxRenderer\"],\r\n },\r\n false\r\n );\r\n\r\n this._colorShader.reservedDataStore = {\r\n hidden: true,\r\n };\r\n\r\n this._colorShaderForOcclusionQuery = new ShaderMaterial(\r\n \"colorShaderOccQuery\",\r\n this.scene,\r\n \"boundingBoxRenderer\",\r\n {\r\n attributes: [VertexBuffer.PositionKind],\r\n uniforms: [\"world\", \"viewProjection\", \"viewProjectionR\", \"color\"],\r\n uniformBuffers: [\"BoundingBoxRenderer\"],\r\n },\r\n true\r\n );\r\n\r\n this._colorShaderForOcclusionQuery.reservedDataStore = {\r\n hidden: true,\r\n };\r\n\r\n const engine = this.scene.getEngine();\r\n const boxdata = CreateBoxVertexData({ size: 1.0 });\r\n this._vertexBuffers[VertexBuffer.PositionKind] = new VertexBuffer(engine, <FloatArray>boxdata.positions, VertexBuffer.PositionKind, false);\r\n this._createIndexBuffer();\r\n this._fillIndexData = boxdata.indices;\r\n this.onResourcesReadyObservable.notifyObservers(this);\r\n }\r\n\r\n private _createIndexBuffer(): void {\r\n const engine = this.scene.getEngine();\r\n this._indexBuffer = engine.createIndexBuffer([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 7, 1, 6, 2, 5, 3, 4]);\r\n }\r\n\r\n /**\r\n * Rebuilds the elements related to this component in case of\r\n * context lost for instance.\r\n */\r\n public rebuild(): void {\r\n const vb = this._vertexBuffers[VertexBuffer.PositionKind];\r\n if (vb) {\r\n vb._rebuild();\r\n }\r\n this._createIndexBuffer();\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public reset(): void {\r\n this.renderList.reset();\r\n }\r\n\r\n /**\r\n * Render the bounding boxes of a specific rendering group\r\n * @param renderingGroupId defines the rendering group to render\r\n */\r\n public render(renderingGroupId: number): void {\r\n if (this.renderList.length === 0 || !this.enabled) {\r\n return;\r\n }\r\n\r\n this._prepareResources();\r\n\r\n if (!this._colorShader.isReady()) {\r\n return;\r\n }\r\n\r\n const engine = this.scene.getEngine();\r\n engine.setDepthWrite(false);\r\n\r\n const frontColor = this.frontColor.toColor4();\r\n const backColor = this.backColor.toColor4();\r\n const transformMatrix = this.scene.getTransformMatrix();\r\n\r\n for (let boundingBoxIndex = 0; boundingBoxIndex < this.renderList.length; boundingBoxIndex++) {\r\n const boundingBox = this.renderList.data[boundingBoxIndex];\r\n if (boundingBox._tag !== renderingGroupId) {\r\n continue;\r\n }\r\n\r\n this._createWrappersForBoundingBox(boundingBox);\r\n this.onBeforeBoxRenderingObservable.notifyObservers(boundingBox);\r\n\r\n const min = boundingBox.minimum;\r\n const max = boundingBox.maximum;\r\n const diff = max.subtract(min);\r\n const median = min.add(diff.scale(0.5));\r\n\r\n const worldMatrix = Matrix.Scaling(diff.x, diff.y, diff.z).multiply(Matrix.Translation(median.x, median.y, median.z)).multiply(boundingBox.getWorldMatrix());\r\n\r\n const useReverseDepthBuffer = engine.useReverseDepthBuffer;\r\n\r\n if (this.showBackLines) {\r\n const drawWrapperBack = boundingBox._drawWrapperBack ?? this._colorShader._getDrawWrapper();\r\n\r\n this._colorShader._preBind(drawWrapperBack);\r\n\r\n engine.bindBuffers(this._vertexBuffers, this._indexBuffer, <Effect>this._colorShader.getEffect());\r\n\r\n // Back\r\n if (useReverseDepthBuffer) {\r\n engine.setDepthFunctionToLessOrEqual();\r\n } else {\r\n engine.setDepthFunctionToGreaterOrEqual();\r\n }\r\n this._uniformBufferBack.bindToEffect(drawWrapperBack.effect!, \"BoundingBoxRenderer\");\r\n this._uniformBufferBack.updateDirectColor4(\"color\", backColor);\r\n this._uniformBufferBack.updateMatrix(\"world\", worldMatrix);\r\n this._uniformBufferBack.updateMatrix(\"viewProjection\", transformMatrix);\r\n this._uniformBufferBack.update();\r\n\r\n // Draw order\r\n engine.drawElementsType(Material.LineListDrawMode, 0, 24);\r\n }\r\n\r\n const drawWrapperFront = boundingBox._drawWrapperFront ?? this._colorShader._getDrawWrapper();\r\n\r\n this._colorShader._preBind(drawWrapperFront);\r\n\r\n engine.bindBuffers(this._vertexBuffers, this._indexBuffer, <Effect>this._colorShader.getEffect());\r\n\r\n // Front\r\n if (useReverseDepthBuffer) {\r\n engine.setDepthFunctionToGreater();\r\n } else {\r\n engine.setDepthFunctionToLess();\r\n }\r\n this._uniformBufferFront.bindToEffect(drawWrapperFront.effect!, \"BoundingBoxRenderer\");\r\n this._uniformBufferFront.updateDirectColor4(\"color\", frontColor);\r\n this._uniformBufferFront.updateMatrix(\"world\", worldMatrix);\r\n this._uniformBufferFront.updateMatrix(\"viewProjection\", transformMatrix);\r\n this._uniformBufferFront.update();\r\n\r\n // Draw order\r\n engine.drawElementsType(Material.LineListDrawMode, 0, 24);\r\n\r\n this.onAfterBoxRenderingObservable.notifyObservers(boundingBox);\r\n }\r\n this._colorShader.unbind();\r\n engine.setDepthFunctionToLessOrEqual();\r\n engine.setDepthWrite(true);\r\n }\r\n\r\n private _createWrappersForBoundingBox(boundingBox: BoundingBox): void {\r\n if (!boundingBox._drawWrapperFront) {\r\n const engine = this.scene.getEngine();\r\n\r\n boundingBox._drawWrapperFront = new DrawWrapper(engine);\r\n boundingBox._drawWrapperBack = new DrawWrapper(engine);\r\n\r\n boundingBox._drawWrapperFront.setEffect(this._colorShader.getEffect());\r\n boundingBox._drawWrapperBack.setEffect(this._colorShader.getEffect());\r\n }\r\n }\r\n\r\n /**\r\n * In case of occlusion queries, we can render the occlusion bounding box through this method\r\n * @param mesh Define the mesh to render the occlusion bounding box for\r\n */\r\n public renderOcclusionBoundingBox(mesh: AbstractMesh): void {\r\n const engine = this.scene.getEngine();\r\n\r\n if (this._renderPassIdForOcclusionQuery === undefined) {\r\n this._renderPassIdForOcclusionQuery = engine.createRenderPassId(`Render pass for occlusion query`);\r\n }\r\n\r\n const currentRenderPassId = engine.currentRenderPassId;\r\n\r\n engine.currentRenderPassId = this._renderPassIdForOcclusionQuery;\r\n\r\n this._prepareResources();\r\n\r\n const subMesh = mesh.subMeshes[0];\r\n\r\n if (!this._colorShaderForOcclusionQuery.isReady(mesh, undefined, subMesh) || !mesh.hasBoundingInfo) {\r\n engine.currentRenderPassId = currentRenderPassId;\r\n return;\r\n }\r\n\r\n if (!this._fillIndexBuffer) {\r\n this._fillIndexBuffer = engine.createIndexBuffer(this._fillIndexData!);\r\n }\r\n\r\n const useReverseDepthBuffer = engine.useReverseDepthBuffer;\r\n\r\n engine.setDepthWrite(false);\r\n engine.setColorWrite(false);\r\n\r\n const boundingBox = mesh.getBoundingInfo().boundingBox;\r\n const min = boundingBox.minimum;\r\n const max = boundingBox.maximum;\r\n const diff = max.subtract(min);\r\n const median = min.add(diff.scale(0.5));\r\n\r\n const worldMatrix = Matrix.Scaling(diff.x, diff.y, diff.z).multiply(Matrix.Translation(median.x, median.y, median.z)).multiply(boundingBox.getWorldMatrix());\r\n\r\n const drawWrapper = subMesh._drawWrapper;\r\n\r\n this._colorShaderForOcclusionQuery._preBind(drawWrapper);\r\n\r\n engine.bindBuffers(this._vertexBuffers, this._fillIndexBuffer, <Effect>drawWrapper.effect);\r\n\r\n if (useReverseDepthBuffer) {\r\n engine.setDepthFunctionToGreater();\r\n } else {\r\n engine.setDepthFunctionToLess();\r\n }\r\n\r\n this.scene.resetCachedMaterial();\r\n\r\n this._uniformBufferFront.bindToEffect(drawWrapper.effect!, \"BoundingBoxRenderer\");\r\n this._uniformBufferFront.updateMatrix(\"world\", worldMatrix);\r\n this._uniformBufferFront.updateMatrix(\"viewProjection\", this.scene.getTransformMatrix());\r\n this._uniformBufferFront.update();\r\n\r\n engine.drawElementsType(Material.TriangleFillMode, 0, 36);\r\n\r\n this._colorShaderForOcclusionQuery.unbind();\r\n engine.setDepthFunctionToLessOrEqual();\r\n engine.setDepthWrite(true);\r\n engine.setColorWrite(true);\r\n\r\n engine.currentRenderPassId = currentRenderPassId;\r\n }\r\n\r\n /**\r\n * Dispose and release the resources attached to this renderer.\r\n */\r\n public dispose(): void {\r\n if (this._renderPassIdForOcclusionQuery !== undefined) {\r\n this.scene.getEngine().releaseRenderPassId(this._renderPassIdForOcclusionQuery);\r\n this._renderPassIdForOcclusionQuery = undefined as any;\r\n }\r\n\r\n if (!this._colorShader) {\r\n return;\r\n }\r\n\r\n this.onBeforeBoxRenderingObservable.clear();\r\n this.onAfterBoxRenderingObservable.clear();\r\n this.onResourcesReadyObservable.clear();\r\n\r\n this.renderList.dispose();\r\n\r\n this._colorShader.dispose();\r\n this._colorShaderForOcclusionQuery.dispose();\r\n\r\n this._uniformBufferFront.dispose();\r\n this._uniformBufferBack.dispose();\r\n\r\n const buffer = this._vertexBuffers[VertexBuffer.PositionKind];\r\n if (buffer) {\r\n buffer.dispose();\r\n this._vertexBuffers[VertexBuffer.PositionKind] = null;\r\n }\r\n this.scene.getEngine()._releaseBuffer(this._indexBuffer);\r\n\r\n if (this._fillIndexBuffer) {\r\n this.scene.getEngine()._releaseBuffer(this._fillIndexBuffer);\r\n this._fillIndexBuffer = null;\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"boundingBoxRenderer.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/boundingBoxRenderer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scene } from \"../scene\";\r\nimport { VertexBuffer } from \"../Buffers/buffer\";\r\nimport type { SubMesh } from \"../Meshes/subMesh\";\r\nimport { AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport { Matrix } from \"../Maths/math.vector\";\r\nimport { SmartArray } from \"../Misc/smartArray\";\r\nimport type { Nullable, FloatArray, IndicesArray } from \"../types\";\r\nimport type { ISceneComponent } from \"../sceneComponent\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport type { BoundingBox } from \"../Culling/boundingBox\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { Material } from \"../Materials/material\";\r\nimport { ShaderMaterial } from \"../Materials/shaderMaterial\";\r\nimport type { DataBuffer } from \"../Buffers/dataBuffer\";\r\nimport { Color3 } from \"../Maths/math.color\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport { DrawWrapper } from \"../Materials/drawWrapper\";\r\nimport { UniformBuffer } from \"../Materials/uniformBuffer\";\r\nimport { CreateBoxVertexData } from \"../Meshes/Builders/boxBuilder\";\r\n\r\nimport \"../Shaders/boundingBoxRenderer.fragment\";\r\nimport \"../Shaders/boundingBoxRenderer.vertex\";\r\n\r\ndeclare module \"../scene\" {\r\n export interface Scene {\r\n /** @internal (Backing field) */\r\n _boundingBoxRenderer: BoundingBoxRenderer;\r\n\r\n /** @internal (Backing field) */\r\n _forceShowBoundingBoxes: boolean;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if all bounding boxes must be rendered\r\n */\r\n forceShowBoundingBoxes: boolean;\r\n\r\n /**\r\n * Gets the bounding box renderer associated with the scene\r\n * @returns a BoundingBoxRenderer\r\n */\r\n getBoundingBoxRenderer(): BoundingBoxRenderer;\r\n }\r\n}\r\n\r\nObject.defineProperty(Scene.prototype, \"forceShowBoundingBoxes\", {\r\n get: function (this: Scene) {\r\n return this._forceShowBoundingBoxes || false;\r\n },\r\n set: function (this: Scene, value: boolean) {\r\n this._forceShowBoundingBoxes = value;\r\n // Lazyly creates a BB renderer if needed.\r\n if (value) {\r\n this.getBoundingBoxRenderer();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nScene.prototype.getBoundingBoxRenderer = function (): BoundingBoxRenderer {\r\n if (!this._boundingBoxRenderer) {\r\n this._boundingBoxRenderer = new BoundingBoxRenderer(this);\r\n }\r\n\r\n return this._boundingBoxRenderer;\r\n};\r\n\r\ndeclare module \"../Meshes/abstractMesh\" {\r\n export interface AbstractMesh {\r\n /** @internal (Backing field) */\r\n _showBoundingBox: boolean;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if the bounding box must be rendered as well (false by default)\r\n */\r\n showBoundingBox: boolean;\r\n }\r\n}\r\n\r\nObject.defineProperty(AbstractMesh.prototype, \"showBoundingBox\", {\r\n get: function (this: AbstractMesh) {\r\n return this._showBoundingBox || false;\r\n },\r\n set: function (this: AbstractMesh, value: boolean) {\r\n this._showBoundingBox = value;\r\n // Lazyly creates a BB renderer if needed.\r\n if (value) {\r\n this.getScene().getBoundingBoxRenderer();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\n/**\r\n * Component responsible of rendering the bounding box of the meshes in a scene.\r\n * This is usually used through the mesh.showBoundingBox or the scene.forceShowBoundingBoxes properties\r\n */\r\nexport class BoundingBoxRenderer implements ISceneComponent {\r\n /**\r\n * The component name helpful to identify the component in the list of scene components.\r\n */\r\n public readonly name = SceneComponentConstants.NAME_BOUNDINGBOXRENDERER;\r\n\r\n /**\r\n * The scene the component belongs to.\r\n */\r\n public scene: Scene;\r\n\r\n /**\r\n * Color of the bounding box lines placed in front of an object\r\n */\r\n public frontColor = new Color3(1, 1, 1);\r\n /**\r\n * Color of the bounding box lines placed behind an object\r\n */\r\n public backColor = new Color3(0.1, 0.1, 0.1);\r\n /**\r\n * Defines if the renderer should show the back lines or not\r\n */\r\n public showBackLines = true;\r\n\r\n /**\r\n * Observable raised before rendering a bounding box\r\n */\r\n public onBeforeBoxRenderingObservable = new Observable<BoundingBox>();\r\n\r\n /**\r\n * Observable raised after rendering a bounding box\r\n */\r\n public onAfterBoxRenderingObservable = new Observable<BoundingBox>();\r\n\r\n /**\r\n * Observable raised after resources are created\r\n */\r\n public onResourcesReadyObservable = new Observable<BoundingBoxRenderer>();\r\n\r\n /**\r\n * When false, no bounding boxes will be rendered\r\n */\r\n public enabled = true;\r\n\r\n /**\r\n * @internal\r\n */\r\n public renderList = new SmartArray<BoundingBox>(32);\r\n\r\n private _colorShader: ShaderMaterial;\r\n private _colorShaderForOcclusionQuery: ShaderMaterial;\r\n private _vertexBuffers: { [key: string]: Nullable<VertexBuffer> } = {};\r\n private _indexBuffer: DataBuffer;\r\n private _fillIndexBuffer: Nullable<DataBuffer> = null;\r\n private _fillIndexData: Nullable<IndicesArray> = null;\r\n private _uniformBufferFront: UniformBuffer;\r\n private _uniformBufferBack: UniformBuffer;\r\n private _renderPassIdForOcclusionQuery: number;\r\n\r\n /**\r\n * Instantiates a new bounding box renderer in a scene.\r\n * @param scene the scene the renderer renders in\r\n */\r\n constructor(scene: Scene) {\r\n this.scene = scene;\r\n scene._addComponent(this);\r\n this._uniformBufferFront = new UniformBuffer(this.scene.getEngine(), undefined, undefined, \"BoundingBoxRendererFront\", !this.scene.getEngine().isWebGPU);\r\n this._buildUniformLayout(this._uniformBufferFront);\r\n this._uniformBufferBack = new UniformBuffer(this.scene.getEngine(), undefined, undefined, \"BoundingBoxRendererBack\", !this.scene.getEngine().isWebGPU);\r\n this._buildUniformLayout(this._uniformBufferBack);\r\n }\r\n\r\n private _buildUniformLayout(ubo: UniformBuffer): void {\r\n ubo.addUniform(\"color\", 4);\r\n ubo.addUniform(\"world\", 16);\r\n ubo.addUniform(\"viewProjection\", 16);\r\n ubo.addUniform(\"viewProjectionR\", 16);\r\n ubo.create();\r\n }\r\n\r\n /**\r\n * Registers the component in a given scene\r\n */\r\n public register(): void {\r\n this.scene._beforeEvaluateActiveMeshStage.registerStep(SceneComponentConstants.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER, this, this.reset);\r\n\r\n this.scene._preActiveMeshStage.registerStep(SceneComponentConstants.STEP_PREACTIVEMESH_BOUNDINGBOXRENDERER, this, this._preActiveMesh);\r\n\r\n this.scene._evaluateSubMeshStage.registerStep(SceneComponentConstants.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER, this, this._evaluateSubMesh);\r\n\r\n this.scene._afterRenderingGroupDrawStage.registerStep(SceneComponentConstants.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER, this, this.render);\r\n }\r\n\r\n private _evaluateSubMesh(mesh: AbstractMesh, subMesh: SubMesh): void {\r\n if (mesh.showSubMeshesBoundingBox) {\r\n const boundingInfo = subMesh.getBoundingInfo();\r\n if (boundingInfo !== null && boundingInfo !== undefined) {\r\n boundingInfo.boundingBox._tag = mesh.renderingGroupId;\r\n this.renderList.push(boundingInfo.boundingBox);\r\n }\r\n }\r\n }\r\n\r\n private _preActiveMesh(mesh: AbstractMesh): void {\r\n if (mesh.showBoundingBox || this.scene.forceShowBoundingBoxes) {\r\n const boundingInfo = mesh.getBoundingInfo();\r\n boundingInfo.boundingBox._tag = mesh.renderingGroupId;\r\n this.renderList.push(boundingInfo.boundingBox);\r\n }\r\n }\r\n\r\n private _prepareResources(): void {\r\n if (this._colorShader) {\r\n return;\r\n }\r\n\r\n this._colorShader = new ShaderMaterial(\r\n \"colorShader\",\r\n this.scene,\r\n \"boundingBoxRenderer\",\r\n {\r\n attributes: [VertexBuffer.PositionKind],\r\n uniforms: [\"world\", \"viewProjection\", \"viewProjectionR\", \"color\"],\r\n uniformBuffers: [\"BoundingBoxRenderer\"],\r\n },\r\n false\r\n );\r\n\r\n this._colorShader.reservedDataStore = {\r\n hidden: true,\r\n };\r\n\r\n this._colorShaderForOcclusionQuery = new ShaderMaterial(\r\n \"colorShaderOccQuery\",\r\n this.scene,\r\n \"boundingBoxRenderer\",\r\n {\r\n attributes: [VertexBuffer.PositionKind],\r\n uniforms: [\"world\", \"viewProjection\", \"viewProjectionR\", \"color\"],\r\n uniformBuffers: [\"BoundingBoxRenderer\"],\r\n },\r\n true\r\n );\r\n\r\n this._colorShaderForOcclusionQuery.reservedDataStore = {\r\n hidden: true,\r\n };\r\n\r\n const engine = this.scene.getEngine();\r\n const boxdata = CreateBoxVertexData({ size: 1.0 });\r\n this._vertexBuffers[VertexBuffer.PositionKind] = new VertexBuffer(engine, <FloatArray>boxdata.positions, VertexBuffer.PositionKind, false);\r\n this._createIndexBuffer();\r\n this._fillIndexData = boxdata.indices;\r\n this.onResourcesReadyObservable.notifyObservers(this);\r\n }\r\n\r\n private _createIndexBuffer(): void {\r\n const engine = this.scene.getEngine();\r\n this._indexBuffer = engine.createIndexBuffer([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 7, 1, 6, 2, 5, 3, 4]);\r\n }\r\n\r\n /**\r\n * Rebuilds the elements related to this component in case of\r\n * context lost for instance.\r\n */\r\n public rebuild(): void {\r\n const vb = this._vertexBuffers[VertexBuffer.PositionKind];\r\n if (vb) {\r\n vb._rebuild();\r\n }\r\n this._createIndexBuffer();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public reset(): void {\r\n this.renderList.reset();\r\n }\r\n\r\n /**\r\n * Render the bounding boxes of a specific rendering group\r\n * @param renderingGroupId defines the rendering group to render\r\n */\r\n public render(renderingGroupId: number): void {\r\n if (this.renderList.length === 0 || !this.enabled) {\r\n return;\r\n }\r\n\r\n this._prepareResources();\r\n\r\n if (!this._colorShader.isReady()) {\r\n return;\r\n }\r\n\r\n const engine = this.scene.getEngine();\r\n engine.setDepthWrite(false);\r\n\r\n const frontColor = this.frontColor.toColor4();\r\n const backColor = this.backColor.toColor4();\r\n const transformMatrix = this.scene.getTransformMatrix();\r\n\r\n for (let boundingBoxIndex = 0; boundingBoxIndex < this.renderList.length; boundingBoxIndex++) {\r\n const boundingBox = this.renderList.data[boundingBoxIndex];\r\n if (boundingBox._tag !== renderingGroupId) {\r\n continue;\r\n }\r\n\r\n this._createWrappersForBoundingBox(boundingBox);\r\n this.onBeforeBoxRenderingObservable.notifyObservers(boundingBox);\r\n\r\n const min = boundingBox.minimum;\r\n const max = boundingBox.maximum;\r\n const diff = max.subtract(min);\r\n const median = min.add(diff.scale(0.5));\r\n\r\n const worldMatrix = Matrix.Scaling(diff.x, diff.y, diff.z).multiply(Matrix.Translation(median.x, median.y, median.z)).multiply(boundingBox.getWorldMatrix());\r\n\r\n const useReverseDepthBuffer = engine.useReverseDepthBuffer;\r\n\r\n if (this.showBackLines) {\r\n const drawWrapperBack = boundingBox._drawWrapperBack ?? this._colorShader._getDrawWrapper();\r\n\r\n this._colorShader._preBind(drawWrapperBack);\r\n\r\n engine.bindBuffers(this._vertexBuffers, this._indexBuffer, <Effect>this._colorShader.getEffect());\r\n\r\n // Back\r\n if (useReverseDepthBuffer) {\r\n engine.setDepthFunctionToLessOrEqual();\r\n } else {\r\n engine.setDepthFunctionToGreaterOrEqual();\r\n }\r\n this._uniformBufferBack.bindToEffect(drawWrapperBack.effect!, \"BoundingBoxRenderer\");\r\n this._uniformBufferBack.updateDirectColor4(\"color\", backColor);\r\n this._uniformBufferBack.updateMatrix(\"world\", worldMatrix);\r\n this._uniformBufferBack.updateMatrix(\"viewProjection\", transformMatrix);\r\n this._uniformBufferBack.update();\r\n\r\n // Draw order\r\n engine.drawElementsType(Material.LineListDrawMode, 0, 24);\r\n }\r\n\r\n const drawWrapperFront = boundingBox._drawWrapperFront ?? this._colorShader._getDrawWrapper();\r\n\r\n this._colorShader._preBind(drawWrapperFront);\r\n\r\n engine.bindBuffers(this._vertexBuffers, this._indexBuffer, <Effect>this._colorShader.getEffect());\r\n\r\n // Front\r\n if (useReverseDepthBuffer) {\r\n engine.setDepthFunctionToGreater();\r\n } else {\r\n engine.setDepthFunctionToLess();\r\n }\r\n this._uniformBufferFront.bindToEffect(drawWrapperFront.effect!, \"BoundingBoxRenderer\");\r\n this._uniformBufferFront.updateDirectColor4(\"color\", frontColor);\r\n this._uniformBufferFront.updateMatrix(\"world\", worldMatrix);\r\n this._uniformBufferFront.updateMatrix(\"viewProjection\", transformMatrix);\r\n this._uniformBufferFront.update();\r\n\r\n // Draw order\r\n engine.drawElementsType(Material.LineListDrawMode, 0, 24);\r\n\r\n this.onAfterBoxRenderingObservable.notifyObservers(boundingBox);\r\n }\r\n this._colorShader.unbind();\r\n engine.setDepthFunctionToLessOrEqual();\r\n engine.setDepthWrite(true);\r\n }\r\n\r\n private _createWrappersForBoundingBox(boundingBox: BoundingBox): void {\r\n if (!boundingBox._drawWrapperFront) {\r\n const engine = this.scene.getEngine();\r\n\r\n boundingBox._drawWrapperFront = new DrawWrapper(engine);\r\n boundingBox._drawWrapperBack = new DrawWrapper(engine);\r\n\r\n boundingBox._drawWrapperFront.setEffect(this._colorShader.getEffect());\r\n boundingBox._drawWrapperBack.setEffect(this._colorShader.getEffect());\r\n }\r\n }\r\n\r\n /**\r\n * In case of occlusion queries, we can render the occlusion bounding box through this method\r\n * @param mesh Define the mesh to render the occlusion bounding box for\r\n */\r\n public renderOcclusionBoundingBox(mesh: AbstractMesh): void {\r\n const engine = this.scene.getEngine();\r\n\r\n if (this._renderPassIdForOcclusionQuery === undefined) {\r\n this._renderPassIdForOcclusionQuery = engine.createRenderPassId(`Render pass for occlusion query`);\r\n }\r\n\r\n const currentRenderPassId = engine.currentRenderPassId;\r\n\r\n engine.currentRenderPassId = this._renderPassIdForOcclusionQuery;\r\n\r\n this._prepareResources();\r\n\r\n const subMesh = mesh.subMeshes[0];\r\n\r\n if (!this._colorShaderForOcclusionQuery.isReady(mesh, undefined, subMesh) || !mesh.hasBoundingInfo) {\r\n engine.currentRenderPassId = currentRenderPassId;\r\n return;\r\n }\r\n\r\n if (!this._fillIndexBuffer) {\r\n this._fillIndexBuffer = engine.createIndexBuffer(this._fillIndexData!);\r\n }\r\n\r\n const useReverseDepthBuffer = engine.useReverseDepthBuffer;\r\n\r\n engine.setDepthWrite(false);\r\n engine.setColorWrite(false);\r\n\r\n const boundingBox = mesh.getBoundingInfo().boundingBox;\r\n const min = boundingBox.minimum;\r\n const max = boundingBox.maximum;\r\n const diff = max.subtract(min);\r\n const median = min.add(diff.scale(0.5));\r\n\r\n const worldMatrix = Matrix.Scaling(diff.x, diff.y, diff.z).multiply(Matrix.Translation(median.x, median.y, median.z)).multiply(boundingBox.getWorldMatrix());\r\n\r\n const drawWrapper = subMesh._drawWrapper;\r\n\r\n this._colorShaderForOcclusionQuery._preBind(drawWrapper);\r\n\r\n engine.bindBuffers(this._vertexBuffers, this._fillIndexBuffer, <Effect>drawWrapper.effect);\r\n\r\n if (useReverseDepthBuffer) {\r\n engine.setDepthFunctionToGreater();\r\n } else {\r\n engine.setDepthFunctionToLess();\r\n }\r\n\r\n this.scene.resetCachedMaterial();\r\n\r\n this._uniformBufferFront.bindToEffect(drawWrapper.effect!, \"BoundingBoxRenderer\");\r\n this._uniformBufferFront.updateMatrix(\"world\", worldMatrix);\r\n this._uniformBufferFront.updateMatrix(\"viewProjection\", this.scene.getTransformMatrix());\r\n this._uniformBufferFront.update();\r\n\r\n engine.drawElementsType(Material.TriangleFillMode, 0, 36);\r\n\r\n this._colorShaderForOcclusionQuery.unbind();\r\n engine.setDepthFunctionToLessOrEqual();\r\n engine.setDepthWrite(true);\r\n engine.setColorWrite(true);\r\n\r\n engine.currentRenderPassId = currentRenderPassId;\r\n }\r\n\r\n /**\r\n * Dispose and release the resources attached to this renderer.\r\n */\r\n public dispose(): void {\r\n if (this._renderPassIdForOcclusionQuery !== undefined) {\r\n this.scene.getEngine().releaseRenderPassId(this._renderPassIdForOcclusionQuery);\r\n this._renderPassIdForOcclusionQuery = undefined as any;\r\n }\r\n\r\n if (!this._colorShader) {\r\n return;\r\n }\r\n\r\n this.onBeforeBoxRenderingObservable.clear();\r\n this.onAfterBoxRenderingObservable.clear();\r\n this.onResourcesReadyObservable.clear();\r\n\r\n this.renderList.dispose();\r\n\r\n this._colorShader.dispose();\r\n this._colorShaderForOcclusionQuery.dispose();\r\n\r\n this._uniformBufferFront.dispose();\r\n this._uniformBufferBack.dispose();\r\n\r\n const buffer = this._vertexBuffers[VertexBuffer.PositionKind];\r\n if (buffer) {\r\n buffer.dispose();\r\n this._vertexBuffers[VertexBuffer.PositionKind] = null;\r\n }\r\n this.scene.getEngine()._releaseBuffer(this._indexBuffer);\r\n\r\n if (this._fillIndexBuffer) {\r\n this.scene.getEngine()._releaseBuffer(this._fillIndexBuffer);\r\n this._fillIndexBuffer = null;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -7,6 +7,7 @@ import { Color4 } from "../Maths/math.color.js";
|
|
|
7
7
|
import { SmartArray } from "../Misc/smartArray.js";
|
|
8
8
|
import { ThinTexture } from "../Materials/Textures/thinTexture.js";
|
|
9
9
|
import { EffectRenderer, EffectWrapper } from "../Materials/effectRenderer.js";
|
|
10
|
+
import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture.js";
|
|
10
11
|
import { Logger } from "../Misc/logger.js";
|
|
11
12
|
import { Material } from "../Materials/material.js";
|
|
12
13
|
import "../Shaders/postprocess.vertex.js";
|
|
@@ -117,12 +118,13 @@ export class DepthPeelingRenderer {
|
|
|
117
118
|
height: this._engine.getRenderHeight(),
|
|
118
119
|
};
|
|
119
120
|
// 2 for ping pong
|
|
120
|
-
this._depthMrts = [new MultiRenderTarget("depthPeelingDepth0", size,
|
|
121
|
+
this._depthMrts = [new MultiRenderTarget("depthPeelingDepth0", size, 3, this._scene), new MultiRenderTarget("depthPeelingDepth1", size, 3, this._scene)];
|
|
121
122
|
this._colorMrts = [
|
|
122
|
-
new MultiRenderTarget("depthPeelingColor0", size,
|
|
123
|
-
new MultiRenderTarget("depthPeelingColor1", size,
|
|
123
|
+
new MultiRenderTarget("depthPeelingColor0", size, 2, this._scene, { generateDepthBuffer: false }),
|
|
124
|
+
new MultiRenderTarget("depthPeelingColor1", size, 2, this._scene, { generateDepthBuffer: false }),
|
|
124
125
|
];
|
|
125
126
|
this._blendBackMrt = new MultiRenderTarget("depthPeelingBack", size, 1, this._scene, { generateDepthBuffer: false });
|
|
127
|
+
this._outputRT = new RenderTargetTexture("depthPeelingOutput", size, this._scene, false);
|
|
126
128
|
// 0 is a depth texture
|
|
127
129
|
// 1 is a color texture
|
|
128
130
|
const optionsArray = [
|
|
@@ -134,7 +136,7 @@ export class DepthPeelingRenderer {
|
|
|
134
136
|
{
|
|
135
137
|
format: 5,
|
|
136
138
|
samplingMode: 1,
|
|
137
|
-
type: 2,
|
|
139
|
+
type: 2, // For MSAA we need FLOAT
|
|
138
140
|
},
|
|
139
141
|
];
|
|
140
142
|
for (let i = 0; i < 2; i++) {
|
|
@@ -149,6 +151,15 @@ export class DepthPeelingRenderer {
|
|
|
149
151
|
this._thinTextures.push(new ThinTexture(depthTexture), new ThinTexture(frontColorTexture), new ThinTexture(backColorTexture));
|
|
150
152
|
}
|
|
151
153
|
}
|
|
154
|
+
// TODO : explore again MSAA with depth peeling when
|
|
155
|
+
// we are able to fetch individual samples in a multisampled renderbuffer
|
|
156
|
+
// public set samples(value: number) {
|
|
157
|
+
// for (let i = 0; i < 2; i++) {
|
|
158
|
+
// this._depthMrts[i].samples = value;
|
|
159
|
+
// this._colorMrts[i].samples = value;
|
|
160
|
+
// }
|
|
161
|
+
// this._scene.prePassRenderer!.samples = value;
|
|
162
|
+
// }
|
|
152
163
|
_disposeTextures() {
|
|
153
164
|
for (let i = 0; i < this._thinTextures.length; i++) {
|
|
154
165
|
if (i === 6) {
|
|
@@ -162,6 +173,7 @@ export class DepthPeelingRenderer {
|
|
|
162
173
|
this._colorMrts[i].dispose(true);
|
|
163
174
|
this._blendBackMrt.dispose(true);
|
|
164
175
|
}
|
|
176
|
+
this._outputRT.dispose();
|
|
165
177
|
this._thinTextures = [];
|
|
166
178
|
this._colorMrts = [];
|
|
167
179
|
this._depthMrts = [];
|
|
@@ -275,7 +287,13 @@ export class DepthPeelingRenderer {
|
|
|
275
287
|
}
|
|
276
288
|
}
|
|
277
289
|
_finalCompose(writeId) {
|
|
278
|
-
this.
|
|
290
|
+
const output = this._scene.prePassRenderer?.setCustomOutput(this._outputRT);
|
|
291
|
+
if (output) {
|
|
292
|
+
this._engine.bindFramebuffer(this._outputRT.renderTarget);
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
this._engine.restoreDefaultFramebuffer();
|
|
296
|
+
}
|
|
279
297
|
this._engine.setAlphaMode(0);
|
|
280
298
|
this._engine.applyStates();
|
|
281
299
|
this._engine.enableEffect(this._finalEffectWrapper._drawWrapper);
|
|
@@ -320,15 +338,19 @@ export class DepthPeelingRenderer {
|
|
|
320
338
|
this._engine.bindFramebuffer(this._depthMrts[0].renderTarget);
|
|
321
339
|
this._engine.bindAttachments(this._layoutCache[0]);
|
|
322
340
|
this._engine.clear(this._colorCache[0], true, false, false);
|
|
341
|
+
this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget);
|
|
323
342
|
this._engine.bindFramebuffer(this._depthMrts[1].renderTarget);
|
|
324
343
|
this._engine.bindAttachments(this._layoutCache[0]);
|
|
325
344
|
this._engine.clear(this._colorCache[1], true, false, false);
|
|
345
|
+
this._engine.unBindFramebuffer(this._depthMrts[1].renderTarget);
|
|
326
346
|
this._engine.bindFramebuffer(this._colorMrts[0].renderTarget);
|
|
327
347
|
this._engine.bindAttachments(this._layoutCache[1]);
|
|
328
348
|
this._engine.clear(this._colorCache[2], true, false, false);
|
|
349
|
+
this._engine.unBindFramebuffer(this._colorMrts[0].renderTarget);
|
|
329
350
|
this._engine.bindFramebuffer(this._colorMrts[1].renderTarget);
|
|
330
351
|
this._engine.bindAttachments(this._layoutCache[1]);
|
|
331
352
|
this._engine.clear(this._colorCache[2], true, false, false);
|
|
353
|
+
this._engine.unBindFramebuffer(this._colorMrts[1].renderTarget);
|
|
332
354
|
// Draw depth for first pass
|
|
333
355
|
this._engine.bindFramebuffer(this._depthMrts[0].renderTarget);
|
|
334
356
|
this._engine.bindAttachments(this._layoutCache[0]);
|
|
@@ -340,6 +362,7 @@ export class DepthPeelingRenderer {
|
|
|
340
362
|
this._currentPingPongState = 1;
|
|
341
363
|
// Render
|
|
342
364
|
this._renderSubMeshes(this._candidateSubMeshes);
|
|
365
|
+
this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget);
|
|
343
366
|
this._scene.resetCachedMaterial();
|
|
344
367
|
// depth peeling ping-pong
|
|
345
368
|
let readId = 0;
|
|
@@ -355,9 +378,11 @@ export class DepthPeelingRenderer {
|
|
|
355
378
|
this._engine.bindFramebuffer(this._depthMrts[writeId].renderTarget);
|
|
356
379
|
this._engine.bindAttachments(this._layoutCache[0]);
|
|
357
380
|
this._engine.clear(this._colorCache[0], true, false, false);
|
|
381
|
+
this._engine.unBindFramebuffer(this._depthMrts[writeId].renderTarget);
|
|
358
382
|
this._engine.bindFramebuffer(this._colorMrts[writeId].renderTarget);
|
|
359
383
|
this._engine.bindAttachments(this._layoutCache[1]);
|
|
360
384
|
this._engine.clear(this._colorCache[2], true, false, false);
|
|
385
|
+
this._engine.unBindFramebuffer(this._colorMrts[writeId].renderTarget);
|
|
361
386
|
this._engine.bindFramebuffer(this._depthMrts[writeId].renderTarget);
|
|
362
387
|
this._engine.bindAttachments(this._layoutCache[2]);
|
|
363
388
|
this._engine.setAlphaMode(11); // the value does not matter (as MAX operation does not use them) but the src and dst color factors should not use SRC_ALPHA else WebGPU will throw a validation error
|
|
@@ -366,6 +391,7 @@ export class DepthPeelingRenderer {
|
|
|
366
391
|
this._engine.applyStates();
|
|
367
392
|
// Render
|
|
368
393
|
this._renderSubMeshes(this._candidateSubMeshes);
|
|
394
|
+
this._engine.unBindFramebuffer(this._depthMrts[writeId].renderTarget);
|
|
369
395
|
this._scene.resetCachedMaterial();
|
|
370
396
|
// Back color
|
|
371
397
|
this._engine.bindFramebuffer(this._blendBackMrt.renderTarget);
|
|
@@ -377,6 +403,7 @@ export class DepthPeelingRenderer {
|
|
|
377
403
|
this._engine.enableEffect(blendBackEffectWrapper._drawWrapper);
|
|
378
404
|
blendBackEffectWrapper.effect.setTexture("uBackColor", this._thinTextures[writeId * 3 + 2]);
|
|
379
405
|
this._effectRenderer.render(blendBackEffectWrapper);
|
|
406
|
+
this._engine.unBindFramebuffer(this._blendBackMrt.renderTarget);
|
|
380
407
|
}
|
|
381
408
|
this._engine.currentRenderPassId = currentRenderPassId;
|
|
382
409
|
// Final composition on default FB
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depthPeelingRenderer.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/depthPeelingRenderer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Implementation based on https://medium.com/@shrekshao_71662/dual-depth-peeling-implementation-in-webgl-11baa061ba4b\r\n */\r\nimport { Constants } from \"../Engines/constants\";\r\nimport type { Engine } from \"../Engines/engine\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { MultiRenderTarget } from \"../Materials/Textures/multiRenderTarget\";\r\nimport type { InternalTextureCreationOptions } from \"../Materials/Textures/textureCreationOptions\";\r\nimport { Color4 } from \"../Maths/math.color\";\r\nimport type { SubMesh } from \"../Meshes/subMesh\";\r\nimport { SmartArray } from \"../Misc/smartArray\";\r\nimport type { Scene } from \"../scene\";\r\nimport { ThinTexture } from \"../Materials/Textures/thinTexture\";\r\nimport { EffectRenderer, EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport type { PrePassEffectConfiguration } from \"./prePassEffectConfiguration\";\r\nimport type { PrePassRenderer } from \"./prePassRenderer\";\r\nimport type { InternalTexture } from \"../Materials/Textures/internalTexture\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport type { IMaterialContext } from \"../Engines/IMaterialContext\";\r\nimport type { DrawWrapper } from \"../Materials/drawWrapper\";\r\nimport { Material } from \"../Materials/material\";\r\n\r\nimport \"../Shaders/postprocess.vertex\";\r\nimport \"../Shaders/oitFinal.fragment\";\r\nimport \"../Shaders/oitBackBlend.fragment\";\r\n\r\nclass DepthPeelingEffectConfiguration implements PrePassEffectConfiguration {\r\n /**\r\n * Is this effect enabled\r\n */\r\n public enabled = true;\r\n\r\n /**\r\n * Name of the configuration\r\n */\r\n public name = \"depthPeeling\";\r\n\r\n /**\r\n * Textures that should be present in the MRT for this effect to work\r\n */\r\n public readonly texturesRequired: number[] = [Constants.PREPASS_COLOR_TEXTURE_TYPE];\r\n}\r\n\r\n/**\r\n * The depth peeling renderer that performs\r\n * Order independant transparency (OIT).\r\n * This should not be instanciated directly, as it is part of a scene component\r\n */\r\nexport class DepthPeelingRenderer {\r\n private _scene: Scene;\r\n private _engine: Engine;\r\n private _depthMrts: MultiRenderTarget[];\r\n private _thinTextures: ThinTexture[] = [];\r\n private _colorMrts: MultiRenderTarget[];\r\n private _blendBackMrt: MultiRenderTarget;\r\n\r\n private _blendBackEffectWrapper: EffectWrapper;\r\n private _blendBackEffectWrapperPingPong: EffectWrapper;\r\n private _finalEffectWrapper: EffectWrapper;\r\n private _effectRenderer: EffectRenderer;\r\n\r\n private _currentPingPongState: number = 0;\r\n private _prePassEffectConfiguration: DepthPeelingEffectConfiguration;\r\n\r\n private _blendBackTexture: InternalTexture;\r\n private _layoutCacheFormat = [[true], [true, true], [true, true, true]];\r\n private _layoutCache: number[][] = [];\r\n private _renderPassIds: number[];\r\n private _candidateSubMeshes: SmartArray<SubMesh> = new SmartArray(10);\r\n private _excludedSubMeshes: SmartArray<SubMesh> = new SmartArray(10);\r\n\r\n private static _DEPTH_CLEAR_VALUE = -99999.0;\r\n private static _MIN_DEPTH = 0;\r\n private static _MAX_DEPTH = 1;\r\n\r\n private _colorCache = [\r\n new Color4(DepthPeelingRenderer._DEPTH_CLEAR_VALUE, DepthPeelingRenderer._DEPTH_CLEAR_VALUE, 0, 0),\r\n new Color4(-DepthPeelingRenderer._MIN_DEPTH, DepthPeelingRenderer._MAX_DEPTH, 0, 0),\r\n new Color4(0, 0, 0, 0),\r\n ];\r\n\r\n private _passCount: number;\r\n /**\r\n * Number of depth peeling passes. As we are using dual depth peeling, each pass two levels of transparency are processed.\r\n */\r\n public get passCount(): number {\r\n return this._passCount;\r\n }\r\n\r\n public set passCount(count: number) {\r\n if (this._passCount === count) {\r\n return;\r\n }\r\n this._passCount = count;\r\n this._createRenderPassIds();\r\n }\r\n\r\n private _useRenderPasses: boolean;\r\n /**\r\n * Instructs the renderer to use render passes. It is an optimization that makes the rendering faster for some engines (like WebGPU) but that consumes more memory, so it is disabled by default.\r\n */\r\n public get useRenderPasses() {\r\n return this._useRenderPasses;\r\n }\r\n\r\n public set useRenderPasses(usePasses: boolean) {\r\n if (this._useRenderPasses === usePasses) {\r\n return;\r\n }\r\n this._useRenderPasses = usePasses;\r\n this._createRenderPassIds();\r\n }\r\n\r\n /**\r\n * Instanciates the depth peeling renderer\r\n * @param scene Scene to attach to\r\n * @param passCount Number of depth layers to peel\r\n * @returns The depth peeling renderer\r\n */\r\n constructor(scene: Scene, passCount: number = 5) {\r\n this._scene = scene;\r\n this._engine = scene.getEngine();\r\n this._passCount = passCount;\r\n\r\n // We need a depth texture for opaque\r\n if (!scene.enablePrePassRenderer()) {\r\n Logger.Warn(\"Depth peeling for order independant transparency could not enable PrePass, aborting.\");\r\n return;\r\n }\r\n\r\n for (let i = 0; i < this._layoutCacheFormat.length; ++i) {\r\n this._layoutCache[i] = this._engine.buildTextureLayout(this._layoutCacheFormat[i]);\r\n }\r\n\r\n this._renderPassIds = [];\r\n this.useRenderPasses = false;\r\n\r\n this._prePassEffectConfiguration = new DepthPeelingEffectConfiguration();\r\n this._createTextures();\r\n this._createEffects();\r\n }\r\n\r\n private _createRenderPassIds(): void {\r\n this._releaseRenderPassIds();\r\n if (this._useRenderPasses) {\r\n for (let i = 0; i < this._passCount + 1; ++i) {\r\n if (!this._renderPassIds[i]) {\r\n this._renderPassIds[i] = this._engine.createRenderPassId(`DepthPeelingRenderer - pass #${i}`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _releaseRenderPassIds(): void {\r\n for (let i = 0; i < this._renderPassIds.length; ++i) {\r\n this._engine.releaseRenderPassId(this._renderPassIds[i]);\r\n }\r\n this._renderPassIds = [];\r\n }\r\n\r\n private _createTextures() {\r\n const size = {\r\n width: this._engine.getRenderWidth(),\r\n height: this._engine.getRenderHeight(),\r\n };\r\n\r\n // 2 for ping pong\r\n this._depthMrts = [new MultiRenderTarget(\"depthPeelingDepth0\", size, 1, this._scene), new MultiRenderTarget(\"depthPeelingDepth1\", size, 1, this._scene)];\r\n this._colorMrts = [\r\n new MultiRenderTarget(\"depthPeelingColor0\", size, 1, this._scene, { generateDepthBuffer: false }),\r\n new MultiRenderTarget(\"depthPeelingColor1\", size, 1, this._scene, { generateDepthBuffer: false }),\r\n ];\r\n this._blendBackMrt = new MultiRenderTarget(\"depthPeelingBack\", size, 1, this._scene, { generateDepthBuffer: false });\r\n\r\n // 0 is a depth texture\r\n // 1 is a color texture\r\n const optionsArray = [\r\n {\r\n format: Constants.TEXTUREFORMAT_RG,\r\n samplingMode: Constants.TEXTURE_NEAREST_SAMPLINGMODE,\r\n type: this._engine.getCaps().textureFloatLinearFiltering ? Constants.TEXTURETYPE_FLOAT : Constants.TEXTURETYPE_HALF_FLOAT,\r\n } as InternalTextureCreationOptions,\r\n {\r\n format: Constants.TEXTUREFORMAT_RGBA,\r\n samplingMode: Constants.TEXTURE_NEAREST_SAMPLINGMODE,\r\n type: Constants.TEXTURETYPE_HALF_FLOAT,\r\n } as InternalTextureCreationOptions,\r\n ];\r\n\r\n for (let i = 0; i < 2; i++) {\r\n const depthTexture = this._engine._createInternalTexture(size, optionsArray[0], false);\r\n const frontColorTexture = this._engine._createInternalTexture(size, optionsArray[1], false);\r\n const backColorTexture = this._engine._createInternalTexture(size, optionsArray[1], false);\r\n\r\n this._depthMrts[i].setInternalTexture(depthTexture, 0);\r\n this._depthMrts[i].setInternalTexture(frontColorTexture, 1);\r\n this._depthMrts[i].setInternalTexture(backColorTexture, 2);\r\n\r\n this._colorMrts[i].setInternalTexture(frontColorTexture, 0);\r\n this._colorMrts[i].setInternalTexture(backColorTexture, 1);\r\n\r\n this._thinTextures.push(new ThinTexture(depthTexture), new ThinTexture(frontColorTexture), new ThinTexture(backColorTexture));\r\n }\r\n }\r\n\r\n private _disposeTextures() {\r\n for (let i = 0; i < this._thinTextures.length; i++) {\r\n if (i === 6) {\r\n // Do not dispose the shared texture with the prepass\r\n continue;\r\n }\r\n this._thinTextures[i].dispose();\r\n }\r\n\r\n for (let i = 0; i < 2; i++) {\r\n this._depthMrts[i].dispose(true);\r\n this._colorMrts[i].dispose(true);\r\n this._blendBackMrt.dispose(true);\r\n }\r\n\r\n this._thinTextures = [];\r\n this._colorMrts = [];\r\n this._depthMrts = [];\r\n }\r\n\r\n private _updateTextures() {\r\n if (this._depthMrts[0].getSize().width !== this._engine.getRenderWidth() || this._depthMrts[0].getSize().height !== this._engine.getRenderHeight()) {\r\n this._disposeTextures();\r\n this._createTextures();\r\n }\r\n return this._updateTextureReferences();\r\n }\r\n\r\n private _updateTextureReferences() {\r\n const prePassRenderer = this._scene.prePassRenderer;\r\n\r\n if (!prePassRenderer) {\r\n return false;\r\n }\r\n\r\n // Retrieve opaque color texture\r\n const textureIndex = prePassRenderer.getIndex(Constants.PREPASS_COLOR_TEXTURE_TYPE);\r\n const prePassTexture = prePassRenderer.defaultRT.textures?.length ? prePassRenderer.defaultRT.textures[textureIndex].getInternalTexture() : null;\r\n\r\n if (!prePassTexture) {\r\n return false;\r\n }\r\n\r\n if (this._blendBackTexture !== prePassTexture) {\r\n this._blendBackTexture = prePassTexture;\r\n this._blendBackMrt.setInternalTexture(this._blendBackTexture, 0);\r\n\r\n if (this._thinTextures[6]) {\r\n this._thinTextures[6].dispose();\r\n }\r\n this._thinTextures[6] = new ThinTexture(this._blendBackTexture);\r\n\r\n prePassRenderer.defaultRT.renderTarget!._shareDepth(this._depthMrts[0].renderTarget!);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _createEffects() {\r\n this._blendBackEffectWrapper = new EffectWrapper({\r\n fragmentShader: \"oitBackBlend\",\r\n useShaderStore: true,\r\n engine: this._engine,\r\n samplerNames: [\"uBackColor\"],\r\n uniformNames: [],\r\n });\r\n this._blendBackEffectWrapperPingPong = new EffectWrapper({\r\n fragmentShader: \"oitBackBlend\",\r\n useShaderStore: true,\r\n engine: this._engine,\r\n samplerNames: [\"uBackColor\"],\r\n uniformNames: [],\r\n });\r\n\r\n this._finalEffectWrapper = new EffectWrapper({\r\n fragmentShader: \"oitFinal\",\r\n useShaderStore: true,\r\n engine: this._engine,\r\n samplerNames: [\"uFrontColor\", \"uBackColor\"],\r\n uniformNames: [],\r\n });\r\n\r\n this._effectRenderer = new EffectRenderer(this._engine);\r\n }\r\n\r\n /**\r\n * Links to the prepass renderer\r\n * @param prePassRenderer The scene PrePassRenderer\r\n */\r\n public setPrePassRenderer(prePassRenderer: PrePassRenderer) {\r\n prePassRenderer.addEffectConfiguration(this._prePassEffectConfiguration);\r\n }\r\n\r\n /**\r\n * Binds depth peeling textures on an effect\r\n * @param effect The effect to bind textures on\r\n */\r\n public bind(effect: Effect) {\r\n effect.setTexture(\"oitDepthSampler\", this._thinTextures[this._currentPingPongState * 3]);\r\n effect.setTexture(\"oitFrontColorSampler\", this._thinTextures[this._currentPingPongState * 3 + 1]);\r\n }\r\n\r\n private _renderSubMeshes(transparentSubMeshes: SmartArray<SubMesh>) {\r\n let mapMaterialContext: { [uniqueId: number]: IMaterialContext | undefined };\r\n if (this._useRenderPasses) {\r\n mapMaterialContext = {};\r\n }\r\n for (let j = 0; j < transparentSubMeshes.length; j++) {\r\n const material = transparentSubMeshes.data[j].getMaterial();\r\n let previousShaderHotSwapping = true;\r\n let previousBFC = false;\r\n\r\n const subMesh = transparentSubMeshes.data[j];\r\n let drawWrapper: DrawWrapper | undefined;\r\n let firstDraw = false;\r\n\r\n if (this._useRenderPasses) {\r\n drawWrapper = subMesh._getDrawWrapper();\r\n firstDraw = !drawWrapper;\r\n }\r\n\r\n if (material) {\r\n previousShaderHotSwapping = material.allowShaderHotSwapping;\r\n previousBFC = material.backFaceCulling;\r\n material.allowShaderHotSwapping = false;\r\n material.backFaceCulling = false;\r\n }\r\n\r\n subMesh.render(false);\r\n\r\n if (firstDraw) {\r\n // first time we draw this submesh: we replace the material context\r\n drawWrapper = subMesh._getDrawWrapper()!; // we are sure it is now non empty as we just rendered the submesh\r\n if (drawWrapper.materialContext) {\r\n let newMaterialContext = mapMaterialContext![drawWrapper.materialContext.uniqueId];\r\n if (!newMaterialContext) {\r\n newMaterialContext = mapMaterialContext![drawWrapper.materialContext.uniqueId] = this._engine.createMaterialContext();\r\n }\r\n subMesh._getDrawWrapper()!.materialContext = newMaterialContext;\r\n }\r\n }\r\n\r\n if (material) {\r\n material.allowShaderHotSwapping = previousShaderHotSwapping;\r\n material.backFaceCulling = previousBFC;\r\n }\r\n }\r\n }\r\n\r\n private _finalCompose(writeId: number) {\r\n this._engine.restoreDefaultFramebuffer();\r\n\r\n this._engine.setAlphaMode(Constants.ALPHA_DISABLE);\r\n this._engine.applyStates();\r\n\r\n this._engine.enableEffect(this._finalEffectWrapper._drawWrapper);\r\n this._finalEffectWrapper.effect.setTexture(\"uFrontColor\", this._thinTextures[writeId * 3 + 1]);\r\n this._finalEffectWrapper.effect.setTexture(\"uBackColor\", this._thinTextures[6]);\r\n this._effectRenderer.render(this._finalEffectWrapper);\r\n }\r\n\r\n /**\r\n * Renders transparent submeshes with depth peeling\r\n * @param transparentSubMeshes List of transparent meshes to render\r\n * @returns The array of submeshes that could not be handled by this renderer\r\n */\r\n public render(transparentSubMeshes: SmartArray<SubMesh>): SmartArray<SubMesh> {\r\n this._candidateSubMeshes.length = 0;\r\n this._excludedSubMeshes.length = 0;\r\n if (\r\n !this._blendBackEffectWrapper.effect.isReady() ||\r\n !this._blendBackEffectWrapperPingPong.effect.isReady() ||\r\n !this._finalEffectWrapper.effect.isReady() ||\r\n !this._updateTextures()\r\n ) {\r\n return this._excludedSubMeshes;\r\n }\r\n\r\n for (let i = 0; i < transparentSubMeshes.length; i++) {\r\n const material = transparentSubMeshes.data[i].getMaterial();\r\n\r\n if (\r\n material &&\r\n (material.fillMode === Material.TriangleFanDrawMode || material.fillMode === Material.TriangleFillMode || material.fillMode === Material.TriangleStripDrawMode)\r\n ) {\r\n this._candidateSubMeshes.push(transparentSubMeshes.data[i]);\r\n } else {\r\n this._excludedSubMeshes.push(transparentSubMeshes.data[i]);\r\n }\r\n }\r\n\r\n if (!this._candidateSubMeshes.length) {\r\n this._finalCompose(1);\r\n return this._excludedSubMeshes;\r\n }\r\n\r\n const currentRenderPassId = this._engine.currentRenderPassId;\r\n\r\n (this._scene.prePassRenderer! as any)._enabled = false;\r\n\r\n if (this._useRenderPasses) {\r\n this._engine.currentRenderPassId = this._renderPassIds[0];\r\n }\r\n\r\n // Clears\r\n this._engine.bindFramebuffer(this._depthMrts[0].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n this._engine.clear(this._colorCache[0], true, false, false);\r\n\r\n this._engine.bindFramebuffer(this._depthMrts[1].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n this._engine.clear(this._colorCache[1], true, false, false);\r\n\r\n this._engine.bindFramebuffer(this._colorMrts[0].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[1]);\r\n this._engine.clear(this._colorCache[2], true, false, false);\r\n\r\n this._engine.bindFramebuffer(this._colorMrts[1].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[1]);\r\n this._engine.clear(this._colorCache[2], true, false, false);\r\n\r\n // Draw depth for first pass\r\n this._engine.bindFramebuffer(this._depthMrts[0].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n\r\n this._engine.setAlphaMode(Constants.ALPHA_ONEONE_ONEONE); // in WebGPU, when using MIN or MAX equation, the src / dst color factors should not use SRC_ALPHA and the src / dst alpha factors must be 1 else WebGPU will throw a validation error\r\n this._engine.setAlphaEquation(Constants.ALPHA_EQUATION_MAX);\r\n this._engine.depthCullingState.depthMask = false;\r\n this._engine.depthCullingState.depthTest = true;\r\n this._engine.applyStates();\r\n\r\n this._currentPingPongState = 1;\r\n // Render\r\n this._renderSubMeshes(this._candidateSubMeshes);\r\n\r\n this._scene.resetCachedMaterial();\r\n\r\n // depth peeling ping-pong\r\n let readId = 0;\r\n let writeId = 0;\r\n\r\n for (let i = 0; i < this._passCount; i++) {\r\n readId = i % 2;\r\n writeId = 1 - readId;\r\n this._currentPingPongState = readId;\r\n\r\n if (this._useRenderPasses) {\r\n this._engine.currentRenderPassId = this._renderPassIds[i + 1];\r\n }\r\n\r\n // Clears\r\n this._engine.bindFramebuffer(this._depthMrts[writeId].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n this._engine.clear(this._colorCache[0], true, false, false);\r\n\r\n this._engine.bindFramebuffer(this._colorMrts[writeId].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[1]);\r\n this._engine.clear(this._colorCache[2], true, false, false);\r\n\r\n this._engine.bindFramebuffer(this._depthMrts[writeId].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[2]);\r\n\r\n this._engine.setAlphaMode(Constants.ALPHA_ONEONE_ONEONE); // the value does not matter (as MAX operation does not use them) but the src and dst color factors should not use SRC_ALPHA else WebGPU will throw a validation error\r\n this._engine.setAlphaEquation(Constants.ALPHA_EQUATION_MAX);\r\n this._engine.depthCullingState.depthTest = false;\r\n this._engine.applyStates();\r\n\r\n // Render\r\n this._renderSubMeshes(this._candidateSubMeshes);\r\n\r\n this._scene.resetCachedMaterial();\r\n\r\n // Back color\r\n this._engine.bindFramebuffer(this._blendBackMrt.renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n this._engine.setAlphaEquation(Constants.ALPHA_EQUATION_ADD);\r\n this._engine.setAlphaMode(Constants.ALPHA_LAYER_ACCUMULATE);\r\n this._engine.applyStates();\r\n\r\n const blendBackEffectWrapper = writeId === 0 || !this._useRenderPasses ? this._blendBackEffectWrapper : this._blendBackEffectWrapperPingPong;\r\n this._engine.enableEffect(blendBackEffectWrapper._drawWrapper);\r\n blendBackEffectWrapper.effect.setTexture(\"uBackColor\", this._thinTextures[writeId * 3 + 2]);\r\n this._effectRenderer.render(blendBackEffectWrapper);\r\n }\r\n\r\n this._engine.currentRenderPassId = currentRenderPassId;\r\n\r\n // Final composition on default FB\r\n this._finalCompose(writeId);\r\n\r\n (this._scene.prePassRenderer! as any)._enabled = true;\r\n this._engine.depthCullingState.depthMask = true;\r\n this._engine.depthCullingState.depthTest = true;\r\n\r\n return this._excludedSubMeshes;\r\n }\r\n\r\n /**\r\n * Disposes the depth peeling renderer and associated ressources\r\n */\r\n public dispose() {\r\n this._disposeTextures();\r\n this._blendBackEffectWrapper.dispose();\r\n this._finalEffectWrapper.dispose();\r\n this._effectRenderer.dispose();\r\n this._releaseRenderPassIds();\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"depthPeelingRenderer.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/depthPeelingRenderer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Implementation based on https://medium.com/@shrekshao_71662/dual-depth-peeling-implementation-in-webgl-11baa061ba4b\r\n */\r\nimport { Constants } from \"../Engines/constants\";\r\nimport type { Engine } from \"../Engines/engine\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { MultiRenderTarget } from \"../Materials/Textures/multiRenderTarget\";\r\nimport type { InternalTextureCreationOptions } from \"../Materials/Textures/textureCreationOptions\";\r\nimport { Color4 } from \"../Maths/math.color\";\r\nimport type { SubMesh } from \"../Meshes/subMesh\";\r\nimport { SmartArray } from \"../Misc/smartArray\";\r\nimport type { Scene } from \"../scene\";\r\nimport { ThinTexture } from \"../Materials/Textures/thinTexture\";\r\nimport { EffectRenderer, EffectWrapper } from \"../Materials/effectRenderer\";\r\nimport type { PrePassEffectConfiguration } from \"./prePassEffectConfiguration\";\r\nimport type { PrePassRenderer } from \"./prePassRenderer\";\r\nimport type { InternalTexture } from \"../Materials/Textures/internalTexture\";\r\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport type { IMaterialContext } from \"../Engines/IMaterialContext\";\r\nimport type { DrawWrapper } from \"../Materials/drawWrapper\";\r\nimport { Material } from \"../Materials/material\";\r\n\r\nimport \"../Shaders/postprocess.vertex\";\r\nimport \"../Shaders/oitFinal.fragment\";\r\nimport \"../Shaders/oitBackBlend.fragment\";\r\n\r\nclass DepthPeelingEffectConfiguration implements PrePassEffectConfiguration {\r\n /**\r\n * Is this effect enabled\r\n */\r\n public enabled = true;\r\n\r\n /**\r\n * Name of the configuration\r\n */\r\n public name = \"depthPeeling\";\r\n\r\n /**\r\n * Textures that should be present in the MRT for this effect to work\r\n */\r\n public readonly texturesRequired: number[] = [Constants.PREPASS_COLOR_TEXTURE_TYPE];\r\n}\r\n\r\n/**\r\n * The depth peeling renderer that performs\r\n * Order independant transparency (OIT).\r\n * This should not be instanciated directly, as it is part of a scene component\r\n */\r\nexport class DepthPeelingRenderer {\r\n private _scene: Scene;\r\n private _engine: Engine;\r\n private _depthMrts: MultiRenderTarget[];\r\n private _thinTextures: ThinTexture[] = [];\r\n private _colorMrts: MultiRenderTarget[];\r\n private _blendBackMrt: MultiRenderTarget;\r\n private _outputRT: RenderTargetTexture;\r\n\r\n private _blendBackEffectWrapper: EffectWrapper;\r\n private _blendBackEffectWrapperPingPong: EffectWrapper;\r\n private _finalEffectWrapper: EffectWrapper;\r\n private _effectRenderer: EffectRenderer;\r\n\r\n private _currentPingPongState: number = 0;\r\n private _prePassEffectConfiguration: DepthPeelingEffectConfiguration;\r\n\r\n private _blendBackTexture: InternalTexture;\r\n private _layoutCacheFormat = [[true], [true, true], [true, true, true]];\r\n private _layoutCache: number[][] = [];\r\n private _renderPassIds: number[];\r\n private _candidateSubMeshes: SmartArray<SubMesh> = new SmartArray(10);\r\n private _excludedSubMeshes: SmartArray<SubMesh> = new SmartArray(10);\r\n\r\n private static _DEPTH_CLEAR_VALUE = -99999.0;\r\n private static _MIN_DEPTH = 0;\r\n private static _MAX_DEPTH = 1;\r\n\r\n private _colorCache = [\r\n new Color4(DepthPeelingRenderer._DEPTH_CLEAR_VALUE, DepthPeelingRenderer._DEPTH_CLEAR_VALUE, 0, 0),\r\n new Color4(-DepthPeelingRenderer._MIN_DEPTH, DepthPeelingRenderer._MAX_DEPTH, 0, 0),\r\n new Color4(0, 0, 0, 0),\r\n ];\r\n\r\n private _passCount: number;\r\n /**\r\n * Number of depth peeling passes. As we are using dual depth peeling, each pass two levels of transparency are processed.\r\n */\r\n public get passCount(): number {\r\n return this._passCount;\r\n }\r\n\r\n public set passCount(count: number) {\r\n if (this._passCount === count) {\r\n return;\r\n }\r\n this._passCount = count;\r\n this._createRenderPassIds();\r\n }\r\n\r\n private _useRenderPasses: boolean;\r\n /**\r\n * Instructs the renderer to use render passes. It is an optimization that makes the rendering faster for some engines (like WebGPU) but that consumes more memory, so it is disabled by default.\r\n */\r\n public get useRenderPasses() {\r\n return this._useRenderPasses;\r\n }\r\n\r\n public set useRenderPasses(usePasses: boolean) {\r\n if (this._useRenderPasses === usePasses) {\r\n return;\r\n }\r\n this._useRenderPasses = usePasses;\r\n this._createRenderPassIds();\r\n }\r\n\r\n /**\r\n * Instanciates the depth peeling renderer\r\n * @param scene Scene to attach to\r\n * @param passCount Number of depth layers to peel\r\n * @returns The depth peeling renderer\r\n */\r\n constructor(scene: Scene, passCount: number = 5) {\r\n this._scene = scene;\r\n this._engine = scene.getEngine();\r\n this._passCount = passCount;\r\n\r\n // We need a depth texture for opaque\r\n if (!scene.enablePrePassRenderer()) {\r\n Logger.Warn(\"Depth peeling for order independant transparency could not enable PrePass, aborting.\");\r\n return;\r\n }\r\n\r\n for (let i = 0; i < this._layoutCacheFormat.length; ++i) {\r\n this._layoutCache[i] = this._engine.buildTextureLayout(this._layoutCacheFormat[i]);\r\n }\r\n\r\n this._renderPassIds = [];\r\n this.useRenderPasses = false;\r\n\r\n this._prePassEffectConfiguration = new DepthPeelingEffectConfiguration();\r\n this._createTextures();\r\n this._createEffects();\r\n }\r\n\r\n private _createRenderPassIds(): void {\r\n this._releaseRenderPassIds();\r\n if (this._useRenderPasses) {\r\n for (let i = 0; i < this._passCount + 1; ++i) {\r\n if (!this._renderPassIds[i]) {\r\n this._renderPassIds[i] = this._engine.createRenderPassId(`DepthPeelingRenderer - pass #${i}`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _releaseRenderPassIds(): void {\r\n for (let i = 0; i < this._renderPassIds.length; ++i) {\r\n this._engine.releaseRenderPassId(this._renderPassIds[i]);\r\n }\r\n this._renderPassIds = [];\r\n }\r\n\r\n private _createTextures() {\r\n const size = {\r\n width: this._engine.getRenderWidth(),\r\n height: this._engine.getRenderHeight(),\r\n };\r\n\r\n // 2 for ping pong\r\n this._depthMrts = [new MultiRenderTarget(\"depthPeelingDepth0\", size, 3, this._scene), new MultiRenderTarget(\"depthPeelingDepth1\", size, 3, this._scene)];\r\n this._colorMrts = [\r\n new MultiRenderTarget(\"depthPeelingColor0\", size, 2, this._scene, { generateDepthBuffer: false }),\r\n new MultiRenderTarget(\"depthPeelingColor1\", size, 2, this._scene, { generateDepthBuffer: false }),\r\n ];\r\n this._blendBackMrt = new MultiRenderTarget(\"depthPeelingBack\", size, 1, this._scene, { generateDepthBuffer: false });\r\n this._outputRT = new RenderTargetTexture(\"depthPeelingOutput\", size, this._scene, false);\r\n\r\n // 0 is a depth texture\r\n // 1 is a color texture\r\n const optionsArray = [\r\n {\r\n format: Constants.TEXTUREFORMAT_RG, // For MSAA we need RGBA\r\n samplingMode: Constants.TEXTURE_NEAREST_SAMPLINGMODE,\r\n type: this._engine.getCaps().textureFloatLinearFiltering ? Constants.TEXTURETYPE_FLOAT : Constants.TEXTURETYPE_HALF_FLOAT,\r\n } as InternalTextureCreationOptions,\r\n {\r\n format: Constants.TEXTUREFORMAT_RGBA,\r\n samplingMode: Constants.TEXTURE_NEAREST_SAMPLINGMODE,\r\n type: Constants.TEXTURETYPE_HALF_FLOAT, // For MSAA we need FLOAT\r\n } as InternalTextureCreationOptions,\r\n ];\r\n\r\n for (let i = 0; i < 2; i++) {\r\n const depthTexture = this._engine._createInternalTexture(size, optionsArray[0], false);\r\n const frontColorTexture = this._engine._createInternalTexture(size, optionsArray[1], false);\r\n const backColorTexture = this._engine._createInternalTexture(size, optionsArray[1], false);\r\n\r\n this._depthMrts[i].setInternalTexture(depthTexture, 0);\r\n this._depthMrts[i].setInternalTexture(frontColorTexture, 1);\r\n this._depthMrts[i].setInternalTexture(backColorTexture, 2);\r\n this._colorMrts[i].setInternalTexture(frontColorTexture, 0);\r\n this._colorMrts[i].setInternalTexture(backColorTexture, 1);\r\n\r\n this._thinTextures.push(new ThinTexture(depthTexture), new ThinTexture(frontColorTexture), new ThinTexture(backColorTexture));\r\n }\r\n }\r\n\r\n // TODO : explore again MSAA with depth peeling when\r\n // we are able to fetch individual samples in a multisampled renderbuffer\r\n // public set samples(value: number) {\r\n // for (let i = 0; i < 2; i++) {\r\n // this._depthMrts[i].samples = value;\r\n // this._colorMrts[i].samples = value;\r\n // }\r\n // this._scene.prePassRenderer!.samples = value;\r\n // }\r\n\r\n private _disposeTextures() {\r\n for (let i = 0; i < this._thinTextures.length; i++) {\r\n if (i === 6) {\r\n // Do not dispose the shared texture with the prepass\r\n continue;\r\n }\r\n this._thinTextures[i].dispose();\r\n }\r\n\r\n for (let i = 0; i < 2; i++) {\r\n this._depthMrts[i].dispose(true);\r\n this._colorMrts[i].dispose(true);\r\n this._blendBackMrt.dispose(true);\r\n }\r\n this._outputRT.dispose();\r\n\r\n this._thinTextures = [];\r\n this._colorMrts = [];\r\n this._depthMrts = [];\r\n }\r\n\r\n private _updateTextures() {\r\n if (this._depthMrts[0].getSize().width !== this._engine.getRenderWidth() || this._depthMrts[0].getSize().height !== this._engine.getRenderHeight()) {\r\n this._disposeTextures();\r\n this._createTextures();\r\n }\r\n return this._updateTextureReferences();\r\n }\r\n\r\n private _updateTextureReferences() {\r\n const prePassRenderer = this._scene.prePassRenderer;\r\n\r\n if (!prePassRenderer) {\r\n return false;\r\n }\r\n\r\n // Retrieve opaque color texture\r\n const textureIndex = prePassRenderer.getIndex(Constants.PREPASS_COLOR_TEXTURE_TYPE);\r\n const prePassTexture = prePassRenderer.defaultRT.textures?.length ? prePassRenderer.defaultRT.textures[textureIndex].getInternalTexture() : null;\r\n\r\n if (!prePassTexture) {\r\n return false;\r\n }\r\n\r\n if (this._blendBackTexture !== prePassTexture) {\r\n this._blendBackTexture = prePassTexture;\r\n this._blendBackMrt.setInternalTexture(this._blendBackTexture, 0);\r\n\r\n if (this._thinTextures[6]) {\r\n this._thinTextures[6].dispose();\r\n }\r\n this._thinTextures[6] = new ThinTexture(this._blendBackTexture);\r\n\r\n prePassRenderer.defaultRT.renderTarget!._shareDepth(this._depthMrts[0].renderTarget!);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _createEffects() {\r\n this._blendBackEffectWrapper = new EffectWrapper({\r\n fragmentShader: \"oitBackBlend\",\r\n useShaderStore: true,\r\n engine: this._engine,\r\n samplerNames: [\"uBackColor\"],\r\n uniformNames: [],\r\n });\r\n this._blendBackEffectWrapperPingPong = new EffectWrapper({\r\n fragmentShader: \"oitBackBlend\",\r\n useShaderStore: true,\r\n engine: this._engine,\r\n samplerNames: [\"uBackColor\"],\r\n uniformNames: [],\r\n });\r\n\r\n this._finalEffectWrapper = new EffectWrapper({\r\n fragmentShader: \"oitFinal\",\r\n useShaderStore: true,\r\n engine: this._engine,\r\n samplerNames: [\"uFrontColor\", \"uBackColor\"],\r\n uniformNames: [],\r\n });\r\n\r\n this._effectRenderer = new EffectRenderer(this._engine);\r\n }\r\n\r\n /**\r\n * Links to the prepass renderer\r\n * @param prePassRenderer The scene PrePassRenderer\r\n */\r\n public setPrePassRenderer(prePassRenderer: PrePassRenderer) {\r\n prePassRenderer.addEffectConfiguration(this._prePassEffectConfiguration);\r\n }\r\n\r\n /**\r\n * Binds depth peeling textures on an effect\r\n * @param effect The effect to bind textures on\r\n */\r\n public bind(effect: Effect) {\r\n effect.setTexture(\"oitDepthSampler\", this._thinTextures[this._currentPingPongState * 3]);\r\n effect.setTexture(\"oitFrontColorSampler\", this._thinTextures[this._currentPingPongState * 3 + 1]);\r\n }\r\n\r\n private _renderSubMeshes(transparentSubMeshes: SmartArray<SubMesh>) {\r\n let mapMaterialContext: { [uniqueId: number]: IMaterialContext | undefined };\r\n if (this._useRenderPasses) {\r\n mapMaterialContext = {};\r\n }\r\n for (let j = 0; j < transparentSubMeshes.length; j++) {\r\n const material = transparentSubMeshes.data[j].getMaterial();\r\n let previousShaderHotSwapping = true;\r\n let previousBFC = false;\r\n\r\n const subMesh = transparentSubMeshes.data[j];\r\n let drawWrapper: DrawWrapper | undefined;\r\n let firstDraw = false;\r\n\r\n if (this._useRenderPasses) {\r\n drawWrapper = subMesh._getDrawWrapper();\r\n firstDraw = !drawWrapper;\r\n }\r\n\r\n if (material) {\r\n previousShaderHotSwapping = material.allowShaderHotSwapping;\r\n previousBFC = material.backFaceCulling;\r\n material.allowShaderHotSwapping = false;\r\n material.backFaceCulling = false;\r\n }\r\n\r\n subMesh.render(false);\r\n\r\n if (firstDraw) {\r\n // first time we draw this submesh: we replace the material context\r\n drawWrapper = subMesh._getDrawWrapper()!; // we are sure it is now non empty as we just rendered the submesh\r\n if (drawWrapper.materialContext) {\r\n let newMaterialContext = mapMaterialContext![drawWrapper.materialContext.uniqueId];\r\n if (!newMaterialContext) {\r\n newMaterialContext = mapMaterialContext![drawWrapper.materialContext.uniqueId] = this._engine.createMaterialContext();\r\n }\r\n subMesh._getDrawWrapper()!.materialContext = newMaterialContext;\r\n }\r\n }\r\n\r\n if (material) {\r\n material.allowShaderHotSwapping = previousShaderHotSwapping;\r\n material.backFaceCulling = previousBFC;\r\n }\r\n }\r\n }\r\n\r\n private _finalCompose(writeId: number) {\r\n const output = this._scene.prePassRenderer?.setCustomOutput(this._outputRT);\r\n if (output) {\r\n this._engine.bindFramebuffer(this._outputRT.renderTarget!);\r\n } else {\r\n this._engine.restoreDefaultFramebuffer();\r\n }\r\n\r\n this._engine.setAlphaMode(Constants.ALPHA_DISABLE);\r\n this._engine.applyStates();\r\n\r\n this._engine.enableEffect(this._finalEffectWrapper._drawWrapper);\r\n this._finalEffectWrapper.effect.setTexture(\"uFrontColor\", this._thinTextures[writeId * 3 + 1]);\r\n this._finalEffectWrapper.effect.setTexture(\"uBackColor\", this._thinTextures[6]);\r\n this._effectRenderer.render(this._finalEffectWrapper);\r\n }\r\n\r\n /**\r\n * Renders transparent submeshes with depth peeling\r\n * @param transparentSubMeshes List of transparent meshes to render\r\n * @returns The array of submeshes that could not be handled by this renderer\r\n */\r\n public render(transparentSubMeshes: SmartArray<SubMesh>): SmartArray<SubMesh> {\r\n this._candidateSubMeshes.length = 0;\r\n this._excludedSubMeshes.length = 0;\r\n if (\r\n !this._blendBackEffectWrapper.effect.isReady() ||\r\n !this._blendBackEffectWrapperPingPong.effect.isReady() ||\r\n !this._finalEffectWrapper.effect.isReady() ||\r\n !this._updateTextures()\r\n ) {\r\n return this._excludedSubMeshes;\r\n }\r\n\r\n for (let i = 0; i < transparentSubMeshes.length; i++) {\r\n const material = transparentSubMeshes.data[i].getMaterial();\r\n\r\n if (\r\n material &&\r\n (material.fillMode === Material.TriangleFanDrawMode || material.fillMode === Material.TriangleFillMode || material.fillMode === Material.TriangleStripDrawMode)\r\n ) {\r\n this._candidateSubMeshes.push(transparentSubMeshes.data[i]);\r\n } else {\r\n this._excludedSubMeshes.push(transparentSubMeshes.data[i]);\r\n }\r\n }\r\n\r\n if (!this._candidateSubMeshes.length) {\r\n this._finalCompose(1);\r\n return this._excludedSubMeshes;\r\n }\r\n\r\n const currentRenderPassId = this._engine.currentRenderPassId;\r\n\r\n (this._scene.prePassRenderer! as any)._enabled = false;\r\n\r\n if (this._useRenderPasses) {\r\n this._engine.currentRenderPassId = this._renderPassIds[0];\r\n }\r\n\r\n // Clears\r\n this._engine.bindFramebuffer(this._depthMrts[0].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n this._engine.clear(this._colorCache[0], true, false, false);\r\n this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget!);\r\n\r\n this._engine.bindFramebuffer(this._depthMrts[1].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n this._engine.clear(this._colorCache[1], true, false, false);\r\n this._engine.unBindFramebuffer(this._depthMrts[1].renderTarget!);\r\n\r\n this._engine.bindFramebuffer(this._colorMrts[0].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[1]);\r\n this._engine.clear(this._colorCache[2], true, false, false);\r\n this._engine.unBindFramebuffer(this._colorMrts[0].renderTarget!);\r\n\r\n this._engine.bindFramebuffer(this._colorMrts[1].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[1]);\r\n this._engine.clear(this._colorCache[2], true, false, false);\r\n this._engine.unBindFramebuffer(this._colorMrts[1].renderTarget!);\r\n\r\n // Draw depth for first pass\r\n this._engine.bindFramebuffer(this._depthMrts[0].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n\r\n this._engine.setAlphaMode(Constants.ALPHA_ONEONE_ONEONE); // in WebGPU, when using MIN or MAX equation, the src / dst color factors should not use SRC_ALPHA and the src / dst alpha factors must be 1 else WebGPU will throw a validation error\r\n this._engine.setAlphaEquation(Constants.ALPHA_EQUATION_MAX);\r\n this._engine.depthCullingState.depthMask = false;\r\n this._engine.depthCullingState.depthTest = true;\r\n this._engine.applyStates();\r\n\r\n this._currentPingPongState = 1;\r\n // Render\r\n this._renderSubMeshes(this._candidateSubMeshes);\r\n this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget!);\r\n\r\n this._scene.resetCachedMaterial();\r\n\r\n // depth peeling ping-pong\r\n let readId = 0;\r\n let writeId = 0;\r\n\r\n for (let i = 0; i < this._passCount; i++) {\r\n readId = i % 2;\r\n writeId = 1 - readId;\r\n this._currentPingPongState = readId;\r\n\r\n if (this._useRenderPasses) {\r\n this._engine.currentRenderPassId = this._renderPassIds[i + 1];\r\n }\r\n\r\n // Clears\r\n this._engine.bindFramebuffer(this._depthMrts[writeId].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n this._engine.clear(this._colorCache[0], true, false, false);\r\n this._engine.unBindFramebuffer(this._depthMrts[writeId].renderTarget!);\r\n\r\n this._engine.bindFramebuffer(this._colorMrts[writeId].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[1]);\r\n this._engine.clear(this._colorCache[2], true, false, false);\r\n this._engine.unBindFramebuffer(this._colorMrts[writeId].renderTarget!);\r\n\r\n this._engine.bindFramebuffer(this._depthMrts[writeId].renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[2]);\r\n\r\n this._engine.setAlphaMode(Constants.ALPHA_ONEONE_ONEONE); // the value does not matter (as MAX operation does not use them) but the src and dst color factors should not use SRC_ALPHA else WebGPU will throw a validation error\r\n this._engine.setAlphaEquation(Constants.ALPHA_EQUATION_MAX);\r\n this._engine.depthCullingState.depthTest = false;\r\n this._engine.applyStates();\r\n\r\n // Render\r\n this._renderSubMeshes(this._candidateSubMeshes);\r\n this._engine.unBindFramebuffer(this._depthMrts[writeId].renderTarget!);\r\n\r\n this._scene.resetCachedMaterial();\r\n\r\n // Back color\r\n this._engine.bindFramebuffer(this._blendBackMrt.renderTarget!);\r\n this._engine.bindAttachments(this._layoutCache[0]);\r\n this._engine.setAlphaEquation(Constants.ALPHA_EQUATION_ADD);\r\n this._engine.setAlphaMode(Constants.ALPHA_LAYER_ACCUMULATE);\r\n this._engine.applyStates();\r\n\r\n const blendBackEffectWrapper = writeId === 0 || !this._useRenderPasses ? this._blendBackEffectWrapper : this._blendBackEffectWrapperPingPong;\r\n this._engine.enableEffect(blendBackEffectWrapper._drawWrapper);\r\n blendBackEffectWrapper.effect.setTexture(\"uBackColor\", this._thinTextures[writeId * 3 + 2]);\r\n this._effectRenderer.render(blendBackEffectWrapper);\r\n this._engine.unBindFramebuffer(this._blendBackMrt.renderTarget!);\r\n }\r\n\r\n this._engine.currentRenderPassId = currentRenderPassId;\r\n\r\n // Final composition on default FB\r\n this._finalCompose(writeId);\r\n\r\n (this._scene.prePassRenderer! as any)._enabled = true;\r\n this._engine.depthCullingState.depthMask = true;\r\n this._engine.depthCullingState.depthTest = true;\r\n\r\n return this._excludedSubMeshes;\r\n }\r\n\r\n /**\r\n * Disposes the depth peeling renderer and associated ressources\r\n */\r\n public dispose() {\r\n this._disposeTextures();\r\n this._blendBackEffectWrapper.dispose();\r\n this._finalEffectWrapper.dispose();\r\n this._effectRenderer.dispose();\r\n this._releaseRenderPassIds();\r\n }\r\n}\r\n"]}
|
|
@@ -8,13 +8,13 @@ declare module "../scene" {
|
|
|
8
8
|
* The depth peeling renderer
|
|
9
9
|
*/
|
|
10
10
|
depthPeelingRenderer: Nullable<DepthPeelingRenderer>;
|
|
11
|
-
/** @
|
|
11
|
+
/** @internal (Backing field) */
|
|
12
12
|
_depthPeelingRenderer: Nullable<DepthPeelingRenderer>;
|
|
13
13
|
/**
|
|
14
14
|
* Flag to indicate if we want to use order independent transparency, despite the performance hit
|
|
15
15
|
*/
|
|
16
16
|
useOrderIndependentTransparency: boolean;
|
|
17
|
-
/** @
|
|
17
|
+
/** @internal */
|
|
18
18
|
_useOrderIndependentTransparency: boolean;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depthPeelingSceneComponent.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/depthPeelingSceneComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAoB9D,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,sBAAsB,EAAE;IAC3D,GAAG,EAAE;QACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,yBAAyB,CAA+B,CAAC;YACpH,IAAI,CAAC,SAAS,EAAE;gBACZ,SAAS,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aACjC;SACJ;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,GAAG,EAAE,UAAuB,KAA2B;QACnD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;IACvC,CAAC;IACD,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,iCAAiC,EAAE;IACtE,GAAG,EAAE;QACD,OAAO,IAAI,CAAC,gCAAgC,CAAC;IACjD,CAAC;IACD,GAAG,EAAE,UAAuB,KAAc;QACtC,IAAI,IAAI,CAAC,gCAAgC,KAAK,KAAK,EAAE;YACjD,OAAO;SACV;QACD,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAC;QAC9C,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC;IACxC,CAAC;IACD,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,OAAO,0BAA0B;IAWnC;;;OAGG;IACH,YAAY,KAAY;QAdxB;;WAEG;QACa,SAAI,GAAG,uBAAuB,CAAC,yBAAyB,CAAC;QAYrE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,KAAK,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,QAAQ,KAAU,CAAC;IAE1B;;;OAGG;IACI,OAAO,KAAU,CAAC;IAEzB;;OAEG;IACI,OAAO;QACV,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAC3C,CAAC;CACJ","sourcesContent":["import { Constants } from \"../Engines/constants\";\r\nimport { Scene } from \"../scene\";\r\nimport type { ISceneComponent } from \"../sceneComponent\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport type { Nullable } from \"../types\";\r\nimport { DepthPeelingRenderer } from \"./depthPeelingRenderer\";\r\n\r\ndeclare module \"../scene\" {\r\n export interface Scene {\r\n /**\r\n * The depth peeling renderer\r\n */\r\n depthPeelingRenderer: Nullable<DepthPeelingRenderer>;\r\n /** @
|
|
1
|
+
{"version":3,"file":"depthPeelingSceneComponent.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/depthPeelingSceneComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAoB9D,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,sBAAsB,EAAE;IAC3D,GAAG,EAAE;QACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,yBAAyB,CAA+B,CAAC;YACpH,IAAI,CAAC,SAAS,EAAE;gBACZ,SAAS,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aACjC;SACJ;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,GAAG,EAAE,UAAuB,KAA2B;QACnD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;IACvC,CAAC;IACD,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,iCAAiC,EAAE;IACtE,GAAG,EAAE;QACD,OAAO,IAAI,CAAC,gCAAgC,CAAC;IACjD,CAAC;IACD,GAAG,EAAE,UAAuB,KAAc;QACtC,IAAI,IAAI,CAAC,gCAAgC,KAAK,KAAK,EAAE;YACjD,OAAO;SACV;QACD,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAC;QAC9C,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC;IACxC,CAAC;IACD,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,OAAO,0BAA0B;IAWnC;;;OAGG;IACH,YAAY,KAAY;QAdxB;;WAEG;QACa,SAAI,GAAG,uBAAuB,CAAC,yBAAyB,CAAC;QAYrE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,KAAK,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,QAAQ,KAAU,CAAC;IAE1B;;;OAGG;IACI,OAAO,KAAU,CAAC;IAEzB;;OAEG;IACI,OAAO;QACV,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAC3C,CAAC;CACJ","sourcesContent":["import { Constants } from \"../Engines/constants\";\r\nimport { Scene } from \"../scene\";\r\nimport type { ISceneComponent } from \"../sceneComponent\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport type { Nullable } from \"../types\";\r\nimport { DepthPeelingRenderer } from \"./depthPeelingRenderer\";\r\n\r\ndeclare module \"../scene\" {\r\n export interface Scene {\r\n /**\r\n * The depth peeling renderer\r\n */\r\n depthPeelingRenderer: Nullable<DepthPeelingRenderer>;\r\n /** @internal (Backing field) */\r\n _depthPeelingRenderer: Nullable<DepthPeelingRenderer>;\r\n\r\n /**\r\n * Flag to indicate if we want to use order independent transparency, despite the performance hit\r\n */\r\n useOrderIndependentTransparency: boolean;\r\n /** @internal */\r\n _useOrderIndependentTransparency: boolean;\r\n }\r\n}\r\n\r\nObject.defineProperty(Scene.prototype, \"depthPeelingRenderer\", {\r\n get: function (this: Scene) {\r\n if (!this._depthPeelingRenderer) {\r\n let component = this._getComponent(SceneComponentConstants.NAME_DEPTHPEELINGRENDERER) as DepthPeelingSceneComponent;\r\n if (!component) {\r\n component = new DepthPeelingSceneComponent(this);\r\n this._addComponent(component);\r\n }\r\n }\r\n\r\n return this._depthPeelingRenderer;\r\n },\r\n set: function (this: Scene, value: DepthPeelingRenderer) {\r\n this._depthPeelingRenderer = value;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nObject.defineProperty(Scene.prototype, \"useOrderIndependentTransparency\", {\r\n get: function (this: Scene) {\r\n return this._useOrderIndependentTransparency;\r\n },\r\n set: function (this: Scene, value: boolean) {\r\n if (this._useOrderIndependentTransparency === value) {\r\n return;\r\n }\r\n this._useOrderIndependentTransparency = value;\r\n this.markAllMaterialsAsDirty(Constants.MATERIAL_AllDirtyFlag);\r\n this.prePassRenderer?.markAsDirty();\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\n/**\r\n * Scene component to render order independent transparency with depth peeling\r\n */\r\nexport class DepthPeelingSceneComponent implements ISceneComponent {\r\n /**\r\n * The component name helpful to identify the component in the list of scene components.\r\n */\r\n public readonly name = SceneComponentConstants.NAME_DEPTHPEELINGRENDERER;\r\n\r\n /**\r\n * The scene the component belongs to.\r\n */\r\n public scene: Scene;\r\n\r\n /**\r\n * Creates a new instance of the component for the given scene\r\n * @param scene Defines the scene to register the component in\r\n */\r\n constructor(scene: Scene) {\r\n this.scene = scene;\r\n\r\n scene.depthPeelingRenderer = new DepthPeelingRenderer(scene);\r\n }\r\n\r\n /**\r\n * Registers the component in a given scene\r\n */\r\n public register(): void {}\r\n\r\n /**\r\n * Rebuilds the elements related to this component in case of\r\n * context lost for instance.\r\n */\r\n public rebuild(): void {}\r\n\r\n /**\r\n * Disposes the component and the associated resources.\r\n */\r\n public dispose(): void {\r\n this.scene.depthPeelingRenderer?.dispose();\r\n this.scene.depthPeelingRenderer = null;\r\n }\r\n}\r\n"]}
|