@babylonjs/core 5.32.1 → 5.33.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 +1 -1
- package/Actions/abstractActionManager.js +1 -1
- package/Actions/abstractActionManager.js.map +1 -1
- package/Actions/action.d.ts +1 -1
- package/Actions/action.js +1 -1
- package/Actions/action.js.map +1 -1
- package/Actions/actionManager.d.ts +18 -18
- package/Actions/actionManager.js +18 -18
- package/Actions/actionManager.js.map +1 -1
- package/Actions/directActions.d.ts +10 -10
- package/Actions/directActions.js +10 -10
- package/Actions/directActions.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 +2 -2
- package/Animations/animatable.js +2 -2
- package/Animations/animatable.js.map +1 -1
- package/Animations/animationGroup.d.ts +3 -3
- package/Animations/animationGroup.js +3 -3
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/easing.d.ts +14 -14
- package/Animations/easing.js +13 -13
- package/Animations/easing.js.map +1 -1
- package/Audio/Interfaces/IAudioEngine.d.ts +2 -2
- package/Audio/Interfaces/IAudioEngine.js.map +1 -1
- package/Audio/Interfaces/ISoundOptions.d.ts +3 -3
- package/Audio/Interfaces/ISoundOptions.js.map +1 -1
- package/Audio/analyser.d.ts +1 -1
- package/Audio/analyser.js +1 -1
- package/Audio/analyser.js.map +1 -1
- package/Audio/audioEngine.d.ts +2 -2
- package/Audio/audioEngine.js +2 -2
- package/Audio/audioEngine.js.map +1 -1
- package/Audio/audioSceneComponent.d.ts +4 -4
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Audio/sound.d.ts +13 -13
- package/Audio/sound.js +13 -13
- package/Audio/sound.js.map +1 -1
- package/Audio/soundTrack.d.ts +5 -5
- package/Audio/soundTrack.js +5 -5
- package/Audio/soundTrack.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/pointerDragBehavior.d.ts +8 -0
- package/Behaviors/Meshes/pointerDragBehavior.js +9 -3
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Bones/bone.d.ts +1 -1
- package/Bones/bone.js +1 -1
- package/Bones/bone.js.map +1 -1
- package/Bones/boneIKController.d.ts +3 -2
- package/Bones/boneIKController.js +28 -11
- package/Bones/boneIKController.js.map +1 -1
- package/Bones/boneLookController.d.ts +1 -1
- package/Bones/boneLookController.js +1 -1
- package/Bones/boneLookController.js.map +1 -1
- package/Bones/skeleton.d.ts +3 -3
- package/Bones/skeleton.js +2 -2
- package/Bones/skeleton.js.map +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js +2 -2
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +2 -2
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraGamepadInput.d.ts +1 -1
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js +1 -1
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.d.ts +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +3 -3
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraPointersInput.d.ts +1 -1
- package/Cameras/Inputs/arcRotateCameraPointersInput.js +1 -1
- package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.d.ts +1 -1
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +1 -1
- 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/flyCameraMouseInput.d.ts +2 -2
- package/Cameras/Inputs/flyCameraMouseInput.js +4 -4
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.d.ts +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.d.ts +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +3 -3
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/followCameraPointersInput.d.ts +1 -1
- package/Cameras/Inputs/followCameraPointersInput.js +1 -1
- package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.d.ts +2 -2
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +2 -2
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.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 +3 -2
- package/Cameras/Inputs/freeCameraMouseInput.js +18 -7
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.d.ts +2 -2
- package/Cameras/Inputs/freeCameraTouchInput.js +4 -4
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraVirtualJoystickInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraVirtualJoystickInput.js +1 -1
- package/Cameras/Inputs/freeCameraVirtualJoystickInput.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.js +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.js +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.js +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrCameraMetrics.d.ts +1 -1
- package/Cameras/VR/vrCameraMetrics.js +1 -1
- package/Cameras/VR/vrCameraMetrics.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.js +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.js +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +2 -2
- package/Cameras/VR/vrExperienceHelper.js +2 -2
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/webVRCamera.d.ts +2 -2
- package/Cameras/VR/webVRCamera.js +2 -2
- package/Cameras/VR/webVRCamera.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +9 -9
- package/Cameras/arcRotateCamera.js +9 -9
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/arcRotateCameraInputsManager.d.ts +1 -1
- package/Cameras/arcRotateCameraInputsManager.js +1 -1
- package/Cameras/arcRotateCameraInputsManager.js.map +1 -1
- package/Cameras/camera.d.ts +4 -4
- package/Cameras/camera.js +4 -4
- package/Cameras/camera.js.map +1 -1
- package/Cameras/cameraInputsManager.d.ts +1 -1
- package/Cameras/cameraInputsManager.js +1 -1
- package/Cameras/cameraInputsManager.js.map +1 -1
- package/Cameras/flyCamera.d.ts +1 -1
- package/Cameras/flyCamera.js +1 -1
- package/Cameras/flyCamera.js.map +1 -1
- package/Cameras/flyCameraInputsManager.d.ts +1 -1
- package/Cameras/flyCameraInputsManager.js +1 -1
- package/Cameras/flyCameraInputsManager.js.map +1 -1
- package/Cameras/followCamera.d.ts +4 -4
- package/Cameras/followCamera.js +4 -4
- package/Cameras/followCamera.js.map +1 -1
- package/Cameras/followCameraInputsManager.d.ts +1 -1
- package/Cameras/followCameraInputsManager.js +1 -1
- package/Cameras/followCameraInputsManager.js.map +1 -1
- package/Cameras/freeCamera.d.ts +3 -3
- package/Cameras/freeCamera.js +3 -3
- package/Cameras/freeCamera.js.map +1 -1
- package/Cameras/freeCameraInputsManager.d.ts +1 -1
- package/Cameras/freeCameraInputsManager.js +1 -1
- package/Cameras/freeCameraInputsManager.js.map +1 -1
- package/Cameras/gamepadCamera.d.ts +2 -2
- package/Cameras/gamepadCamera.js +2 -2
- package/Cameras/gamepadCamera.js.map +1 -1
- package/Cameras/targetCamera.d.ts +2 -2
- package/Cameras/targetCamera.js +2 -2
- 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 +2 -2
- package/Cameras/universalCamera.js +2 -2
- package/Cameras/universalCamera.js.map +1 -1
- package/Cameras/virtualJoysticksCamera.d.ts +2 -2
- package/Cameras/virtualJoysticksCamera.js +2 -2
- package/Cameras/virtualJoysticksCamera.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/Culling/Octrees/octree.d.ts +2 -2
- package/Culling/Octrees/octree.js +2 -2
- package/Culling/Octrees/octree.js.map +1 -1
- package/Culling/Octrees/octreeBlock.d.ts +1 -1
- package/Culling/Octrees/octreeBlock.js +1 -1
- package/Culling/Octrees/octreeBlock.js.map +1 -1
- package/Culling/Octrees/octreeSceneComponent.d.ts +3 -3
- package/Culling/Octrees/octreeSceneComponent.js +1 -1
- package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
- package/Culling/boundingInfo.d.ts +8 -3
- package/Culling/boundingInfo.js +7 -2
- package/Culling/boundingInfo.js.map +1 -1
- package/Debug/debugLayer.d.ts +1 -1
- package/Debug/debugLayer.js.map +1 -1
- package/Debug/rayHelper.d.ts +2 -2
- package/Debug/rayHelper.js +2 -2
- package/Debug/rayHelper.js.map +1 -1
- package/Engines/Extensions/engine.alpha.d.ts +2 -2
- package/Engines/Extensions/engine.alpha.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.d.ts +2 -2
- package/Engines/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/Extensions/engine.query.d.ts +8 -8
- package/Engines/Extensions/engine.query.js.map +1 -1
- package/Engines/Extensions/engine.renderTarget.d.ts +1 -1
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/Extensions/engine.uniformBuffer.d.ts +3 -3
- package/Engines/Extensions/engine.uniformBuffer.js.map +1 -1
- package/Engines/Extensions/engine.videoTexture.d.ts +2 -1
- package/Engines/Extensions/engine.videoTexture.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +2 -2
- package/Engines/Extensions/engine.views.js +1 -1
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Extensions/engine.webVR.d.ts +1 -1
- package/Engines/Extensions/engine.webVR.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/WebGPU/Extensions/engine.videoTexture.js +21 -9
- package/Engines/WebGPU/Extensions/engine.videoTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js +11 -9
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +6 -0
- package/Engines/WebGPU/webgpuTextureHelper.js +157 -0
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/constants.d.ts +17 -17
- package/Engines/constants.js +17 -17
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +12 -12
- package/Engines/engine.js +11 -11
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.d.ts +2 -2
- package/Engines/nativeEngine.js +23 -2
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.d.ts +5 -5
- package/Engines/nullEngine.js +5 -5
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/thinEngine.d.ts +8 -8
- package/Engines/thinEngine.js +6 -6
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +4 -4
- package/Engines/webgpuEngine.js +1 -1
- package/Engines/webgpuEngine.js.map +1 -1
- package/Gamepads/gamepadSceneComponent.d.ts +1 -1
- package/Gamepads/gamepadSceneComponent.js.map +1 -1
- package/Gizmos/gizmo.d.ts +6 -7
- package/Gizmos/gizmo.js +43 -36
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/planeRotationGizmo.js +17 -7
- package/Gizmos/planeRotationGizmo.js.map +1 -1
- package/Gizmos/positionGizmo.d.ts +4 -0
- package/Gizmos/positionGizmo.js +21 -0
- package/Gizmos/positionGizmo.js.map +1 -1
- package/Gizmos/rotationGizmo.d.ts +4 -0
- package/Gizmos/rotationGizmo.js +20 -0
- package/Gizmos/rotationGizmo.js.map +1 -1
- package/Gizmos/scaleGizmo.d.ts +2 -0
- package/Gizmos/scaleGizmo.js +10 -0
- package/Gizmos/scaleGizmo.js.map +1 -1
- package/Helpers/sceneHelpers.d.ts +7 -7
- package/Helpers/sceneHelpers.js.map +1 -1
- package/Inputs/scene.inputManager.js +34 -25
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Instrumentation/engineInstrumentation.d.ts +2 -2
- package/Instrumentation/engineInstrumentation.js +2 -2
- package/Instrumentation/engineInstrumentation.js.map +1 -1
- package/Instrumentation/sceneInstrumentation.d.ts +2 -2
- package/Instrumentation/sceneInstrumentation.js +2 -2
- package/Instrumentation/sceneInstrumentation.js.map +1 -1
- package/Layers/effectLayer.js +7 -28
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/effectLayerSceneComponent.d.ts +2 -2
- package/Layers/effectLayerSceneComponent.js.map +1 -1
- package/Layers/glowLayer.d.ts +1 -1
- package/Layers/glowLayer.js +1 -1
- package/Layers/glowLayer.js.map +1 -1
- package/LensFlares/lensFlare.d.ts +3 -3
- package/LensFlares/lensFlare.js +3 -3
- package/LensFlares/lensFlare.js.map +1 -1
- package/LensFlares/lensFlareSystem.d.ts +2 -2
- package/LensFlares/lensFlareSystem.js +2 -2
- package/LensFlares/lensFlareSystem.js.map +1 -1
- package/LensFlares/lensFlareSystemSceneComponent.d.ts +1 -1
- package/LensFlares/lensFlareSystemSceneComponent.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +2 -2
- package/Lights/Shadows/shadowGenerator.js +11 -30
- 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 +1 -1
- package/Lights/hemisphericLight.js +1 -1
- package/Lights/hemisphericLight.js.map +1 -1
- package/Lights/light.d.ts +1 -1
- package/Lights/light.js +1 -1
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.d.ts +2 -2
- package/Lights/pointLight.js +2 -2
- package/Lights/pointLight.js.map +1 -1
- package/Lights/spotLight.d.ts +2 -2
- package/Lights/spotLight.js +2 -2
- package/Lights/spotLight.js.map +1 -1
- package/Loading/loadingScreen.d.ts +2 -2
- package/Loading/loadingScreen.js +1 -1
- package/Loading/loadingScreen.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +4 -8
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +9 -8
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
- package/Materials/Node/Blocks/reciprocalBlock.js +6 -2
- package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +5 -9
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrMaterial.d.ts +1 -1
- package/Materials/PBR/pbrMaterial.js +1 -1
- package/Materials/PBR/pbrMaterial.js.map +1 -1
- package/Materials/Textures/Packer/packer.d.ts +1 -1
- package/Materials/Textures/Packer/packer.js +1 -1
- package/Materials/Textures/Packer/packer.js.map +1 -1
- package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -2
- package/Materials/Textures/Procedurals/customProceduralTexture.js +2 -2
- package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.d.ts +2 -2
- package/Materials/Textures/Procedurals/proceduralTexture.js +2 -2
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.d.ts +1 -1
- package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +2 -2
- package/Materials/Textures/cubeTexture.js +2 -2
- 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/htmlElementTexture.d.ts +1 -0
- package/Materials/Textures/htmlElementTexture.js +3 -1
- package/Materials/Textures/htmlElementTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.d.ts +3 -3
- package/Materials/Textures/mirrorTexture.js +3 -3
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/Textures/refractionTexture.d.ts +3 -3
- package/Materials/Textures/refractionTexture.js +3 -3
- package/Materials/Textures/refractionTexture.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.js +2 -2
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.d.ts +10 -10
- package/Materials/Textures/texture.js +10 -10
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/videoTexture.d.ts +3 -2
- package/Materials/Textures/videoTexture.js +7 -3
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/clipPlaneMaterialHelper.d.ts +8 -0
- package/Materials/clipPlaneMaterialHelper.js +78 -0
- package/Materials/clipPlaneMaterialHelper.js.map +1 -0
- package/Materials/effect.d.ts +20 -2
- package/Materials/effect.js +28 -4
- package/Materials/effect.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/index.d.ts +1 -1
- package/Materials/index.js +1 -1
- package/Materials/index.js.map +1 -1
- package/Materials/material.d.ts +28 -2
- package/Materials/material.js.map +1 -1
- package/Materials/materialHelper.d.ts +3 -7
- package/Materials/materialHelper.js +5 -45
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/multiMaterial.d.ts +2 -2
- package/Materials/multiMaterial.js +2 -2
- package/Materials/multiMaterial.js.map +1 -1
- package/Materials/shaderMaterial.d.ts +2 -2
- package/Materials/shaderMaterial.js +7 -38
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/shadowDepthWrapper.d.ts +1 -1
- package/Materials/shadowDepthWrapper.js +2 -2
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Materials/standardMaterial.d.ts +18 -18
- package/Materials/standardMaterial.js +10 -14
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/math.path.d.ts +7 -7
- package/Maths/math.path.js +7 -7
- package/Maths/math.path.js.map +1 -1
- package/Maths/math.vector.d.ts +4 -4
- package/Maths/math.vector.js +4 -4
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/boxBuilder.d.ts +3 -3
- package/Meshes/Builders/boxBuilder.js +3 -3
- package/Meshes/Builders/boxBuilder.js.map +1 -1
- package/Meshes/Builders/capsuleBuilder.d.ts +1 -1
- package/Meshes/Builders/capsuleBuilder.js +1 -1
- package/Meshes/Builders/capsuleBuilder.js.map +1 -1
- package/Meshes/Builders/cylinderBuilder.d.ts +2 -2
- package/Meshes/Builders/cylinderBuilder.js +2 -2
- package/Meshes/Builders/cylinderBuilder.js.map +1 -1
- package/Meshes/Builders/decalBuilder.d.ts +1 -1
- package/Meshes/Builders/decalBuilder.js +1 -1
- package/Meshes/Builders/decalBuilder.js.map +1 -1
- package/Meshes/Builders/discBuilder.d.ts +2 -2
- package/Meshes/Builders/discBuilder.js +2 -2
- package/Meshes/Builders/discBuilder.js.map +1 -1
- package/Meshes/Builders/geodesicBuilder.d.ts +1 -1
- package/Meshes/Builders/geodesicBuilder.js +1 -1
- package/Meshes/Builders/geodesicBuilder.js.map +1 -1
- package/Meshes/Builders/goldbergBuilder.d.ts +1 -1
- package/Meshes/Builders/goldbergBuilder.js +1 -1
- package/Meshes/Builders/goldbergBuilder.js.map +1 -1
- package/Meshes/Builders/groundBuilder.d.ts +4 -4
- package/Meshes/Builders/groundBuilder.js +4 -4
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/Builders/icoSphereBuilder.d.ts +2 -2
- package/Meshes/Builders/icoSphereBuilder.js +2 -2
- package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
- package/Meshes/Builders/latheBuilder.d.ts +2 -2
- package/Meshes/Builders/latheBuilder.js +2 -2
- package/Meshes/Builders/latheBuilder.js.map +1 -1
- package/Meshes/Builders/linesBuilder.d.ts +6 -6
- package/Meshes/Builders/linesBuilder.js +6 -6
- package/Meshes/Builders/linesBuilder.js.map +1 -1
- package/Meshes/Builders/planeBuilder.d.ts +2 -2
- package/Meshes/Builders/planeBuilder.js +2 -2
- package/Meshes/Builders/planeBuilder.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.d.ts +1 -1
- package/Meshes/Builders/polygonBuilder.js +1 -1
- package/Meshes/Builders/polygonBuilder.js.map +1 -1
- package/Meshes/Builders/polyhedronBuilder.d.ts +3 -3
- package/Meshes/Builders/polyhedronBuilder.js +3 -3
- package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
- package/Meshes/Builders/ribbonBuilder.d.ts +4 -4
- package/Meshes/Builders/ribbonBuilder.js +4 -4
- package/Meshes/Builders/ribbonBuilder.js.map +1 -1
- package/Meshes/Builders/shapeBuilder.d.ts +9 -9
- package/Meshes/Builders/shapeBuilder.js +9 -9
- package/Meshes/Builders/shapeBuilder.js.map +1 -1
- package/Meshes/Builders/sphereBuilder.d.ts +2 -2
- package/Meshes/Builders/sphereBuilder.js +2 -2
- package/Meshes/Builders/sphereBuilder.js.map +1 -1
- package/Meshes/Builders/tiledBoxBuilder.d.ts +2 -2
- package/Meshes/Builders/tiledBoxBuilder.js +2 -2
- package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
- package/Meshes/Builders/tiledPlaneBuilder.d.ts +2 -2
- package/Meshes/Builders/tiledPlaneBuilder.js +2 -2
- package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
- package/Meshes/Builders/torusBuilder.d.ts +2 -2
- package/Meshes/Builders/torusBuilder.js +2 -2
- package/Meshes/Builders/torusBuilder.js.map +1 -1
- package/Meshes/Builders/torusKnotBuilder.d.ts +2 -2
- package/Meshes/Builders/torusKnotBuilder.js +2 -2
- package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
- package/Meshes/Builders/tubeBuilder.d.ts +4 -4
- package/Meshes/Builders/tubeBuilder.js +4 -4
- package/Meshes/Builders/tubeBuilder.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +35 -35
- package/Meshes/abstractMesh.js +34 -34
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/instancedMesh.d.ts +3 -3
- package/Meshes/instancedMesh.js +1 -1
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/linesMesh.d.ts +2 -2
- package/Meshes/linesMesh.js +3 -3
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +36 -36
- package/Meshes/mesh.js +9 -17
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/meshLODLevel.d.ts +1 -1
- package/Meshes/meshLODLevel.js +1 -1
- package/Meshes/meshLODLevel.js.map +1 -1
- package/Meshes/meshSimplification.d.ts +6 -6
- package/Meshes/meshSimplification.js +4 -4
- package/Meshes/meshSimplification.js.map +1 -1
- package/Meshes/meshSimplificationSceneComponent.d.ts +1 -1
- package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
- package/Meshes/polygonMesh.d.ts +2 -2
- package/Meshes/polygonMesh.js +2 -2
- package/Meshes/polygonMesh.js.map +1 -1
- package/Meshes/transformNode.d.ts +1 -1
- package/Meshes/transformNode.js +1 -1
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/assetsManager.d.ts +2 -2
- package/Misc/assetsManager.js +2 -2
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/dumpTools.d.ts +49 -0
- package/Misc/dumpTools.js +145 -0
- package/Misc/dumpTools.js.map +1 -0
- package/Misc/environmentTextureTools.js +2 -1
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/iInspectable.d.ts +1 -1
- package/Misc/iInspectable.js.map +1 -1
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +1 -0
- package/Misc/index.js.map +1 -1
- package/Misc/sceneOptimizer.d.ts +12 -12
- package/Misc/sceneOptimizer.js +12 -12
- package/Misc/sceneOptimizer.js.map +1 -1
- package/Misc/screenshotTools.d.ts +10 -10
- package/Misc/screenshotTools.js +27 -23
- package/Misc/screenshotTools.js.map +1 -1
- package/Misc/tools.d.ts +6 -10
- package/Misc/tools.js +11 -68
- package/Misc/tools.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/Morph/morphTarget.d.ts +1 -1
- package/Morph/morphTarget.js +1 -1
- package/Morph/morphTarget.js.map +1 -1
- package/Morph/morphTargetManager.d.ts +1 -1
- package/Morph/morphTargetManager.js +1 -1
- package/Morph/morphTargetManager.js.map +1 -1
- package/Offline/IOfflineProvider.d.ts +1 -1
- package/Offline/IOfflineProvider.js.map +1 -1
- package/Offline/database.d.ts +1 -1
- package/Offline/database.js +1 -1
- package/Offline/database.js.map +1 -1
- package/Particles/IParticleSystem.d.ts +1 -1
- package/Particles/IParticleSystem.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +32 -7
- package/Particles/baseParticleSystem.js +1 -1
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +1 -1
- package/Particles/gpuParticleSystem.js +6 -38
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particleSystem.d.ts +2 -2
- package/Particles/particleSystem.js +7 -38
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/solidParticleSystem.d.ts +15 -15
- package/Particles/solidParticleSystem.js +13 -13
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Physics/IPhysicsEngine.d.ts +1 -1
- package/Physics/IPhysicsEngine.js.map +1 -1
- package/Physics/Plugins/ammoJSPlugin.d.ts +1 -1
- package/Physics/Plugins/ammoJSPlugin.js +1 -1
- package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
- package/Physics/physicsEngine.d.ts +1 -1
- package/Physics/physicsEngine.js +1 -1
- package/Physics/physicsEngine.js.map +1 -1
- package/Physics/physicsEngineComponent.d.ts +3 -3
- package/Physics/physicsEngineComponent.js +2 -2
- package/Physics/physicsEngineComponent.js.map +1 -1
- package/Physics/physicsHelper.d.ts +12 -12
- package/Physics/physicsHelper.js +6 -6
- package/Physics/physicsHelper.js.map +1 -1
- package/Physics/physicsImpostor.d.ts +3 -3
- package/Physics/physicsImpostor.js +1 -1
- package/Physics/physicsImpostor.js.map +1 -1
- package/Physics/physicsJoint.d.ts +9 -9
- package/Physics/physicsJoint.js +5 -5
- package/Physics/physicsJoint.js.map +1 -1
- package/Physics/physicsRaycastResult.d.ts +1 -1
- package/Physics/physicsRaycastResult.js +1 -1
- package/Physics/physicsRaycastResult.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.d.ts +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.d.ts +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +2 -2
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.d.ts +2 -2
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js +2 -2
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.d.ts +2 -2
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.d.ts +1 -1
- package/PostProcesses/blackAndWhitePostProcess.js +1 -1
- package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
- package/PostProcesses/fxaaPostProcess.d.ts +1 -1
- package/PostProcesses/fxaaPostProcess.js +1 -1
- package/PostProcesses/fxaaPostProcess.js.map +1 -1
- package/PostProcesses/highlightsPostProcess.d.ts +2 -2
- package/PostProcesses/highlightsPostProcess.js +2 -2
- package/PostProcesses/highlightsPostProcess.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -1
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.d.ts +32 -2
- package/PostProcesses/postProcess.js +49 -3
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.d.ts +1 -1
- package/PostProcesses/postProcessManager.js +1 -1
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/PostProcesses/refractionPostProcess.d.ts +2 -2
- package/PostProcesses/refractionPostProcess.js +2 -2
- package/PostProcesses/refractionPostProcess.js.map +1 -1
- package/Probes/reflectionProbe.d.ts +2 -2
- package/Probes/reflectionProbe.js +1 -1
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/depthRenderer.js +10 -28
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.js +2 -2
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.js +26 -45
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js +4 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.js +3 -1
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Sprites/sprite.d.ts +1 -1
- package/Sprites/sprite.js +1 -1
- package/Sprites/sprite.js.map +1 -1
- package/Sprites/spriteManager.d.ts +2 -2
- package/Sprites/spriteManager.js +1 -1
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spritePackedManager.d.ts +1 -1
- package/Sprites/spritePackedManager.js +1 -1
- package/Sprites/spritePackedManager.js.map +1 -1
- package/Sprites/spriteSceneComponent.d.ts +1 -1
- package/Sprites/spriteSceneComponent.js.map +1 -1
- package/Sprites/thinSprite.d.ts +1 -1
- package/Sprites/thinSprite.js +1 -1
- package/Sprites/thinSprite.js.map +1 -1
- package/XR/webXRCamera.d.ts +1 -1
- package/XR/webXRCamera.js +1 -1
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRExperienceHelper.d.ts +1 -1
- package/XR/webXRExperienceHelper.js +1 -1
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRInputSource.d.ts +1 -1
- package/XR/webXRInputSource.js +1 -1
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +1 -1
- package/XR/webXRSessionManager.js +1 -1
- package/XR/webXRSessionManager.js.map +1 -1
- package/abstractScene.d.ts +9 -9
- package/abstractScene.js +9 -9
- package/abstractScene.js.map +1 -1
- package/node.d.ts +6 -6
- package/node.js +5 -5
- package/node.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +29 -24
- package/scene.js +24 -18
- package/scene.js.map +1 -1
- package/Materials/thinMaterialHelper.d.ts +0 -17
- package/Materials/thinMaterialHelper.js +0 -41
- package/Materials/thinMaterialHelper.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environmentTextureTools.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Misc/environmentTextureTools.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"../types\";\r\nimport { Tools } from \"./tools\";\r\nimport { Vector3 } from \"../Maths/math.vector\";\r\nimport { Scalar } from \"../Maths/math.scalar\";\r\nimport { SphericalPolynomial } from \"../Maths/sphericalPolynomial\";\r\nimport { InternalTexture, InternalTextureSource } from \"../Materials/Textures/internalTexture\";\r\nimport { BaseTexture } from \"../Materials/Textures/baseTexture\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport { Scene } from \"../scene\";\r\nimport { PostProcess } from \"../PostProcesses/postProcess\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport type { Engine } from \"../Engines/engine\";\r\nimport { RGBDTextureTools } from \"./rgbdTextureTools\";\r\nimport type { RenderTargetWrapper } from \"../Engines/renderTargetWrapper\";\r\n\r\nimport \"../Engines/Extensions/engine.renderTargetCube\";\r\nimport \"../Engines/Extensions/engine.readTexture\";\r\nimport \"../Materials/Textures/baseTexture.polynomial\";\r\n\r\nimport \"../Shaders/rgbdEncode.fragment\";\r\nimport \"../Shaders/rgbdDecode.fragment\";\r\n\r\nconst DefaultEnvironmentTextureImageType = \"image/png\";\r\nconst CurrentVersion = 2;\r\n\r\n/**\r\n * Raw texture data and descriptor sufficient for WebGL texture upload\r\n */\r\nexport type EnvironmentTextureInfo = EnvironmentTextureInfoV1 | EnvironmentTextureInfoV2;\r\n\r\n/**\r\n * v1 of EnvironmentTextureInfo\r\n */\r\ninterface EnvironmentTextureInfoV1 {\r\n /**\r\n * Version of the environment map\r\n */\r\n version: 1;\r\n\r\n /**\r\n * Width of image\r\n */\r\n width: number;\r\n\r\n /**\r\n * Irradiance information stored in the file.\r\n */\r\n irradiance: any;\r\n\r\n /**\r\n * Specular information stored in the file.\r\n */\r\n specular: any;\r\n}\r\n\r\n/**\r\n * v2 of EnvironmentTextureInfo\r\n */\r\ninterface EnvironmentTextureInfoV2 {\r\n /**\r\n * Version of the environment map\r\n */\r\n version: 2;\r\n\r\n /**\r\n * Width of image\r\n */\r\n width: number;\r\n\r\n /**\r\n * Irradiance information stored in the file.\r\n */\r\n irradiance: any;\r\n\r\n /**\r\n * Specular information stored in the file.\r\n */\r\n specular: any;\r\n\r\n /**\r\n * The mime type used to encode the image data.\r\n */\r\n imageType: string;\r\n}\r\n\r\n/**\r\n * Defines One Image in the file. It requires only the position in the file\r\n * as well as the length.\r\n */\r\ninterface BufferImageData {\r\n /**\r\n * Length of the image data.\r\n */\r\n length: number;\r\n /**\r\n * Position of the data from the null terminator delimiting the end of the JSON.\r\n */\r\n position: number;\r\n}\r\n\r\n/**\r\n * Defines the specular data enclosed in the file.\r\n * This corresponds to the version 1 of the data.\r\n */\r\nexport interface EnvironmentTextureSpecularInfoV1 {\r\n /**\r\n * Defines where the specular Payload is located. It is a runtime value only not stored in the file.\r\n */\r\n specularDataPosition?: number;\r\n /**\r\n * This contains all the images data needed to reconstruct the cubemap.\r\n */\r\n mipmaps: Array<BufferImageData>;\r\n /**\r\n * Defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness.\r\n */\r\n lodGenerationScale: number;\r\n}\r\n\r\n/**\r\n * Defines the required storage to save the environment irradiance information.\r\n */\r\ninterface EnvironmentTextureIrradianceInfoV1 {\r\n x: Array<number>;\r\n y: Array<number>;\r\n z: Array<number>;\r\n\r\n xx: Array<number>;\r\n yy: Array<number>;\r\n zz: Array<number>;\r\n\r\n yz: Array<number>;\r\n zx: Array<number>;\r\n xy: Array<number>;\r\n}\r\n\r\n/**\r\n * Options for creating environment textures\r\n */\r\nexport interface CreateEnvTextureOptions {\r\n /**\r\n * The mime type of encoded images.\r\n */\r\n imageType?: string;\r\n\r\n /**\r\n * the image quality of encoded WebP images.\r\n */\r\n imageQuality?: number;\r\n}\r\n\r\n/**\r\n * Magic number identifying the env file.\r\n */\r\nconst MagicBytes = [0x86, 0x16, 0x87, 0x96, 0xf6, 0xd6, 0x96, 0x36];\r\n\r\n/**\r\n * Gets the environment info from an env file.\r\n * @param data The array buffer containing the .env bytes.\r\n * @returns the environment file info (the json header) if successfully parsed, normalized to the latest supported version.\r\n */\r\nexport function GetEnvInfo(data: ArrayBufferView): Nullable<EnvironmentTextureInfoV2> {\r\n const dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\r\n let pos = 0;\r\n\r\n for (let i = 0; i < MagicBytes.length; i++) {\r\n if (dataView.getUint8(pos++) !== MagicBytes[i]) {\r\n Logger.Error(\"Not a babylon environment map\");\r\n return null;\r\n }\r\n }\r\n\r\n // Read json manifest - collect characters up to null terminator\r\n let manifestString = \"\";\r\n let charCode = 0x00;\r\n while ((charCode = dataView.getUint8(pos++))) {\r\n manifestString += String.fromCharCode(charCode);\r\n }\r\n\r\n let manifest: EnvironmentTextureInfo = JSON.parse(manifestString);\r\n manifest = normalizeEnvInfo(manifest);\r\n if (manifest.specular) {\r\n // Extend the header with the position of the payload.\r\n manifest.specular.specularDataPosition = pos;\r\n // Fallback to 0.8 exactly if lodGenerationScale is not defined for backward compatibility.\r\n manifest.specular.lodGenerationScale = manifest.specular.lodGenerationScale || 0.8;\r\n }\r\n\r\n return manifest;\r\n}\r\n\r\n/**\r\n * Normalizes any supported version of the environment file info to the latest version\r\n * @param info environment file info on any supported version\r\n * @returns environment file info in the latest supported version\r\n * @private\r\n */\r\nexport function normalizeEnvInfo(info: EnvironmentTextureInfo): EnvironmentTextureInfoV2 {\r\n if (info.version > CurrentVersion) {\r\n throw new Error(`Unsupported babylon environment map version \"${info.version}\". Latest supported version is \"${CurrentVersion}\".`);\r\n }\r\n\r\n if (info.version === 2) {\r\n return info;\r\n }\r\n\r\n // Migrate a v1 info to v2\r\n info = { ...info, version: 2, imageType: DefaultEnvironmentTextureImageType };\r\n\r\n return info;\r\n}\r\n\r\n/**\r\n * Creates an environment texture from a loaded cube texture.\r\n * @param texture defines the cube texture to convert in env file\r\n * @param options options for the conversion process\r\n * @param options.imageType the mime type for the encoded images, with support for \"image/png\" (default) and \"image/webp\"\r\n * @param options.imageQuality the image quality of encoded WebP images.\r\n * @returns a promise containing the environment data if successful.\r\n */\r\nexport async function CreateEnvTextureAsync(texture: BaseTexture, options: CreateEnvTextureOptions = {}): Promise<ArrayBuffer> {\r\n const internalTexture = texture.getInternalTexture();\r\n if (!internalTexture) {\r\n return Promise.reject(\"The cube texture is invalid.\");\r\n }\r\n\r\n const imageType = options.imageType ?? DefaultEnvironmentTextureImageType;\r\n\r\n const engine = internalTexture.getEngine() as Engine;\r\n\r\n if (\r\n texture.textureType !== Constants.TEXTURETYPE_HALF_FLOAT &&\r\n texture.textureType !== Constants.TEXTURETYPE_FLOAT &&\r\n texture.textureType !== Constants.TEXTURETYPE_UNSIGNED_BYTE &&\r\n texture.textureType !== Constants.TEXTURETYPE_UNSIGNED_INT &&\r\n texture.textureType !== Constants.TEXTURETYPE_UNSIGNED_INTEGER &&\r\n texture.textureType !== -1\r\n ) {\r\n return Promise.reject(\"The cube texture should allow HDR (Full Float or Half Float).\");\r\n }\r\n\r\n let textureType = Constants.TEXTURETYPE_FLOAT;\r\n if (!engine.getCaps().textureFloatRender) {\r\n textureType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n if (!engine.getCaps().textureHalfFloatRender) {\r\n return Promise.reject(\"Env texture can only be created when the browser supports half float or full float rendering.\");\r\n }\r\n }\r\n\r\n const cubeWidth = internalTexture.width;\r\n const hostingScene = new Scene(engine);\r\n const specularTextures: { [key: number]: ArrayBuffer } = {};\r\n\r\n // As we are going to readPixels the faces of the cube, make sure the drawing/update commands for the cube texture are fully sent to the GPU in case it is drawn for the first time in this very frame!\r\n engine.flushFramebuffer();\r\n\r\n // Read and collect all mipmaps data from the cube.\r\n const mipmapsCount = Scalar.ILog2(internalTexture.width);\r\n for (let i = 0; i <= mipmapsCount; i++) {\r\n const faceWidth = Math.pow(2, mipmapsCount - i);\r\n\r\n // All faces of the cube.\r\n for (let face = 0; face < 6; face++) {\r\n let faceData = await texture.readPixels(face, i, undefined, false);\r\n if (faceData && faceData.byteLength === (faceData as Uint8Array).length) {\r\n const faceDataFloat = new Float32Array(faceData!.byteLength * 4);\r\n for (let i = 0; i < faceData.byteLength; i++) {\r\n faceDataFloat[i] = (faceData as Uint8Array)[i] / 255;\r\n // Gamma to linear\r\n faceDataFloat[i] = Math.pow(faceDataFloat[i], 2.2);\r\n }\r\n faceData = faceDataFloat;\r\n }\r\n\r\n const tempTexture = engine.createRawTexture(\r\n faceData,\r\n faceWidth,\r\n faceWidth,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n false,\r\n true,\r\n Constants.TEXTURE_NEAREST_SAMPLINGMODE,\r\n null,\r\n textureType\r\n );\r\n\r\n await RGBDTextureTools.EncodeTextureToRGBD(tempTexture, hostingScene, textureType);\r\n\r\n const rgbdEncodedData = await engine._readTexturePixels(tempTexture, faceWidth, faceWidth);\r\n\r\n const imageEncodedData = await Tools.DumpDataAsync(faceWidth, faceWidth, rgbdEncodedData, imageType, undefined, false, true, options.imageQuality);\r\n\r\n specularTextures[i * 6 + face] = imageEncodedData as ArrayBuffer;\r\n\r\n tempTexture.dispose();\r\n }\r\n }\r\n\r\n // We can delete the hosting scene keeping track of all the creation objects\r\n hostingScene.dispose();\r\n\r\n // Creates the json header for the env texture\r\n const info: EnvironmentTextureInfo = {\r\n version: CurrentVersion,\r\n width: cubeWidth,\r\n imageType,\r\n irradiance: _CreateEnvTextureIrradiance(texture),\r\n specular: {\r\n mipmaps: [],\r\n lodGenerationScale: texture.lodGenerationScale,\r\n },\r\n };\r\n\r\n // Sets the specular image data information\r\n let position = 0;\r\n for (let i = 0; i <= mipmapsCount; i++) {\r\n for (let face = 0; face < 6; face++) {\r\n const byteLength = specularTextures[i * 6 + face].byteLength;\r\n info.specular.mipmaps.push({\r\n length: byteLength,\r\n position: position,\r\n });\r\n position += byteLength;\r\n }\r\n }\r\n\r\n // Encode the JSON as an array buffer\r\n const infoString = JSON.stringify(info);\r\n const infoBuffer = new ArrayBuffer(infoString.length + 1);\r\n const infoView = new Uint8Array(infoBuffer); // Limited to ascii subset matching unicode.\r\n for (let i = 0, strLen = infoString.length; i < strLen; i++) {\r\n infoView[i] = infoString.charCodeAt(i);\r\n }\r\n // Ends up with a null terminator for easier parsing\r\n infoView[infoString.length] = 0x00;\r\n\r\n // Computes the final required size and creates the storage\r\n const totalSize = MagicBytes.length + position + infoBuffer.byteLength;\r\n const finalBuffer = new ArrayBuffer(totalSize);\r\n const finalBufferView = new Uint8Array(finalBuffer);\r\n const dataView = new DataView(finalBuffer);\r\n\r\n // Copy the magic bytes identifying the file in\r\n let pos = 0;\r\n for (let i = 0; i < MagicBytes.length; i++) {\r\n dataView.setUint8(pos++, MagicBytes[i]);\r\n }\r\n\r\n // Add the json info\r\n finalBufferView.set(new Uint8Array(infoBuffer), pos);\r\n pos += infoBuffer.byteLength;\r\n\r\n // Finally inserts the texture data\r\n for (let i = 0; i <= mipmapsCount; i++) {\r\n for (let face = 0; face < 6; face++) {\r\n const dataBuffer = specularTextures[i * 6 + face];\r\n finalBufferView.set(new Uint8Array(dataBuffer), pos);\r\n pos += dataBuffer.byteLength;\r\n }\r\n }\r\n\r\n // Voila\r\n return finalBuffer;\r\n}\r\n\r\n/**\r\n * Creates a JSON representation of the spherical data.\r\n * @param texture defines the texture containing the polynomials\r\n * @returns the JSON representation of the spherical info\r\n */\r\nfunction _CreateEnvTextureIrradiance(texture: BaseTexture): Nullable<EnvironmentTextureIrradianceInfoV1> {\r\n const polynmials = texture.sphericalPolynomial;\r\n if (polynmials == null) {\r\n return null;\r\n }\r\n\r\n return {\r\n x: [polynmials.x.x, polynmials.x.y, polynmials.x.z],\r\n y: [polynmials.y.x, polynmials.y.y, polynmials.y.z],\r\n z: [polynmials.z.x, polynmials.z.y, polynmials.z.z],\r\n\r\n xx: [polynmials.xx.x, polynmials.xx.y, polynmials.xx.z],\r\n yy: [polynmials.yy.x, polynmials.yy.y, polynmials.yy.z],\r\n zz: [polynmials.zz.x, polynmials.zz.y, polynmials.zz.z],\r\n\r\n yz: [polynmials.yz.x, polynmials.yz.y, polynmials.yz.z],\r\n zx: [polynmials.zx.x, polynmials.zx.y, polynmials.zx.z],\r\n xy: [polynmials.xy.x, polynmials.xy.y, polynmials.xy.z],\r\n } as any;\r\n}\r\n\r\n/**\r\n * Creates the ArrayBufferViews used for initializing environment texture image data.\r\n * @param data the image data\r\n * @param info parameters that determine what views will be created for accessing the underlying buffer\r\n * @returns the views described by info providing access to the underlying buffer\r\n */\r\nexport function CreateImageDataArrayBufferViews(data: ArrayBufferView, info: EnvironmentTextureInfo): Array<Array<ArrayBufferView>> {\r\n info = normalizeEnvInfo(info);\r\n\r\n const specularInfo = info.specular as EnvironmentTextureSpecularInfoV1;\r\n\r\n // Double checks the enclosed info\r\n let mipmapsCount = Scalar.Log2(info.width);\r\n mipmapsCount = Math.round(mipmapsCount) + 1;\r\n if (specularInfo.mipmaps.length !== 6 * mipmapsCount) {\r\n throw new Error(`Unsupported specular mipmaps number \"${specularInfo.mipmaps.length}\"`);\r\n }\r\n\r\n const imageData = new Array<Array<ArrayBufferView>>(mipmapsCount);\r\n for (let i = 0; i < mipmapsCount; i++) {\r\n imageData[i] = new Array<ArrayBufferView>(6);\r\n for (let face = 0; face < 6; face++) {\r\n const imageInfo = specularInfo.mipmaps[i * 6 + face];\r\n imageData[i][face] = new Uint8Array(data.buffer, data.byteOffset + specularInfo.specularDataPosition! + imageInfo.position, imageInfo.length);\r\n }\r\n }\r\n\r\n return imageData;\r\n}\r\n\r\n/**\r\n * Uploads the texture info contained in the env file to the GPU.\r\n * @param texture defines the internal texture to upload to\r\n * @param data defines the data to load\r\n * @param info defines the texture info retrieved through the GetEnvInfo method\r\n * @returns a promise\r\n */\r\nexport function UploadEnvLevelsAsync(texture: InternalTexture, data: ArrayBufferView, info: EnvironmentTextureInfo): Promise<void> {\r\n info = normalizeEnvInfo(info);\r\n\r\n const specularInfo = info.specular as EnvironmentTextureSpecularInfoV1;\r\n if (!specularInfo) {\r\n // Nothing else parsed so far\r\n return Promise.resolve();\r\n }\r\n\r\n texture._lodGenerationScale = specularInfo.lodGenerationScale;\r\n\r\n const imageData = CreateImageDataArrayBufferViews(data, info);\r\n\r\n return UploadLevelsAsync(texture, imageData, info.imageType);\r\n}\r\n\r\nfunction _OnImageReadyAsync(\r\n image: HTMLImageElement | ImageBitmap,\r\n engine: Engine,\r\n expandTexture: boolean,\r\n rgbdPostProcess: Nullable<PostProcess>,\r\n url: string,\r\n face: number,\r\n i: number,\r\n generateNonLODTextures: boolean,\r\n lodTextures: Nullable<{ [lod: number]: BaseTexture }>,\r\n cubeRtt: Nullable<RenderTargetWrapper>,\r\n texture: InternalTexture\r\n): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (expandTexture) {\r\n const tempTexture = engine.createTexture(\r\n null,\r\n true,\r\n true,\r\n null,\r\n Constants.TEXTURE_NEAREST_SAMPLINGMODE,\r\n null,\r\n (message) => {\r\n reject(message);\r\n },\r\n image\r\n );\r\n\r\n rgbdPostProcess!.getEffect().executeWhenCompiled(() => {\r\n // Uncompress the data to a RTT\r\n rgbdPostProcess!.externalTextureSamplerBinding = true;\r\n rgbdPostProcess!.onApply = (effect) => {\r\n effect._bindTexture(\"textureSampler\", tempTexture);\r\n effect.setFloat2(\"scale\", 1, engine._features.needsInvertingBitmap && image instanceof ImageBitmap ? -1 : 1);\r\n };\r\n\r\n if (!engine.scenes.length) {\r\n return;\r\n }\r\n\r\n engine.scenes[0].postProcessManager.directRender([rgbdPostProcess!], cubeRtt, true, face, i);\r\n\r\n // Cleanup\r\n engine.restoreDefaultFramebuffer();\r\n tempTexture.dispose();\r\n URL.revokeObjectURL(url);\r\n resolve();\r\n });\r\n } else {\r\n engine._uploadImageToTexture(texture, image, face, i);\r\n\r\n // Upload the face to the non lod texture support\r\n if (generateNonLODTextures) {\r\n const lodTexture = lodTextures![i];\r\n if (lodTexture) {\r\n engine._uploadImageToTexture(lodTexture._texture!, image, face, 0);\r\n }\r\n }\r\n resolve();\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Uploads the levels of image data to the GPU.\r\n * @param texture defines the internal texture to upload to\r\n * @param imageData defines the array buffer views of image data [mipmap][face]\r\n * @param imageType the mime type of the image data\r\n * @returns a promise\r\n */\r\nexport function UploadLevelsAsync(texture: InternalTexture, imageData: ArrayBufferView[][], imageType: string = DefaultEnvironmentTextureImageType): Promise<void> {\r\n if (!Tools.IsExponentOfTwo(texture.width)) {\r\n throw new Error(\"Texture size must be a power of two\");\r\n }\r\n\r\n const mipmapsCount = Scalar.ILog2(texture.width) + 1;\r\n\r\n // Gets everything ready.\r\n const engine = texture.getEngine() as Engine;\r\n let expandTexture = false;\r\n let generateNonLODTextures = false;\r\n let rgbdPostProcess: Nullable<PostProcess> = null;\r\n let cubeRtt: Nullable<RenderTargetWrapper> = null;\r\n let lodTextures: Nullable<{ [lod: number]: BaseTexture }> = null;\r\n const caps = engine.getCaps();\r\n\r\n texture.format = Constants.TEXTUREFORMAT_RGBA;\r\n texture.type = Constants.TEXTURETYPE_UNSIGNED_INT;\r\n texture.generateMipMaps = true;\r\n texture._cachedAnisotropicFilteringLevel = null;\r\n engine.updateTextureSamplingMode(Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, texture);\r\n\r\n // Add extra process if texture lod is not supported\r\n if (!caps.textureLOD) {\r\n expandTexture = false;\r\n generateNonLODTextures = true;\r\n lodTextures = {};\r\n }\r\n // in webgl 1 there are no ways to either render or copy lod level information for float textures.\r\n else if (!engine._features.supportRenderAndCopyToLodForFloatTextures) {\r\n expandTexture = false;\r\n }\r\n // If half float available we can uncompress the texture\r\n else if (caps.textureHalfFloatRender && caps.textureHalfFloatLinearFiltering) {\r\n expandTexture = true;\r\n texture.type = Constants.TEXTURETYPE_HALF_FLOAT;\r\n }\r\n // If full float available we can uncompress the texture\r\n else if (caps.textureFloatRender && caps.textureFloatLinearFiltering) {\r\n expandTexture = true;\r\n texture.type = Constants.TEXTURETYPE_FLOAT;\r\n }\r\n\r\n // Expand the texture if possible\r\n if (expandTexture) {\r\n // Simply run through the decode PP\r\n rgbdPostProcess = new PostProcess(\r\n \"rgbdDecode\",\r\n \"rgbdDecode\",\r\n null,\r\n null,\r\n 1,\r\n null,\r\n Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n engine,\r\n false,\r\n undefined,\r\n texture.type,\r\n undefined,\r\n null,\r\n false\r\n );\r\n\r\n texture._isRGBD = false;\r\n texture.invertY = false;\r\n cubeRtt = engine.createRenderTargetCubeTexture(texture.width, {\r\n generateDepthBuffer: false,\r\n generateMipMaps: true,\r\n generateStencilBuffer: false,\r\n samplingMode: Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: texture.type,\r\n format: Constants.TEXTUREFORMAT_RGBA,\r\n });\r\n } else {\r\n texture._isRGBD = true;\r\n texture.invertY = true;\r\n\r\n // In case of missing support, applies the same patch than DDS files.\r\n if (generateNonLODTextures) {\r\n const mipSlices = 3;\r\n const scale = texture._lodGenerationScale;\r\n const offset = texture._lodGenerationOffset;\r\n\r\n for (let i = 0; i < mipSlices; i++) {\r\n //compute LOD from even spacing in smoothness (matching shader calculation)\r\n const smoothness = i / (mipSlices - 1);\r\n const roughness = 1 - smoothness;\r\n\r\n const minLODIndex = offset; // roughness = 0\r\n const maxLODIndex = (mipmapsCount - 1) * scale + offset; // roughness = 1 (mipmaps start from 0)\r\n\r\n const lodIndex = minLODIndex + (maxLODIndex - minLODIndex) * roughness;\r\n const mipmapIndex = Math.round(Math.min(Math.max(lodIndex, 0), maxLODIndex));\r\n\r\n const glTextureFromLod = new InternalTexture(engine, InternalTextureSource.Temp);\r\n glTextureFromLod.isCube = true;\r\n glTextureFromLod.invertY = true;\r\n glTextureFromLod.generateMipMaps = false;\r\n engine.updateTextureSamplingMode(Constants.TEXTURE_LINEAR_LINEAR, glTextureFromLod);\r\n\r\n // Wrap in a base texture for easy binding.\r\n const lodTexture = new BaseTexture(null);\r\n lodTexture._isCube = true;\r\n lodTexture._texture = glTextureFromLod;\r\n lodTextures![mipmapIndex] = lodTexture;\r\n\r\n switch (i) {\r\n case 0:\r\n texture._lodTextureLow = lodTexture;\r\n break;\r\n case 1:\r\n texture._lodTextureMid = lodTexture;\r\n break;\r\n case 2:\r\n texture._lodTextureHigh = lodTexture;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const promises: Promise<void>[] = [];\r\n // All mipmaps up to provided number of images\r\n for (let i = 0; i < imageData.length; i++) {\r\n // All faces\r\n for (let face = 0; face < 6; face++) {\r\n // Constructs an image element from image data\r\n const bytes = imageData[i][face];\r\n const blob = new Blob([bytes], { type: imageType });\r\n const url = URL.createObjectURL(blob);\r\n let promise: Promise<void>;\r\n\r\n if (typeof Image === \"undefined\" || engine._features.forceBitmapOverHTMLImageElement) {\r\n promise = engine.createImageBitmap(blob, { premultiplyAlpha: \"none\" }).then((img) => {\r\n return _OnImageReadyAsync(img, engine, expandTexture, rgbdPostProcess, url, face, i, generateNonLODTextures, lodTextures, cubeRtt, texture);\r\n });\r\n } else {\r\n const image = new Image();\r\n image.src = url;\r\n\r\n // Enqueue promise to upload to the texture.\r\n promise = new Promise<void>((resolve, reject) => {\r\n image.onload = () => {\r\n _OnImageReadyAsync(image, engine, expandTexture, rgbdPostProcess, url, face, i, generateNonLODTextures, lodTextures, cubeRtt, texture)\r\n .then(() => resolve())\r\n .catch((reason) => {\r\n reject(reason);\r\n });\r\n };\r\n image.onerror = (error) => {\r\n reject(error);\r\n };\r\n });\r\n }\r\n promises.push(promise);\r\n }\r\n }\r\n\r\n // Fill remaining mipmaps with black textures.\r\n if (imageData.length < mipmapsCount) {\r\n let data: ArrayBufferView;\r\n const size = Math.pow(2, mipmapsCount - 1 - imageData.length);\r\n const dataLength = size * size * 4;\r\n switch (texture.type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_INT: {\r\n data = new Uint8Array(dataLength);\r\n break;\r\n }\r\n case Constants.TEXTURETYPE_HALF_FLOAT: {\r\n data = new Uint16Array(dataLength);\r\n break;\r\n }\r\n case Constants.TEXTURETYPE_FLOAT: {\r\n data = new Float32Array(dataLength);\r\n break;\r\n }\r\n }\r\n for (let i = imageData.length; i < mipmapsCount; i++) {\r\n for (let face = 0; face < 6; face++) {\r\n engine._uploadArrayBufferViewToTexture(texture, data!, face, i);\r\n }\r\n }\r\n }\r\n\r\n // Once all done, finishes the cleanup and return\r\n return Promise.all(promises).then(() => {\r\n // Release temp RTT.\r\n if (cubeRtt) {\r\n engine._releaseTexture(texture);\r\n cubeRtt._swapAndDie(texture);\r\n }\r\n // Release temp Post Process.\r\n if (rgbdPostProcess) {\r\n rgbdPostProcess.dispose();\r\n }\r\n // Flag internal texture as ready in case they are in use.\r\n if (generateNonLODTextures) {\r\n if (texture._lodTextureHigh && texture._lodTextureHigh._texture) {\r\n texture._lodTextureHigh._texture.isReady = true;\r\n }\r\n if (texture._lodTextureMid && texture._lodTextureMid._texture) {\r\n texture._lodTextureMid._texture.isReady = true;\r\n }\r\n if (texture._lodTextureLow && texture._lodTextureLow._texture) {\r\n texture._lodTextureLow._texture.isReady = true;\r\n }\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Uploads spherical polynomials information to the texture.\r\n * @param texture defines the texture we are trying to upload the information to\r\n * @param info defines the environment texture info retrieved through the GetEnvInfo method\r\n */\r\nexport function UploadEnvSpherical(texture: InternalTexture, info: EnvironmentTextureInfo): void {\r\n info = normalizeEnvInfo(info);\r\n\r\n const irradianceInfo = info.irradiance as EnvironmentTextureIrradianceInfoV1;\r\n if (!irradianceInfo) {\r\n return;\r\n }\r\n\r\n const sp = new SphericalPolynomial();\r\n Vector3.FromArrayToRef(irradianceInfo.x, 0, sp.x);\r\n Vector3.FromArrayToRef(irradianceInfo.y, 0, sp.y);\r\n Vector3.FromArrayToRef(irradianceInfo.z, 0, sp.z);\r\n Vector3.FromArrayToRef(irradianceInfo.xx, 0, sp.xx);\r\n Vector3.FromArrayToRef(irradianceInfo.yy, 0, sp.yy);\r\n Vector3.FromArrayToRef(irradianceInfo.zz, 0, sp.zz);\r\n Vector3.FromArrayToRef(irradianceInfo.yz, 0, sp.yz);\r\n Vector3.FromArrayToRef(irradianceInfo.zx, 0, sp.zx);\r\n Vector3.FromArrayToRef(irradianceInfo.xy, 0, sp.xy);\r\n texture._sphericalPolynomial = sp;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function _UpdateRGBDAsync(\r\n internalTexture: InternalTexture,\r\n data: ArrayBufferView[][],\r\n sphericalPolynomial: Nullable<SphericalPolynomial>,\r\n lodScale: number,\r\n lodOffset: number\r\n): Promise<InternalTexture> {\r\n const proxy = internalTexture\r\n .getEngine()\r\n .createRawCubeTexture(\r\n null,\r\n internalTexture.width,\r\n internalTexture.format,\r\n internalTexture.type,\r\n internalTexture.generateMipMaps,\r\n internalTexture.invertY,\r\n internalTexture.samplingMode,\r\n internalTexture._compression\r\n );\r\n const proxyPromise = UploadLevelsAsync(proxy, data).then(() => internalTexture);\r\n internalTexture.onRebuildCallback = (_internalTexture) => {\r\n return {\r\n proxy: proxyPromise,\r\n isReady: true,\r\n isAsync: true,\r\n };\r\n };\r\n internalTexture._source = InternalTextureSource.CubeRawRGBD;\r\n internalTexture._bufferViewArrayArray = data;\r\n internalTexture._lodGenerationScale = lodScale;\r\n internalTexture._lodGenerationOffset = lodOffset;\r\n internalTexture._sphericalPolynomial = sphericalPolynomial;\r\n\r\n return UploadLevelsAsync(internalTexture, data).then(() => {\r\n internalTexture.isReady = true;\r\n return internalTexture;\r\n });\r\n}\r\n\r\n/**\r\n * Sets of helpers addressing the serialization and deserialization of environment texture\r\n * stored in a BabylonJS env file.\r\n * Those files are usually stored as .env files.\r\n */\r\nexport const EnvironmentTextureTools = {\r\n /**\r\n * Gets the environment info from an env file.\r\n * @param data The array buffer containing the .env bytes.\r\n * @returns the environment file info (the json header) if successfully parsed, normalized to the latest supported version.\r\n */\r\n GetEnvInfo,\r\n\r\n /**\r\n * Creates an environment texture from a loaded cube texture.\r\n * @param texture defines the cube texture to convert in env file\r\n * @param options options for the conversion process\r\n * @param options.imageType the mime type for the encoded images, with support for \"image/png\" (default) and \"image/webp\"\r\n * @param options.imageQuality the image quality of encoded WebP images.\r\n * @returns a promise containing the environment data if successful.\r\n */\r\n CreateEnvTextureAsync,\r\n\r\n /**\r\n * Creates the ArrayBufferViews used for initializing environment texture image data.\r\n * @param data the image data\r\n * @param info parameters that determine what views will be created for accessing the underlying buffer\r\n * @returns the views described by info providing access to the underlying buffer\r\n */\r\n CreateImageDataArrayBufferViews,\r\n\r\n /**\r\n * Uploads the texture info contained in the env file to the GPU.\r\n * @param texture defines the internal texture to upload to\r\n * @param data defines the data to load\r\n * @param info defines the texture info retrieved through the GetEnvInfo method\r\n * @returns a promise\r\n */\r\n UploadEnvLevelsAsync,\r\n\r\n /**\r\n * Uploads the levels of image data to the GPU.\r\n * @param texture defines the internal texture to upload to\r\n * @param imageData defines the array buffer views of image data [mipmap][face]\r\n * @param imageType the mime type of the image data\r\n * @returns a promise\r\n */\r\n UploadLevelsAsync,\r\n\r\n /**\r\n * Uploads spherical polynomials information to the texture.\r\n * @param texture defines the texture we are trying to upload the information to\r\n * @param info defines the environment texture info retrieved through the GetEnvInfo method\r\n */\r\n UploadEnvSpherical,\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"environmentTextureTools.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Misc/environmentTextureTools.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"../types\";\r\nimport { Tools } from \"./tools\";\r\nimport { Vector3 } from \"../Maths/math.vector\";\r\nimport { Scalar } from \"../Maths/math.scalar\";\r\nimport { SphericalPolynomial } from \"../Maths/sphericalPolynomial\";\r\nimport { InternalTexture, InternalTextureSource } from \"../Materials/Textures/internalTexture\";\r\nimport { BaseTexture } from \"../Materials/Textures/baseTexture\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport { Scene } from \"../scene\";\r\nimport { PostProcess } from \"../PostProcesses/postProcess\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport type { Engine } from \"../Engines/engine\";\r\nimport { RGBDTextureTools } from \"./rgbdTextureTools\";\r\nimport type { RenderTargetWrapper } from \"../Engines/renderTargetWrapper\";\r\n\r\nimport \"../Engines/Extensions/engine.renderTargetCube\";\r\nimport \"../Engines/Extensions/engine.readTexture\";\r\nimport \"../Materials/Textures/baseTexture.polynomial\";\r\n\r\nimport \"../Shaders/rgbdEncode.fragment\";\r\nimport \"../Shaders/rgbdDecode.fragment\";\r\nimport { DumpTools } from \"../Misc/dumpTools\";\r\n\r\nconst DefaultEnvironmentTextureImageType = \"image/png\";\r\nconst CurrentVersion = 2;\r\n\r\n/**\r\n * Raw texture data and descriptor sufficient for WebGL texture upload\r\n */\r\nexport type EnvironmentTextureInfo = EnvironmentTextureInfoV1 | EnvironmentTextureInfoV2;\r\n\r\n/**\r\n * v1 of EnvironmentTextureInfo\r\n */\r\ninterface EnvironmentTextureInfoV1 {\r\n /**\r\n * Version of the environment map\r\n */\r\n version: 1;\r\n\r\n /**\r\n * Width of image\r\n */\r\n width: number;\r\n\r\n /**\r\n * Irradiance information stored in the file.\r\n */\r\n irradiance: any;\r\n\r\n /**\r\n * Specular information stored in the file.\r\n */\r\n specular: any;\r\n}\r\n\r\n/**\r\n * v2 of EnvironmentTextureInfo\r\n */\r\ninterface EnvironmentTextureInfoV2 {\r\n /**\r\n * Version of the environment map\r\n */\r\n version: 2;\r\n\r\n /**\r\n * Width of image\r\n */\r\n width: number;\r\n\r\n /**\r\n * Irradiance information stored in the file.\r\n */\r\n irradiance: any;\r\n\r\n /**\r\n * Specular information stored in the file.\r\n */\r\n specular: any;\r\n\r\n /**\r\n * The mime type used to encode the image data.\r\n */\r\n imageType: string;\r\n}\r\n\r\n/**\r\n * Defines One Image in the file. It requires only the position in the file\r\n * as well as the length.\r\n */\r\ninterface BufferImageData {\r\n /**\r\n * Length of the image data.\r\n */\r\n length: number;\r\n /**\r\n * Position of the data from the null terminator delimiting the end of the JSON.\r\n */\r\n position: number;\r\n}\r\n\r\n/**\r\n * Defines the specular data enclosed in the file.\r\n * This corresponds to the version 1 of the data.\r\n */\r\nexport interface EnvironmentTextureSpecularInfoV1 {\r\n /**\r\n * Defines where the specular Payload is located. It is a runtime value only not stored in the file.\r\n */\r\n specularDataPosition?: number;\r\n /**\r\n * This contains all the images data needed to reconstruct the cubemap.\r\n */\r\n mipmaps: Array<BufferImageData>;\r\n /**\r\n * Defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness.\r\n */\r\n lodGenerationScale: number;\r\n}\r\n\r\n/**\r\n * Defines the required storage to save the environment irradiance information.\r\n */\r\ninterface EnvironmentTextureIrradianceInfoV1 {\r\n x: Array<number>;\r\n y: Array<number>;\r\n z: Array<number>;\r\n\r\n xx: Array<number>;\r\n yy: Array<number>;\r\n zz: Array<number>;\r\n\r\n yz: Array<number>;\r\n zx: Array<number>;\r\n xy: Array<number>;\r\n}\r\n\r\n/**\r\n * Options for creating environment textures\r\n */\r\nexport interface CreateEnvTextureOptions {\r\n /**\r\n * The mime type of encoded images.\r\n */\r\n imageType?: string;\r\n\r\n /**\r\n * the image quality of encoded WebP images.\r\n */\r\n imageQuality?: number;\r\n}\r\n\r\n/**\r\n * Magic number identifying the env file.\r\n */\r\nconst MagicBytes = [0x86, 0x16, 0x87, 0x96, 0xf6, 0xd6, 0x96, 0x36];\r\n\r\n/**\r\n * Gets the environment info from an env file.\r\n * @param data The array buffer containing the .env bytes.\r\n * @returns the environment file info (the json header) if successfully parsed, normalized to the latest supported version.\r\n */\r\nexport function GetEnvInfo(data: ArrayBufferView): Nullable<EnvironmentTextureInfoV2> {\r\n const dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\r\n let pos = 0;\r\n\r\n for (let i = 0; i < MagicBytes.length; i++) {\r\n if (dataView.getUint8(pos++) !== MagicBytes[i]) {\r\n Logger.Error(\"Not a babylon environment map\");\r\n return null;\r\n }\r\n }\r\n\r\n // Read json manifest - collect characters up to null terminator\r\n let manifestString = \"\";\r\n let charCode = 0x00;\r\n while ((charCode = dataView.getUint8(pos++))) {\r\n manifestString += String.fromCharCode(charCode);\r\n }\r\n\r\n let manifest: EnvironmentTextureInfo = JSON.parse(manifestString);\r\n manifest = normalizeEnvInfo(manifest);\r\n if (manifest.specular) {\r\n // Extend the header with the position of the payload.\r\n manifest.specular.specularDataPosition = pos;\r\n // Fallback to 0.8 exactly if lodGenerationScale is not defined for backward compatibility.\r\n manifest.specular.lodGenerationScale = manifest.specular.lodGenerationScale || 0.8;\r\n }\r\n\r\n return manifest;\r\n}\r\n\r\n/**\r\n * Normalizes any supported version of the environment file info to the latest version\r\n * @param info environment file info on any supported version\r\n * @returns environment file info in the latest supported version\r\n * @private\r\n */\r\nexport function normalizeEnvInfo(info: EnvironmentTextureInfo): EnvironmentTextureInfoV2 {\r\n if (info.version > CurrentVersion) {\r\n throw new Error(`Unsupported babylon environment map version \"${info.version}\". Latest supported version is \"${CurrentVersion}\".`);\r\n }\r\n\r\n if (info.version === 2) {\r\n return info;\r\n }\r\n\r\n // Migrate a v1 info to v2\r\n info = { ...info, version: 2, imageType: DefaultEnvironmentTextureImageType };\r\n\r\n return info;\r\n}\r\n\r\n/**\r\n * Creates an environment texture from a loaded cube texture.\r\n * @param texture defines the cube texture to convert in env file\r\n * @param options options for the conversion process\r\n * @param options.imageType the mime type for the encoded images, with support for \"image/png\" (default) and \"image/webp\"\r\n * @param options.imageQuality the image quality of encoded WebP images.\r\n * @returns a promise containing the environment data if successful.\r\n */\r\nexport async function CreateEnvTextureAsync(texture: BaseTexture, options: CreateEnvTextureOptions = {}): Promise<ArrayBuffer> {\r\n const internalTexture = texture.getInternalTexture();\r\n if (!internalTexture) {\r\n return Promise.reject(\"The cube texture is invalid.\");\r\n }\r\n\r\n const imageType = options.imageType ?? DefaultEnvironmentTextureImageType;\r\n\r\n const engine = internalTexture.getEngine() as Engine;\r\n\r\n if (\r\n texture.textureType !== Constants.TEXTURETYPE_HALF_FLOAT &&\r\n texture.textureType !== Constants.TEXTURETYPE_FLOAT &&\r\n texture.textureType !== Constants.TEXTURETYPE_UNSIGNED_BYTE &&\r\n texture.textureType !== Constants.TEXTURETYPE_UNSIGNED_INT &&\r\n texture.textureType !== Constants.TEXTURETYPE_UNSIGNED_INTEGER &&\r\n texture.textureType !== -1\r\n ) {\r\n return Promise.reject(\"The cube texture should allow HDR (Full Float or Half Float).\");\r\n }\r\n\r\n let textureType = Constants.TEXTURETYPE_FLOAT;\r\n if (!engine.getCaps().textureFloatRender) {\r\n textureType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n if (!engine.getCaps().textureHalfFloatRender) {\r\n return Promise.reject(\"Env texture can only be created when the browser supports half float or full float rendering.\");\r\n }\r\n }\r\n\r\n const cubeWidth = internalTexture.width;\r\n const hostingScene = new Scene(engine);\r\n const specularTextures: { [key: number]: ArrayBuffer } = {};\r\n\r\n // As we are going to readPixels the faces of the cube, make sure the drawing/update commands for the cube texture are fully sent to the GPU in case it is drawn for the first time in this very frame!\r\n engine.flushFramebuffer();\r\n\r\n // Read and collect all mipmaps data from the cube.\r\n const mipmapsCount = Scalar.ILog2(internalTexture.width);\r\n for (let i = 0; i <= mipmapsCount; i++) {\r\n const faceWidth = Math.pow(2, mipmapsCount - i);\r\n\r\n // All faces of the cube.\r\n for (let face = 0; face < 6; face++) {\r\n let faceData = await texture.readPixels(face, i, undefined, false);\r\n if (faceData && faceData.byteLength === (faceData as Uint8Array).length) {\r\n const faceDataFloat = new Float32Array(faceData!.byteLength * 4);\r\n for (let i = 0; i < faceData.byteLength; i++) {\r\n faceDataFloat[i] = (faceData as Uint8Array)[i] / 255;\r\n // Gamma to linear\r\n faceDataFloat[i] = Math.pow(faceDataFloat[i], 2.2);\r\n }\r\n faceData = faceDataFloat;\r\n }\r\n\r\n const tempTexture = engine.createRawTexture(\r\n faceData,\r\n faceWidth,\r\n faceWidth,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n false,\r\n true,\r\n Constants.TEXTURE_NEAREST_SAMPLINGMODE,\r\n null,\r\n textureType\r\n );\r\n\r\n await RGBDTextureTools.EncodeTextureToRGBD(tempTexture, hostingScene, textureType);\r\n\r\n const rgbdEncodedData = await engine._readTexturePixels(tempTexture, faceWidth, faceWidth);\r\n\r\n const imageEncodedData = await DumpTools.DumpDataAsync(faceWidth, faceWidth, rgbdEncodedData, imageType, undefined, false, true, options.imageQuality);\r\n\r\n specularTextures[i * 6 + face] = imageEncodedData as ArrayBuffer;\r\n\r\n tempTexture.dispose();\r\n }\r\n }\r\n\r\n // We can delete the hosting scene keeping track of all the creation objects\r\n hostingScene.dispose();\r\n\r\n // Creates the json header for the env texture\r\n const info: EnvironmentTextureInfo = {\r\n version: CurrentVersion,\r\n width: cubeWidth,\r\n imageType,\r\n irradiance: _CreateEnvTextureIrradiance(texture),\r\n specular: {\r\n mipmaps: [],\r\n lodGenerationScale: texture.lodGenerationScale,\r\n },\r\n };\r\n\r\n // Sets the specular image data information\r\n let position = 0;\r\n for (let i = 0; i <= mipmapsCount; i++) {\r\n for (let face = 0; face < 6; face++) {\r\n const byteLength = specularTextures[i * 6 + face].byteLength;\r\n info.specular.mipmaps.push({\r\n length: byteLength,\r\n position: position,\r\n });\r\n position += byteLength;\r\n }\r\n }\r\n\r\n // Encode the JSON as an array buffer\r\n const infoString = JSON.stringify(info);\r\n const infoBuffer = new ArrayBuffer(infoString.length + 1);\r\n const infoView = new Uint8Array(infoBuffer); // Limited to ascii subset matching unicode.\r\n for (let i = 0, strLen = infoString.length; i < strLen; i++) {\r\n infoView[i] = infoString.charCodeAt(i);\r\n }\r\n // Ends up with a null terminator for easier parsing\r\n infoView[infoString.length] = 0x00;\r\n\r\n // Computes the final required size and creates the storage\r\n const totalSize = MagicBytes.length + position + infoBuffer.byteLength;\r\n const finalBuffer = new ArrayBuffer(totalSize);\r\n const finalBufferView = new Uint8Array(finalBuffer);\r\n const dataView = new DataView(finalBuffer);\r\n\r\n // Copy the magic bytes identifying the file in\r\n let pos = 0;\r\n for (let i = 0; i < MagicBytes.length; i++) {\r\n dataView.setUint8(pos++, MagicBytes[i]);\r\n }\r\n\r\n // Add the json info\r\n finalBufferView.set(new Uint8Array(infoBuffer), pos);\r\n pos += infoBuffer.byteLength;\r\n\r\n // Finally inserts the texture data\r\n for (let i = 0; i <= mipmapsCount; i++) {\r\n for (let face = 0; face < 6; face++) {\r\n const dataBuffer = specularTextures[i * 6 + face];\r\n finalBufferView.set(new Uint8Array(dataBuffer), pos);\r\n pos += dataBuffer.byteLength;\r\n }\r\n }\r\n\r\n // Voila\r\n return finalBuffer;\r\n}\r\n\r\n/**\r\n * Creates a JSON representation of the spherical data.\r\n * @param texture defines the texture containing the polynomials\r\n * @returns the JSON representation of the spherical info\r\n */\r\nfunction _CreateEnvTextureIrradiance(texture: BaseTexture): Nullable<EnvironmentTextureIrradianceInfoV1> {\r\n const polynmials = texture.sphericalPolynomial;\r\n if (polynmials == null) {\r\n return null;\r\n }\r\n\r\n return {\r\n x: [polynmials.x.x, polynmials.x.y, polynmials.x.z],\r\n y: [polynmials.y.x, polynmials.y.y, polynmials.y.z],\r\n z: [polynmials.z.x, polynmials.z.y, polynmials.z.z],\r\n\r\n xx: [polynmials.xx.x, polynmials.xx.y, polynmials.xx.z],\r\n yy: [polynmials.yy.x, polynmials.yy.y, polynmials.yy.z],\r\n zz: [polynmials.zz.x, polynmials.zz.y, polynmials.zz.z],\r\n\r\n yz: [polynmials.yz.x, polynmials.yz.y, polynmials.yz.z],\r\n zx: [polynmials.zx.x, polynmials.zx.y, polynmials.zx.z],\r\n xy: [polynmials.xy.x, polynmials.xy.y, polynmials.xy.z],\r\n } as any;\r\n}\r\n\r\n/**\r\n * Creates the ArrayBufferViews used for initializing environment texture image data.\r\n * @param data the image data\r\n * @param info parameters that determine what views will be created for accessing the underlying buffer\r\n * @returns the views described by info providing access to the underlying buffer\r\n */\r\nexport function CreateImageDataArrayBufferViews(data: ArrayBufferView, info: EnvironmentTextureInfo): Array<Array<ArrayBufferView>> {\r\n info = normalizeEnvInfo(info);\r\n\r\n const specularInfo = info.specular as EnvironmentTextureSpecularInfoV1;\r\n\r\n // Double checks the enclosed info\r\n let mipmapsCount = Scalar.Log2(info.width);\r\n mipmapsCount = Math.round(mipmapsCount) + 1;\r\n if (specularInfo.mipmaps.length !== 6 * mipmapsCount) {\r\n throw new Error(`Unsupported specular mipmaps number \"${specularInfo.mipmaps.length}\"`);\r\n }\r\n\r\n const imageData = new Array<Array<ArrayBufferView>>(mipmapsCount);\r\n for (let i = 0; i < mipmapsCount; i++) {\r\n imageData[i] = new Array<ArrayBufferView>(6);\r\n for (let face = 0; face < 6; face++) {\r\n const imageInfo = specularInfo.mipmaps[i * 6 + face];\r\n imageData[i][face] = new Uint8Array(data.buffer, data.byteOffset + specularInfo.specularDataPosition! + imageInfo.position, imageInfo.length);\r\n }\r\n }\r\n\r\n return imageData;\r\n}\r\n\r\n/**\r\n * Uploads the texture info contained in the env file to the GPU.\r\n * @param texture defines the internal texture to upload to\r\n * @param data defines the data to load\r\n * @param info defines the texture info retrieved through the GetEnvInfo method\r\n * @returns a promise\r\n */\r\nexport function UploadEnvLevelsAsync(texture: InternalTexture, data: ArrayBufferView, info: EnvironmentTextureInfo): Promise<void> {\r\n info = normalizeEnvInfo(info);\r\n\r\n const specularInfo = info.specular as EnvironmentTextureSpecularInfoV1;\r\n if (!specularInfo) {\r\n // Nothing else parsed so far\r\n return Promise.resolve();\r\n }\r\n\r\n texture._lodGenerationScale = specularInfo.lodGenerationScale;\r\n\r\n const imageData = CreateImageDataArrayBufferViews(data, info);\r\n\r\n return UploadLevelsAsync(texture, imageData, info.imageType);\r\n}\r\n\r\nfunction _OnImageReadyAsync(\r\n image: HTMLImageElement | ImageBitmap,\r\n engine: Engine,\r\n expandTexture: boolean,\r\n rgbdPostProcess: Nullable<PostProcess>,\r\n url: string,\r\n face: number,\r\n i: number,\r\n generateNonLODTextures: boolean,\r\n lodTextures: Nullable<{ [lod: number]: BaseTexture }>,\r\n cubeRtt: Nullable<RenderTargetWrapper>,\r\n texture: InternalTexture\r\n): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (expandTexture) {\r\n const tempTexture = engine.createTexture(\r\n null,\r\n true,\r\n true,\r\n null,\r\n Constants.TEXTURE_NEAREST_SAMPLINGMODE,\r\n null,\r\n (message) => {\r\n reject(message);\r\n },\r\n image\r\n );\r\n\r\n rgbdPostProcess!.getEffect().executeWhenCompiled(() => {\r\n // Uncompress the data to a RTT\r\n rgbdPostProcess!.externalTextureSamplerBinding = true;\r\n rgbdPostProcess!.onApply = (effect) => {\r\n effect._bindTexture(\"textureSampler\", tempTexture);\r\n effect.setFloat2(\"scale\", 1, engine._features.needsInvertingBitmap && image instanceof ImageBitmap ? -1 : 1);\r\n };\r\n\r\n if (!engine.scenes.length) {\r\n return;\r\n }\r\n\r\n engine.scenes[0].postProcessManager.directRender([rgbdPostProcess!], cubeRtt, true, face, i);\r\n\r\n // Cleanup\r\n engine.restoreDefaultFramebuffer();\r\n tempTexture.dispose();\r\n URL.revokeObjectURL(url);\r\n resolve();\r\n });\r\n } else {\r\n engine._uploadImageToTexture(texture, image, face, i);\r\n\r\n // Upload the face to the non lod texture support\r\n if (generateNonLODTextures) {\r\n const lodTexture = lodTextures![i];\r\n if (lodTexture) {\r\n engine._uploadImageToTexture(lodTexture._texture!, image, face, 0);\r\n }\r\n }\r\n resolve();\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Uploads the levels of image data to the GPU.\r\n * @param texture defines the internal texture to upload to\r\n * @param imageData defines the array buffer views of image data [mipmap][face]\r\n * @param imageType the mime type of the image data\r\n * @returns a promise\r\n */\r\nexport function UploadLevelsAsync(texture: InternalTexture, imageData: ArrayBufferView[][], imageType: string = DefaultEnvironmentTextureImageType): Promise<void> {\r\n if (!Tools.IsExponentOfTwo(texture.width)) {\r\n throw new Error(\"Texture size must be a power of two\");\r\n }\r\n\r\n const mipmapsCount = Scalar.ILog2(texture.width) + 1;\r\n\r\n // Gets everything ready.\r\n const engine = texture.getEngine() as Engine;\r\n let expandTexture = false;\r\n let generateNonLODTextures = false;\r\n let rgbdPostProcess: Nullable<PostProcess> = null;\r\n let cubeRtt: Nullable<RenderTargetWrapper> = null;\r\n let lodTextures: Nullable<{ [lod: number]: BaseTexture }> = null;\r\n const caps = engine.getCaps();\r\n\r\n texture.format = Constants.TEXTUREFORMAT_RGBA;\r\n texture.type = Constants.TEXTURETYPE_UNSIGNED_INT;\r\n texture.generateMipMaps = true;\r\n texture._cachedAnisotropicFilteringLevel = null;\r\n engine.updateTextureSamplingMode(Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, texture);\r\n\r\n // Add extra process if texture lod is not supported\r\n if (!caps.textureLOD) {\r\n expandTexture = false;\r\n generateNonLODTextures = true;\r\n lodTextures = {};\r\n }\r\n // in webgl 1 there are no ways to either render or copy lod level information for float textures.\r\n else if (!engine._features.supportRenderAndCopyToLodForFloatTextures) {\r\n expandTexture = false;\r\n }\r\n // If half float available we can uncompress the texture\r\n else if (caps.textureHalfFloatRender && caps.textureHalfFloatLinearFiltering) {\r\n expandTexture = true;\r\n texture.type = Constants.TEXTURETYPE_HALF_FLOAT;\r\n }\r\n // If full float available we can uncompress the texture\r\n else if (caps.textureFloatRender && caps.textureFloatLinearFiltering) {\r\n expandTexture = true;\r\n texture.type = Constants.TEXTURETYPE_FLOAT;\r\n }\r\n\r\n // Expand the texture if possible\r\n if (expandTexture) {\r\n // Simply run through the decode PP\r\n rgbdPostProcess = new PostProcess(\r\n \"rgbdDecode\",\r\n \"rgbdDecode\",\r\n null,\r\n null,\r\n 1,\r\n null,\r\n Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n engine,\r\n false,\r\n undefined,\r\n texture.type,\r\n undefined,\r\n null,\r\n false\r\n );\r\n\r\n texture._isRGBD = false;\r\n texture.invertY = false;\r\n cubeRtt = engine.createRenderTargetCubeTexture(texture.width, {\r\n generateDepthBuffer: false,\r\n generateMipMaps: true,\r\n generateStencilBuffer: false,\r\n samplingMode: Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: texture.type,\r\n format: Constants.TEXTUREFORMAT_RGBA,\r\n });\r\n } else {\r\n texture._isRGBD = true;\r\n texture.invertY = true;\r\n\r\n // In case of missing support, applies the same patch than DDS files.\r\n if (generateNonLODTextures) {\r\n const mipSlices = 3;\r\n const scale = texture._lodGenerationScale;\r\n const offset = texture._lodGenerationOffset;\r\n\r\n for (let i = 0; i < mipSlices; i++) {\r\n //compute LOD from even spacing in smoothness (matching shader calculation)\r\n const smoothness = i / (mipSlices - 1);\r\n const roughness = 1 - smoothness;\r\n\r\n const minLODIndex = offset; // roughness = 0\r\n const maxLODIndex = (mipmapsCount - 1) * scale + offset; // roughness = 1 (mipmaps start from 0)\r\n\r\n const lodIndex = minLODIndex + (maxLODIndex - minLODIndex) * roughness;\r\n const mipmapIndex = Math.round(Math.min(Math.max(lodIndex, 0), maxLODIndex));\r\n\r\n const glTextureFromLod = new InternalTexture(engine, InternalTextureSource.Temp);\r\n glTextureFromLod.isCube = true;\r\n glTextureFromLod.invertY = true;\r\n glTextureFromLod.generateMipMaps = false;\r\n engine.updateTextureSamplingMode(Constants.TEXTURE_LINEAR_LINEAR, glTextureFromLod);\r\n\r\n // Wrap in a base texture for easy binding.\r\n const lodTexture = new BaseTexture(null);\r\n lodTexture._isCube = true;\r\n lodTexture._texture = glTextureFromLod;\r\n lodTextures![mipmapIndex] = lodTexture;\r\n\r\n switch (i) {\r\n case 0:\r\n texture._lodTextureLow = lodTexture;\r\n break;\r\n case 1:\r\n texture._lodTextureMid = lodTexture;\r\n break;\r\n case 2:\r\n texture._lodTextureHigh = lodTexture;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const promises: Promise<void>[] = [];\r\n // All mipmaps up to provided number of images\r\n for (let i = 0; i < imageData.length; i++) {\r\n // All faces\r\n for (let face = 0; face < 6; face++) {\r\n // Constructs an image element from image data\r\n const bytes = imageData[i][face];\r\n const blob = new Blob([bytes], { type: imageType });\r\n const url = URL.createObjectURL(blob);\r\n let promise: Promise<void>;\r\n\r\n if (typeof Image === \"undefined\" || engine._features.forceBitmapOverHTMLImageElement) {\r\n promise = engine.createImageBitmap(blob, { premultiplyAlpha: \"none\" }).then((img) => {\r\n return _OnImageReadyAsync(img, engine, expandTexture, rgbdPostProcess, url, face, i, generateNonLODTextures, lodTextures, cubeRtt, texture);\r\n });\r\n } else {\r\n const image = new Image();\r\n image.src = url;\r\n\r\n // Enqueue promise to upload to the texture.\r\n promise = new Promise<void>((resolve, reject) => {\r\n image.onload = () => {\r\n _OnImageReadyAsync(image, engine, expandTexture, rgbdPostProcess, url, face, i, generateNonLODTextures, lodTextures, cubeRtt, texture)\r\n .then(() => resolve())\r\n .catch((reason) => {\r\n reject(reason);\r\n });\r\n };\r\n image.onerror = (error) => {\r\n reject(error);\r\n };\r\n });\r\n }\r\n promises.push(promise);\r\n }\r\n }\r\n\r\n // Fill remaining mipmaps with black textures.\r\n if (imageData.length < mipmapsCount) {\r\n let data: ArrayBufferView;\r\n const size = Math.pow(2, mipmapsCount - 1 - imageData.length);\r\n const dataLength = size * size * 4;\r\n switch (texture.type) {\r\n case Constants.TEXTURETYPE_UNSIGNED_INT: {\r\n data = new Uint8Array(dataLength);\r\n break;\r\n }\r\n case Constants.TEXTURETYPE_HALF_FLOAT: {\r\n data = new Uint16Array(dataLength);\r\n break;\r\n }\r\n case Constants.TEXTURETYPE_FLOAT: {\r\n data = new Float32Array(dataLength);\r\n break;\r\n }\r\n }\r\n for (let i = imageData.length; i < mipmapsCount; i++) {\r\n for (let face = 0; face < 6; face++) {\r\n engine._uploadArrayBufferViewToTexture(texture, data!, face, i);\r\n }\r\n }\r\n }\r\n\r\n // Once all done, finishes the cleanup and return\r\n return Promise.all(promises).then(() => {\r\n // Release temp RTT.\r\n if (cubeRtt) {\r\n engine._releaseTexture(texture);\r\n cubeRtt._swapAndDie(texture);\r\n }\r\n // Release temp Post Process.\r\n if (rgbdPostProcess) {\r\n rgbdPostProcess.dispose();\r\n }\r\n // Flag internal texture as ready in case they are in use.\r\n if (generateNonLODTextures) {\r\n if (texture._lodTextureHigh && texture._lodTextureHigh._texture) {\r\n texture._lodTextureHigh._texture.isReady = true;\r\n }\r\n if (texture._lodTextureMid && texture._lodTextureMid._texture) {\r\n texture._lodTextureMid._texture.isReady = true;\r\n }\r\n if (texture._lodTextureLow && texture._lodTextureLow._texture) {\r\n texture._lodTextureLow._texture.isReady = true;\r\n }\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Uploads spherical polynomials information to the texture.\r\n * @param texture defines the texture we are trying to upload the information to\r\n * @param info defines the environment texture info retrieved through the GetEnvInfo method\r\n */\r\nexport function UploadEnvSpherical(texture: InternalTexture, info: EnvironmentTextureInfo): void {\r\n info = normalizeEnvInfo(info);\r\n\r\n const irradianceInfo = info.irradiance as EnvironmentTextureIrradianceInfoV1;\r\n if (!irradianceInfo) {\r\n return;\r\n }\r\n\r\n const sp = new SphericalPolynomial();\r\n Vector3.FromArrayToRef(irradianceInfo.x, 0, sp.x);\r\n Vector3.FromArrayToRef(irradianceInfo.y, 0, sp.y);\r\n Vector3.FromArrayToRef(irradianceInfo.z, 0, sp.z);\r\n Vector3.FromArrayToRef(irradianceInfo.xx, 0, sp.xx);\r\n Vector3.FromArrayToRef(irradianceInfo.yy, 0, sp.yy);\r\n Vector3.FromArrayToRef(irradianceInfo.zz, 0, sp.zz);\r\n Vector3.FromArrayToRef(irradianceInfo.yz, 0, sp.yz);\r\n Vector3.FromArrayToRef(irradianceInfo.zx, 0, sp.zx);\r\n Vector3.FromArrayToRef(irradianceInfo.xy, 0, sp.xy);\r\n texture._sphericalPolynomial = sp;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function _UpdateRGBDAsync(\r\n internalTexture: InternalTexture,\r\n data: ArrayBufferView[][],\r\n sphericalPolynomial: Nullable<SphericalPolynomial>,\r\n lodScale: number,\r\n lodOffset: number\r\n): Promise<InternalTexture> {\r\n const proxy = internalTexture\r\n .getEngine()\r\n .createRawCubeTexture(\r\n null,\r\n internalTexture.width,\r\n internalTexture.format,\r\n internalTexture.type,\r\n internalTexture.generateMipMaps,\r\n internalTexture.invertY,\r\n internalTexture.samplingMode,\r\n internalTexture._compression\r\n );\r\n const proxyPromise = UploadLevelsAsync(proxy, data).then(() => internalTexture);\r\n internalTexture.onRebuildCallback = (_internalTexture) => {\r\n return {\r\n proxy: proxyPromise,\r\n isReady: true,\r\n isAsync: true,\r\n };\r\n };\r\n internalTexture._source = InternalTextureSource.CubeRawRGBD;\r\n internalTexture._bufferViewArrayArray = data;\r\n internalTexture._lodGenerationScale = lodScale;\r\n internalTexture._lodGenerationOffset = lodOffset;\r\n internalTexture._sphericalPolynomial = sphericalPolynomial;\r\n\r\n return UploadLevelsAsync(internalTexture, data).then(() => {\r\n internalTexture.isReady = true;\r\n return internalTexture;\r\n });\r\n}\r\n\r\n/**\r\n * Sets of helpers addressing the serialization and deserialization of environment texture\r\n * stored in a BabylonJS env file.\r\n * Those files are usually stored as .env files.\r\n */\r\nexport const EnvironmentTextureTools = {\r\n /**\r\n * Gets the environment info from an env file.\r\n * @param data The array buffer containing the .env bytes.\r\n * @returns the environment file info (the json header) if successfully parsed, normalized to the latest supported version.\r\n */\r\n GetEnvInfo,\r\n\r\n /**\r\n * Creates an environment texture from a loaded cube texture.\r\n * @param texture defines the cube texture to convert in env file\r\n * @param options options for the conversion process\r\n * @param options.imageType the mime type for the encoded images, with support for \"image/png\" (default) and \"image/webp\"\r\n * @param options.imageQuality the image quality of encoded WebP images.\r\n * @returns a promise containing the environment data if successful.\r\n */\r\n CreateEnvTextureAsync,\r\n\r\n /**\r\n * Creates the ArrayBufferViews used for initializing environment texture image data.\r\n * @param data the image data\r\n * @param info parameters that determine what views will be created for accessing the underlying buffer\r\n * @returns the views described by info providing access to the underlying buffer\r\n */\r\n CreateImageDataArrayBufferViews,\r\n\r\n /**\r\n * Uploads the texture info contained in the env file to the GPU.\r\n * @param texture defines the internal texture to upload to\r\n * @param data defines the data to load\r\n * @param info defines the texture info retrieved through the GetEnvInfo method\r\n * @returns a promise\r\n */\r\n UploadEnvLevelsAsync,\r\n\r\n /**\r\n * Uploads the levels of image data to the GPU.\r\n * @param texture defines the internal texture to upload to\r\n * @param imageData defines the array buffer views of image data [mipmap][face]\r\n * @param imageType the mime type of the image data\r\n * @returns a promise\r\n */\r\n UploadLevelsAsync,\r\n\r\n /**\r\n * Uploads spherical polynomials information to the texture.\r\n * @param texture defines the texture we are trying to upload the information to\r\n * @param info defines the environment texture info retrieved through the GetEnvInfo method\r\n */\r\n UploadEnvSpherical,\r\n};\r\n"]}
|
package/Misc/iInspectable.d.ts
CHANGED
|
@@ -68,7 +68,7 @@ export interface IInspectableOptions {
|
|
|
68
68
|
/**
|
|
69
69
|
* Interface used to define custom inspectable properties.
|
|
70
70
|
* This interface is used by the inspector to display custom property grids
|
|
71
|
-
* @see https://doc.babylonjs.com/
|
|
71
|
+
* @see https://doc.babylonjs.com/toolsAndResources/inspector#extensibility
|
|
72
72
|
*/
|
|
73
73
|
export interface IInspectable {
|
|
74
74
|
/**
|
package/Misc/iInspectable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iInspectable.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Misc/iInspectable.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,eA6CX;AA7CD,WAAY,eAAe;IACvB;;OAEG;IACH,6DAAY,CAAA;IACZ;;OAEG;IACH,yDAAU,CAAA;IACV;;OAEG;IACH,2DAAW,CAAA;IACX;;OAEG;IACH,iEAAc,CAAA;IACd;;OAEG;IACH,yDAAU,CAAA;IACV;;OAEG;IACH,yDAAU,CAAA;IACV;;OAEG;IACH,yDAAU,CAAA;IACV;;OAEG;IACH,2DAAW,CAAA;IACX;;OAEG;IACH,mDAAO,CAAA;IACP;;OAEG;IACH,iEAAc,CAAA;IACd;;OAEG;IACH,4DAAY,CAAA;AAChB,CAAC,EA7CW,eAAe,KAAf,eAAe,QA6C1B","sourcesContent":["/**\r\n * Enum that determines the text-wrapping mode to use.\r\n */\r\nexport enum InspectableType {\r\n /**\r\n * Checkbox for booleans\r\n */\r\n Checkbox = 0,\r\n /**\r\n * Sliders for numbers\r\n */\r\n Slider = 1,\r\n /**\r\n * Vector3\r\n */\r\n Vector3 = 2,\r\n /**\r\n * Quaternions\r\n */\r\n Quaternion = 3,\r\n /**\r\n * Color3\r\n */\r\n Color3 = 4,\r\n /**\r\n * String\r\n */\r\n String = 5,\r\n /**\r\n * Button\r\n */\r\n Button = 6,\r\n /**\r\n * Options\r\n */\r\n Options = 7,\r\n /**\r\n * Tab\r\n */\r\n Tab = 8,\r\n /**\r\n * File button\r\n */\r\n FileButton = 9,\r\n /**\r\n * Vector2\r\n */\r\n Vector2 = 10,\r\n}\r\n\r\n/**\r\n * Interface used to define custom inspectable options in \"Options\" mode.\r\n * This interface is used by the inspector to display the list of options\r\n */\r\nexport interface IInspectableOptions {\r\n /**\r\n * Defines the visible part of the option\r\n */\r\n label: string;\r\n /**\r\n * Defines the value part of the option (returned through the callback)\r\n */\r\n value: number | string;\r\n /**\r\n * Defines if the option should be selected or not\r\n */\r\n selected?: boolean;\r\n}\r\n\r\n/**\r\n * Interface used to define custom inspectable properties.\r\n * This interface is used by the inspector to display custom property grids\r\n * @see https://doc.babylonjs.com/
|
|
1
|
+
{"version":3,"file":"iInspectable.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Misc/iInspectable.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,eA6CX;AA7CD,WAAY,eAAe;IACvB;;OAEG;IACH,6DAAY,CAAA;IACZ;;OAEG;IACH,yDAAU,CAAA;IACV;;OAEG;IACH,2DAAW,CAAA;IACX;;OAEG;IACH,iEAAc,CAAA;IACd;;OAEG;IACH,yDAAU,CAAA;IACV;;OAEG;IACH,yDAAU,CAAA;IACV;;OAEG;IACH,yDAAU,CAAA;IACV;;OAEG;IACH,2DAAW,CAAA;IACX;;OAEG;IACH,mDAAO,CAAA;IACP;;OAEG;IACH,iEAAc,CAAA;IACd;;OAEG;IACH,4DAAY,CAAA;AAChB,CAAC,EA7CW,eAAe,KAAf,eAAe,QA6C1B","sourcesContent":["/**\r\n * Enum that determines the text-wrapping mode to use.\r\n */\r\nexport enum InspectableType {\r\n /**\r\n * Checkbox for booleans\r\n */\r\n Checkbox = 0,\r\n /**\r\n * Sliders for numbers\r\n */\r\n Slider = 1,\r\n /**\r\n * Vector3\r\n */\r\n Vector3 = 2,\r\n /**\r\n * Quaternions\r\n */\r\n Quaternion = 3,\r\n /**\r\n * Color3\r\n */\r\n Color3 = 4,\r\n /**\r\n * String\r\n */\r\n String = 5,\r\n /**\r\n * Button\r\n */\r\n Button = 6,\r\n /**\r\n * Options\r\n */\r\n Options = 7,\r\n /**\r\n * Tab\r\n */\r\n Tab = 8,\r\n /**\r\n * File button\r\n */\r\n FileButton = 9,\r\n /**\r\n * Vector2\r\n */\r\n Vector2 = 10,\r\n}\r\n\r\n/**\r\n * Interface used to define custom inspectable options in \"Options\" mode.\r\n * This interface is used by the inspector to display the list of options\r\n */\r\nexport interface IInspectableOptions {\r\n /**\r\n * Defines the visible part of the option\r\n */\r\n label: string;\r\n /**\r\n * Defines the value part of the option (returned through the callback)\r\n */\r\n value: number | string;\r\n /**\r\n * Defines if the option should be selected or not\r\n */\r\n selected?: boolean;\r\n}\r\n\r\n/**\r\n * Interface used to define custom inspectable properties.\r\n * This interface is used by the inspector to display custom property grids\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector#extensibility\r\n */\r\nexport interface IInspectable {\r\n /**\r\n * Gets the label to display\r\n */\r\n label: string;\r\n /**\r\n * Gets the name of the property to edit\r\n */\r\n propertyName: string;\r\n /**\r\n * Gets the type of the editor to use\r\n */\r\n type: InspectableType;\r\n /**\r\n * Gets the minimum value of the property when using in \"slider\" mode\r\n */\r\n min?: number;\r\n /**\r\n * Gets the maximum value of the property when using in \"slider\" mode\r\n */\r\n max?: number;\r\n /**\r\n * Gets the setp to use when using in \"slider\" mode\r\n */\r\n step?: number;\r\n /**\r\n * Gets the callback function when using \"Button\" mode\r\n */\r\n callback?: () => void;\r\n /**\r\n * Gets the callback function when using \"FileButton\" mode\r\n */\r\n fileCallback?: (file: File) => void;\r\n /**\r\n * Gets the list of options when using \"Option\" mode\r\n */\r\n options?: IInspectableOptions[];\r\n /**\r\n * Gets the extensions to accept when using \"FileButton\" mode.\r\n * The value should be a comma separated string with the list of extensions to accept e.g., \".jpg, .png, .tga, .dds, .env\".\r\n */\r\n accept?: string;\r\n}\r\n"]}
|
package/Misc/index.d.ts
CHANGED
package/Misc/index.js
CHANGED
package/Misc/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Misc/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,yCAAyC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nexport * from \"./andOrNotEvaluator\";\r\nexport * from \"./assetsManager\";\r\nexport * from \"./basis\";\r\nexport * from \"./dds\";\r\nexport * from \"./decorators\";\r\nexport * from \"./deferred\";\r\nexport * from \"./environmentTextureTools\";\r\nexport * from \"./meshExploder\";\r\nexport * from \"./filesInput\";\r\nexport * from \"./HighDynamicRange/index\";\r\nexport * from \"./khronosTextureContainer\";\r\nexport * from \"./observable\";\r\nexport * from \"./observable.extensions\";\r\nexport * from \"./performanceMonitor\";\r\nexport * from \"./sceneOptimizer\";\r\nexport * from \"./sceneSerializer\";\r\nexport * from \"./smartArray\";\r\nexport * from \"./stringDictionary\";\r\nexport * from \"./tags\";\r\nexport * from \"./textureTools\";\r\nexport * from \"./tga\";\r\nexport * from \"./tools\";\r\nexport * from \"./videoRecorder\";\r\nexport * from \"./virtualJoystick\";\r\nexport * from \"./workerPool\";\r\nexport * from \"./logger\";\r\nexport * from \"./typeStore\";\r\nexport * from \"./filesInputStore\";\r\nexport * from \"./deepCopier\";\r\nexport * from \"./pivotTools\";\r\nexport * from \"./precisionDate\";\r\nexport * from \"./screenshotTools\";\r\nexport * from \"./webRequest\";\r\nexport * from \"./iInspectable\";\r\nexport * from \"./brdfTextureTools\";\r\nexport * from \"./rgbdTextureTools\";\r\nexport * from \"./gradients\";\r\nexport * from \"./perfCounter\";\r\nexport * from \"./fileRequest\";\r\nexport * from \"./customAnimationFrameRequester\";\r\nexport * from \"./retryStrategy\";\r\nexport * from \"./interfaces/screenshotSize\";\r\nexport * from \"./interfaces/iPerfViewer\";\r\nexport * from \"./fileTools\";\r\nexport * from \"./stringTools\";\r\nexport * from \"./dataReader\";\r\nexport * from \"./minMaxReducer\";\r\nexport * from \"./depthReducer\";\r\nexport * from \"./dataStorage\";\r\nexport * from \"./sceneRecorder\";\r\nexport * from \"./khronosTextureContainer2\";\r\nexport * from \"./trajectoryClassifier\";\r\nexport * from \"./timer\";\r\nexport * from \"./copyTools\";\r\nexport * from \"./reflector\";\r\nexport * from \"./domManagement\";\r\nexport * from \"./pressureObserverWrapper\";\r\nexport * from \"./PerformanceViewer/index\";\r\nexport * from \"./coroutine\";\r\nexport * from \"./guid\";\r\nexport * from \"./error\";\r\n// eslint-disable-next-line import/export\r\nexport * from \"./observableCoroutine\";\r\nexport * from \"./copyTextureToTexture\";\r\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Misc/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,yCAAyC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nexport * from \"./andOrNotEvaluator\";\r\nexport * from \"./assetsManager\";\r\nexport * from \"./basis\";\r\nexport * from \"./dds\";\r\nexport * from \"./decorators\";\r\nexport * from \"./deferred\";\r\nexport * from \"./environmentTextureTools\";\r\nexport * from \"./meshExploder\";\r\nexport * from \"./filesInput\";\r\nexport * from \"./HighDynamicRange/index\";\r\nexport * from \"./khronosTextureContainer\";\r\nexport * from \"./observable\";\r\nexport * from \"./observable.extensions\";\r\nexport * from \"./performanceMonitor\";\r\nexport * from \"./sceneOptimizer\";\r\nexport * from \"./sceneSerializer\";\r\nexport * from \"./smartArray\";\r\nexport * from \"./stringDictionary\";\r\nexport * from \"./tags\";\r\nexport * from \"./textureTools\";\r\nexport * from \"./tga\";\r\nexport * from \"./tools\";\r\nexport * from \"./videoRecorder\";\r\nexport * from \"./virtualJoystick\";\r\nexport * from \"./workerPool\";\r\nexport * from \"./logger\";\r\nexport * from \"./typeStore\";\r\nexport * from \"./filesInputStore\";\r\nexport * from \"./deepCopier\";\r\nexport * from \"./pivotTools\";\r\nexport * from \"./precisionDate\";\r\nexport * from \"./screenshotTools\";\r\nexport * from \"./webRequest\";\r\nexport * from \"./iInspectable\";\r\nexport * from \"./brdfTextureTools\";\r\nexport * from \"./rgbdTextureTools\";\r\nexport * from \"./gradients\";\r\nexport * from \"./perfCounter\";\r\nexport * from \"./fileRequest\";\r\nexport * from \"./customAnimationFrameRequester\";\r\nexport * from \"./retryStrategy\";\r\nexport * from \"./interfaces/screenshotSize\";\r\nexport * from \"./interfaces/iPerfViewer\";\r\nexport * from \"./fileTools\";\r\nexport * from \"./stringTools\";\r\nexport * from \"./dataReader\";\r\nexport * from \"./minMaxReducer\";\r\nexport * from \"./depthReducer\";\r\nexport * from \"./dataStorage\";\r\nexport * from \"./sceneRecorder\";\r\nexport * from \"./khronosTextureContainer2\";\r\nexport * from \"./trajectoryClassifier\";\r\nexport * from \"./timer\";\r\nexport * from \"./copyTools\";\r\nexport * from \"./reflector\";\r\nexport * from \"./domManagement\";\r\nexport * from \"./pressureObserverWrapper\";\r\nexport * from \"./PerformanceViewer/index\";\r\nexport * from \"./coroutine\";\r\nexport * from \"./guid\";\r\nexport * from \"./error\";\r\n// eslint-disable-next-line import/export\r\nexport * from \"./observableCoroutine\";\r\nexport * from \"./copyTextureToTexture\";\r\nexport * from \"./dumpTools\";\r\n"]}
|
package/Misc/sceneOptimizer.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Scene, IDisposable } from "../scene";
|
|
|
2
2
|
import { Observable } from "./observable";
|
|
3
3
|
/**
|
|
4
4
|
* Defines the root class used to create scene optimization to use with SceneOptimizer
|
|
5
|
-
* @description More details at https://doc.babylonjs.com/
|
|
5
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
6
6
|
*/
|
|
7
7
|
export declare class SceneOptimization {
|
|
8
8
|
/**
|
|
@@ -33,7 +33,7 @@ export declare class SceneOptimization {
|
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Defines an optimization used to reduce the size of render target textures
|
|
36
|
-
* @description More details at https://doc.babylonjs.com/
|
|
36
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
37
37
|
*/
|
|
38
38
|
export declare class TextureOptimization extends SceneOptimization {
|
|
39
39
|
/**
|
|
@@ -82,7 +82,7 @@ export declare class TextureOptimization extends SceneOptimization {
|
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
84
|
* Defines an optimization used to increase or decrease the rendering resolution
|
|
85
|
-
* @description More details at https://doc.babylonjs.com/
|
|
85
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
86
86
|
*/
|
|
87
87
|
export declare class HardwareScalingOptimization extends SceneOptimization {
|
|
88
88
|
/**
|
|
@@ -133,7 +133,7 @@ export declare class HardwareScalingOptimization extends SceneOptimization {
|
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
135
135
|
* Defines an optimization used to remove shadows
|
|
136
|
-
* @description More details at https://doc.babylonjs.com/
|
|
136
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
137
137
|
*/
|
|
138
138
|
export declare class ShadowsOptimization extends SceneOptimization {
|
|
139
139
|
/**
|
|
@@ -151,7 +151,7 @@ export declare class ShadowsOptimization extends SceneOptimization {
|
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
153
153
|
* Defines an optimization used to turn post-processes off
|
|
154
|
-
* @description More details at https://doc.babylonjs.com/
|
|
154
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
155
155
|
*/
|
|
156
156
|
export declare class PostProcessesOptimization extends SceneOptimization {
|
|
157
157
|
/**
|
|
@@ -169,7 +169,7 @@ export declare class PostProcessesOptimization extends SceneOptimization {
|
|
|
169
169
|
}
|
|
170
170
|
/**
|
|
171
171
|
* Defines an optimization used to turn lens flares off
|
|
172
|
-
* @description More details at https://doc.babylonjs.com/
|
|
172
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
173
173
|
*/
|
|
174
174
|
export declare class LensFlaresOptimization extends SceneOptimization {
|
|
175
175
|
/**
|
|
@@ -187,7 +187,7 @@ export declare class LensFlaresOptimization extends SceneOptimization {
|
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
189
189
|
* Defines an optimization based on user defined callback.
|
|
190
|
-
* @description More details at https://doc.babylonjs.com/
|
|
190
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
191
191
|
*/
|
|
192
192
|
export declare class CustomOptimization extends SceneOptimization {
|
|
193
193
|
/**
|
|
@@ -213,7 +213,7 @@ export declare class CustomOptimization extends SceneOptimization {
|
|
|
213
213
|
}
|
|
214
214
|
/**
|
|
215
215
|
* Defines an optimization used to turn particles off
|
|
216
|
-
* @description More details at https://doc.babylonjs.com/
|
|
216
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
217
217
|
*/
|
|
218
218
|
export declare class ParticlesOptimization extends SceneOptimization {
|
|
219
219
|
/**
|
|
@@ -231,7 +231,7 @@ export declare class ParticlesOptimization extends SceneOptimization {
|
|
|
231
231
|
}
|
|
232
232
|
/**
|
|
233
233
|
* Defines an optimization used to turn render targets off
|
|
234
|
-
* @description More details at https://doc.babylonjs.com/
|
|
234
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
235
235
|
*/
|
|
236
236
|
export declare class RenderTargetsOptimization extends SceneOptimization {
|
|
237
237
|
/**
|
|
@@ -249,7 +249,7 @@ export declare class RenderTargetsOptimization extends SceneOptimization {
|
|
|
249
249
|
}
|
|
250
250
|
/**
|
|
251
251
|
* Defines an optimization used to merge meshes with compatible materials
|
|
252
|
-
* @description More details at https://doc.babylonjs.com/
|
|
252
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
253
253
|
*/
|
|
254
254
|
export declare class MergeMeshesOptimization extends SceneOptimization {
|
|
255
255
|
private static _UpdateSelectionTree;
|
|
@@ -278,7 +278,7 @@ export declare class MergeMeshesOptimization extends SceneOptimization {
|
|
|
278
278
|
}
|
|
279
279
|
/**
|
|
280
280
|
* Defines a list of options used by SceneOptimizer
|
|
281
|
-
* @description More details at https://doc.babylonjs.com/
|
|
281
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
282
282
|
*/
|
|
283
283
|
export declare class SceneOptimizerOptions {
|
|
284
284
|
/**
|
|
@@ -342,7 +342,7 @@ export declare class SceneOptimizerOptions {
|
|
|
342
342
|
}
|
|
343
343
|
/**
|
|
344
344
|
* Class used to run optimizations in order to reach a target frame rate
|
|
345
|
-
* @description More details at https://doc.babylonjs.com/
|
|
345
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
346
346
|
*/
|
|
347
347
|
export declare class SceneOptimizer implements IDisposable {
|
|
348
348
|
private _isRunning;
|
package/Misc/sceneOptimizer.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Mesh } from "../Meshes/mesh.js";
|
|
|
3
3
|
import { Observable } from "./observable.js";
|
|
4
4
|
/**
|
|
5
5
|
* Defines the root class used to create scene optimization to use with SceneOptimizer
|
|
6
|
-
* @description More details at https://doc.babylonjs.com/
|
|
6
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
7
7
|
*/
|
|
8
8
|
export class SceneOptimization {
|
|
9
9
|
/**
|
|
@@ -36,7 +36,7 @@ export class SceneOptimization {
|
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* Defines an optimization used to reduce the size of render target textures
|
|
39
|
-
* @description More details at https://doc.babylonjs.com/
|
|
39
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
40
40
|
*/
|
|
41
41
|
export class TextureOptimization extends SceneOptimization {
|
|
42
42
|
/**
|
|
@@ -95,7 +95,7 @@ export class TextureOptimization extends SceneOptimization {
|
|
|
95
95
|
}
|
|
96
96
|
/**
|
|
97
97
|
* Defines an optimization used to increase or decrease the rendering resolution
|
|
98
|
-
* @description More details at https://doc.babylonjs.com/
|
|
98
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
99
99
|
*/
|
|
100
100
|
export class HardwareScalingOptimization extends SceneOptimization {
|
|
101
101
|
/**
|
|
@@ -151,7 +151,7 @@ export class HardwareScalingOptimization extends SceneOptimization {
|
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
153
153
|
* Defines an optimization used to remove shadows
|
|
154
|
-
* @description More details at https://doc.babylonjs.com/
|
|
154
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
155
155
|
*/
|
|
156
156
|
export class ShadowsOptimization extends SceneOptimization {
|
|
157
157
|
/**
|
|
@@ -174,7 +174,7 @@ export class ShadowsOptimization extends SceneOptimization {
|
|
|
174
174
|
}
|
|
175
175
|
/**
|
|
176
176
|
* Defines an optimization used to turn post-processes off
|
|
177
|
-
* @description More details at https://doc.babylonjs.com/
|
|
177
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
178
178
|
*/
|
|
179
179
|
export class PostProcessesOptimization extends SceneOptimization {
|
|
180
180
|
/**
|
|
@@ -197,7 +197,7 @@ export class PostProcessesOptimization extends SceneOptimization {
|
|
|
197
197
|
}
|
|
198
198
|
/**
|
|
199
199
|
* Defines an optimization used to turn lens flares off
|
|
200
|
-
* @description More details at https://doc.babylonjs.com/
|
|
200
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
201
201
|
*/
|
|
202
202
|
export class LensFlaresOptimization extends SceneOptimization {
|
|
203
203
|
/**
|
|
@@ -220,7 +220,7 @@ export class LensFlaresOptimization extends SceneOptimization {
|
|
|
220
220
|
}
|
|
221
221
|
/**
|
|
222
222
|
* Defines an optimization based on user defined callback.
|
|
223
|
-
* @description More details at https://doc.babylonjs.com/
|
|
223
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
224
224
|
*/
|
|
225
225
|
export class CustomOptimization extends SceneOptimization {
|
|
226
226
|
/**
|
|
@@ -248,7 +248,7 @@ export class CustomOptimization extends SceneOptimization {
|
|
|
248
248
|
}
|
|
249
249
|
/**
|
|
250
250
|
* Defines an optimization used to turn particles off
|
|
251
|
-
* @description More details at https://doc.babylonjs.com/
|
|
251
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
252
252
|
*/
|
|
253
253
|
export class ParticlesOptimization extends SceneOptimization {
|
|
254
254
|
/**
|
|
@@ -271,7 +271,7 @@ export class ParticlesOptimization extends SceneOptimization {
|
|
|
271
271
|
}
|
|
272
272
|
/**
|
|
273
273
|
* Defines an optimization used to turn render targets off
|
|
274
|
-
* @description More details at https://doc.babylonjs.com/
|
|
274
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
275
275
|
*/
|
|
276
276
|
export class RenderTargetsOptimization extends SceneOptimization {
|
|
277
277
|
/**
|
|
@@ -294,7 +294,7 @@ export class RenderTargetsOptimization extends SceneOptimization {
|
|
|
294
294
|
}
|
|
295
295
|
/**
|
|
296
296
|
* Defines an optimization used to merge meshes with compatible materials
|
|
297
|
-
* @description More details at https://doc.babylonjs.com/
|
|
297
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
298
298
|
*/
|
|
299
299
|
export class MergeMeshesOptimization extends SceneOptimization {
|
|
300
300
|
constructor() {
|
|
@@ -397,7 +397,7 @@ export class MergeMeshesOptimization extends SceneOptimization {
|
|
|
397
397
|
MergeMeshesOptimization._UpdateSelectionTree = false;
|
|
398
398
|
/**
|
|
399
399
|
* Defines a list of options used by SceneOptimizer
|
|
400
|
-
* @description More details at https://doc.babylonjs.com/
|
|
400
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
401
401
|
*/
|
|
402
402
|
export class SceneOptimizerOptions {
|
|
403
403
|
/**
|
|
@@ -519,7 +519,7 @@ export class SceneOptimizerOptions {
|
|
|
519
519
|
}
|
|
520
520
|
/**
|
|
521
521
|
* Class used to run optimizations in order to reach a target frame rate
|
|
522
|
-
* @description More details at https://doc.babylonjs.com/
|
|
522
|
+
* @description More details at https://doc.babylonjs.com/features/featuresDeepDive/scene/sceneOptimizer
|
|
523
523
|
*/
|
|
524
524
|
export class SceneOptimizer {
|
|
525
525
|
/**
|