@onerjs/core 8.53.5 → 8.53.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Animations/animationGroup.d.ts +0 -1
- package/Animations/animationGroup.js +0 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/animationGroup.pure.js +2 -0
- package/Animations/animationGroup.pure.js.map +1 -1
- package/Animations/runtimeAnimation.js +11 -0
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioSceneComponent.pure.js +1 -1
- package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
- package/AudioV2/abstractAudio/abstractSound.js +7 -2
- package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
- package/AudioV2/abstractAudio/staticSound.js +17 -1
- package/AudioV2/abstractAudio/staticSound.js.map +1 -1
- package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
- package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
- package/AudioV2/abstractAudio/streamingSound.js +9 -1
- package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
- package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
- package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
- package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
- package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
- package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
- package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
- package/Bones/bone.pure.js +3 -3
- package/Buffers/buffer.pure.js +0 -12
- package/Buffers/buffer.pure.js.map +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
- package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/followCameraPointersInput.js +239 -203
- package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
- package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
- package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
- package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
- package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
- package/Cameras/VR/vrExperienceHelper.js +0 -2
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
- package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.js +1559 -1479
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/camera.pure.js +1225 -1178
- package/Cameras/camera.pure.js.map +1 -1
- package/Cameras/flyCamera.pure.js +369 -351
- package/Cameras/flyCamera.pure.js.map +1 -1
- package/Cameras/followCamera.pure.js +229 -192
- package/Cameras/followCamera.pure.js.map +1 -1
- package/Cameras/freeCamera.pure.js +373 -351
- package/Cameras/freeCamera.pure.js.map +1 -1
- package/Cameras/geospatialCamera.pure.d.ts +30 -7
- package/Cameras/geospatialCamera.pure.js +502 -457
- package/Cameras/geospatialCamera.pure.js.map +1 -1
- package/Cameras/geospatialCameraMovement.js +2 -2
- package/Cameras/geospatialCameraMovement.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +7 -0
- package/Cameras/targetCamera.pure.js +550 -509
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Cameras/universalCamera.pure.js +98 -85
- package/Cameras/universalCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +111 -4
- package/Collisions/gpuPicker.js +696 -119
- package/Collisions/gpuPicker.js.map +1 -1
- package/Compute/computeShader.pure.js +372 -355
- package/Compute/computeShader.pure.js.map +1 -1
- package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
- package/Decorators/nodeDecorator.d.ts +11 -1
- package/Decorators/nodeDecorator.js +43 -6
- package/Decorators/nodeDecorator.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
- package/Engines/Native/nativeHelpers.js +15 -0
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +7 -2
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
- package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +5 -3
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
- package/Engines/abstractEngine.functions.d.ts +8 -2
- package/Engines/abstractEngine.functions.js +12 -4
- package/Engines/abstractEngine.functions.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +20 -1
- package/Engines/abstractEngine.pure.js +21 -134
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/engine.d.ts +208 -0
- package/Engines/engine.pure.js +0 -15
- package/Engines/engine.pure.js.map +1 -1
- package/Engines/nullEngine.pure.d.ts +66 -0
- package/Engines/nullEngine.pure.js +97 -0
- package/Engines/nullEngine.pure.js.map +1 -1
- package/Engines/thinEngine.pure.d.ts +0 -13
- package/Engines/thinEngine.pure.js +4 -23
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.d.ts +0 -1
- package/Engines/thinNativeEngine.js +0 -1
- package/Engines/thinNativeEngine.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +27 -0
- package/Engines/thinNativeEngine.pure.js +383 -17
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +1 -0
- package/Engines/webgpuEngine.js +1 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +9 -0
- package/Engines/webgpuEngine.pure.js +7 -0
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/flowGraph.js +9 -0
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphContext.js +597 -584
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
- package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
- package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
- package/FlowGraph/serialization.d.ts +11 -0
- package/FlowGraph/serialization.js +11 -1
- package/FlowGraph/serialization.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +715 -693
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
- package/Helpers/environmentHelper.js +2 -2
- package/Helpers/environmentHelper.js.map +1 -1
- package/Layers/effectLayer.js +529 -519
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.pure.js +428 -413
- package/Layers/glowLayer.pure.js.map +1 -1
- package/Layers/highlightLayer.pure.js +473 -458
- package/Layers/highlightLayer.pure.js.map +1 -1
- package/Layers/selectionOutlineLayer.pure.js +360 -345
- package/Layers/selectionOutlineLayer.pure.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
- package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +6 -1
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/areaLight.pure.js +61 -39
- package/Lights/areaLight.pure.js.map +1 -1
- package/Lights/directionalLight.pure.js +308 -284
- package/Lights/directionalLight.pure.js.map +1 -1
- package/Lights/hemisphericLight.pure.js +123 -104
- package/Lights/hemisphericLight.pure.js.map +1 -1
- package/Lights/light.d.ts +5 -3
- package/Lights/light.js +869 -827
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.pure.js +185 -174
- package/Lights/pointLight.pure.js.map +1 -1
- package/Lights/rectAreaLight.pure.d.ts +17 -0
- package/Lights/rectAreaLight.pure.js +238 -159
- package/Lights/rectAreaLight.pure.js.map +1 -1
- package/Lights/shadowLight.js +280 -268
- package/Lights/shadowLight.js.map +1 -1
- package/Lights/spotLight.pure.js +460 -427
- package/Lights/spotLight.pure.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
- package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
- package/Loading/sceneLoader.d.ts +5 -1
- package/Loading/sceneLoader.js +299 -402
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
- package/Materials/Background/backgroundMaterial.pure.js +949 -794
- package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
- package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
- package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
- package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
- package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
- package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
- package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
- package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
- package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
- package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
- package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
- package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.js +1765 -1737
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
- package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
- package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
- package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
- package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
- package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
- package/Materials/PBR/pbrMaterial.pure.js +1041 -685
- package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
- package/Materials/PBR/pbrSheenConfiguration.js +314 -270
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
- package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
- package/Materials/Textures/HTML/htmlTexture.js +455 -0
- package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
- package/Materials/Textures/HTML/index.d.ts +4 -0
- package/Materials/Textures/HTML/index.js +5 -0
- package/Materials/Textures/HTML/index.js.map +1 -0
- package/Materials/Textures/HTML/pure.d.ts +5 -0
- package/Materials/Textures/HTML/pure.js +6 -0
- package/Materials/Textures/HTML/pure.js.map +1 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/baseTexture.pure.js +880 -825
- package/Materials/Textures/baseTexture.pure.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +0 -1
- package/Materials/Textures/cubeTexture.js +0 -1
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.pure.js +368 -333
- package/Materials/Textures/cubeTexture.pure.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +0 -1
- package/Materials/Textures/dynamicTexture.js +0 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.pure.js +2 -0
- package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.d.ts +0 -2
- package/Materials/Textures/htmlElementTexture.js +0 -2
- package/Materials/Textures/htmlElementTexture.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.pure.js +4 -0
- package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
- package/Materials/Textures/index.d.ts +1 -0
- package/Materials/Textures/index.js +1 -1
- package/Materials/Textures/index.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +0 -1
- package/Materials/Textures/multiRenderTarget.js +0 -1
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.pure.js +2 -0
- package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
- package/Materials/Textures/pure.d.ts +1 -0
- package/Materials/Textures/pure.js +1 -0
- package/Materials/Textures/pure.js.map +1 -1
- package/Materials/Textures/texture.pure.js +961 -923
- package/Materials/Textures/texture.pure.js.map +1 -1
- package/Materials/Textures/videoTexture.pure.d.ts +3 -0
- package/Materials/Textures/videoTexture.pure.js +450 -401
- package/Materials/Textures/videoTexture.pure.js.map +1 -1
- package/Materials/colorCurves.pure.js +510 -477
- package/Materials/colorCurves.pure.js.map +1 -1
- package/Materials/effect.pure.js +0 -7
- package/Materials/effect.pure.js.map +1 -1
- package/Materials/imageProcessing.js +12 -4
- package/Materials/imageProcessing.js.map +1 -1
- package/Materials/imageProcessingConfiguration.pure.js +647 -587
- package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
- package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
- package/Materials/material.decalMapConfiguration.pure.js +149 -130
- package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
- package/Materials/material.detailMapConfiguration.d.ts +3 -3
- package/Materials/material.detailMapConfiguration.js +213 -175
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.pure.js +1815 -1721
- package/Materials/material.pure.js.map +1 -1
- package/Materials/materialPluginBase.pure.js +270 -249
- package/Materials/materialPluginBase.pure.js.map +1 -1
- package/Materials/materialPluginManager.pure.js +18 -8
- package/Materials/materialPluginManager.pure.js.map +1 -1
- package/Materials/materialStencilState.js +211 -200
- package/Materials/materialStencilState.js.map +1 -1
- package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
- package/Materials/meshDebugPluginMaterial.pure.js +397 -275
- package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +32 -32
- package/Materials/standardMaterial.pure.js +1804 -1394
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Maths/math.color.pure.js +5 -5
- package/Maths/math.functions.js +38 -30
- package/Maths/math.functions.js.map +1 -1
- package/Maths/math.vector.pure.js +25 -25
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
- package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
- package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
- package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
- package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
- package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
- package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
- package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
- package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
- package/Meshes/Node/nodeGeometry.js +560 -538
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlock.js +473 -458
- package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +2218 -2207
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/geometry.js +30 -15
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/mesh.pure.js +26 -14
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/mesh.vertexData.js +1665 -1655
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.pure.js +1400 -1372
- package/Meshes/transformNode.pure.js.map +1 -1
- package/Misc/decorators.d.ts +34 -19
- package/Misc/decorators.functions.d.ts +33 -2
- package/Misc/decorators.functions.js +114 -35
- package/Misc/decorators.functions.js.map +1 -1
- package/Misc/decorators.js +96 -68
- package/Misc/decorators.js.map +1 -1
- package/Misc/decorators.serialization.js +47 -40
- package/Misc/decorators.serialization.js.map +1 -1
- package/Misc/decorators.serializationUtilities.d.ts +24 -0
- package/Misc/decorators.serializationUtilities.js +20 -0
- package/Misc/decorators.serializationUtilities.js.map +1 -0
- package/Misc/dumpTools.pure.js +43 -33
- package/Misc/dumpTools.pure.js.map +1 -1
- package/Misc/fileTools.pure.js +8 -0
- package/Misc/fileTools.pure.js.map +1 -1
- package/Misc/observable.pure.js +0 -7
- package/Misc/observable.pure.js.map +1 -1
- package/Misc/snapshotRenderingHelper.d.ts +4 -1
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/symbolMetadataPolyfill.d.ts +11 -0
- package/Misc/symbolMetadataPolyfill.js +22 -0
- package/Misc/symbolMetadataPolyfill.js.map +1 -0
- package/Misc/tools.pure.js +2 -2
- package/Misc/tools.pure.js.map +1 -1
- package/Morph/morphTarget.js +382 -365
- package/Morph/morphTarget.js.map +1 -1
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
- package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
- package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
- package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
- package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
- package/Particles/Node/nodeParticleBlock.js +339 -324
- package/Particles/Node/nodeParticleBlock.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.js +494 -473
- package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +0 -1
- package/Particles/gpuParticleSystem.js +0 -1
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +4 -3
- package/Particles/gpuParticleSystem.pure.js +27 -16
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/particleSystem.pure.js +57 -2
- package/Particles/particleSystem.pure.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +0 -1
- package/Particles/thinParticleSystem.js +0 -1
- package/Particles/thinParticleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.pure.js +2 -0
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/Particles/webgl2ParticleSystem.pure.js +2 -0
- package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
- package/Physics/v1/physicsImpostor.pure.js +4 -4
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
- package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
- package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
- package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
- package/PostProcesses/blurPostProcess.pure.js +127 -115
- package/PostProcesses/blurPostProcess.pure.js.map +1 -1
- package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
- package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
- package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
- package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
- package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/convolutionPostProcess.pure.js +96 -84
- package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
- package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
- package/PostProcesses/filterPostProcess.pure.js +66 -54
- package/PostProcesses/filterPostProcess.pure.js.map +1 -1
- package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
- package/PostProcesses/grainPostProcess.pure.js +82 -70
- package/PostProcesses/grainPostProcess.pure.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +334 -322
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
- package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
- package/PostProcesses/passPostProcess.pure.js +75 -63
- package/PostProcesses/passPostProcess.pure.js.map +1 -1
- package/PostProcesses/postProcess.pure.js +899 -835
- package/PostProcesses/postProcess.pure.js.map +1 -1
- package/PostProcesses/refractionPostProcess.pure.js +114 -87
- package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.pure.js +86 -74
- package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
- package/PostProcesses/tonemapPostProcess.pure.js +82 -70
- package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
- package/Probes/reflectionProbe.pure.js +238 -224
- package/Probes/reflectionProbe.pure.js.map +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
- package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/edgesRenderer.pure.js.map +1 -1
- package/Rendering/prePassRenderer.d.ts +0 -2
- package/Rendering/prePassRenderer.js +0 -2
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.pure.js +2 -0
- package/Rendering/prePassRenderer.pure.js.map +1 -1
- package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
- package/Rendering/reflectiveShadowMap.pure.js +151 -130
- package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
- package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
- package/Rendering/thinDepthPeelingRenderer.js +0 -1
- package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +17 -1
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +1 -1
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
- package/Shaders/picking.fragment.js +39 -3
- package/Shaders/picking.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
- package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
- package/ShadersWGSL/lightingVolume.compute.js +2 -2
- package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
- package/ShadersWGSL/picking.fragment.js +22 -1
- package/ShadersWGSL/picking.fragment.js.map +1 -1
- package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
- package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
- package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
- package/XR/features/WebXRLayers.pure.d.ts +8 -0
- package/XR/features/WebXRLayers.pure.js +43 -6
- package/XR/features/WebXRLayers.pure.js.map +1 -1
- package/XR/native/nativeXRRenderTarget.d.ts +2 -2
- package/XR/native/nativeXRRenderTarget.js +2 -2
- package/XR/native/nativeXRRenderTarget.js.map +1 -1
- package/XR/webXRExperienceHelper.js +10 -1
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRGraphicsBinding.d.ts +90 -0
- package/XR/webXRGraphicsBinding.js +85 -0
- package/XR/webXRGraphicsBinding.js.map +1 -0
- package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
- package/XR/webXRLayerRenderTargetTexture.js +30 -0
- package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
- package/XR/webXRManagedOutputCanvas.d.ts +14 -0
- package/XR/webXRManagedOutputCanvas.js +24 -5
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
- package/XR/webXRRenderTargetTextureProvider.js +33 -35
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +11 -0
- package/XR/webXRSessionManager.js +37 -0
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRTypes.d.ts +9 -6
- package/XR/webXRTypes.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +2 -2
- package/XR/webXRWebGLLayer.js +2 -2
- package/XR/webXRWebGLLayer.js.map +1 -1
- package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.js +878 -845
- package/node.js.map +1 -1
- package/package.json +8 -14
- package/scene.pure.d.ts +12 -0
- package/scene.pure.js +36 -0
- package/scene.pure.js.map +1 -1
- package/tslib.es6.js +304 -150
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** This file must only contain pure code and pure imports */
|
|
2
|
-
import {
|
|
2
|
+
import { __esDecorate, __runInitializers } from "../tslib.es6.js";
|
|
3
3
|
import { serializeAsMeshReference, serializeAsVector3 } from "../Misc/decorators.js";
|
|
4
4
|
import { SerializationHelper } from "../Misc/decorators.serialization.js";
|
|
5
5
|
import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture.pure.js";
|
|
@@ -10,244 +10,258 @@ import { Scene } from "../scene.pure.js";
|
|
|
10
10
|
* Class used to generate realtime reflection / refraction cube textures
|
|
11
11
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/environment/reflectionProbes
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
13
|
+
let ReflectionProbe = (() => {
|
|
14
|
+
var _a;
|
|
15
|
+
let __attachedMesh_decorators;
|
|
16
|
+
let __attachedMesh_initializers = [];
|
|
17
|
+
let __attachedMesh_extraInitializers = [];
|
|
18
|
+
let _position_decorators;
|
|
19
|
+
let _position_initializers = [];
|
|
20
|
+
let _position_extraInitializers = [];
|
|
21
|
+
return _a = class ReflectionProbe {
|
|
22
|
+
/**
|
|
23
|
+
* Creates a new reflection probe
|
|
24
|
+
* @param name defines the name of the probe
|
|
25
|
+
* @param size defines the texture resolution (for each face)
|
|
26
|
+
* @param scene defines the hosting scene
|
|
27
|
+
* @param generateMipMaps defines if mip maps should be generated automatically (true by default)
|
|
28
|
+
* @param useFloat defines if HDR data (float data) should be used to store colors (false by default)
|
|
29
|
+
* @param linearSpace defines if the probe should be generated in linear space or not (false by default)
|
|
30
|
+
*/
|
|
31
|
+
constructor(
|
|
32
|
+
/** defines the name of the probe */
|
|
33
|
+
name, size, scene, generateMipMaps = true, useFloat = false, linearSpace = false) {
|
|
34
|
+
this.name = name;
|
|
35
|
+
this._viewMatrix = Matrix.Identity();
|
|
36
|
+
this._target = Vector3.Zero();
|
|
37
|
+
this._add = Vector3.Zero();
|
|
38
|
+
this._attachedMesh = __runInitializers(this, __attachedMesh_initializers, void 0);
|
|
39
|
+
this._invertYAxis = (__runInitializers(this, __attachedMesh_extraInitializers), false);
|
|
40
|
+
/** Gets or sets probe position (center of the cube map) */
|
|
41
|
+
this.position = __runInitializers(this, _position_initializers, Vector3.Zero());
|
|
42
|
+
/**
|
|
43
|
+
* Gets or sets an object used to store user defined information for the reflection probe.
|
|
44
|
+
*/
|
|
45
|
+
this.metadata = (__runInitializers(this, _position_extraInitializers), null);
|
|
46
|
+
/** @internal */
|
|
47
|
+
this._parentContainer = null;
|
|
48
|
+
/**
|
|
49
|
+
* Gets or sets if the probe should be serialized
|
|
50
|
+
*/
|
|
51
|
+
this.doNotSerialize = false;
|
|
52
|
+
this._scene = scene;
|
|
53
|
+
// Create the scene field if not exist.
|
|
54
|
+
if (!this._scene.reflectionProbes) {
|
|
55
|
+
this._scene.reflectionProbes = [];
|
|
56
|
+
}
|
|
57
|
+
this._scene.reflectionProbes.push(this);
|
|
58
|
+
if (scene.getEngine().supportsUniformBuffers) {
|
|
59
|
+
this._sceneUBOs = [];
|
|
60
|
+
for (let i = 0; i < 6; ++i) {
|
|
61
|
+
this._sceneUBOs.push(scene.createSceneUniformBuffer(`Scene for Reflection Probe (name "${name}") face #${i}`, { forceMono: true }));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
let textureType = 0;
|
|
65
|
+
if (useFloat) {
|
|
66
|
+
const caps = this._scene.getEngine().getCaps();
|
|
67
|
+
if (caps.textureHalfFloatRender) {
|
|
68
|
+
textureType = 2;
|
|
69
|
+
}
|
|
70
|
+
else if (caps.textureFloatRender) {
|
|
71
|
+
textureType = 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
this._renderTargetTexture = new RenderTargetTexture(name, size, scene, generateMipMaps, true, textureType, true);
|
|
75
|
+
this._renderTargetTexture.gammaSpace = !linearSpace;
|
|
76
|
+
this._renderTargetTexture.invertZ = scene.useRightHandedSystem;
|
|
77
|
+
const useReverseDepthBuffer = scene.getEngine().useReverseDepthBuffer;
|
|
78
|
+
this._renderTargetTexture.onBeforeRenderObservable.add((faceIndex) => {
|
|
79
|
+
if (this._sceneUBOs) {
|
|
80
|
+
scene.setSceneUniformBuffer(this._sceneUBOs[faceIndex]);
|
|
81
|
+
scene.getSceneUniformBuffer().unbindEffect();
|
|
82
|
+
}
|
|
83
|
+
switch (faceIndex) {
|
|
84
|
+
case 0:
|
|
85
|
+
this._add.copyFromFloats(1, 0, 0);
|
|
86
|
+
break;
|
|
87
|
+
case 1:
|
|
88
|
+
this._add.copyFromFloats(-1, 0, 0);
|
|
89
|
+
break;
|
|
90
|
+
case 2:
|
|
91
|
+
this._add.copyFromFloats(0, this._invertYAxis ? 1 : -1, 0);
|
|
92
|
+
break;
|
|
93
|
+
case 3:
|
|
94
|
+
this._add.copyFromFloats(0, this._invertYAxis ? -1 : 1, 0);
|
|
95
|
+
break;
|
|
96
|
+
case 4:
|
|
97
|
+
this._add.copyFromFloats(0, 0, scene.useRightHandedSystem ? -1 : 1);
|
|
98
|
+
break;
|
|
99
|
+
case 5:
|
|
100
|
+
this._add.copyFromFloats(0, 0, scene.useRightHandedSystem ? 1 : -1);
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
if (this._attachedMesh) {
|
|
104
|
+
this.position.copyFrom(this._attachedMesh.getAbsolutePosition());
|
|
105
|
+
}
|
|
106
|
+
this.position.addToRef(this._add, this._target);
|
|
107
|
+
const lookAtFunction = scene.useRightHandedSystem ? Matrix.LookAtRHToRef : Matrix.LookAtLHToRef;
|
|
108
|
+
const perspectiveFunction = scene.useRightHandedSystem ? Matrix.PerspectiveFovRH : Matrix.PerspectiveFovLH;
|
|
109
|
+
lookAtFunction(this.position, this._target, Vector3.Up(), this._viewMatrix);
|
|
110
|
+
if (scene.activeCamera) {
|
|
111
|
+
this._projectionMatrix = perspectiveFunction(Math.PI / 2, 1, useReverseDepthBuffer ? scene.activeCamera.maxZ : scene.activeCamera.minZ, useReverseDepthBuffer ? scene.activeCamera.minZ : scene.activeCamera.maxZ, this._scene.getEngine().isNDCHalfZRange);
|
|
112
|
+
scene.setTransformMatrix(this._viewMatrix, this._projectionMatrix);
|
|
113
|
+
if (scene.activeCamera.isRigCamera && !this._renderTargetTexture.activeCamera) {
|
|
114
|
+
this._renderTargetTexture.activeCamera = scene.activeCamera.rigParent || null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (this._sceneUBOs) {
|
|
118
|
+
scene.finalizeSceneUbo();
|
|
119
|
+
}
|
|
120
|
+
scene._forcedViewPosition = this.position;
|
|
121
|
+
});
|
|
122
|
+
let currentApplyByPostProcess;
|
|
123
|
+
this._renderTargetTexture.onBeforeBindObservable.add(() => {
|
|
124
|
+
const engine = scene.getEngine();
|
|
125
|
+
this._currentSceneUBO = scene.getSceneUniformBuffer();
|
|
126
|
+
if (engine._enableGPUDebugMarkers) {
|
|
127
|
+
engine._debugPushGroup?.(`reflection probe generation for ${name}`);
|
|
128
|
+
}
|
|
129
|
+
currentApplyByPostProcess = this._scene.imageProcessingConfiguration.applyByPostProcess;
|
|
130
|
+
if (linearSpace) {
|
|
131
|
+
scene.imageProcessingConfiguration.applyByPostProcess = true;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
this._renderTargetTexture.onAfterUnbindObservable.add(() => {
|
|
135
|
+
const engine = scene.getEngine();
|
|
136
|
+
scene.imageProcessingConfiguration.applyByPostProcess = currentApplyByPostProcess;
|
|
137
|
+
scene._forcedViewPosition = null;
|
|
138
|
+
if (this._sceneUBOs) {
|
|
139
|
+
scene.setSceneUniformBuffer(this._currentSceneUBO);
|
|
140
|
+
}
|
|
141
|
+
scene.updateTransformMatrix(true);
|
|
142
|
+
if (engine._enableGPUDebugMarkers) {
|
|
143
|
+
engine._debugPopGroup?.();
|
|
144
|
+
}
|
|
145
|
+
});
|
|
53
146
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const caps = this._scene.getEngine().getCaps();
|
|
58
|
-
if (caps.textureHalfFloatRender) {
|
|
59
|
-
textureType = 2;
|
|
147
|
+
/** Gets or sets the number of samples to use for multi-sampling (0 by default). Required WebGL2 */
|
|
148
|
+
get samples() {
|
|
149
|
+
return this._renderTargetTexture.samples;
|
|
60
150
|
}
|
|
61
|
-
|
|
62
|
-
|
|
151
|
+
set samples(value) {
|
|
152
|
+
this._renderTargetTexture.samples = value;
|
|
63
153
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
this._renderTargetTexture.invertZ = scene.useRightHandedSystem;
|
|
68
|
-
const useReverseDepthBuffer = scene.getEngine().useReverseDepthBuffer;
|
|
69
|
-
this._renderTargetTexture.onBeforeRenderObservable.add((faceIndex) => {
|
|
70
|
-
if (this._sceneUBOs) {
|
|
71
|
-
scene.setSceneUniformBuffer(this._sceneUBOs[faceIndex]);
|
|
72
|
-
scene.getSceneUniformBuffer().unbindEffect();
|
|
154
|
+
/** Gets or sets the refresh rate to use (on every frame by default) */
|
|
155
|
+
get refreshRate() {
|
|
156
|
+
return this._renderTargetTexture.refreshRate;
|
|
73
157
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
this._add.copyFromFloats(1, 0, 0);
|
|
77
|
-
break;
|
|
78
|
-
case 1:
|
|
79
|
-
this._add.copyFromFloats(-1, 0, 0);
|
|
80
|
-
break;
|
|
81
|
-
case 2:
|
|
82
|
-
this._add.copyFromFloats(0, this._invertYAxis ? 1 : -1, 0);
|
|
83
|
-
break;
|
|
84
|
-
case 3:
|
|
85
|
-
this._add.copyFromFloats(0, this._invertYAxis ? -1 : 1, 0);
|
|
86
|
-
break;
|
|
87
|
-
case 4:
|
|
88
|
-
this._add.copyFromFloats(0, 0, scene.useRightHandedSystem ? -1 : 1);
|
|
89
|
-
break;
|
|
90
|
-
case 5:
|
|
91
|
-
this._add.copyFromFloats(0, 0, scene.useRightHandedSystem ? 1 : -1);
|
|
92
|
-
break;
|
|
158
|
+
set refreshRate(value) {
|
|
159
|
+
this._renderTargetTexture.refreshRate = value;
|
|
93
160
|
}
|
|
94
|
-
|
|
95
|
-
|
|
161
|
+
/**
|
|
162
|
+
* Gets the hosting scene
|
|
163
|
+
* @returns a Scene
|
|
164
|
+
*/
|
|
165
|
+
getScene() {
|
|
166
|
+
return this._scene;
|
|
96
167
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
lookAtFunction(this.position, this._target, Vector3.Up(), this._viewMatrix);
|
|
101
|
-
if (scene.activeCamera) {
|
|
102
|
-
this._projectionMatrix = perspectiveFunction(Math.PI / 2, 1, useReverseDepthBuffer ? scene.activeCamera.maxZ : scene.activeCamera.minZ, useReverseDepthBuffer ? scene.activeCamera.minZ : scene.activeCamera.maxZ, this._scene.getEngine().isNDCHalfZRange);
|
|
103
|
-
scene.setTransformMatrix(this._viewMatrix, this._projectionMatrix);
|
|
104
|
-
if (scene.activeCamera.isRigCamera && !this._renderTargetTexture.activeCamera) {
|
|
105
|
-
this._renderTargetTexture.activeCamera = scene.activeCamera.rigParent || null;
|
|
106
|
-
}
|
|
168
|
+
/** Gets the internal CubeTexture used to render to */
|
|
169
|
+
get cubeTexture() {
|
|
170
|
+
return this._renderTargetTexture;
|
|
107
171
|
}
|
|
108
|
-
|
|
109
|
-
|
|
172
|
+
/** Gets or sets the list of meshes to render */
|
|
173
|
+
get renderList() {
|
|
174
|
+
return this._renderTargetTexture.renderList;
|
|
110
175
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
let currentApplyByPostProcess;
|
|
114
|
-
this._renderTargetTexture.onBeforeBindObservable.add(() => {
|
|
115
|
-
const engine = scene.getEngine();
|
|
116
|
-
this._currentSceneUBO = scene.getSceneUniformBuffer();
|
|
117
|
-
if (engine._enableGPUDebugMarkers) {
|
|
118
|
-
engine._debugPushGroup?.(`reflection probe generation for ${name}`);
|
|
176
|
+
set renderList(value) {
|
|
177
|
+
this._renderTargetTexture.renderList = value;
|
|
119
178
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
179
|
+
/**
|
|
180
|
+
* Attach the probe to a specific mesh (Rendering will be done from attached mesh's position)
|
|
181
|
+
* @param mesh defines the mesh to attach to
|
|
182
|
+
*/
|
|
183
|
+
attachToMesh(mesh) {
|
|
184
|
+
this._attachedMesh = mesh;
|
|
123
185
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
186
|
+
/**
|
|
187
|
+
* Specifies whether or not the stencil and depth buffer are cleared between two rendering groups
|
|
188
|
+
* @param renderingGroupId The rendering group id corresponding to its index
|
|
189
|
+
* @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.
|
|
190
|
+
*/
|
|
191
|
+
setRenderingAutoClearDepthStencil(renderingGroupId, autoClearDepthStencil) {
|
|
192
|
+
this._renderTargetTexture.setRenderingAutoClearDepthStencil(renderingGroupId, autoClearDepthStencil);
|
|
131
193
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
194
|
+
/**
|
|
195
|
+
* Clean all associated resources
|
|
196
|
+
*/
|
|
197
|
+
dispose() {
|
|
198
|
+
const index = this._scene.reflectionProbes.indexOf(this);
|
|
199
|
+
if (index !== -1) {
|
|
200
|
+
// Remove from the scene if found
|
|
201
|
+
this._scene.reflectionProbes.splice(index, 1);
|
|
202
|
+
}
|
|
203
|
+
if (this._parentContainer) {
|
|
204
|
+
const index = this._parentContainer.reflectionProbes.indexOf(this);
|
|
205
|
+
if (index > -1) {
|
|
206
|
+
this._parentContainer.reflectionProbes.splice(index, 1);
|
|
207
|
+
}
|
|
208
|
+
this._parentContainer = null;
|
|
209
|
+
}
|
|
210
|
+
if (this._renderTargetTexture) {
|
|
211
|
+
this._renderTargetTexture.dispose();
|
|
212
|
+
this._renderTargetTexture = null;
|
|
213
|
+
}
|
|
214
|
+
if (this._sceneUBOs) {
|
|
215
|
+
for (const ubo of this._sceneUBOs) {
|
|
216
|
+
ubo.dispose();
|
|
217
|
+
}
|
|
218
|
+
this._sceneUBOs = [];
|
|
219
|
+
}
|
|
135
220
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this._renderTargetTexture.refreshRate = value;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Gets the hosting scene
|
|
154
|
-
* @returns a Scene
|
|
155
|
-
*/
|
|
156
|
-
getScene() {
|
|
157
|
-
return this._scene;
|
|
158
|
-
}
|
|
159
|
-
/** Gets the internal CubeTexture used to render to */
|
|
160
|
-
get cubeTexture() {
|
|
161
|
-
return this._renderTargetTexture;
|
|
162
|
-
}
|
|
163
|
-
/** Gets or sets the list of meshes to render */
|
|
164
|
-
get renderList() {
|
|
165
|
-
return this._renderTargetTexture.renderList;
|
|
166
|
-
}
|
|
167
|
-
set renderList(value) {
|
|
168
|
-
this._renderTargetTexture.renderList = value;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Attach the probe to a specific mesh (Rendering will be done from attached mesh's position)
|
|
172
|
-
* @param mesh defines the mesh to attach to
|
|
173
|
-
*/
|
|
174
|
-
attachToMesh(mesh) {
|
|
175
|
-
this._attachedMesh = mesh;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Specifies whether or not the stencil and depth buffer are cleared between two rendering groups
|
|
179
|
-
* @param renderingGroupId The rendering group id corresponding to its index
|
|
180
|
-
* @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.
|
|
181
|
-
*/
|
|
182
|
-
setRenderingAutoClearDepthStencil(renderingGroupId, autoClearDepthStencil) {
|
|
183
|
-
this._renderTargetTexture.setRenderingAutoClearDepthStencil(renderingGroupId, autoClearDepthStencil);
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Clean all associated resources
|
|
187
|
-
*/
|
|
188
|
-
dispose() {
|
|
189
|
-
const index = this._scene.reflectionProbes.indexOf(this);
|
|
190
|
-
if (index !== -1) {
|
|
191
|
-
// Remove from the scene if found
|
|
192
|
-
this._scene.reflectionProbes.splice(index, 1);
|
|
193
|
-
}
|
|
194
|
-
if (this._parentContainer) {
|
|
195
|
-
const index = this._parentContainer.reflectionProbes.indexOf(this);
|
|
196
|
-
if (index > -1) {
|
|
197
|
-
this._parentContainer.reflectionProbes.splice(index, 1);
|
|
221
|
+
/**
|
|
222
|
+
* Converts the reflection probe information to a readable string for debug purpose.
|
|
223
|
+
* @param fullDetails Supports for multiple levels of logging within scene loading
|
|
224
|
+
* @returns the human readable reflection probe info
|
|
225
|
+
*/
|
|
226
|
+
toString(fullDetails) {
|
|
227
|
+
let ret = "Name: " + this.name;
|
|
228
|
+
if (fullDetails) {
|
|
229
|
+
ret += ", position: " + this.position.toString();
|
|
230
|
+
if (this._attachedMesh) {
|
|
231
|
+
ret += ", attached mesh: " + this._attachedMesh.name;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return ret;
|
|
198
235
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
if (this._sceneUBOs) {
|
|
206
|
-
for (const ubo of this._sceneUBOs) {
|
|
207
|
-
ubo.dispose();
|
|
236
|
+
/**
|
|
237
|
+
* Get the class name of the refection probe.
|
|
238
|
+
* @returns "ReflectionProbe"
|
|
239
|
+
*/
|
|
240
|
+
getClassName() {
|
|
241
|
+
return "ReflectionProbe";
|
|
208
242
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
let ret = "Name: " + this.name;
|
|
219
|
-
if (fullDetails) {
|
|
220
|
-
ret += ", position: " + this.position.toString();
|
|
221
|
-
if (this._attachedMesh) {
|
|
222
|
-
ret += ", attached mesh: " + this._attachedMesh.name;
|
|
243
|
+
/**
|
|
244
|
+
* Serialize the reflection probe to a JSON representation we can easily use in the respective Parse function.
|
|
245
|
+
* @returns The JSON representation of the texture
|
|
246
|
+
*/
|
|
247
|
+
serialize() {
|
|
248
|
+
const serializationObject = SerializationHelper.Serialize(this, this._renderTargetTexture.serialize());
|
|
249
|
+
serializationObject.isReflectionProbe = true;
|
|
250
|
+
serializationObject.metadata = this.metadata;
|
|
251
|
+
return serializationObject;
|
|
223
252
|
}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
* @returns The JSON representation of the texture
|
|
237
|
-
*/
|
|
238
|
-
serialize() {
|
|
239
|
-
const serializationObject = SerializationHelper.Serialize(this, this._renderTargetTexture.serialize());
|
|
240
|
-
serializationObject.isReflectionProbe = true;
|
|
241
|
-
serializationObject.metadata = this.metadata;
|
|
242
|
-
return serializationObject;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
__decorate([
|
|
246
|
-
serializeAsMeshReference()
|
|
247
|
-
], ReflectionProbe.prototype, "_attachedMesh", void 0);
|
|
248
|
-
__decorate([
|
|
249
|
-
serializeAsVector3()
|
|
250
|
-
], ReflectionProbe.prototype, "position", void 0);
|
|
253
|
+
},
|
|
254
|
+
(() => {
|
|
255
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
256
|
+
__attachedMesh_decorators = [serializeAsMeshReference()];
|
|
257
|
+
_position_decorators = [serializeAsVector3()];
|
|
258
|
+
__esDecorate(null, null, __attachedMesh_decorators, { kind: "field", name: "_attachedMesh", static: false, private: false, access: { has: obj => "_attachedMesh" in obj, get: obj => obj._attachedMesh, set: (obj, value) => { obj._attachedMesh = value; } }, metadata: _metadata }, __attachedMesh_initializers, __attachedMesh_extraInitializers);
|
|
259
|
+
__esDecorate(null, null, _position_decorators, { kind: "field", name: "position", static: false, private: false, access: { has: obj => "position" in obj, get: obj => obj.position, set: (obj, value) => { obj.position = value; } }, metadata: _metadata }, _position_initializers, _position_extraInitializers);
|
|
260
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
261
|
+
})(),
|
|
262
|
+
_a;
|
|
263
|
+
})();
|
|
264
|
+
export { ReflectionProbe };
|
|
251
265
|
let _Registered = false;
|
|
252
266
|
/**
|
|
253
267
|
* Parse the JSON representation of a reflection probe in order to recreate the reflection probe in the given scene.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflectionProbe.pure.js","sourceRoot":"","sources":["../../../../dev/core/src/Probes/reflectionProbe.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\n\nimport { serializeAsMeshReference, serializeAsVector3 } from \"../Misc/decorators\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture.pure\";\nimport { Matrix, Vector3 } from \"../Maths/math.vector.pure\";\nimport { type AbstractMesh } from \"../Meshes/abstractMesh.pure\";\nimport { type Nullable } from \"../types\";\nimport { Scene } from \"../scene.pure\";\nimport { Constants } from \"../Engines/constants\";\nimport { type UniformBuffer } from \"../Materials/uniformBuffer\";\nimport { type IAssetContainer } from \"core/IAssetContainer\";\n\n/**\n * Class used to generate realtime reflection / refraction cube textures\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/reflectionProbes\n */\nexport class ReflectionProbe {\n private _scene: Scene;\n private _renderTargetTexture: RenderTargetTexture;\n private _projectionMatrix: Matrix;\n private _viewMatrix = Matrix.Identity();\n private _target = Vector3.Zero();\n private _add = Vector3.Zero();\n @serializeAsMeshReference()\n private _attachedMesh: Nullable<AbstractMesh>;\n\n private _invertYAxis = false;\n private _sceneUBOs: UniformBuffer[];\n private _currentSceneUBO: UniformBuffer;\n\n /** Gets or sets probe position (center of the cube map) */\n @serializeAsVector3()\n public position = Vector3.Zero();\n\n /**\n * Gets or sets an object used to store user defined information for the reflection probe.\n */\n public metadata: any = null;\n\n /** @internal */\n public _parentContainer: Nullable<IAssetContainer> = null;\n\n /**\n * Gets or sets if the probe should be serialized\n */\n public doNotSerialize = false;\n\n /**\n * Creates a new reflection probe\n * @param name defines the name of the probe\n * @param size defines the texture resolution (for each face)\n * @param scene defines the hosting scene\n * @param generateMipMaps defines if mip maps should be generated automatically (true by default)\n * @param useFloat defines if HDR data (float data) should be used to store colors (false by default)\n * @param linearSpace defines if the probe should be generated in linear space or not (false by default)\n */\n constructor(\n /** defines the name of the probe */\n public name: string,\n size: number,\n scene: Scene,\n generateMipMaps = true,\n useFloat = false,\n linearSpace = false\n ) {\n this._scene = scene;\n\n // Create the scene field if not exist.\n if (!this._scene.reflectionProbes) {\n this._scene.reflectionProbes = [] as ReflectionProbe[];\n }\n this._scene.reflectionProbes.push(this);\n\n if (scene.getEngine().supportsUniformBuffers) {\n this._sceneUBOs = [];\n for (let i = 0; i < 6; ++i) {\n this._sceneUBOs.push(scene.createSceneUniformBuffer(`Scene for Reflection Probe (name \"${name}\") face #${i}`, { forceMono: true }));\n }\n }\n\n let textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n if (useFloat) {\n const caps = this._scene.getEngine().getCaps();\n if (caps.textureHalfFloatRender) {\n textureType = Constants.TEXTURETYPE_HALF_FLOAT;\n } else if (caps.textureFloatRender) {\n textureType = Constants.TEXTURETYPE_FLOAT;\n }\n }\n this._renderTargetTexture = new RenderTargetTexture(name, size, scene, generateMipMaps, true, textureType, true);\n this._renderTargetTexture.gammaSpace = !linearSpace;\n this._renderTargetTexture.invertZ = scene.useRightHandedSystem;\n\n const useReverseDepthBuffer = scene.getEngine().useReverseDepthBuffer;\n\n this._renderTargetTexture.onBeforeRenderObservable.add((faceIndex: number) => {\n if (this._sceneUBOs) {\n scene.setSceneUniformBuffer(this._sceneUBOs[faceIndex]);\n scene.getSceneUniformBuffer().unbindEffect();\n }\n switch (faceIndex) {\n case 0:\n this._add.copyFromFloats(1, 0, 0);\n break;\n case 1:\n this._add.copyFromFloats(-1, 0, 0);\n break;\n case 2:\n this._add.copyFromFloats(0, this._invertYAxis ? 1 : -1, 0);\n break;\n case 3:\n this._add.copyFromFloats(0, this._invertYAxis ? -1 : 1, 0);\n break;\n case 4:\n this._add.copyFromFloats(0, 0, scene.useRightHandedSystem ? -1 : 1);\n break;\n case 5:\n this._add.copyFromFloats(0, 0, scene.useRightHandedSystem ? 1 : -1);\n break;\n }\n\n if (this._attachedMesh) {\n this.position.copyFrom(this._attachedMesh.getAbsolutePosition());\n }\n\n this.position.addToRef(this._add, this._target);\n\n const lookAtFunction = scene.useRightHandedSystem ? Matrix.LookAtRHToRef : Matrix.LookAtLHToRef;\n const perspectiveFunction = scene.useRightHandedSystem ? Matrix.PerspectiveFovRH : Matrix.PerspectiveFovLH;\n\n lookAtFunction(this.position, this._target, Vector3.Up(), this._viewMatrix);\n\n if (scene.activeCamera) {\n this._projectionMatrix = perspectiveFunction(\n Math.PI / 2,\n 1,\n useReverseDepthBuffer ? scene.activeCamera.maxZ : scene.activeCamera.minZ,\n useReverseDepthBuffer ? scene.activeCamera.minZ : scene.activeCamera.maxZ,\n this._scene.getEngine().isNDCHalfZRange\n );\n scene.setTransformMatrix(this._viewMatrix, this._projectionMatrix);\n if (scene.activeCamera.isRigCamera && !this._renderTargetTexture.activeCamera) {\n this._renderTargetTexture.activeCamera = scene.activeCamera.rigParent || null;\n }\n }\n if (this._sceneUBOs) {\n scene.finalizeSceneUbo();\n }\n scene._forcedViewPosition = this.position;\n });\n\n let currentApplyByPostProcess: boolean;\n\n this._renderTargetTexture.onBeforeBindObservable.add(() => {\n const engine = scene.getEngine();\n this._currentSceneUBO = scene.getSceneUniformBuffer();\n if (engine._enableGPUDebugMarkers) {\n engine._debugPushGroup?.(`reflection probe generation for ${name}`);\n }\n currentApplyByPostProcess = this._scene.imageProcessingConfiguration.applyByPostProcess;\n if (linearSpace) {\n scene.imageProcessingConfiguration.applyByPostProcess = true;\n }\n });\n\n this._renderTargetTexture.onAfterUnbindObservable.add(() => {\n const engine = scene.getEngine();\n scene.imageProcessingConfiguration.applyByPostProcess = currentApplyByPostProcess;\n scene._forcedViewPosition = null;\n if (this._sceneUBOs) {\n scene.setSceneUniformBuffer(this._currentSceneUBO);\n }\n scene.updateTransformMatrix(true);\n if (engine._enableGPUDebugMarkers) {\n engine._debugPopGroup?.();\n }\n });\n }\n\n /** Gets or sets the number of samples to use for multi-sampling (0 by default). Required WebGL2 */\n public get samples(): number {\n return this._renderTargetTexture.samples;\n }\n\n public set samples(value: number) {\n this._renderTargetTexture.samples = value;\n }\n\n /** Gets or sets the refresh rate to use (on every frame by default) */\n public get refreshRate(): number {\n return this._renderTargetTexture.refreshRate;\n }\n\n public set refreshRate(value: number) {\n this._renderTargetTexture.refreshRate = value;\n }\n\n /**\n * Gets the hosting scene\n * @returns a Scene\n */\n public getScene(): Scene {\n return this._scene;\n }\n\n /** Gets the internal CubeTexture used to render to */\n public get cubeTexture(): RenderTargetTexture {\n return this._renderTargetTexture;\n }\n\n /** Gets or sets the list of meshes to render */\n public get renderList(): Nullable<AbstractMesh[]> {\n return this._renderTargetTexture.renderList;\n }\n\n public set renderList(value: Nullable<AbstractMesh[]>) {\n this._renderTargetTexture.renderList = value;\n }\n\n /**\n * Attach the probe to a specific mesh (Rendering will be done from attached mesh's position)\n * @param mesh defines the mesh to attach to\n */\n public attachToMesh(mesh: Nullable<AbstractMesh>): void {\n this._attachedMesh = mesh;\n }\n\n /**\n * Specifies whether or not the stencil and depth buffer are cleared between two rendering groups\n * @param renderingGroupId The rendering group id corresponding to its index\n * @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.\n */\n public setRenderingAutoClearDepthStencil(renderingGroupId: number, autoClearDepthStencil: boolean): void {\n this._renderTargetTexture.setRenderingAutoClearDepthStencil(renderingGroupId, autoClearDepthStencil);\n }\n\n /**\n * Clean all associated resources\n */\n public dispose() {\n const index = this._scene.reflectionProbes.indexOf(this);\n\n if (index !== -1) {\n // Remove from the scene if found\n this._scene.reflectionProbes.splice(index, 1);\n }\n\n if (this._parentContainer) {\n const index = this._parentContainer.reflectionProbes.indexOf(this);\n if (index > -1) {\n this._parentContainer.reflectionProbes.splice(index, 1);\n }\n this._parentContainer = null;\n }\n\n if (this._renderTargetTexture) {\n this._renderTargetTexture.dispose();\n (<any>this._renderTargetTexture) = null;\n }\n\n if (this._sceneUBOs) {\n for (const ubo of this._sceneUBOs) {\n ubo.dispose();\n }\n this._sceneUBOs = [];\n }\n }\n\n /**\n * Converts the reflection probe information to a readable string for debug purpose.\n * @param fullDetails Supports for multiple levels of logging within scene loading\n * @returns the human readable reflection probe info\n */\n public toString(fullDetails?: boolean): string {\n let ret = \"Name: \" + this.name;\n\n if (fullDetails) {\n ret += \", position: \" + this.position.toString();\n\n if (this._attachedMesh) {\n ret += \", attached mesh: \" + this._attachedMesh.name;\n }\n }\n\n return ret;\n }\n\n /**\n * Get the class name of the refection probe.\n * @returns \"ReflectionProbe\"\n */\n public getClassName(): string {\n return \"ReflectionProbe\";\n }\n\n /**\n * Serialize the reflection probe to a JSON representation we can easily use in the respective Parse function.\n * @returns The JSON representation of the texture\n */\n public serialize(): any {\n const serializationObject = SerializationHelper.Serialize(this, this._renderTargetTexture.serialize());\n serializationObject.isReflectionProbe = true;\n serializationObject.metadata = this.metadata;\n\n return serializationObject;\n }\n}\n\nlet _Registered = false;\n\n/**\n * Parse the JSON representation of a reflection probe in order to recreate the reflection probe in the given scene.\n * @param parsedReflectionProbe Define the JSON representation of the reflection probe\n * @param scene Define the scene the parsed reflection probe should be instantiated in\n * @param rootUrl Define the root url of the parsing sequence in the case of relative dependencies\n * @returns The parsed reflection probe if successful\n */\nexport function ReflectionProbeParse(parsedReflectionProbe: any, scene: Scene, rootUrl: string): Nullable<ReflectionProbe> {\n let reflectionProbe: Nullable<ReflectionProbe> = null;\n if (scene.reflectionProbes) {\n for (let index = 0; index < scene.reflectionProbes.length; index++) {\n const rp = scene.reflectionProbes[index];\n if (rp.name === parsedReflectionProbe.name) {\n reflectionProbe = rp;\n break;\n }\n }\n }\n\n reflectionProbe = SerializationHelper.Parse(\n () => reflectionProbe || new ReflectionProbe(parsedReflectionProbe.name, parsedReflectionProbe.renderTargetSize, scene, parsedReflectionProbe._generateMipMaps),\n parsedReflectionProbe,\n scene,\n rootUrl\n );\n reflectionProbe.cubeTexture._waitingRenderList = parsedReflectionProbe.renderList;\n\n if (parsedReflectionProbe._attachedMesh) {\n reflectionProbe.attachToMesh(scene.getMeshById(parsedReflectionProbe._attachedMesh));\n }\n\n if (parsedReflectionProbe.metadata) {\n reflectionProbe.metadata = parsedReflectionProbe.metadata;\n }\n\n return reflectionProbe;\n}\n\n/**\n * Register side effects for reflectionProbe.\n * Safe to call multiple times; only the first call has an effect.\n */\nexport function RegisterReflectionProbe(): void {\n if (_Registered) {\n return;\n }\n _Registered = true;\n\n ReflectionProbe.Parse = ReflectionProbeParse;\n\n Scene.prototype.removeReflectionProbe = function (toRemove: ReflectionProbe): number {\n if (!this.reflectionProbes) {\n return -1;\n }\n\n const index = this.reflectionProbes.indexOf(toRemove);\n if (index !== -1) {\n this.reflectionProbes.splice(index, 1);\n }\n\n return index;\n };\n\n Scene.prototype.addReflectionProbe = function (newReflectionProbe: ReflectionProbe): void {\n if (!this.reflectionProbes) {\n this.reflectionProbes = [];\n }\n\n this.reflectionProbes.push(newReflectionProbe);\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"reflectionProbe.pure.js","sourceRoot":"","sources":["../../../../dev/core/src/Probes/reflectionProbe.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\n\nimport { serializeAsMeshReference, serializeAsVector3 } from \"../Misc/decorators\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture.pure\";\nimport { Matrix, Vector3 } from \"../Maths/math.vector.pure\";\nimport { type AbstractMesh } from \"../Meshes/abstractMesh.pure\";\nimport { type Nullable } from \"../types\";\nimport { Scene } from \"../scene.pure\";\nimport { Constants } from \"../Engines/constants\";\nimport { type UniformBuffer } from \"../Materials/uniformBuffer\";\nimport { type IAssetContainer } from \"core/IAssetContainer\";\n\n/**\n * Class used to generate realtime reflection / refraction cube textures\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/reflectionProbes\n */\nexport class ReflectionProbe {\n private _scene: Scene;\n private _renderTargetTexture: RenderTargetTexture;\n private _projectionMatrix: Matrix;\n private _viewMatrix = Matrix.Identity();\n private _target = Vector3.Zero();\n private _add = Vector3.Zero();\n @serializeAsMeshReference()\n private _attachedMesh: Nullable<AbstractMesh>;\n\n private _invertYAxis = false;\n private _sceneUBOs: UniformBuffer[];\n private _currentSceneUBO: UniformBuffer;\n\n /** Gets or sets probe position (center of the cube map) */\n @serializeAsVector3()\n public position = Vector3.Zero();\n\n /**\n * Gets or sets an object used to store user defined information for the reflection probe.\n */\n public metadata: any = null;\n\n /** @internal */\n public _parentContainer: Nullable<IAssetContainer> = null;\n\n /**\n * Gets or sets if the probe should be serialized\n */\n public doNotSerialize = false;\n\n /**\n * Creates a new reflection probe\n * @param name defines the name of the probe\n * @param size defines the texture resolution (for each face)\n * @param scene defines the hosting scene\n * @param generateMipMaps defines if mip maps should be generated automatically (true by default)\n * @param useFloat defines if HDR data (float data) should be used to store colors (false by default)\n * @param linearSpace defines if the probe should be generated in linear space or not (false by default)\n */\n constructor(\n /** defines the name of the probe */\n public name: string,\n size: number,\n scene: Scene,\n generateMipMaps = true,\n useFloat = false,\n linearSpace = false\n ) {\n this._scene = scene;\n\n // Create the scene field if not exist.\n if (!this._scene.reflectionProbes) {\n this._scene.reflectionProbes = [] as ReflectionProbe[];\n }\n this._scene.reflectionProbes.push(this);\n\n if (scene.getEngine().supportsUniformBuffers) {\n this._sceneUBOs = [];\n for (let i = 0; i < 6; ++i) {\n this._sceneUBOs.push(scene.createSceneUniformBuffer(`Scene for Reflection Probe (name \"${name}\") face #${i}`, { forceMono: true }));\n }\n }\n\n let textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n if (useFloat) {\n const caps = this._scene.getEngine().getCaps();\n if (caps.textureHalfFloatRender) {\n textureType = Constants.TEXTURETYPE_HALF_FLOAT;\n } else if (caps.textureFloatRender) {\n textureType = Constants.TEXTURETYPE_FLOAT;\n }\n }\n this._renderTargetTexture = new RenderTargetTexture(name, size, scene, generateMipMaps, true, textureType, true);\n this._renderTargetTexture.gammaSpace = !linearSpace;\n this._renderTargetTexture.invertZ = scene.useRightHandedSystem;\n\n const useReverseDepthBuffer = scene.getEngine().useReverseDepthBuffer;\n\n this._renderTargetTexture.onBeforeRenderObservable.add((faceIndex: number) => {\n if (this._sceneUBOs) {\n scene.setSceneUniformBuffer(this._sceneUBOs[faceIndex]);\n scene.getSceneUniformBuffer().unbindEffect();\n }\n switch (faceIndex) {\n case 0:\n this._add.copyFromFloats(1, 0, 0);\n break;\n case 1:\n this._add.copyFromFloats(-1, 0, 0);\n break;\n case 2:\n this._add.copyFromFloats(0, this._invertYAxis ? 1 : -1, 0);\n break;\n case 3:\n this._add.copyFromFloats(0, this._invertYAxis ? -1 : 1, 0);\n break;\n case 4:\n this._add.copyFromFloats(0, 0, scene.useRightHandedSystem ? -1 : 1);\n break;\n case 5:\n this._add.copyFromFloats(0, 0, scene.useRightHandedSystem ? 1 : -1);\n break;\n }\n\n if (this._attachedMesh) {\n this.position.copyFrom(this._attachedMesh.getAbsolutePosition());\n }\n\n this.position.addToRef(this._add, this._target);\n\n const lookAtFunction = scene.useRightHandedSystem ? Matrix.LookAtRHToRef : Matrix.LookAtLHToRef;\n const perspectiveFunction = scene.useRightHandedSystem ? Matrix.PerspectiveFovRH : Matrix.PerspectiveFovLH;\n\n lookAtFunction(this.position, this._target, Vector3.Up(), this._viewMatrix);\n\n if (scene.activeCamera) {\n this._projectionMatrix = perspectiveFunction(\n Math.PI / 2,\n 1,\n useReverseDepthBuffer ? scene.activeCamera.maxZ : scene.activeCamera.minZ,\n useReverseDepthBuffer ? scene.activeCamera.minZ : scene.activeCamera.maxZ,\n this._scene.getEngine().isNDCHalfZRange\n );\n scene.setTransformMatrix(this._viewMatrix, this._projectionMatrix);\n if (scene.activeCamera.isRigCamera && !this._renderTargetTexture.activeCamera) {\n this._renderTargetTexture.activeCamera = scene.activeCamera.rigParent || null;\n }\n }\n if (this._sceneUBOs) {\n scene.finalizeSceneUbo();\n }\n scene._forcedViewPosition = this.position;\n });\n\n let currentApplyByPostProcess: boolean;\n\n this._renderTargetTexture.onBeforeBindObservable.add(() => {\n const engine = scene.getEngine();\n this._currentSceneUBO = scene.getSceneUniformBuffer();\n if (engine._enableGPUDebugMarkers) {\n engine._debugPushGroup?.(`reflection probe generation for ${name}`);\n }\n currentApplyByPostProcess = this._scene.imageProcessingConfiguration.applyByPostProcess;\n if (linearSpace) {\n scene.imageProcessingConfiguration.applyByPostProcess = true;\n }\n });\n\n this._renderTargetTexture.onAfterUnbindObservable.add(() => {\n const engine = scene.getEngine();\n scene.imageProcessingConfiguration.applyByPostProcess = currentApplyByPostProcess;\n scene._forcedViewPosition = null;\n if (this._sceneUBOs) {\n scene.setSceneUniformBuffer(this._currentSceneUBO);\n }\n scene.updateTransformMatrix(true);\n if (engine._enableGPUDebugMarkers) {\n engine._debugPopGroup?.();\n }\n });\n }\n\n /** Gets or sets the number of samples to use for multi-sampling (0 by default). Required WebGL2 */\n public get samples(): number {\n return this._renderTargetTexture.samples;\n }\n\n public set samples(value: number) {\n this._renderTargetTexture.samples = value;\n }\n\n /** Gets or sets the refresh rate to use (on every frame by default) */\n public get refreshRate(): number {\n return this._renderTargetTexture.refreshRate;\n }\n\n public set refreshRate(value: number) {\n this._renderTargetTexture.refreshRate = value;\n }\n\n /**\n * Gets the hosting scene\n * @returns a Scene\n */\n public getScene(): Scene {\n return this._scene;\n }\n\n /** Gets the internal CubeTexture used to render to */\n public get cubeTexture(): RenderTargetTexture {\n return this._renderTargetTexture;\n }\n\n /** Gets or sets the list of meshes to render */\n public get renderList(): Nullable<AbstractMesh[]> {\n return this._renderTargetTexture.renderList;\n }\n\n public set renderList(value: Nullable<AbstractMesh[]>) {\n this._renderTargetTexture.renderList = value;\n }\n\n /**\n * Attach the probe to a specific mesh (Rendering will be done from attached mesh's position)\n * @param mesh defines the mesh to attach to\n */\n public attachToMesh(mesh: Nullable<AbstractMesh>): void {\n this._attachedMesh = mesh;\n }\n\n /**\n * Specifies whether or not the stencil and depth buffer are cleared between two rendering groups\n * @param renderingGroupId The rendering group id corresponding to its index\n * @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.\n */\n public setRenderingAutoClearDepthStencil(renderingGroupId: number, autoClearDepthStencil: boolean): void {\n this._renderTargetTexture.setRenderingAutoClearDepthStencil(renderingGroupId, autoClearDepthStencil);\n }\n\n /**\n * Clean all associated resources\n */\n public dispose() {\n const index = this._scene.reflectionProbes.indexOf(this);\n\n if (index !== -1) {\n // Remove from the scene if found\n this._scene.reflectionProbes.splice(index, 1);\n }\n\n if (this._parentContainer) {\n const index = this._parentContainer.reflectionProbes.indexOf(this);\n if (index > -1) {\n this._parentContainer.reflectionProbes.splice(index, 1);\n }\n this._parentContainer = null;\n }\n\n if (this._renderTargetTexture) {\n this._renderTargetTexture.dispose();\n (<any>this._renderTargetTexture) = null;\n }\n\n if (this._sceneUBOs) {\n for (const ubo of this._sceneUBOs) {\n ubo.dispose();\n }\n this._sceneUBOs = [];\n }\n }\n\n /**\n * Converts the reflection probe information to a readable string for debug purpose.\n * @param fullDetails Supports for multiple levels of logging within scene loading\n * @returns the human readable reflection probe info\n */\n public toString(fullDetails?: boolean): string {\n let ret = \"Name: \" + this.name;\n\n if (fullDetails) {\n ret += \", position: \" + this.position.toString();\n\n if (this._attachedMesh) {\n ret += \", attached mesh: \" + this._attachedMesh.name;\n }\n }\n\n return ret;\n }\n\n /**\n * Get the class name of the refection probe.\n * @returns \"ReflectionProbe\"\n */\n public getClassName(): string {\n return \"ReflectionProbe\";\n }\n\n /**\n * Serialize the reflection probe to a JSON representation we can easily use in the respective Parse function.\n * @returns The JSON representation of the texture\n */\n public serialize(): any {\n const serializationObject = SerializationHelper.Serialize(this, this._renderTargetTexture.serialize());\n serializationObject.isReflectionProbe = true;\n serializationObject.metadata = this.metadata;\n\n return serializationObject;\n }\n}\n\nlet _Registered = false;\n\n/**\n * Parse the JSON representation of a reflection probe in order to recreate the reflection probe in the given scene.\n * @param parsedReflectionProbe Define the JSON representation of the reflection probe\n * @param scene Define the scene the parsed reflection probe should be instantiated in\n * @param rootUrl Define the root url of the parsing sequence in the case of relative dependencies\n * @returns The parsed reflection probe if successful\n */\nexport function ReflectionProbeParse(parsedReflectionProbe: any, scene: Scene, rootUrl: string): Nullable<ReflectionProbe> {\n let reflectionProbe: Nullable<ReflectionProbe> = null;\n if (scene.reflectionProbes) {\n for (let index = 0; index < scene.reflectionProbes.length; index++) {\n const rp = scene.reflectionProbes[index];\n if (rp.name === parsedReflectionProbe.name) {\n reflectionProbe = rp;\n break;\n }\n }\n }\n\n reflectionProbe = SerializationHelper.Parse(\n () => reflectionProbe || new ReflectionProbe(parsedReflectionProbe.name, parsedReflectionProbe.renderTargetSize, scene, parsedReflectionProbe._generateMipMaps),\n parsedReflectionProbe,\n scene,\n rootUrl\n );\n reflectionProbe.cubeTexture._waitingRenderList = parsedReflectionProbe.renderList;\n\n if (parsedReflectionProbe._attachedMesh) {\n reflectionProbe.attachToMesh(scene.getMeshById(parsedReflectionProbe._attachedMesh));\n }\n\n if (parsedReflectionProbe.metadata) {\n reflectionProbe.metadata = parsedReflectionProbe.metadata;\n }\n\n return reflectionProbe;\n}\n\n/**\n * Register side effects for reflectionProbe.\n * Safe to call multiple times; only the first call has an effect.\n */\nexport function RegisterReflectionProbe(): void {\n if (_Registered) {\n return;\n }\n _Registered = true;\n\n ReflectionProbe.Parse = ReflectionProbeParse;\n\n Scene.prototype.removeReflectionProbe = function (toRemove: ReflectionProbe): number {\n if (!this.reflectionProbes) {\n return -1;\n }\n\n const index = this.reflectionProbes.indexOf(toRemove);\n if (index !== -1) {\n this.reflectionProbes.splice(index, 1);\n }\n\n return index;\n };\n\n Scene.prototype.addReflectionProbe = function (newReflectionProbe: ReflectionProbe): void {\n if (!this.reflectionProbes) {\n this.reflectionProbes = [];\n }\n\n this.reflectionProbes.push(newReflectionProbe);\n };\n}\n"]}
|
|
@@ -245,7 +245,7 @@ export declare class GIRSMRenderPluginMaterial extends MaterialPluginBase {
|
|
|
245
245
|
/**
|
|
246
246
|
* Defines if the plugin is enabled in the material.
|
|
247
247
|
*/
|
|
248
|
-
isEnabled: boolean;
|
|
248
|
+
accessor isEnabled: boolean;
|
|
249
249
|
protected _markAllSubMeshesAsTexturesDirty(): void;
|
|
250
250
|
private _internalMarkAllSubMeshesAsTexturesDirty;
|
|
251
251
|
/**
|