@onerjs/core 8.53.5 → 8.53.7
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorCurves.pure.js","sourceRoot":"","sources":["../../../../dev/core/src/Materials/colorCurves.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { serialize } from \"../Misc/decorators\";\r\nimport { Color4 } from \"../Maths/math.color.pure\";\r\nimport { type Effect } from \"../Materials/effect.pure\";\r\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\r\nimport { PrepareUniformsForColorCurves } from \"./colorCurves.functions\";\r\n\r\n/**\r\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\r\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\r\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\r\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\r\n */\r\nexport class ColorCurves {\r\n private _dirty = true;\r\n\r\n private _tempColor = new Color4(0, 0, 0, 0);\r\n\r\n private _globalCurve = new Color4(0, 0, 0, 0);\r\n private _highlightsCurve = new Color4(0, 0, 0, 0);\r\n private _midtonesCurve = new Color4(0, 0, 0, 0);\r\n private _shadowsCurve = new Color4(0, 0, 0, 0);\r\n\r\n private _positiveCurve = new Color4(0, 0, 0, 0);\r\n private _negativeCurve = new Color4(0, 0, 0, 0);\r\n\r\n @serialize()\r\n private _globalHue = 30;\r\n\r\n @serialize()\r\n private _globalDensity = 0;\r\n\r\n @serialize()\r\n private _globalSaturation = 0;\r\n\r\n @serialize()\r\n private _globalExposure = 0;\r\n\r\n /**\r\n * Gets the global Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get globalHue(): number {\r\n return this._globalHue;\r\n }\r\n /**\r\n * Sets the global Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set globalHue(value: number) {\r\n this._globalHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the global Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get globalDensity(): number {\r\n return this._globalDensity;\r\n }\r\n /**\r\n * Sets the global Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set globalDensity(value: number) {\r\n this._globalDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the global Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get globalSaturation(): number {\r\n return this._globalSaturation;\r\n }\r\n /**\r\n * Sets the global Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set globalSaturation(value: number) {\r\n this._globalSaturation = value;\r\n this._dirty = true;\r\n }\r\n\r\n /**\r\n * Gets the global Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get globalExposure(): number {\r\n return this._globalExposure;\r\n }\r\n /**\r\n * Sets the global Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set globalExposure(value: number) {\r\n this._globalExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n @serialize()\r\n private _highlightsHue = 30;\r\n\r\n @serialize()\r\n private _highlightsDensity = 0;\r\n\r\n @serialize()\r\n private _highlightsSaturation = 0;\r\n\r\n @serialize()\r\n private _highlightsExposure = 0;\r\n\r\n /**\r\n * Gets the highlights Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get highlightsHue(): number {\r\n return this._highlightsHue;\r\n }\r\n /**\r\n * Sets the highlights Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set highlightsHue(value: number) {\r\n this._highlightsHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get highlightsDensity(): number {\r\n return this._highlightsDensity;\r\n }\r\n /**\r\n * Sets the highlights Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set highlightsDensity(value: number) {\r\n this._highlightsDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get highlightsSaturation(): number {\r\n return this._highlightsSaturation;\r\n }\r\n /**\r\n * Sets the highlights Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set highlightsSaturation(value: number) {\r\n this._highlightsSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get highlightsExposure(): number {\r\n return this._highlightsExposure;\r\n }\r\n /**\r\n * Sets the highlights Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set highlightsExposure(value: number) {\r\n this._highlightsExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n @serialize()\r\n private _midtonesHue = 30;\r\n\r\n @serialize()\r\n private _midtonesDensity = 0;\r\n\r\n @serialize()\r\n private _midtonesSaturation = 0;\r\n\r\n @serialize()\r\n private _midtonesExposure = 0;\r\n\r\n /**\r\n * Gets the midtones Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get midtonesHue(): number {\r\n return this._midtonesHue;\r\n }\r\n /**\r\n * Sets the midtones Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set midtonesHue(value: number) {\r\n this._midtonesHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get midtonesDensity(): number {\r\n return this._midtonesDensity;\r\n }\r\n /**\r\n * Sets the midtones Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set midtonesDensity(value: number) {\r\n this._midtonesDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get midtonesSaturation(): number {\r\n return this._midtonesSaturation;\r\n }\r\n /**\r\n * Sets the midtones Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set midtonesSaturation(value: number) {\r\n this._midtonesSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get midtonesExposure(): number {\r\n return this._midtonesExposure;\r\n }\r\n /**\r\n * Sets the midtones Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set midtonesExposure(value: number) {\r\n this._midtonesExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n private _shadowsHue = 30;\r\n private _shadowsDensity = 0;\r\n private _shadowsSaturation = 0;\r\n private _shadowsExposure = 0;\r\n\r\n /**\r\n * Gets the shadows Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get shadowsHue(): number {\r\n return this._shadowsHue;\r\n }\r\n /**\r\n * Sets the shadows Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set shadowsHue(value: number) {\r\n this._shadowsHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get shadowsDensity(): number {\r\n return this._shadowsDensity;\r\n }\r\n /**\r\n * Sets the shadows Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set shadowsDensity(value: number) {\r\n this._shadowsDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get shadowsSaturation(): number {\r\n return this._shadowsSaturation;\r\n }\r\n /**\r\n * Sets the shadows Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set shadowsSaturation(value: number) {\r\n this._shadowsSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get shadowsExposure(): number {\r\n return this._shadowsExposure;\r\n }\r\n /**\r\n * Sets the shadows Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set shadowsExposure(value: number) {\r\n this._shadowsExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n /**\r\n * Returns the class name\r\n * @returns The class name\r\n */\r\n public getClassName(): string {\r\n return \"ColorCurves\";\r\n }\r\n\r\n /**\r\n * Prepare the list of uniforms associated with the ColorCurves effects.\r\n * @param uniformsList The list of uniforms used in the effect\r\n */\r\n public static PrepareUniforms: (uniformsList: string[]) => void = PrepareUniformsForColorCurves;\r\n\r\n /**\r\n * Returns color grading data based on a hue, density, saturation and exposure value.\r\n * @param hue\r\n * @param density\r\n * @param saturation The saturation.\r\n * @param exposure The exposure.\r\n * @param result The result data container.\r\n */\r\n private _getColorGradingDataToRef(hue: number, density: number, saturation: number, exposure: number, result: Color4): void {\r\n if (hue == null) {\r\n return;\r\n }\r\n\r\n hue = ColorCurves._Clamp(hue, 0, 360);\r\n density = ColorCurves._Clamp(density, -100, 100);\r\n saturation = ColorCurves._Clamp(saturation, -100, 100);\r\n exposure = ColorCurves._Clamp(exposure, -100, 100);\r\n\r\n // Remap the slider/config filter density with non-linear mapping and also scale by half\r\n // so that the maximum filter density is only 50% control. This provides fine control\r\n // for small values and reasonable range.\r\n density = ColorCurves._ApplyColorGradingSliderNonlinear(density);\r\n density *= 0.5;\r\n\r\n exposure = ColorCurves._ApplyColorGradingSliderNonlinear(exposure);\r\n\r\n if (density < 0) {\r\n density *= -1;\r\n hue = (hue + 180) % 360;\r\n }\r\n\r\n ColorCurves._FromHSBToRef(hue, density, 50 + 0.25 * exposure, result);\r\n result.scaleToRef(2, result);\r\n result.a = 1 + 0.01 * saturation;\r\n }\r\n\r\n /**\r\n * Takes an input slider value and returns an adjusted value that provides extra control near the centre.\r\n * @param value The input slider value in range [-100,100].\r\n * @returns Adjusted value.\r\n */\r\n private static _ApplyColorGradingSliderNonlinear(value: number): number {\r\n value /= 100;\r\n\r\n let x: number = Math.abs(value);\r\n x = Math.pow(x, 2);\r\n\r\n if (value < 0) {\r\n x *= -1;\r\n }\r\n\r\n x *= 100;\r\n\r\n return x;\r\n }\r\n\r\n /**\r\n * Returns an RGBA Color4 based on Hue, Saturation and Brightness (also referred to as value, HSV).\r\n * @param hue The hue (H) input.\r\n * @param saturation The saturation (S) input.\r\n * @param brightness The brightness (B) input.\r\n * @param result An RGBA color represented as Vector4.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private static _FromHSBToRef(hue: number, saturation: number, brightness: number, result: Color4): void {\r\n let h: number = ColorCurves._Clamp(hue, 0, 360);\r\n const s: number = ColorCurves._Clamp(saturation / 100, 0, 1);\r\n const v: number = ColorCurves._Clamp(brightness / 100, 0, 1);\r\n\r\n if (s === 0) {\r\n result.r = v;\r\n result.g = v;\r\n result.b = v;\r\n } else {\r\n // sector 0 to 5\r\n h /= 60;\r\n const i = Math.floor(h);\r\n\r\n // fractional part of h\r\n const f = h - i;\r\n const p = v * (1 - s);\r\n const q = v * (1 - s * f);\r\n const t = v * (1 - s * (1 - f));\r\n\r\n switch (i) {\r\n case 0:\r\n result.r = v;\r\n result.g = t;\r\n result.b = p;\r\n break;\r\n case 1:\r\n result.r = q;\r\n result.g = v;\r\n result.b = p;\r\n break;\r\n case 2:\r\n result.r = p;\r\n result.g = v;\r\n result.b = t;\r\n break;\r\n case 3:\r\n result.r = p;\r\n result.g = q;\r\n result.b = v;\r\n break;\r\n case 4:\r\n result.r = t;\r\n result.g = p;\r\n result.b = v;\r\n break;\r\n default:\r\n // case 5:\r\n result.r = v;\r\n result.g = p;\r\n result.b = q;\r\n break;\r\n }\r\n }\r\n\r\n result.a = 1;\r\n }\r\n\r\n /**\r\n * Returns a value clamped between min and max\r\n * @param value The value to clamp\r\n * @param min The minimum of value\r\n * @param max The maximum of value\r\n * @returns The clamped value.\r\n */\r\n private static _Clamp(value: number, min: number, max: number): number {\r\n return Math.min(Math.max(value, min), max);\r\n }\r\n\r\n /**\r\n * Clones the current color curve instance.\r\n * @returns The cloned curves\r\n */\r\n public clone(): ColorCurves {\r\n return SerializationHelper.Clone(() => new ColorCurves(), this);\r\n }\r\n\r\n /**\r\n * Serializes the current color curve instance to a json representation.\r\n * @returns a JSON representation\r\n */\r\n public serialize(): any {\r\n return SerializationHelper.Serialize(this);\r\n }\r\n\r\n /** @internal */\r\n public _bind(effect: Effect, positiveUniform = \"vCameraColorCurvePositive\", neutralUniform = \"vCameraColorCurveNeutral\", negativeUniform = \"vCameraColorCurveNegative\"): void {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n\r\n // Fill in global info.\r\n this._getColorGradingDataToRef(this._globalHue, this._globalDensity, this._globalSaturation, this._globalExposure, this._globalCurve);\r\n\r\n // Compute highlights info.\r\n this._getColorGradingDataToRef(this._highlightsHue, this._highlightsDensity, this._highlightsSaturation, this._highlightsExposure, this._tempColor);\r\n this._tempColor.multiplyToRef(this._globalCurve, this._highlightsCurve);\r\n\r\n // Compute midtones info.\r\n this._getColorGradingDataToRef(this._midtonesHue, this._midtonesDensity, this._midtonesSaturation, this._midtonesExposure, this._tempColor);\r\n this._tempColor.multiplyToRef(this._globalCurve, this._midtonesCurve);\r\n\r\n // Compute shadows info.\r\n this._getColorGradingDataToRef(this._shadowsHue, this._shadowsDensity, this._shadowsSaturation, this._shadowsExposure, this._tempColor);\r\n this._tempColor.multiplyToRef(this._globalCurve, this._shadowsCurve);\r\n\r\n // Compute deltas (neutral is midtones).\r\n this._highlightsCurve.subtractToRef(this._midtonesCurve, this._positiveCurve);\r\n this._midtonesCurve.subtractToRef(this._shadowsCurve, this._negativeCurve);\r\n }\r\n\r\n if (effect) {\r\n effect.setFloat4(positiveUniform, this._positiveCurve.r, this._positiveCurve.g, this._positiveCurve.b, this._positiveCurve.a);\r\n effect.setFloat4(neutralUniform, this._midtonesCurve.r, this._midtonesCurve.g, this._midtonesCurve.b, this._midtonesCurve.a);\r\n effect.setFloat4(negativeUniform, this._negativeCurve.r, this._negativeCurve.g, this._negativeCurve.b, this._negativeCurve.a);\r\n }\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n\r\n/**\r\n * Parses the color curve from a json representation.\r\n * @param source the JSON source to parse\r\n * @returns The parsed curves\r\n */\r\nexport function ColorCurvesParse(source: any): ColorCurves {\r\n return SerializationHelper.Parse(() => new ColorCurves(), source, null, null);\r\n}\r\n\r\n/**\r\n * Binds the color curves to the shader.\r\n * @param colorCurves The color curve to bind\r\n * @param effect The effect to bind to\r\n * @param positiveUniform The positive uniform shader parameter\r\n * @param neutralUniform The neutral uniform shader parameter\r\n * @param negativeUniform The negative uniform shader parameter\r\n */\r\nexport function ColorCurvesBind(\r\n colorCurves: ColorCurves,\r\n effect: Effect,\r\n positiveUniform = \"vCameraColorCurvePositive\",\r\n neutralUniform = \"vCameraColorCurveNeutral\",\r\n negativeUniform = \"vCameraColorCurveNegative\"\r\n): void {\r\n colorCurves._bind(effect, positiveUniform, neutralUniform, negativeUniform);\r\n}\r\n\r\n/**\r\n * Register side effects for colorCurves.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterColorCurves(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n // References the dependencies.\r\n ColorCurves.Bind = ColorCurvesBind;\r\n ColorCurves.Parse = ColorCurvesParse;\r\n\r\n SerializationHelper._ColorCurvesParser = ColorCurvesParse;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"colorCurves.pure.js","sourceRoot":"","sources":["../../../../dev/core/src/Materials/colorCurves.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { serialize } from \"../Misc/decorators\";\r\nimport { Color4 } from \"../Maths/math.color.pure\";\r\nimport { type Effect } from \"../Materials/effect.pure\";\r\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\r\nimport { PrepareUniformsForColorCurves } from \"./colorCurves.functions\";\r\n\r\n/**\r\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\r\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\r\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\r\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\r\n */\r\nexport class ColorCurves {\r\n private _dirty = true;\r\n\r\n private _tempColor = new Color4(0, 0, 0, 0);\r\n\r\n private _globalCurve = new Color4(0, 0, 0, 0);\r\n private _highlightsCurve = new Color4(0, 0, 0, 0);\r\n private _midtonesCurve = new Color4(0, 0, 0, 0);\r\n private _shadowsCurve = new Color4(0, 0, 0, 0);\r\n\r\n private _positiveCurve = new Color4(0, 0, 0, 0);\r\n private _negativeCurve = new Color4(0, 0, 0, 0);\r\n\r\n @serialize()\r\n private _globalHue = 30;\r\n\r\n @serialize()\r\n private _globalDensity = 0;\r\n\r\n @serialize()\r\n private _globalSaturation = 0;\r\n\r\n @serialize()\r\n private _globalExposure = 0;\r\n\r\n /**\r\n * Gets the global Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get globalHue(): number {\r\n return this._globalHue;\r\n }\r\n /**\r\n * Sets the global Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set globalHue(value: number) {\r\n this._globalHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the global Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get globalDensity(): number {\r\n return this._globalDensity;\r\n }\r\n /**\r\n * Sets the global Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set globalDensity(value: number) {\r\n this._globalDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the global Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get globalSaturation(): number {\r\n return this._globalSaturation;\r\n }\r\n /**\r\n * Sets the global Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set globalSaturation(value: number) {\r\n this._globalSaturation = value;\r\n this._dirty = true;\r\n }\r\n\r\n /**\r\n * Gets the global Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get globalExposure(): number {\r\n return this._globalExposure;\r\n }\r\n /**\r\n * Sets the global Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set globalExposure(value: number) {\r\n this._globalExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n @serialize()\r\n private _highlightsHue = 30;\r\n\r\n @serialize()\r\n private _highlightsDensity = 0;\r\n\r\n @serialize()\r\n private _highlightsSaturation = 0;\r\n\r\n @serialize()\r\n private _highlightsExposure = 0;\r\n\r\n /**\r\n * Gets the highlights Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get highlightsHue(): number {\r\n return this._highlightsHue;\r\n }\r\n /**\r\n * Sets the highlights Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set highlightsHue(value: number) {\r\n this._highlightsHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get highlightsDensity(): number {\r\n return this._highlightsDensity;\r\n }\r\n /**\r\n * Sets the highlights Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set highlightsDensity(value: number) {\r\n this._highlightsDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get highlightsSaturation(): number {\r\n return this._highlightsSaturation;\r\n }\r\n /**\r\n * Sets the highlights Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set highlightsSaturation(value: number) {\r\n this._highlightsSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get highlightsExposure(): number {\r\n return this._highlightsExposure;\r\n }\r\n /**\r\n * Sets the highlights Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set highlightsExposure(value: number) {\r\n this._highlightsExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n @serialize()\r\n private _midtonesHue = 30;\r\n\r\n @serialize()\r\n private _midtonesDensity = 0;\r\n\r\n @serialize()\r\n private _midtonesSaturation = 0;\r\n\r\n @serialize()\r\n private _midtonesExposure = 0;\r\n\r\n /**\r\n * Gets the midtones Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get midtonesHue(): number {\r\n return this._midtonesHue;\r\n }\r\n /**\r\n * Sets the midtones Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set midtonesHue(value: number) {\r\n this._midtonesHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get midtonesDensity(): number {\r\n return this._midtonesDensity;\r\n }\r\n /**\r\n * Sets the midtones Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set midtonesDensity(value: number) {\r\n this._midtonesDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get midtonesSaturation(): number {\r\n return this._midtonesSaturation;\r\n }\r\n /**\r\n * Sets the midtones Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set midtonesSaturation(value: number) {\r\n this._midtonesSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get midtonesExposure(): number {\r\n return this._midtonesExposure;\r\n }\r\n /**\r\n * Sets the midtones Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set midtonesExposure(value: number) {\r\n this._midtonesExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n private _shadowsHue = 30;\r\n private _shadowsDensity = 0;\r\n private _shadowsSaturation = 0;\r\n private _shadowsExposure = 0;\r\n\r\n /**\r\n * Gets the shadows Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get shadowsHue(): number {\r\n return this._shadowsHue;\r\n }\r\n /**\r\n * Sets the shadows Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set shadowsHue(value: number) {\r\n this._shadowsHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get shadowsDensity(): number {\r\n return this._shadowsDensity;\r\n }\r\n /**\r\n * Sets the shadows Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set shadowsDensity(value: number) {\r\n this._shadowsDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get shadowsSaturation(): number {\r\n return this._shadowsSaturation;\r\n }\r\n /**\r\n * Sets the shadows Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set shadowsSaturation(value: number) {\r\n this._shadowsSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get shadowsExposure(): number {\r\n return this._shadowsExposure;\r\n }\r\n /**\r\n * Sets the shadows Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set shadowsExposure(value: number) {\r\n this._shadowsExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n /**\r\n * Returns the class name\r\n * @returns The class name\r\n */\r\n public getClassName(): string {\r\n return \"ColorCurves\";\r\n }\r\n\r\n /**\r\n * Prepare the list of uniforms associated with the ColorCurves effects.\r\n * @param uniformsList The list of uniforms used in the effect\r\n */\r\n public static PrepareUniforms: (uniformsList: string[]) => void = PrepareUniformsForColorCurves;\r\n\r\n /**\r\n * Returns color grading data based on a hue, density, saturation and exposure value.\r\n * @param hue\r\n * @param density\r\n * @param saturation The saturation.\r\n * @param exposure The exposure.\r\n * @param result The result data container.\r\n */\r\n private _getColorGradingDataToRef(hue: number, density: number, saturation: number, exposure: number, result: Color4): void {\r\n if (hue == null) {\r\n return;\r\n }\r\n\r\n hue = ColorCurves._Clamp(hue, 0, 360);\r\n density = ColorCurves._Clamp(density, -100, 100);\r\n saturation = ColorCurves._Clamp(saturation, -100, 100);\r\n exposure = ColorCurves._Clamp(exposure, -100, 100);\r\n\r\n // Remap the slider/config filter density with non-linear mapping and also scale by half\r\n // so that the maximum filter density is only 50% control. This provides fine control\r\n // for small values and reasonable range.\r\n density = ColorCurves._ApplyColorGradingSliderNonlinear(density);\r\n density *= 0.5;\r\n\r\n exposure = ColorCurves._ApplyColorGradingSliderNonlinear(exposure);\r\n\r\n if (density < 0) {\r\n density *= -1;\r\n hue = (hue + 180) % 360;\r\n }\r\n\r\n ColorCurves._FromHSBToRef(hue, density, 50 + 0.25 * exposure, result);\r\n result.scaleToRef(2, result);\r\n result.a = 1 + 0.01 * saturation;\r\n }\r\n\r\n /**\r\n * Takes an input slider value and returns an adjusted value that provides extra control near the centre.\r\n * @param value The input slider value in range [-100,100].\r\n * @returns Adjusted value.\r\n */\r\n private static _ApplyColorGradingSliderNonlinear(value: number): number {\r\n value /= 100;\r\n\r\n let x: number = Math.abs(value);\r\n x = Math.pow(x, 2);\r\n\r\n if (value < 0) {\r\n x *= -1;\r\n }\r\n\r\n x *= 100;\r\n\r\n return x;\r\n }\r\n\r\n /**\r\n * Returns an RGBA Color4 based on Hue, Saturation and Brightness (also referred to as value, HSV).\r\n * @param hue The hue (H) input.\r\n * @param saturation The saturation (S) input.\r\n * @param brightness The brightness (B) input.\r\n * @param result An RGBA color represented as Vector4.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private static _FromHSBToRef(hue: number, saturation: number, brightness: number, result: Color4): void {\r\n let h: number = ColorCurves._Clamp(hue, 0, 360);\r\n const s: number = ColorCurves._Clamp(saturation / 100, 0, 1);\r\n const v: number = ColorCurves._Clamp(brightness / 100, 0, 1);\r\n\r\n if (s === 0) {\r\n result.r = v;\r\n result.g = v;\r\n result.b = v;\r\n } else {\r\n // sector 0 to 5\r\n h /= 60;\r\n const i = Math.floor(h);\r\n\r\n // fractional part of h\r\n const f = h - i;\r\n const p = v * (1 - s);\r\n const q = v * (1 - s * f);\r\n const t = v * (1 - s * (1 - f));\r\n\r\n switch (i) {\r\n case 0:\r\n result.r = v;\r\n result.g = t;\r\n result.b = p;\r\n break;\r\n case 1:\r\n result.r = q;\r\n result.g = v;\r\n result.b = p;\r\n break;\r\n case 2:\r\n result.r = p;\r\n result.g = v;\r\n result.b = t;\r\n break;\r\n case 3:\r\n result.r = p;\r\n result.g = q;\r\n result.b = v;\r\n break;\r\n case 4:\r\n result.r = t;\r\n result.g = p;\r\n result.b = v;\r\n break;\r\n default:\r\n // case 5:\r\n result.r = v;\r\n result.g = p;\r\n result.b = q;\r\n break;\r\n }\r\n }\r\n\r\n result.a = 1;\r\n }\r\n\r\n /**\r\n * Returns a value clamped between min and max\r\n * @param value The value to clamp\r\n * @param min The minimum of value\r\n * @param max The maximum of value\r\n * @returns The clamped value.\r\n */\r\n private static _Clamp(value: number, min: number, max: number): number {\r\n return Math.min(Math.max(value, min), max);\r\n }\r\n\r\n /**\r\n * Clones the current color curve instance.\r\n * @returns The cloned curves\r\n */\r\n public clone(): ColorCurves {\r\n return SerializationHelper.Clone(() => new ColorCurves(), this);\r\n }\r\n\r\n /**\r\n * Serializes the current color curve instance to a json representation.\r\n * @returns a JSON representation\r\n */\r\n public serialize(): any {\r\n return SerializationHelper.Serialize(this);\r\n }\r\n\r\n /** @internal */\r\n public _bind(effect: Effect, positiveUniform = \"vCameraColorCurvePositive\", neutralUniform = \"vCameraColorCurveNeutral\", negativeUniform = \"vCameraColorCurveNegative\"): void {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n\r\n // Fill in global info.\r\n this._getColorGradingDataToRef(this._globalHue, this._globalDensity, this._globalSaturation, this._globalExposure, this._globalCurve);\r\n\r\n // Compute highlights info.\r\n this._getColorGradingDataToRef(this._highlightsHue, this._highlightsDensity, this._highlightsSaturation, this._highlightsExposure, this._tempColor);\r\n this._tempColor.multiplyToRef(this._globalCurve, this._highlightsCurve);\r\n\r\n // Compute midtones info.\r\n this._getColorGradingDataToRef(this._midtonesHue, this._midtonesDensity, this._midtonesSaturation, this._midtonesExposure, this._tempColor);\r\n this._tempColor.multiplyToRef(this._globalCurve, this._midtonesCurve);\r\n\r\n // Compute shadows info.\r\n this._getColorGradingDataToRef(this._shadowsHue, this._shadowsDensity, this._shadowsSaturation, this._shadowsExposure, this._tempColor);\r\n this._tempColor.multiplyToRef(this._globalCurve, this._shadowsCurve);\r\n\r\n // Compute deltas (neutral is midtones).\r\n this._highlightsCurve.subtractToRef(this._midtonesCurve, this._positiveCurve);\r\n this._midtonesCurve.subtractToRef(this._shadowsCurve, this._negativeCurve);\r\n }\r\n\r\n if (effect) {\r\n effect.setFloat4(positiveUniform, this._positiveCurve.r, this._positiveCurve.g, this._positiveCurve.b, this._positiveCurve.a);\r\n effect.setFloat4(neutralUniform, this._midtonesCurve.r, this._midtonesCurve.g, this._midtonesCurve.b, this._midtonesCurve.a);\r\n effect.setFloat4(negativeUniform, this._negativeCurve.r, this._negativeCurve.g, this._negativeCurve.b, this._negativeCurve.a);\r\n }\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n\r\n/**\r\n * Parses the color curve from a json representation.\r\n * @param source the JSON source to parse\r\n * @returns The parsed curves\r\n */\r\nexport function ColorCurvesParse(source: any): ColorCurves {\r\n return SerializationHelper.Parse(() => new ColorCurves(), source, null, null);\r\n}\r\n\r\n/**\r\n * Binds the color curves to the shader.\r\n * @param colorCurves The color curve to bind\r\n * @param effect The effect to bind to\r\n * @param positiveUniform The positive uniform shader parameter\r\n * @param neutralUniform The neutral uniform shader parameter\r\n * @param negativeUniform The negative uniform shader parameter\r\n */\r\nexport function ColorCurvesBind(\r\n colorCurves: ColorCurves,\r\n effect: Effect,\r\n positiveUniform = \"vCameraColorCurvePositive\",\r\n neutralUniform = \"vCameraColorCurveNeutral\",\r\n negativeUniform = \"vCameraColorCurveNegative\"\r\n): void {\r\n colorCurves._bind(effect, positiveUniform, neutralUniform, negativeUniform);\r\n}\r\n\r\n/**\r\n * Register side effects for colorCurves.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterColorCurves(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n // References the dependencies.\r\n ColorCurves.Bind = ColorCurvesBind;\r\n ColorCurves.Parse = ColorCurvesParse;\r\n\r\n SerializationHelper._ColorCurvesParser = ColorCurvesParse;\r\n}\r\n"]}
|
package/Materials/effect.pure.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/** This file must only contain pure code and pure imports */
|
|
2
|
-
var _a, _b, _c;
|
|
3
2
|
import { Observable } from "../Misc/observable.pure.js";
|
|
4
3
|
|
|
5
4
|
import { Logger } from "../Misc/logger.js";
|
|
@@ -1239,10 +1238,4 @@ Effect.ShadersStore = EngineShaderStore.ShadersStore;
|
|
|
1239
1238
|
* Store of each included file for a shader (The can be looked up using effect.key)
|
|
1240
1239
|
*/
|
|
1241
1240
|
Effect.IncludesShadersStore = EngineShaderStore.IncludesShadersStore;
|
|
1242
|
-
// #region GENERATED_SIDE_EFFECT_STUBS — do not edit, regenerate with `npm run generate:side-effect-stubs`
|
|
1243
|
-
import { _MissingSideEffect } from "../Misc/devTools.js";
|
|
1244
|
-
(_a = Effect.prototype).setDepthStencilTexture ?? (_a.setDepthStencilTexture = _MissingSideEffect("Effect", "setDepthStencilTexture"));
|
|
1245
|
-
(_b = Effect.prototype).setTextureFromPostProcess ?? (_b.setTextureFromPostProcess = _MissingSideEffect("Effect", "setTextureFromPostProcess"));
|
|
1246
|
-
(_c = Effect.prototype).setTextureFromPostProcessOutput ?? (_c.setTextureFromPostProcessOutput = _MissingSideEffect("Effect", "setTextureFromPostProcessOutput"));
|
|
1247
|
-
// #endregion GENERATED_SIDE_EFFECT_STUBS
|
|
1248
1241
|
//# sourceMappingURL=effect.pure.js.map
|