@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 { serialize } from "../../../Misc/decorators.js";
|
|
4
4
|
import { Observable } from "../../../Misc/observable.pure.js";
|
|
5
5
|
import { VertexBuffer } from "../../../Buffers/buffer.pure.js";
|
|
@@ -17,659 +17,687 @@ import { RegisterClass } from "../../../Misc/typeStore.js";
|
|
|
17
17
|
* This is the base class of any Procedural texture and contains most of the shareable code.
|
|
18
18
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/proceduralTextures
|
|
19
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
20
|
+
let ProceduralTexture = (() => {
|
|
21
|
+
var _a;
|
|
22
|
+
let _classSuper = Texture;
|
|
23
|
+
let _instanceExtraInitializers = [];
|
|
24
|
+
let _isEnabled_decorators;
|
|
25
|
+
let _isEnabled_initializers = [];
|
|
26
|
+
let _isEnabled_extraInitializers = [];
|
|
27
|
+
let _autoClear_decorators;
|
|
28
|
+
let _autoClear_initializers = [];
|
|
29
|
+
let _autoClear_extraInitializers = [];
|
|
30
|
+
let __generateMipMaps_decorators;
|
|
31
|
+
let __generateMipMaps_initializers = [];
|
|
32
|
+
let __generateMipMaps_extraInitializers = [];
|
|
33
|
+
let __size_decorators;
|
|
34
|
+
let __size_initializers = [];
|
|
35
|
+
let __size_extraInitializers = [];
|
|
36
|
+
let _get_refreshRate_decorators;
|
|
37
|
+
return _a = class ProceduralTexture extends _classSuper {
|
|
38
|
+
/**
|
|
39
|
+
* Gets the shader language type used to generate vertex and fragment source code.
|
|
40
|
+
*/
|
|
41
|
+
get shaderLanguage() {
|
|
42
|
+
return this._shaderLanguage;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Instantiates a new procedural texture.
|
|
46
|
+
* Procedural texturing is a way to programmatically create a texture. There are 2 types of procedural textures: code-only, and code that references some classic 2D images, sometimes called 'refMaps' or 'sampler' images.
|
|
47
|
+
* This is the base class of any Procedural texture and contains most of the shareable code.
|
|
48
|
+
* @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/proceduralTextures
|
|
49
|
+
* @param name Define the name of the texture
|
|
50
|
+
* @param size Define the size of the texture to create
|
|
51
|
+
* @param fragment Define the fragment shader to use to generate the texture or null if it is defined later:
|
|
52
|
+
* * object: \{ fragmentElement: "fragmentShaderCode" \}, used with shader code in script tags
|
|
53
|
+
* * object: \{ fragmentSource: "fragment shader code string" \}, the string contains the shader code
|
|
54
|
+
* * string: the string contains a name "XXX" to lookup in Effect.ShadersStore["XXXFragmentShader"]
|
|
55
|
+
* @param scene Define the scene the texture belongs to
|
|
56
|
+
* @param fallbackTexture Define a fallback texture in case there were issues to create the custom texture
|
|
57
|
+
* @param generateMipMaps Define if the texture should creates mip maps or not
|
|
58
|
+
* @param isCube Define if the texture is a cube texture or not (this will render each faces of the cube)
|
|
59
|
+
* @param textureType The FBO internal texture type
|
|
60
|
+
*/
|
|
61
|
+
constructor(name, size, fragment, scene, fallbackTexture = null, generateMipMaps = true, isCube = false, textureType = 0) {
|
|
62
|
+
super(null, scene, !generateMipMaps);
|
|
63
|
+
/**
|
|
64
|
+
* Define if the texture is enabled or not (disabled texture will not render)
|
|
65
|
+
*/
|
|
66
|
+
this.isEnabled = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _isEnabled_initializers, true));
|
|
67
|
+
/**
|
|
68
|
+
* Define if the texture must be cleared before rendering (default is true)
|
|
69
|
+
*/
|
|
70
|
+
this.autoClear = (__runInitializers(this, _isEnabled_extraInitializers), __runInitializers(this, _autoClear_initializers, true));
|
|
71
|
+
/**
|
|
72
|
+
* Callback called when the texture is generated
|
|
73
|
+
*/
|
|
74
|
+
this.onGenerated = __runInitializers(this, _autoClear_extraInitializers);
|
|
75
|
+
/**
|
|
76
|
+
* Event raised when the texture is generated
|
|
77
|
+
*/
|
|
78
|
+
this.onGeneratedObservable = new Observable();
|
|
79
|
+
/**
|
|
80
|
+
* Event raised before the texture is generated
|
|
81
|
+
*/
|
|
82
|
+
this.onBeforeGenerationObservable = new Observable();
|
|
83
|
+
/**
|
|
84
|
+
* Gets or sets the node material used to create this texture (null if the texture was manually created)
|
|
85
|
+
*/
|
|
86
|
+
this.nodeMaterialSource = null;
|
|
87
|
+
/**
|
|
88
|
+
* Define the list of custom preprocessor defines used in the shader
|
|
89
|
+
*/
|
|
90
|
+
this.defines = "";
|
|
91
|
+
/** @internal */
|
|
92
|
+
this._generateMipMaps = __runInitializers(this, __generateMipMaps_initializers, void 0);
|
|
93
|
+
this._drawWrapper = __runInitializers(this, __generateMipMaps_extraInitializers);
|
|
94
|
+
/** @internal */
|
|
95
|
+
this._textures = {};
|
|
96
|
+
this._size = __runInitializers(this, __size_initializers, void 0);
|
|
97
|
+
this._textureType = __runInitializers(this, __size_extraInitializers);
|
|
98
|
+
this._currentRefreshId = -1;
|
|
99
|
+
this._frameId = -1;
|
|
100
|
+
this._refreshRate = 1;
|
|
101
|
+
this._vertexBuffers = {};
|
|
102
|
+
this._uniforms = new Array();
|
|
103
|
+
this._samplers = new Array();
|
|
104
|
+
this._floats = {};
|
|
105
|
+
this._ints = {};
|
|
106
|
+
this._floatsArrays = {};
|
|
107
|
+
this._colors3 = {};
|
|
108
|
+
this._colors4 = {};
|
|
109
|
+
this._vectors2 = {};
|
|
110
|
+
this._vectors3 = {};
|
|
111
|
+
this._vectors4 = {};
|
|
112
|
+
this._matrices = {};
|
|
113
|
+
this._fallbackTextureUsed = false;
|
|
114
|
+
this._cachedDefines = null;
|
|
115
|
+
this._contentUpdateId = -1;
|
|
116
|
+
this._rtWrapper = null;
|
|
117
|
+
if (fallbackTexture !== null && !(fallbackTexture instanceof Texture)) {
|
|
118
|
+
this._options = fallbackTexture;
|
|
119
|
+
this._fallbackTexture = fallbackTexture.fallbackTexture ?? null;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this._options = {};
|
|
123
|
+
this._fallbackTexture = fallbackTexture;
|
|
124
|
+
}
|
|
125
|
+
this._shaderLanguage = this._options.shaderLanguage ?? 0 /* ShaderLanguage.GLSL */;
|
|
126
|
+
scene = this.getScene() || EngineStore.LastCreatedScene;
|
|
127
|
+
let component = scene._getComponent(SceneComponentConstants.NAME_PROCEDURALTEXTURE);
|
|
128
|
+
if (!component) {
|
|
129
|
+
component = new ProceduralTextureSceneComponent(scene);
|
|
130
|
+
scene._addComponent(component);
|
|
131
|
+
}
|
|
132
|
+
if (!this._options.skipSceneRegistration) {
|
|
133
|
+
scene.proceduralTextures.push(this);
|
|
134
|
+
}
|
|
135
|
+
this._fullEngine = scene.getEngine();
|
|
136
|
+
this.name = name;
|
|
137
|
+
this.isRenderTarget = true;
|
|
138
|
+
this._size = size;
|
|
139
|
+
this._textureType = textureType;
|
|
140
|
+
this._generateMipMaps = generateMipMaps;
|
|
141
|
+
this._drawWrapper = new DrawWrapper(this._fullEngine);
|
|
142
|
+
this.setFragment(fragment);
|
|
143
|
+
const rtWrapper = this._createRtWrapper(isCube, size, generateMipMaps, textureType);
|
|
144
|
+
this._texture = rtWrapper.texture;
|
|
145
|
+
// VBO
|
|
146
|
+
const vertices = [];
|
|
147
|
+
vertices.push(1, 1);
|
|
148
|
+
vertices.push(-1, 1);
|
|
149
|
+
vertices.push(-1, -1);
|
|
150
|
+
vertices.push(1, -1);
|
|
151
|
+
this._vertexBuffers[VertexBuffer.PositionKind] = new VertexBuffer(this._fullEngine, vertices, VertexBuffer.PositionKind, false, false, 2);
|
|
152
|
+
this._createIndexBuffer();
|
|
153
|
+
}
|
|
154
|
+
_createRtWrapper(isCube, size, generateMipMaps, textureType) {
|
|
155
|
+
if (isCube) {
|
|
156
|
+
this._rtWrapper = this._fullEngine.createRenderTargetCubeTexture(size, {
|
|
157
|
+
generateMipMaps: generateMipMaps,
|
|
158
|
+
generateDepthBuffer: false,
|
|
159
|
+
generateStencilBuffer: false,
|
|
160
|
+
type: textureType,
|
|
161
|
+
...this._options,
|
|
162
|
+
});
|
|
163
|
+
this.setFloat("face", 0);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
this._rtWrapper = this._fullEngine.createRenderTargetTexture(size, {
|
|
167
|
+
generateMipMaps: generateMipMaps,
|
|
168
|
+
generateDepthBuffer: false,
|
|
169
|
+
generateStencilBuffer: false,
|
|
170
|
+
type: textureType,
|
|
171
|
+
...this._options,
|
|
172
|
+
});
|
|
173
|
+
if (this._rtWrapper.is3D) {
|
|
174
|
+
this.setFloat("layer", 0);
|
|
175
|
+
this.setInt("layerNum", 0);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return this._rtWrapper;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* The effect that is created when initializing the post process.
|
|
182
|
+
* @returns The created effect corresponding the postprocess.
|
|
183
|
+
*/
|
|
184
|
+
getEffect() {
|
|
185
|
+
return this._drawWrapper.effect;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* @internal
|
|
189
|
+
*/
|
|
190
|
+
_setEffect(effect) {
|
|
191
|
+
this._drawWrapper.effect = effect;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Gets texture content (Use this function wisely as reading from a texture can be slow)
|
|
195
|
+
* @returns an ArrayBufferView promise (Uint8Array or Float32Array)
|
|
196
|
+
*/
|
|
197
|
+
getContent() {
|
|
198
|
+
if (this._contentData && this._frameId === this._contentUpdateId) {
|
|
199
|
+
return this._contentData;
|
|
200
|
+
}
|
|
201
|
+
if (this._contentData) {
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises, github/no-then
|
|
203
|
+
this._contentData.then((buffer) => {
|
|
204
|
+
this._contentData = this.readPixels(0, 0, buffer);
|
|
205
|
+
this._contentUpdateId = this._frameId;
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
this._contentData = this.readPixels(0, 0);
|
|
210
|
+
this._contentUpdateId = this._frameId;
|
|
211
|
+
}
|
|
212
|
+
return this._contentData;
|
|
213
|
+
}
|
|
214
|
+
_createIndexBuffer() {
|
|
215
|
+
const engine = this._fullEngine;
|
|
216
|
+
// Indices
|
|
217
|
+
const indices = [];
|
|
218
|
+
indices.push(0);
|
|
219
|
+
indices.push(1);
|
|
220
|
+
indices.push(2);
|
|
221
|
+
indices.push(0);
|
|
222
|
+
indices.push(2);
|
|
223
|
+
indices.push(3);
|
|
224
|
+
this._indexBuffer = engine.createIndexBuffer(indices);
|
|
225
|
+
}
|
|
226
|
+
/** @internal */
|
|
227
|
+
_rebuild() {
|
|
228
|
+
const vb = this._vertexBuffers[VertexBuffer.PositionKind];
|
|
229
|
+
if (vb) {
|
|
230
|
+
vb._rebuild();
|
|
231
|
+
}
|
|
232
|
+
this._createIndexBuffer();
|
|
233
|
+
if (this.refreshRate === RenderTargetTexture.REFRESHRATE_RENDER_ONCE) {
|
|
234
|
+
this.refreshRate = RenderTargetTexture.REFRESHRATE_RENDER_ONCE;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Resets the texture in order to recreate its associated resources.
|
|
239
|
+
* This can be called in case of context loss or if you change the shader code and need to regenerate the texture with the new code
|
|
240
|
+
*/
|
|
241
|
+
reset() {
|
|
242
|
+
this._drawWrapper.effect?.dispose();
|
|
243
|
+
this._drawWrapper.effect = null;
|
|
244
|
+
this._cachedDefines = null;
|
|
245
|
+
}
|
|
246
|
+
_getDefines() {
|
|
247
|
+
return this.defines;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Executes a function when the texture will be ready to be drawn.
|
|
251
|
+
* @param func The callback to be used.
|
|
252
|
+
*/
|
|
253
|
+
executeWhenReady(func) {
|
|
254
|
+
if (this.isReady()) {
|
|
255
|
+
func(this);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
const effect = this.getEffect();
|
|
259
|
+
if (effect) {
|
|
260
|
+
effect.executeWhenCompiled(() => {
|
|
261
|
+
func(this);
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Is the texture ready to be used ? (rendered at least once)
|
|
267
|
+
* @returns true if ready, otherwise, false.
|
|
268
|
+
*/
|
|
269
|
+
isReady() {
|
|
270
|
+
const engine = this._fullEngine;
|
|
271
|
+
if (this.nodeMaterialSource) {
|
|
272
|
+
// When sourced from a node material, the effect is created asynchronously once the material
|
|
273
|
+
// build completes (some node material blocks load their shader code asynchronously). Until
|
|
274
|
+
// then there is no effect yet, so the texture is simply not ready.
|
|
275
|
+
return this._drawWrapper.effect?.isReady() ?? false;
|
|
276
|
+
}
|
|
277
|
+
if (!this._fragment) {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
if (this._fallbackTextureUsed) {
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
if (!this._texture) {
|
|
284
|
+
return false;
|
|
285
|
+
}
|
|
286
|
+
const defines = this._getDefines();
|
|
287
|
+
if (this._drawWrapper.effect && defines === this._cachedDefines && this._drawWrapper.effect.isReady()) {
|
|
288
|
+
return true;
|
|
289
|
+
}
|
|
290
|
+
const shaders = {
|
|
291
|
+
vertex: "procedural",
|
|
292
|
+
fragmentElement: this._fragment.fragmentElement,
|
|
293
|
+
fragmentSource: this._fragment.fragmentSource,
|
|
294
|
+
fragment: typeof this._fragment === "string" ? this._fragment : undefined,
|
|
295
|
+
};
|
|
296
|
+
if (this._cachedDefines !== defines) {
|
|
297
|
+
this._cachedDefines = defines;
|
|
298
|
+
this._drawWrapper.effect = engine.createEffect(shaders, [VertexBuffer.PositionKind], this._uniforms, this._samplers, defines, undefined, undefined, () => {
|
|
299
|
+
this._rtWrapper?.dispose();
|
|
300
|
+
this._rtWrapper = this._texture = null;
|
|
301
|
+
if (this._fallbackTexture) {
|
|
302
|
+
this._texture = this._fallbackTexture._texture;
|
|
303
|
+
if (this._texture) {
|
|
304
|
+
this._texture.incrementReferences();
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
this._fallbackTextureUsed = true;
|
|
308
|
+
}, undefined, this._shaderLanguage, async () => {
|
|
309
|
+
if (this._options.extraInitializationsAsync) {
|
|
310
|
+
if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {
|
|
311
|
+
await Promise.all([import("../../../ShadersWGSL/procedural.vertex.js"), this._options.extraInitializationsAsync()]);
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
await Promise.all([import("../../../Shaders/procedural.vertex.js"), this._options.extraInitializationsAsync()]);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {
|
|
319
|
+
await import("../../../ShadersWGSL/procedural.vertex.js");
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
await import("../../../Shaders/procedural.vertex.js");
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
return this._drawWrapper.effect.isReady();
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Resets the refresh counter of the texture and start bak from scratch.
|
|
331
|
+
* Could be useful to regenerate the texture if it is setup to render only once.
|
|
332
|
+
*/
|
|
333
|
+
resetRefreshCounter() {
|
|
334
|
+
this._currentRefreshId = -1;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Set the fragment shader to use in order to render the texture.
|
|
338
|
+
* @param fragment This can be set to a path (into the shader store) or to a json object containing a fragmentElement property.
|
|
339
|
+
*/
|
|
340
|
+
setFragment(fragment) {
|
|
341
|
+
this._fragment = fragment;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Define the refresh rate of the texture or the rendering frequency.
|
|
345
|
+
* Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...
|
|
346
|
+
*/
|
|
347
|
+
get refreshRate() {
|
|
348
|
+
return this._refreshRate;
|
|
349
|
+
}
|
|
350
|
+
set refreshRate(value) {
|
|
351
|
+
this._refreshRate = value;
|
|
352
|
+
this.resetRefreshCounter();
|
|
353
|
+
}
|
|
354
|
+
/** @internal */
|
|
355
|
+
_shouldRender() {
|
|
356
|
+
if (!this.isEnabled || !this.isReady() || !this._texture) {
|
|
277
357
|
if (this._texture) {
|
|
278
|
-
this._texture.
|
|
358
|
+
this._texture.isReady = false;
|
|
279
359
|
}
|
|
360
|
+
return false;
|
|
361
|
+
}
|
|
362
|
+
if (this._fallbackTextureUsed) {
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
if (this._currentRefreshId === -1) {
|
|
366
|
+
// At least render once
|
|
367
|
+
this._currentRefreshId = 1;
|
|
368
|
+
this._frameId++;
|
|
369
|
+
return true;
|
|
370
|
+
}
|
|
371
|
+
if (this.refreshRate === this._currentRefreshId) {
|
|
372
|
+
this._currentRefreshId = 1;
|
|
373
|
+
this._frameId++;
|
|
374
|
+
return true;
|
|
375
|
+
}
|
|
376
|
+
this._currentRefreshId++;
|
|
377
|
+
return false;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Get the size the texture is rendering at.
|
|
381
|
+
* @returns the size (on cube texture it is always squared)
|
|
382
|
+
*/
|
|
383
|
+
getRenderSize() {
|
|
384
|
+
return this._size;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Resize the texture to new value.
|
|
388
|
+
* @param size Define the new size the texture should have
|
|
389
|
+
* @param generateMipMaps Define whether the new texture should create mip maps
|
|
390
|
+
*/
|
|
391
|
+
resize(size, generateMipMaps) {
|
|
392
|
+
if (this._fallbackTextureUsed || !this._rtWrapper || !this._texture) {
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
const isCube = this._texture.isCube;
|
|
396
|
+
this._rtWrapper.dispose();
|
|
397
|
+
const rtWrapper = this._createRtWrapper(isCube, size, generateMipMaps, this._textureType);
|
|
398
|
+
this._texture = rtWrapper.texture;
|
|
399
|
+
// Update properties
|
|
400
|
+
this._size = size;
|
|
401
|
+
this._generateMipMaps = generateMipMaps;
|
|
402
|
+
}
|
|
403
|
+
_checkUniform(uniformName) {
|
|
404
|
+
if (this._uniforms.indexOf(uniformName) === -1) {
|
|
405
|
+
this._uniforms.push(uniformName);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Set a texture in the shader program used to render.
|
|
410
|
+
* @param name Define the name of the uniform samplers as defined in the shader
|
|
411
|
+
* @param texture Define the texture to bind to this sampler
|
|
412
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
413
|
+
*/
|
|
414
|
+
setTexture(name, texture) {
|
|
415
|
+
if (this._samplers.indexOf(name) === -1) {
|
|
416
|
+
this._samplers.push(name);
|
|
417
|
+
}
|
|
418
|
+
this._textures[name] = texture;
|
|
419
|
+
return this;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Set a float in the shader.
|
|
423
|
+
* @param name Define the name of the uniform as defined in the shader
|
|
424
|
+
* @param value Define the value to give to the uniform
|
|
425
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
426
|
+
*/
|
|
427
|
+
setFloat(name, value) {
|
|
428
|
+
this._checkUniform(name);
|
|
429
|
+
this._floats[name] = value;
|
|
430
|
+
return this;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Set a int in the shader.
|
|
434
|
+
* @param name Define the name of the uniform as defined in the shader
|
|
435
|
+
* @param value Define the value to give to the uniform
|
|
436
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
437
|
+
*/
|
|
438
|
+
setInt(name, value) {
|
|
439
|
+
this._checkUniform(name);
|
|
440
|
+
this._ints[name] = value;
|
|
441
|
+
return this;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Set an array of floats in the shader.
|
|
445
|
+
* @param name Define the name of the uniform as defined in the shader
|
|
446
|
+
* @param value Define the value to give to the uniform
|
|
447
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
448
|
+
*/
|
|
449
|
+
setFloats(name, value) {
|
|
450
|
+
this._checkUniform(name);
|
|
451
|
+
this._floatsArrays[name] = value;
|
|
452
|
+
return this;
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Set a vec3 in the shader from a Color3.
|
|
456
|
+
* @param name Define the name of the uniform as defined in the shader
|
|
457
|
+
* @param value Define the value to give to the uniform
|
|
458
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
459
|
+
*/
|
|
460
|
+
setColor3(name, value) {
|
|
461
|
+
this._checkUniform(name);
|
|
462
|
+
this._colors3[name] = value;
|
|
463
|
+
return this;
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Set a vec4 in the shader from a Color4.
|
|
467
|
+
* @param name Define the name of the uniform as defined in the shader
|
|
468
|
+
* @param value Define the value to give to the uniform
|
|
469
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
470
|
+
*/
|
|
471
|
+
setColor4(name, value) {
|
|
472
|
+
this._checkUniform(name);
|
|
473
|
+
this._colors4[name] = value;
|
|
474
|
+
return this;
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Set a vec2 in the shader from a Vector2.
|
|
478
|
+
* @param name Define the name of the uniform as defined in the shader
|
|
479
|
+
* @param value Define the value to give to the uniform
|
|
480
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
481
|
+
*/
|
|
482
|
+
setVector2(name, value) {
|
|
483
|
+
this._checkUniform(name);
|
|
484
|
+
this._vectors2[name] = value;
|
|
485
|
+
return this;
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Set a vec3 in the shader from a Vector3.
|
|
489
|
+
* @param name Define the name of the uniform as defined in the shader
|
|
490
|
+
* @param value Define the value to give to the uniform
|
|
491
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
492
|
+
*/
|
|
493
|
+
setVector3(name, value) {
|
|
494
|
+
this._checkUniform(name);
|
|
495
|
+
this._vectors3[name] = value;
|
|
496
|
+
return this;
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Set a vec4 in the shader from a Vector4.
|
|
500
|
+
* @param name Define the name of the uniform as defined in the shader
|
|
501
|
+
* @param value Define the value to give to the uniform
|
|
502
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
503
|
+
*/
|
|
504
|
+
setVector4(name, value) {
|
|
505
|
+
this._checkUniform(name);
|
|
506
|
+
this._vectors4[name] = value;
|
|
507
|
+
return this;
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* Set a mat4 in the shader from a MAtrix.
|
|
511
|
+
* @param name Define the name of the uniform as defined in the shader
|
|
512
|
+
* @param value Define the value to give to the uniform
|
|
513
|
+
* @returns the texture itself allowing "fluent" like uniform updates
|
|
514
|
+
*/
|
|
515
|
+
setMatrix(name, value) {
|
|
516
|
+
this._checkUniform(name);
|
|
517
|
+
this._matrices[name] = value;
|
|
518
|
+
return this;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Render the texture to its associated render target.
|
|
522
|
+
* @param useCameraPostProcess Define if camera post process should be applied to the texture
|
|
523
|
+
*/
|
|
524
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
525
|
+
render(useCameraPostProcess) {
|
|
526
|
+
const scene = this.getScene();
|
|
527
|
+
if (!scene) {
|
|
528
|
+
return;
|
|
280
529
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
530
|
+
const engine = this._fullEngine;
|
|
531
|
+
// Render
|
|
532
|
+
engine.enableEffect(this._drawWrapper);
|
|
533
|
+
this.onBeforeGenerationObservable.notifyObservers(this);
|
|
534
|
+
engine.setState(false);
|
|
535
|
+
if (!this.nodeMaterialSource) {
|
|
536
|
+
// Texture
|
|
537
|
+
for (const name in this._textures) {
|
|
538
|
+
this._drawWrapper.effect.setTexture(name, this._textures[name]);
|
|
539
|
+
}
|
|
540
|
+
// Float
|
|
541
|
+
for (const name in this._ints) {
|
|
542
|
+
this._drawWrapper.effect.setInt(name, this._ints[name]);
|
|
543
|
+
}
|
|
544
|
+
// Float
|
|
545
|
+
for (const name in this._floats) {
|
|
546
|
+
this._drawWrapper.effect.setFloat(name, this._floats[name]);
|
|
547
|
+
}
|
|
548
|
+
// Floats
|
|
549
|
+
for (const name in this._floatsArrays) {
|
|
550
|
+
this._drawWrapper.effect.setArray(name, this._floatsArrays[name]);
|
|
551
|
+
}
|
|
552
|
+
// Color3
|
|
553
|
+
for (const name in this._colors3) {
|
|
554
|
+
this._drawWrapper.effect.setColor3(name, this._colors3[name]);
|
|
286
555
|
}
|
|
287
|
-
|
|
288
|
-
|
|
556
|
+
// Color4
|
|
557
|
+
for (const name in this._colors4) {
|
|
558
|
+
const color = this._colors4[name];
|
|
559
|
+
this._drawWrapper.effect.setFloat4(name, color.r, color.g, color.b, color.a);
|
|
560
|
+
}
|
|
561
|
+
// Vector2
|
|
562
|
+
for (const name in this._vectors2) {
|
|
563
|
+
this._drawWrapper.effect.setVector2(name, this._vectors2[name]);
|
|
564
|
+
}
|
|
565
|
+
// Vector3
|
|
566
|
+
for (const name in this._vectors3) {
|
|
567
|
+
this._drawWrapper.effect.setVector3(name, this._vectors3[name]);
|
|
568
|
+
}
|
|
569
|
+
// Vector4
|
|
570
|
+
for (const name in this._vectors4) {
|
|
571
|
+
this._drawWrapper.effect.setVector4(name, this._vectors4[name]);
|
|
572
|
+
}
|
|
573
|
+
// Matrix
|
|
574
|
+
for (const name in this._matrices) {
|
|
575
|
+
this._drawWrapper.effect.setMatrix(name, this._matrices[name]);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
if (!this._texture || !this._rtWrapper) {
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
if (engine._enableGPUDebugMarkers) {
|
|
582
|
+
engine._debugPushGroup?.(`procedural texture generation for ${this.name}`);
|
|
583
|
+
}
|
|
584
|
+
const viewPort = engine.currentViewport;
|
|
585
|
+
if (this.isCube) {
|
|
586
|
+
for (let face = 0; face < 6; face++) {
|
|
587
|
+
engine.bindFramebuffer(this._rtWrapper, face, undefined, undefined, true);
|
|
588
|
+
// VBOs
|
|
589
|
+
engine.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect);
|
|
590
|
+
this._drawWrapper.effect.setFloat("face", face);
|
|
591
|
+
// Clear
|
|
592
|
+
if (this.autoClear) {
|
|
593
|
+
engine.clear(scene.clearColor, true, false, false);
|
|
594
|
+
}
|
|
595
|
+
// Draw order
|
|
596
|
+
engine.drawElementsType(Material.TriangleFillMode, 0, 6);
|
|
597
|
+
// Unbind and restore viewport
|
|
598
|
+
engine.unBindFramebuffer(this._rtWrapper, true);
|
|
289
599
|
}
|
|
290
600
|
}
|
|
291
601
|
else {
|
|
292
|
-
|
|
293
|
-
|
|
602
|
+
let numLayers = 1;
|
|
603
|
+
if (this._rtWrapper.is3D) {
|
|
604
|
+
numLayers = this._rtWrapper.depth;
|
|
294
605
|
}
|
|
295
|
-
else {
|
|
296
|
-
|
|
606
|
+
else if (this._rtWrapper.is2DArray) {
|
|
607
|
+
numLayers = this._rtWrapper.layers;
|
|
297
608
|
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* Define the refresh rate of the texture or the rendering frequency.
|
|
319
|
-
* Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...
|
|
320
|
-
*/
|
|
321
|
-
get refreshRate() {
|
|
322
|
-
return this._refreshRate;
|
|
323
|
-
}
|
|
324
|
-
set refreshRate(value) {
|
|
325
|
-
this._refreshRate = value;
|
|
326
|
-
this.resetRefreshCounter();
|
|
327
|
-
}
|
|
328
|
-
/** @internal */
|
|
329
|
-
_shouldRender() {
|
|
330
|
-
if (!this.isEnabled || !this.isReady() || !this._texture) {
|
|
331
|
-
if (this._texture) {
|
|
332
|
-
this._texture.isReady = false;
|
|
333
|
-
}
|
|
334
|
-
return false;
|
|
335
|
-
}
|
|
336
|
-
if (this._fallbackTextureUsed) {
|
|
337
|
-
return false;
|
|
338
|
-
}
|
|
339
|
-
if (this._currentRefreshId === -1) {
|
|
340
|
-
// At least render once
|
|
341
|
-
this._currentRefreshId = 1;
|
|
342
|
-
this._frameId++;
|
|
343
|
-
return true;
|
|
344
|
-
}
|
|
345
|
-
if (this.refreshRate === this._currentRefreshId) {
|
|
346
|
-
this._currentRefreshId = 1;
|
|
347
|
-
this._frameId++;
|
|
348
|
-
return true;
|
|
349
|
-
}
|
|
350
|
-
this._currentRefreshId++;
|
|
351
|
-
return false;
|
|
352
|
-
}
|
|
353
|
-
/**
|
|
354
|
-
* Get the size the texture is rendering at.
|
|
355
|
-
* @returns the size (on cube texture it is always squared)
|
|
356
|
-
*/
|
|
357
|
-
getRenderSize() {
|
|
358
|
-
return this._size;
|
|
359
|
-
}
|
|
360
|
-
/**
|
|
361
|
-
* Resize the texture to new value.
|
|
362
|
-
* @param size Define the new size the texture should have
|
|
363
|
-
* @param generateMipMaps Define whether the new texture should create mip maps
|
|
364
|
-
*/
|
|
365
|
-
resize(size, generateMipMaps) {
|
|
366
|
-
if (this._fallbackTextureUsed || !this._rtWrapper || !this._texture) {
|
|
367
|
-
return;
|
|
368
|
-
}
|
|
369
|
-
const isCube = this._texture.isCube;
|
|
370
|
-
this._rtWrapper.dispose();
|
|
371
|
-
const rtWrapper = this._createRtWrapper(isCube, size, generateMipMaps, this._textureType);
|
|
372
|
-
this._texture = rtWrapper.texture;
|
|
373
|
-
// Update properties
|
|
374
|
-
this._size = size;
|
|
375
|
-
this._generateMipMaps = generateMipMaps;
|
|
376
|
-
}
|
|
377
|
-
_checkUniform(uniformName) {
|
|
378
|
-
if (this._uniforms.indexOf(uniformName) === -1) {
|
|
379
|
-
this._uniforms.push(uniformName);
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
/**
|
|
383
|
-
* Set a texture in the shader program used to render.
|
|
384
|
-
* @param name Define the name of the uniform samplers as defined in the shader
|
|
385
|
-
* @param texture Define the texture to bind to this sampler
|
|
386
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
387
|
-
*/
|
|
388
|
-
setTexture(name, texture) {
|
|
389
|
-
if (this._samplers.indexOf(name) === -1) {
|
|
390
|
-
this._samplers.push(name);
|
|
391
|
-
}
|
|
392
|
-
this._textures[name] = texture;
|
|
393
|
-
return this;
|
|
394
|
-
}
|
|
395
|
-
/**
|
|
396
|
-
* Set a float in the shader.
|
|
397
|
-
* @param name Define the name of the uniform as defined in the shader
|
|
398
|
-
* @param value Define the value to give to the uniform
|
|
399
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
400
|
-
*/
|
|
401
|
-
setFloat(name, value) {
|
|
402
|
-
this._checkUniform(name);
|
|
403
|
-
this._floats[name] = value;
|
|
404
|
-
return this;
|
|
405
|
-
}
|
|
406
|
-
/**
|
|
407
|
-
* Set a int in the shader.
|
|
408
|
-
* @param name Define the name of the uniform as defined in the shader
|
|
409
|
-
* @param value Define the value to give to the uniform
|
|
410
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
411
|
-
*/
|
|
412
|
-
setInt(name, value) {
|
|
413
|
-
this._checkUniform(name);
|
|
414
|
-
this._ints[name] = value;
|
|
415
|
-
return this;
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Set an array of floats in the shader.
|
|
419
|
-
* @param name Define the name of the uniform as defined in the shader
|
|
420
|
-
* @param value Define the value to give to the uniform
|
|
421
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
422
|
-
*/
|
|
423
|
-
setFloats(name, value) {
|
|
424
|
-
this._checkUniform(name);
|
|
425
|
-
this._floatsArrays[name] = value;
|
|
426
|
-
return this;
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* Set a vec3 in the shader from a Color3.
|
|
430
|
-
* @param name Define the name of the uniform as defined in the shader
|
|
431
|
-
* @param value Define the value to give to the uniform
|
|
432
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
433
|
-
*/
|
|
434
|
-
setColor3(name, value) {
|
|
435
|
-
this._checkUniform(name);
|
|
436
|
-
this._colors3[name] = value;
|
|
437
|
-
return this;
|
|
438
|
-
}
|
|
439
|
-
/**
|
|
440
|
-
* Set a vec4 in the shader from a Color4.
|
|
441
|
-
* @param name Define the name of the uniform as defined in the shader
|
|
442
|
-
* @param value Define the value to give to the uniform
|
|
443
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
444
|
-
*/
|
|
445
|
-
setColor4(name, value) {
|
|
446
|
-
this._checkUniform(name);
|
|
447
|
-
this._colors4[name] = value;
|
|
448
|
-
return this;
|
|
449
|
-
}
|
|
450
|
-
/**
|
|
451
|
-
* Set a vec2 in the shader from a Vector2.
|
|
452
|
-
* @param name Define the name of the uniform as defined in the shader
|
|
453
|
-
* @param value Define the value to give to the uniform
|
|
454
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
455
|
-
*/
|
|
456
|
-
setVector2(name, value) {
|
|
457
|
-
this._checkUniform(name);
|
|
458
|
-
this._vectors2[name] = value;
|
|
459
|
-
return this;
|
|
460
|
-
}
|
|
461
|
-
/**
|
|
462
|
-
* Set a vec3 in the shader from a Vector3.
|
|
463
|
-
* @param name Define the name of the uniform as defined in the shader
|
|
464
|
-
* @param value Define the value to give to the uniform
|
|
465
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
466
|
-
*/
|
|
467
|
-
setVector3(name, value) {
|
|
468
|
-
this._checkUniform(name);
|
|
469
|
-
this._vectors3[name] = value;
|
|
470
|
-
return this;
|
|
471
|
-
}
|
|
472
|
-
/**
|
|
473
|
-
* Set a vec4 in the shader from a Vector4.
|
|
474
|
-
* @param name Define the name of the uniform as defined in the shader
|
|
475
|
-
* @param value Define the value to give to the uniform
|
|
476
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
477
|
-
*/
|
|
478
|
-
setVector4(name, value) {
|
|
479
|
-
this._checkUniform(name);
|
|
480
|
-
this._vectors4[name] = value;
|
|
481
|
-
return this;
|
|
482
|
-
}
|
|
483
|
-
/**
|
|
484
|
-
* Set a mat4 in the shader from a MAtrix.
|
|
485
|
-
* @param name Define the name of the uniform as defined in the shader
|
|
486
|
-
* @param value Define the value to give to the uniform
|
|
487
|
-
* @returns the texture itself allowing "fluent" like uniform updates
|
|
488
|
-
*/
|
|
489
|
-
setMatrix(name, value) {
|
|
490
|
-
this._checkUniform(name);
|
|
491
|
-
this._matrices[name] = value;
|
|
492
|
-
return this;
|
|
493
|
-
}
|
|
494
|
-
/**
|
|
495
|
-
* Render the texture to its associated render target.
|
|
496
|
-
* @param useCameraPostProcess Define if camera post process should be applied to the texture
|
|
497
|
-
*/
|
|
498
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
499
|
-
render(useCameraPostProcess) {
|
|
500
|
-
const scene = this.getScene();
|
|
501
|
-
if (!scene) {
|
|
502
|
-
return;
|
|
503
|
-
}
|
|
504
|
-
const engine = this._fullEngine;
|
|
505
|
-
// Render
|
|
506
|
-
engine.enableEffect(this._drawWrapper);
|
|
507
|
-
this.onBeforeGenerationObservable.notifyObservers(this);
|
|
508
|
-
engine.setState(false);
|
|
509
|
-
if (!this.nodeMaterialSource) {
|
|
510
|
-
// Texture
|
|
511
|
-
for (const name in this._textures) {
|
|
512
|
-
this._drawWrapper.effect.setTexture(name, this._textures[name]);
|
|
513
|
-
}
|
|
514
|
-
// Float
|
|
515
|
-
for (const name in this._ints) {
|
|
516
|
-
this._drawWrapper.effect.setInt(name, this._ints[name]);
|
|
517
|
-
}
|
|
518
|
-
// Float
|
|
519
|
-
for (const name in this._floats) {
|
|
520
|
-
this._drawWrapper.effect.setFloat(name, this._floats[name]);
|
|
521
|
-
}
|
|
522
|
-
// Floats
|
|
523
|
-
for (const name in this._floatsArrays) {
|
|
524
|
-
this._drawWrapper.effect.setArray(name, this._floatsArrays[name]);
|
|
525
|
-
}
|
|
526
|
-
// Color3
|
|
527
|
-
for (const name in this._colors3) {
|
|
528
|
-
this._drawWrapper.effect.setColor3(name, this._colors3[name]);
|
|
529
|
-
}
|
|
530
|
-
// Color4
|
|
531
|
-
for (const name in this._colors4) {
|
|
532
|
-
const color = this._colors4[name];
|
|
533
|
-
this._drawWrapper.effect.setFloat4(name, color.r, color.g, color.b, color.a);
|
|
534
|
-
}
|
|
535
|
-
// Vector2
|
|
536
|
-
for (const name in this._vectors2) {
|
|
537
|
-
this._drawWrapper.effect.setVector2(name, this._vectors2[name]);
|
|
538
|
-
}
|
|
539
|
-
// Vector3
|
|
540
|
-
for (const name in this._vectors3) {
|
|
541
|
-
this._drawWrapper.effect.setVector3(name, this._vectors3[name]);
|
|
542
|
-
}
|
|
543
|
-
// Vector4
|
|
544
|
-
for (const name in this._vectors4) {
|
|
545
|
-
this._drawWrapper.effect.setVector4(name, this._vectors4[name]);
|
|
546
|
-
}
|
|
547
|
-
// Matrix
|
|
548
|
-
for (const name in this._matrices) {
|
|
549
|
-
this._drawWrapper.effect.setMatrix(name, this._matrices[name]);
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
if (!this._texture || !this._rtWrapper) {
|
|
553
|
-
return;
|
|
554
|
-
}
|
|
555
|
-
if (engine._enableGPUDebugMarkers) {
|
|
556
|
-
engine._debugPushGroup?.(`procedural texture generation for ${this.name}`);
|
|
557
|
-
}
|
|
558
|
-
const viewPort = engine.currentViewport;
|
|
559
|
-
if (this.isCube) {
|
|
560
|
-
for (let face = 0; face < 6; face++) {
|
|
561
|
-
engine.bindFramebuffer(this._rtWrapper, face, undefined, undefined, true);
|
|
562
|
-
// VBOs
|
|
563
|
-
engine.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect);
|
|
564
|
-
this._drawWrapper.effect.setFloat("face", face);
|
|
565
|
-
// Clear
|
|
566
|
-
if (this.autoClear) {
|
|
567
|
-
engine.clear(scene.clearColor, true, false, false);
|
|
568
|
-
}
|
|
569
|
-
// Draw order
|
|
570
|
-
engine.drawElementsType(Material.TriangleFillMode, 0, 6);
|
|
571
|
-
// Unbind and restore viewport
|
|
572
|
-
engine.unBindFramebuffer(this._rtWrapper, true);
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
else {
|
|
576
|
-
let numLayers = 1;
|
|
577
|
-
if (this._rtWrapper.is3D) {
|
|
578
|
-
numLayers = this._rtWrapper.depth;
|
|
579
|
-
}
|
|
580
|
-
else if (this._rtWrapper.is2DArray) {
|
|
581
|
-
numLayers = this._rtWrapper.layers;
|
|
582
|
-
}
|
|
583
|
-
for (let layer = 0; layer < numLayers; layer++) {
|
|
584
|
-
engine.bindFramebuffer(this._rtWrapper, 0, undefined, undefined, true, 0, layer);
|
|
585
|
-
// VBOs
|
|
586
|
-
engine.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect);
|
|
587
|
-
if (this._rtWrapper.is3D || this._rtWrapper.is2DArray) {
|
|
588
|
-
this._drawWrapper.effect?.setFloat("layer", numLayers !== 1 ? layer / (numLayers - 1) : 0);
|
|
589
|
-
this._drawWrapper.effect?.setInt("layerNum", layer);
|
|
590
|
-
for (const name in this._textures) {
|
|
591
|
-
this._drawWrapper.effect.setTexture(name, this._textures[name]);
|
|
609
|
+
for (let layer = 0; layer < numLayers; layer++) {
|
|
610
|
+
engine.bindFramebuffer(this._rtWrapper, 0, undefined, undefined, true, 0, layer);
|
|
611
|
+
// VBOs
|
|
612
|
+
engine.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect);
|
|
613
|
+
if (this._rtWrapper.is3D || this._rtWrapper.is2DArray) {
|
|
614
|
+
this._drawWrapper.effect?.setFloat("layer", numLayers !== 1 ? layer / (numLayers - 1) : 0);
|
|
615
|
+
this._drawWrapper.effect?.setInt("layerNum", layer);
|
|
616
|
+
for (const name in this._textures) {
|
|
617
|
+
this._drawWrapper.effect.setTexture(name, this._textures[name]);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
// Clear
|
|
621
|
+
if (this.autoClear) {
|
|
622
|
+
engine.clear(scene.clearColor, true, false, false);
|
|
623
|
+
}
|
|
624
|
+
// Draw order
|
|
625
|
+
engine.drawElementsType(Material.TriangleFillMode, 0, 6);
|
|
626
|
+
// Unbind and restore viewport
|
|
627
|
+
engine.unBindFramebuffer(this._rtWrapper, !this._generateMipMaps);
|
|
592
628
|
}
|
|
593
629
|
}
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
engine.
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
serialize()
|
|
666
|
-
], ProceduralTexture.prototype, "_generateMipMaps", void 0);
|
|
667
|
-
__decorate([
|
|
668
|
-
serialize()
|
|
669
|
-
], ProceduralTexture.prototype, "_size", void 0);
|
|
670
|
-
__decorate([
|
|
671
|
-
serialize()
|
|
672
|
-
], ProceduralTexture.prototype, "refreshRate", null);
|
|
630
|
+
if (viewPort) {
|
|
631
|
+
engine.setViewport(viewPort);
|
|
632
|
+
}
|
|
633
|
+
// Mipmaps
|
|
634
|
+
if (this.isCube) {
|
|
635
|
+
engine.generateMipMapsForCubemap(this._texture, true);
|
|
636
|
+
}
|
|
637
|
+
if (engine._enableGPUDebugMarkers) {
|
|
638
|
+
engine._debugPopGroup?.();
|
|
639
|
+
}
|
|
640
|
+
if (this.onGenerated) {
|
|
641
|
+
this.onGenerated();
|
|
642
|
+
}
|
|
643
|
+
this.onGeneratedObservable.notifyObservers(this);
|
|
644
|
+
}
|
|
645
|
+
/**
|
|
646
|
+
* Clone the texture.
|
|
647
|
+
* @returns the cloned texture
|
|
648
|
+
*/
|
|
649
|
+
clone() {
|
|
650
|
+
const textureSize = this.getSize();
|
|
651
|
+
const newTexture = new _a(this.name, textureSize.width, this._fragment, this.getScene(), this._fallbackTexture, this._generateMipMaps);
|
|
652
|
+
// Base texture
|
|
653
|
+
newTexture.hasAlpha = this.hasAlpha;
|
|
654
|
+
newTexture.level = this.level;
|
|
655
|
+
// RenderTarget Texture
|
|
656
|
+
newTexture.coordinatesMode = this.coordinatesMode;
|
|
657
|
+
return newTexture;
|
|
658
|
+
}
|
|
659
|
+
/**
|
|
660
|
+
* Dispose the texture and release its associated resources.
|
|
661
|
+
*/
|
|
662
|
+
dispose() {
|
|
663
|
+
const scene = this.getScene();
|
|
664
|
+
if (!scene) {
|
|
665
|
+
return;
|
|
666
|
+
}
|
|
667
|
+
const index = scene.proceduralTextures.indexOf(this);
|
|
668
|
+
if (index >= 0) {
|
|
669
|
+
scene.proceduralTextures.splice(index, 1);
|
|
670
|
+
}
|
|
671
|
+
const vertexBuffer = this._vertexBuffers[VertexBuffer.PositionKind];
|
|
672
|
+
if (vertexBuffer) {
|
|
673
|
+
vertexBuffer.dispose();
|
|
674
|
+
this._vertexBuffers[VertexBuffer.PositionKind] = null;
|
|
675
|
+
}
|
|
676
|
+
if (this._indexBuffer && this._fullEngine._releaseBuffer(this._indexBuffer)) {
|
|
677
|
+
this._indexBuffer = null;
|
|
678
|
+
}
|
|
679
|
+
this.onGeneratedObservable.clear();
|
|
680
|
+
this.onBeforeGenerationObservable.clear();
|
|
681
|
+
super.dispose();
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
(() => {
|
|
685
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
686
|
+
_isEnabled_decorators = [serialize()];
|
|
687
|
+
_autoClear_decorators = [serialize()];
|
|
688
|
+
__generateMipMaps_decorators = [serialize()];
|
|
689
|
+
__size_decorators = [serialize()];
|
|
690
|
+
_get_refreshRate_decorators = [serialize()];
|
|
691
|
+
__esDecorate(_a, null, _get_refreshRate_decorators, { kind: "getter", name: "refreshRate", static: false, private: false, access: { has: obj => "refreshRate" in obj, get: obj => obj.refreshRate }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
692
|
+
__esDecorate(null, null, _isEnabled_decorators, { kind: "field", name: "isEnabled", static: false, private: false, access: { has: obj => "isEnabled" in obj, get: obj => obj.isEnabled, set: (obj, value) => { obj.isEnabled = value; } }, metadata: _metadata }, _isEnabled_initializers, _isEnabled_extraInitializers);
|
|
693
|
+
__esDecorate(null, null, _autoClear_decorators, { kind: "field", name: "autoClear", static: false, private: false, access: { has: obj => "autoClear" in obj, get: obj => obj.autoClear, set: (obj, value) => { obj.autoClear = value; } }, metadata: _metadata }, _autoClear_initializers, _autoClear_extraInitializers);
|
|
694
|
+
__esDecorate(null, null, __generateMipMaps_decorators, { kind: "field", name: "_generateMipMaps", static: false, private: false, access: { has: obj => "_generateMipMaps" in obj, get: obj => obj._generateMipMaps, set: (obj, value) => { obj._generateMipMaps = value; } }, metadata: _metadata }, __generateMipMaps_initializers, __generateMipMaps_extraInitializers);
|
|
695
|
+
__esDecorate(null, null, __size_decorators, { kind: "field", name: "_size", static: false, private: false, access: { has: obj => "_size" in obj, get: obj => obj._size, set: (obj, value) => { obj._size = value; } }, metadata: _metadata }, __size_initializers, __size_extraInitializers);
|
|
696
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
697
|
+
})(),
|
|
698
|
+
_a;
|
|
699
|
+
})();
|
|
700
|
+
export { ProceduralTexture };
|
|
673
701
|
let _Registered = false;
|
|
674
702
|
/**
|
|
675
703
|
* Register side effects for proceduralTexture.
|