@onerjs/core 8.56.4 → 9.0.1
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/animatable.core.js +36 -0
- package/Animations/animatable.core.js.map +1 -1
- package/Animations/animationGroup.pure.d.ts +61 -1
- package/Animations/animationGroup.pure.js +191 -2
- package/Animations/animationGroup.pure.js.map +1 -1
- package/Animations/index.d.ts +1 -0
- package/Animations/index.js +1 -0
- package/Animations/index.js.map +1 -1
- package/Animations/pure.d.ts +1 -0
- package/Animations/pure.js +1 -0
- package/Animations/pure.js.map +1 -1
- package/Animations/rootMotion.d.ts +560 -0
- package/Animations/rootMotion.js +1709 -0
- package/Animations/rootMotion.js.map +1 -0
- package/Animations/runtimeAnimation.d.ts +57 -0
- package/Animations/runtimeAnimation.js +127 -3
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.d.ts +2 -0
- package/Cameras/arcRotateCamera.pure.js +2 -0
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +2 -0
- package/Cameras/targetCamera.pure.js +13 -2
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.js +5 -5
- package/Collisions/gpuPicker.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.query.pure.js +4 -2
- package/Engines/AbstractEngine/abstractEngine.query.pure.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.query.types.d.ts +11 -2
- package/Engines/AbstractEngine/abstractEngine.query.types.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js +1 -0
- package/Engines/AbstractEngine/abstractEngine.renderPass.pure.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.pure.js +63 -0
- package/Engines/Extensions/engine.multiRender.pure.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.types.d.ts +13 -0
- package/Engines/Extensions/engine.multiRender.types.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js +2 -2
- package/Engines/Extensions/engine.prefilteredCubeTexture.pure.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.types.d.ts +2 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.types.js.map +1 -1
- package/Engines/Extensions/index.d.ts +1 -0
- package/Engines/Extensions/index.js +1 -0
- package/Engines/Extensions/index.js.map +1 -1
- package/Engines/Extensions/pure.d.ts +1 -1
- package/Engines/Extensions/pure.js +1 -1
- package/Engines/Extensions/pure.js.map +1 -1
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js +88 -39
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.pure.js.map +1 -1
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.d.ts +20 -2
- package/Engines/Native/Extensions/nativeEngine.cubeTexture.types.js.map +1 -1
- package/Engines/Native/nativeHardwareTexture.d.ts +8 -1
- package/Engines/Native/nativeHardwareTexture.js +7 -0
- package/Engines/Native/nativeHardwareTexture.js.map +1 -1
- package/Engines/Native/nativeHelpers.js +56 -1
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +37 -8
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.d.ts +40 -0
- package/Engines/Native/nativeRenderTargetWrapper.js +265 -5
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderCodeCursor.d.ts +1 -0
- package/Engines/Processors/shaderCodeCursor.js +40 -3
- package/Engines/Processors/shaderCodeCursor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js +4 -0
- package/Engines/WebGPU/Extensions/engine.multiRender.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.types.d.ts +13 -0
- package/Engines/WebGPU/Extensions/engine.multiRender.types.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.query.pure.js +11 -3
- package/Engines/WebGPU/Extensions/engine.query.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.pure.js +1 -0
- package/Engines/WebGPU/Extensions/engine.renderTarget.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/index.d.ts +1 -0
- package/Engines/WebGPU/Extensions/index.js +1 -0
- package/Engines/WebGPU/Extensions/index.js.map +1 -1
- package/Engines/WebGPU/Extensions/pure.d.ts +1 -1
- package/Engines/WebGPU/Extensions/pure.js +1 -1
- package/Engines/WebGPU/Extensions/pure.js.map +1 -1
- package/Engines/WebGPU/webgpuBundleList.d.ts +2 -0
- package/Engines/WebGPU/webgpuBundleList.js +4 -0
- package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -2
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js +3 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +4 -0
- package/Engines/WebGPU/webgpuSnapshotRendering.js +40 -7
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +2 -2
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +2 -0
- package/Engines/WebGPU/webgpuTextureManager.js +286 -13
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +17 -1
- package/Engines/abstractEngine.pure.js +17 -5
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/constants.d.ts +4 -0
- package/Engines/constants.js +4 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.pure.d.ts +0 -1
- package/Engines/engine.pure.js +0 -7
- package/Engines/engine.pure.js.map +1 -1
- package/Engines/nativeEngine.pure.js +1 -1
- package/Engines/nativeEngine.pure.js.map +1 -1
- package/Engines/thinEngine.pure.d.ts +15 -0
- package/Engines/thinEngine.pure.js +61 -14
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +218 -17
- package/Engines/thinNativeEngine.pure.js +1438 -165
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/thinWebGPUEngine.d.ts +4 -0
- package/Engines/thinWebGPUEngine.js +16 -2
- package/Engines/thinWebGPUEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +17 -3
- package/Engines/webgpuEngine.pure.js +56 -13
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js +2 -2
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.d.ts +10 -0
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js +24 -12
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.d.ts +11 -2
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.pure.d.ts +7 -0
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.pure.js +43 -0
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.d.ts +9 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js +6 -8
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.d.ts +9 -0
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js +34 -9
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js +4 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.d.ts +18 -4
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js +24 -6
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js +19 -7
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js +3 -3
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.d.ts +20 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js +85 -25
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.d.ts +16 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js +64 -14
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.d.ts +12 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js +8 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js +4 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.pure.d.ts +12 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js +64 -16
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.pure.d.ts +2 -0
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.pure.js +14 -2
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.pure.d.ts +5 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.pure.js +23 -8
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.pure.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphInteger.pure.d.ts +5 -0
- package/FlowGraph/CustomTypes/flowGraphInteger.pure.js +7 -0
- package/FlowGraph/CustomTypes/flowGraphInteger.pure.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +10 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js +14 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
- package/FlowGraph/flowGraph.d.ts +6 -1
- package/FlowGraph/flowGraph.js +41 -9
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphAnimationHelpers.d.ts +24 -0
- package/FlowGraph/flowGraphAnimationHelpers.js +21 -0
- package/FlowGraph/flowGraphAnimationHelpers.js.map +1 -0
- package/FlowGraph/flowGraphBlock.js +3 -0
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphConnection.d.ts +7 -0
- package/FlowGraph/flowGraphConnection.js +7 -0
- package/FlowGraph/flowGraphConnection.js.map +1 -1
- package/FlowGraph/flowGraphContext.d.ts +2 -1
- package/FlowGraph/flowGraphContext.js +5 -3
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.d.ts +15 -1
- package/FlowGraph/flowGraphCoordinator.js +47 -16
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphEventBlock.d.ts +5 -0
- package/FlowGraph/flowGraphEventBlock.js +7 -0
- package/FlowGraph/flowGraphEventBlock.js.map +1 -1
- package/FlowGraph/flowGraphHostResolver.d.ts +2 -1
- package/FlowGraph/flowGraphHostResolver.js.map +1 -1
- package/FlowGraph/flowGraphParser.js +60 -2
- package/FlowGraph/flowGraphParser.js.map +1 -1
- package/FlowGraph/flowGraphValidator.js +0 -4
- package/FlowGraph/flowGraphValidator.js.map +1 -1
- package/FlowGraph/index.d.ts +2 -0
- package/FlowGraph/index.js +2 -0
- package/FlowGraph/index.js.map +1 -1
- package/FlowGraph/pure.d.ts +2 -0
- package/FlowGraph/pure.js +2 -0
- package/FlowGraph/pure.js.map +1 -1
- package/FlowGraph/serialization.d.ts +4 -2
- package/FlowGraph/serialization.js +12 -24
- package/FlowGraph/serialization.js.map +1 -1
- package/FlowGraph/typeDefinitions.d.ts +9 -1
- package/FlowGraph/typeDefinitions.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.d.ts +5 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js +8 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.d.ts +87 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js +295 -0
- package/FrameGraph/Node/Blocks/PostProcesses/meshBlendingPostProcessBlock.pure.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.d.ts +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.js +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +4 -4
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.d.ts +5 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +13 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.d.ts +1 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.js +4 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.pure.d.ts +54 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.pure.js +155 -0
- package/FrameGraph/Node/Blocks/Textures/minMaxReducerBlock.pure.js.map +1 -0
- package/FrameGraph/Node/Blocks/Textures/pure.d.ts +1 -0
- package/FrameGraph/Node/Blocks/Textures/pure.js +1 -0
- package/FrameGraph/Node/Blocks/Textures/pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/allBlocks.pure.js +4 -0
- package/FrameGraph/Node/Blocks/allBlocks.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/index.d.ts +2 -0
- package/FrameGraph/Node/Blocks/index.js +2 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +20 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/pure.d.ts +2 -0
- package/FrameGraph/Node/Blocks/pure.js +2 -0
- package/FrameGraph/Node/Blocks/pure.js.map +1 -1
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +4 -2
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +4 -2
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Tasks/Layers/selectionOutlineTask.js +1 -0
- package/FrameGraph/Tasks/Layers/selectionOutlineTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js +5 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +1 -0
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/minMaxReducerTask.d.ts +62 -0
- package/FrameGraph/Tasks/Misc/minMaxReducerTask.js +159 -0
- package/FrameGraph/Tasks/Misc/minMaxReducerTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.d.ts +69 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js +223 -0
- package/FrameGraph/Tasks/PostProcesses/meshBlendingTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +25 -3
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +72 -34
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +3 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/frameGraph.d.ts +4 -0
- package/FrameGraph/frameGraph.js +14 -0
- package/FrameGraph/frameGraph.js.map +1 -1
- package/FrameGraph/frameGraphObjectList.d.ts +6 -1
- package/FrameGraph/frameGraphObjectList.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +3 -1
- package/FrameGraph/frameGraphRenderContext.js +5 -5
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/index.d.ts +2 -0
- package/FrameGraph/index.js +2 -0
- package/FrameGraph/index.js.map +1 -1
- package/FrameGraph/pure.d.ts +2 -0
- package/FrameGraph/pure.js +2 -0
- package/FrameGraph/pure.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +4 -0
- package/Inputs/scene.inputManager.js +50 -8
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Lights/Clustered/clusteredLightingSceneComponent.pure.d.ts +5 -0
- package/Lights/Clustered/clusteredLightingSceneComponent.pure.js +22 -1
- package/Lights/Clustered/clusteredLightingSceneComponent.pure.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.pure.js +7 -3
- package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.d.ts +7 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.js +8 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.pure.d.ts +54 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.pure.js +81 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingBlitMaterial.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.d.ts +7 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.js +8 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.pure.d.ts +60 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.pure.js +90 -0
- package/Materials/GaussianSplatting/gaussianPointSplattingDepthBlitMaterial.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.d.ts +31 -0
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js +103 -5
- package/Materials/GaussianSplatting/gaussianSplattingDebugMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +6 -6
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +26 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +153 -49
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.d.ts +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.js +4 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.pure.d.ts +83 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.pure.js +191 -0
- package/Materials/GaussianSplatting/gaussianSplattingOverdrawMaterialPlugin.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.d.ts +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.js +4 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.pure.d.ts +62 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.pure.js +125 -0
- package/Materials/GaussianSplatting/gaussianSplattingSizeMaterialPlugin.pure.js.map +1 -0
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +5 -5
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/pure.d.ts +4 -0
- package/Materials/GaussianSplatting/pure.js +4 -0
- package/Materials/GaussianSplatting/pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.d.ts +1 -0
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +12 -0
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +11 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +17 -2
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +2 -2
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.d.ts +4 -0
- package/Materials/Node/nodeMaterial.pure.js +4 -0
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +25 -3
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.pure.d.ts +2 -0
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +2 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.d.ts +14 -14
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +37 -13
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/baseTexture.pure.js +3 -0
- package/Materials/Textures/baseTexture.pure.js.map +1 -1
- package/Materials/Textures/cubeTexture.pure.js +1 -1
- package/Materials/Textures/cubeTexture.pure.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +8 -1
- package/Materials/Textures/internalTexture.js +9 -2
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.pure.js +3 -1
- package/Materials/Textures/mirrorTexture.pure.js.map +1 -1
- package/Materials/Textures/rawTexture2DArray.functions.d.ts +3 -3
- package/Materials/Textures/rawTexture2DArray.functions.js.map +1 -1
- package/Materials/Textures/rawTexture3D.d.ts +1 -1
- package/Materials/Textures/rawTexture3D.js +1 -1
- package/Materials/Textures/rawTexture3D.js.map +1 -1
- package/Materials/Textures/texture.pure.js +1 -1
- package/Materials/Textures/texture.pure.js.map +1 -1
- package/Materials/Textures/textureHelper.functions.d.ts +14 -0
- package/Materials/Textures/textureHelper.functions.js +24 -0
- package/Materials/Textures/textureHelper.functions.js.map +1 -1
- package/Materials/ditheredTileFadeMaterialPlugin.d.ts +210 -0
- package/Materials/ditheredTileFadeMaterialPlugin.js +509 -0
- package/Materials/ditheredTileFadeMaterialPlugin.js.map +1 -0
- package/Materials/effectRenderer.pure.d.ts +4 -0
- package/Materials/effectRenderer.pure.js +3 -2
- package/Materials/effectRenderer.pure.js.map +1 -1
- package/Materials/index.d.ts +5 -0
- package/Materials/index.js +5 -0
- package/Materials/index.js.map +1 -1
- package/Materials/material.pure.js +25 -12
- package/Materials/material.pure.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.d.ts +46 -1
- package/Materials/materialHelper.geometryrendering.js +105 -8
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/prepass.defines.d.ts +2 -0
- package/Materials/prepass.defines.js +2 -0
- package/Materials/prepass.defines.js.map +1 -1
- package/Materials/pure.d.ts +5 -0
- package/Materials/pure.js +5 -0
- package/Materials/pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +10 -0
- package/Materials/standardMaterial.pure.js +30 -5
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.pure.d.ts +4 -0
- package/Meshes/Builders/polygonBuilder.pure.js +3 -0
- package/Meshes/Builders/polygonBuilder.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.d.ts +8 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.js +11 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.pure.d.ts +231 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.pure.js +1212 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingController.pure.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.d.ts +14 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.js +15 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.pure.d.ts +285 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.pure.js +812 -0
- package/Meshes/GaussianSplatting/gaussianPointSplattingRenderer.pure.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.d.ts +19 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.js +23 -0
- package/Meshes/GaussianSplatting/gaussianSplatting.functions.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +2 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +163 -14
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +239 -24
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +34 -4
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +125 -25
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/pure.d.ts +2 -0
- package/Meshes/GaussianSplatting/pure.js +2 -0
- package/Meshes/GaussianSplatting/pure.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +25 -11
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/abstractMesh.pure.d.ts +30 -0
- package/Meshes/abstractMesh.pure.js +54 -0
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/index.d.ts +2 -0
- package/Meshes/index.js +2 -0
- package/Meshes/index.js.map +1 -1
- package/Meshes/instancedMesh.pure.d.ts +5 -0
- package/Meshes/instancedMesh.pure.js +12 -0
- package/Meshes/instancedMesh.pure.js.map +1 -1
- package/Meshes/mesh.pure.js +23 -8
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/meshBlendingTag.d.ts +47 -0
- package/Meshes/meshBlendingTag.js +64 -0
- package/Meshes/meshBlendingTag.js.map +1 -0
- package/Meshes/polygonMesh.js +2 -2
- package/Meshes/polygonMesh.js.map +1 -1
- package/Meshes/pure.d.ts +2 -0
- package/Meshes/pure.js +2 -0
- package/Meshes/pure.js.map +1 -1
- package/Meshes/subMesh.pure.d.ts +11 -2
- package/Meshes/subMesh.pure.js +20 -5
- package/Meshes/subMesh.pure.js.map +1 -1
- package/Meshes/thinInstanceMesh.pure.js +1 -0
- package/Meshes/thinInstanceMesh.pure.js.map +1 -1
- package/Misc/andOrNotEvaluator.js +4 -0
- package/Misc/andOrNotEvaluator.js.map +1 -1
- package/Misc/fileTools.pure.js +21 -0
- package/Misc/fileTools.pure.js.map +1 -1
- package/Misc/minMaxReducer.pure.d.ts +6 -0
- package/Misc/minMaxReducer.pure.js +10 -0
- package/Misc/minMaxReducer.pure.js.map +1 -1
- package/Misc/snapshotRenderingHelper.js +2 -2
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/thinMinMaxReducer.d.ts +19 -2
- package/Misc/thinMinMaxReducer.js +74 -21
- package/Misc/thinMinMaxReducer.js.map +1 -1
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/Particles/Node/Blocks/Update/updateNoiseBlock.pure.js +19 -7
- package/Particles/Node/Blocks/Update/updateNoiseBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleSourceTextureBlock.pure.js +3 -2
- package/Particles/Node/Blocks/particleSourceTextureBlock.pure.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +4 -0
- package/Particles/gpuParticleSystem.pure.js +101 -32
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/particle.js +3 -2
- package/Particles/particle.js.map +1 -1
- package/Particles/solidParticleSystem.js +7 -1
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.function.d.ts +6 -0
- package/Particles/thinParticleSystem.function.js +144 -88
- package/Particles/thinParticleSystem.function.js.map +1 -1
- package/Particles/thinParticleSystem.pure.d.ts +8 -0
- package/Particles/thinParticleSystem.pure.js +154 -28
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/Particles/webgl2ParticleSystem.pure.d.ts +1 -0
- package/Particles/webgl2ParticleSystem.pure.js +12 -4
- package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
- package/Physics/v2/ragdoll.d.ts +2 -4
- package/Physics/v2/ragdoll.js +11 -4
- package/Physics/v2/ragdoll.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js +7 -0
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/index.d.ts +2 -0
- package/PostProcesses/index.js +2 -0
- package/PostProcesses/index.js.map +1 -1
- package/PostProcesses/meshBlendingBlueNoise.d.ts +15 -0
- package/PostProcesses/meshBlendingBlueNoise.js +77 -0
- package/PostProcesses/meshBlendingBlueNoise.js.map +1 -0
- package/PostProcesses/meshBlendingPostProcess.d.ts +131 -0
- package/PostProcesses/meshBlendingPostProcess.js +315 -0
- package/PostProcesses/meshBlendingPostProcess.js.map +1 -0
- package/PostProcesses/pure.d.ts +2 -0
- package/PostProcesses/pure.js +2 -0
- package/PostProcesses/pure.js.map +1 -1
- package/PostProcesses/thinMeshBlendingPostProcess.d.ts +339 -0
- package/PostProcesses/thinMeshBlendingPostProcess.js +771 -0
- package/PostProcesses/thinMeshBlendingPostProcess.js.map +1 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +6 -6
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +12 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +50 -25
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/boundingBoxRenderer.pure.js +2 -1
- package/Rendering/boundingBoxRenderer.pure.js.map +1 -1
- package/Rendering/depthRenderer.pure.d.ts +9 -0
- package/Rendering/depthRenderer.pure.js +15 -4
- package/Rendering/depthRenderer.pure.js.map +1 -1
- package/Rendering/edgesRenderer.pure.d.ts +4 -2
- package/Rendering/edgesRenderer.pure.js +11 -2
- package/Rendering/edgesRenderer.pure.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +14 -0
- package/Rendering/fluidRenderer/fluidRenderingObject.js +26 -0
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +13 -3
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +22 -9
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -0
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.pure.d.ts +38 -4
- package/Rendering/geometryBufferRenderer.pure.js +130 -18
- package/Rendering/geometryBufferRenderer.pure.js.map +1 -1
- package/Rendering/objectRenderer.d.ts +7 -1
- package/Rendering/objectRenderer.js +45 -7
- package/Rendering/objectRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.pure.js +6 -2
- package/Rendering/outlineRenderer.pure.js.map +1 -1
- package/Rendering/prePassRenderer.pure.js +3 -3
- package/Rendering/prePassRenderer.pure.js.map +1 -1
- package/Rendering/renderingManager.d.ts +1 -1
- package/Rendering/renderingManager.js +5 -4
- package/Rendering/renderingManager.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
- package/Shaders/ShadersInclude/defaultFragmentAlpha.js +34 -0
- package/Shaders/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
- package/Shaders/ShadersInclude/gaussianSplatting.js +3 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +5 -1
- package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/geometryRenderingFragment.d.ts +5 -0
- package/Shaders/ShadersInclude/geometryRenderingFragment.js +74 -0
- package/Shaders/ShadersInclude/geometryRenderingFragment.js.map +1 -0
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +27 -3
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +89 -0
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js +24 -17
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +27 -20
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +6 -2
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +95 -2
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/default.fragment.js +31 -40
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.js +13 -9
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js +16 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js +16 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +63 -3
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +80 -0
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.js +17 -11
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.js +43 -1
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.js +96 -16
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/meshBlending.fragment.d.ts +5 -0
- package/Shaders/meshBlending.fragment.js +519 -0
- package/Shaders/meshBlending.fragment.js.map +1 -0
- package/Shaders/minmaxRedux.fragment.js +6 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/particles.fragment.js +43 -1
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.js +84 -3
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/sprites.fragment.js +52 -2
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.js +62 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js +33 -0
- package/ShadersWGSL/ShadersInclude/defaultFragmentAlpha.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplatting.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplatting.js +65 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplatting.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplattingScan.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplattingScan.js +17 -0
- package/ShadersWGSL/ShadersInclude/gaussianPointSplattingScan.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +6 -78
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js +2 -2
- package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplattingShared.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplattingShared.js +79 -0
- package/ShadersWGSL/ShadersInclude/gaussianSplattingShared.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.d.ts +6 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js +76 -0
- package/ShadersWGSL/ShadersInclude/geometryRenderingFragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/lightFragment.js +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +27 -3
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js +18 -0
- package/ShadersWGSL/ShadersInclude/meshBlendTagFragmentOutput.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js +11 -25
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +11 -25
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js +5 -1
- package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +6 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +17 -48
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +15 -2
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +15 -2
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianPointSplattingBlit.fragment.d.ts +5 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.fragment.js +22 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.fragment.js.map +1 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.vertex.d.ts +5 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.vertex.js +19 -0
- package/ShadersWGSL/gaussianPointSplattingBlit.vertex.js.map +1 -0
- package/ShadersWGSL/gaussianPointSplattingDepthBlit.fragment.d.ts +5 -0
- package/ShadersWGSL/gaussianPointSplattingDepthBlit.fragment.js +21 -0
- package/ShadersWGSL/gaussianPointSplattingDepthBlit.fragment.js.map +1 -0
- package/ShadersWGSL/gaussianSplatting.fragment.js +63 -2
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +82 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingVoxel.vertex.js +2 -1
- package/ShadersWGSL/gaussianSplattingVoxel.vertex.js.map +1 -1
- package/ShadersWGSL/geometry.fragment.js +37 -2
- package/ShadersWGSL/geometry.fragment.js.map +1 -1
- package/ShadersWGSL/gpsHiZBuild.compute.d.ts +5 -0
- package/ShadersWGSL/gpsHiZBuild.compute.js +16 -0
- package/ShadersWGSL/gpsHiZBuild.compute.js.map +1 -0
- package/ShadersWGSL/gpsPartition.compute.d.ts +5 -0
- package/ShadersWGSL/gpsPartition.compute.js +27 -0
- package/ShadersWGSL/gpsPartition.compute.js.map +1 -0
- package/ShadersWGSL/gpsPreprocess.compute.d.ts +5 -0
- package/ShadersWGSL/gpsPreprocess.compute.js +86 -0
- package/ShadersWGSL/gpsPreprocess.compute.js.map +1 -0
- package/ShadersWGSL/gpsResolve.compute.d.ts +5 -0
- package/ShadersWGSL/gpsResolve.compute.js +41 -0
- package/ShadersWGSL/gpsResolve.compute.js.map +1 -0
- package/ShadersWGSL/gpsScanAdd.compute.d.ts +5 -0
- package/ShadersWGSL/gpsScanAdd.compute.js +22 -0
- package/ShadersWGSL/gpsScanAdd.compute.js.map +1 -0
- package/ShadersWGSL/gpsScanBlocks.compute.d.ts +5 -0
- package/ShadersWGSL/gpsScanBlocks.compute.js +23 -0
- package/ShadersWGSL/gpsScanBlocks.compute.js.map +1 -0
- package/ShadersWGSL/gpsScanSums.compute.d.ts +5 -0
- package/ShadersWGSL/gpsScanSums.compute.js +30 -0
- package/ShadersWGSL/gpsScanSums.compute.js.map +1 -0
- package/ShadersWGSL/gpsSplat.compute.d.ts +5 -0
- package/ShadersWGSL/gpsSplat.compute.js +37 -0
- package/ShadersWGSL/gpsSplat.compute.js.map +1 -0
- package/ShadersWGSL/gpuRenderParticles.fragment.js +47 -2
- package/ShadersWGSL/gpuRenderParticles.fragment.js.map +1 -1
- package/ShadersWGSL/gpuRenderParticles.vertex.js +110 -7
- package/ShadersWGSL/gpuRenderParticles.vertex.js.map +1 -1
- package/ShadersWGSL/meshBlending.fragment.d.ts +5 -0
- package/ShadersWGSL/meshBlending.fragment.js +576 -0
- package/ShadersWGSL/meshBlending.fragment.js.map +1 -0
- package/ShadersWGSL/minmaxRedux.fragment.js +20 -3
- package/ShadersWGSL/minmaxRedux.fragment.js.map +1 -1
- package/ShadersWGSL/openpbr.fragment.js +2 -1
- package/ShadersWGSL/openpbr.fragment.js.map +1 -1
- package/ShadersWGSL/particles.fragment.js +45 -1
- package/ShadersWGSL/particles.fragment.js.map +1 -1
- package/ShadersWGSL/particles.vertex.js +86 -4
- package/ShadersWGSL/particles.vertex.js.map +1 -1
- package/ShadersWGSL/pbr.fragment.js +2 -1
- package/ShadersWGSL/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.fragment.js +56 -2
- package/ShadersWGSL/sprites.fragment.js.map +1 -1
- package/ShadersWGSL/sprites.vertex.js +62 -1
- package/ShadersWGSL/sprites.vertex.js.map +1 -1
- package/Sprites/spriteManager.d.ts +13 -0
- package/Sprites/spriteManager.js +15 -0
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteRenderer.d.ts +24 -1
- package/Sprites/spriteRenderer.js +368 -50
- package/Sprites/spriteRenderer.js.map +1 -1
- package/Sprites/thinSprite.d.ts +4 -0
- package/Sprites/thinSprite.js +4 -0
- package/Sprites/thinSprite.js.map +1 -1
- package/States/alphaCullingState.d.ts +3 -1
- package/States/alphaCullingState.js +18 -3
- package/States/alphaCullingState.js.map +1 -1
- package/XR/features/WebXRSpaceWarp.pure.js +2 -1
- package/XR/features/WebXRSpaceWarp.pure.js.map +1 -1
- package/XR/webXRDefaultExperience.d.ts +5 -1
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXREnterExitUI.d.ts +2 -1
- package/XR/webXREnterExitUI.js.map +1 -1
- package/assetContainer.d.ts +1 -0
- package/assetContainer.js +5 -1
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
- package/scene.pure.d.ts +36 -2
- package/scene.pure.js +63 -4
- package/scene.pure.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meshBlendingPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/meshBlendingPostProcess.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Camera } from \"../Cameras/camera.pure\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport { type Effect } from \"../Materials/effect.pure\";\r\nimport { type BaseTexture } from \"../Materials/Textures/baseTexture.pure\";\r\nimport { type InternalTexture } from \"../Materials/Textures/internalTexture\";\r\nimport { type Scene } from \"../scene.pure\";\r\nimport { type Nullable } from \"../types\";\r\nimport { PostProcess, type PostProcessOptions } from \"./postProcess.pure\";\r\nimport {\r\n type IMeshBlendConfiguration,\r\n type MeshBlendDebugMode,\r\n MeshBlendDepthType,\r\n type MeshBlendQuality,\r\n type MeshBlendRadiusDefinitions,\r\n ThinMeshBlendingPostProcess,\r\n _ClaimMeshBlendingEffectWrapper,\r\n _IsMeshBlendingEffectWrapperOwned,\r\n _ReleaseMeshBlendingEffectWrapper,\r\n _ValidateMeshBlendConfiguration,\r\n} from \"./thinMeshBlendingPostProcess\";\r\n\r\n/**\r\n * Options used to create a mesh-blending post process.\r\n */\r\nexport interface IMeshBlendingPostProcessOptions extends PostProcessOptions, IMeshBlendConfiguration {\r\n /** Optional caller-owned thin mesh-blending effect wrapper. A wrapper can be attached to only one classic post process at a time. */\r\n effectWrapper?: ThinMeshBlendingPostProcess;\r\n /**\r\n * The packed R8UI mesh-blending tag texture.\r\n */\r\n meshBlendTagTexture: BaseTexture;\r\n /**\r\n * The view-depth or screen-depth texture aligned with the packed tag texture.\r\n */\r\n depthTexture: BaseTexture;\r\n /**\r\n * Optional linear base-color/albedo geometry texture aligned with SceneColor.\r\n *\r\n * When omitted, shadow estimation is compiled out.\r\n */\r\n baseColorTexture?: BaseTexture;\r\n}\r\n\r\n/**\r\n * Visually blends SceneColor across validated contacts between opaque or alpha-tested meshes.\r\n *\r\n * This WebGL2 and WebGPU effect does not change geometry, collision queries, depth, normals, or shadow geometry.\r\n * Transparent rendering is caller-controlled. Applications assign explicit group IDs from 1 through 63;\r\n * group 0 disables blending, and surfaces with the same nonzero group are treated as one logical object.\r\n *\r\n * The classic wrapper consumes caller-owned geometry textures and does not enable, configure, or dispose\r\n * a GeometryBufferRenderer. The tag, depth, and SceneColor inputs are required; optional base color enables\r\n * shadow estimation. All provided geometry inputs must have the same physical dimensions and sample count and\r\n * are single-sampled. Overlapping transparent surfaces can make SceneColor inconsistent with the single-layer\r\n * geometry inputs; compositing transparent content after this effect remains the recommended configuration.\r\n *\r\n * Four configurable radius classes combine world-space radii with physical-pixel minimums, for both\r\n * perspective and orthographic cameras. Quality variants trade search work for seam quality. Stable search\r\n * noise is internal and frame invariant. This implementation does not use temporal accumulation or require TAA.\r\n *\r\n * The classic wrapper is runtime-only because its geometry textures are caller-owned resources. It cannot\r\n * be serialized, parsed, or cloned; use the FrameGraph/NRGE path when a serializable graph is required.\r\n * @see https://meshblend.lervik.com/\r\n * @see https://www.jacktollenaar.top/articles/meshblending.html\r\n * @see https://www.jacktollenaar.top/articles/meshblending2.html\r\n * @see https://bottosson.github.io/posts/oklab/\r\n * @see https://playground.babylonjs.com/?version=preview#XVZTSI#3\r\n * @see https://playground.babylonjs.com/?version=preview#O05LI8#6\r\n */\r\nexport class MeshBlendingPostProcess extends PostProcess {\r\n declare protected _effectWrapper: ThinMeshBlendingPostProcess;\r\n\r\n private _meshBlendTagTexture: BaseTexture;\r\n private _depthTexture: BaseTexture;\r\n private _baseColorTexture: Nullable<BaseTexture>;\r\n private readonly _ownsEffectWrapper: boolean;\r\n\r\n /**\r\n * Gets the compile-time quality variant.\r\n */\r\n public get quality(): MeshBlendQuality {\r\n return this._effectWrapper.quality;\r\n }\r\n\r\n public set quality(value: MeshBlendQuality) {\r\n this._effectWrapper.quality = value;\r\n }\r\n\r\n /**\r\n * The packed R8UI mesh-blending tag texture used by the effect.\r\n */\r\n public get meshBlendTagTexture(): BaseTexture {\r\n return this._meshBlendTagTexture;\r\n }\r\n\r\n public set meshBlendTagTexture(value: BaseTexture) {\r\n MeshBlendingPostProcess._ValidateMeshBlendTagTexture(value);\r\n MeshBlendingPostProcess._ValidateInputTextureDimensions(value, this._depthTexture, this._baseColorTexture);\r\n this._meshBlendTagTexture = value;\r\n this._validateInputDimensions();\r\n }\r\n\r\n /**\r\n * The depth texture used for position reconstruction and contact validation.\r\n */\r\n public get depthTexture(): BaseTexture {\r\n return this._depthTexture;\r\n }\r\n\r\n public set depthTexture(value: BaseTexture) {\r\n MeshBlendingPostProcess._ValidateDepthTexture(value, this.depthType);\r\n MeshBlendingPostProcess._ValidateInputTextureDimensions(this._meshBlendTagTexture, value, this._baseColorTexture);\r\n this._depthTexture = value;\r\n this._validateInputDimensions();\r\n }\r\n\r\n /**\r\n * The optional linear base-color/albedo geometry texture used by the shadow-transfer heuristic.\r\n *\r\n * Setting null compiles shadow estimation out.\r\n */\r\n public get baseColorTexture(): Nullable<BaseTexture> {\r\n return this._baseColorTexture;\r\n }\r\n\r\n public set baseColorTexture(value: Nullable<BaseTexture>) {\r\n if (value) {\r\n MeshBlendingPostProcess._ValidateBaseColorTexture(value);\r\n }\r\n MeshBlendingPostProcess._ValidateInputTextureDimensions(this._meshBlendTagTexture, this._depthTexture, value);\r\n this._baseColorTexture = value;\r\n this._effectWrapper.hasBaseColorTexture = !!value;\r\n this._validateInputDimensions();\r\n }\r\n\r\n /**\r\n * Gets the representation stored in the depth texture.\r\n */\r\n public get depthType(): MeshBlendDepthType {\r\n return this._effectWrapper.depthType;\r\n }\r\n\r\n public set depthType(value: MeshBlendDepthType) {\r\n if (this._depthTexture) {\r\n MeshBlendingPostProcess._ValidateDepthTexture(this._depthTexture, value);\r\n }\r\n this._effectWrapper.depthType = value;\r\n }\r\n\r\n /**\r\n * Gets the four configurable radius definitions indexed by packed radius class.\r\n */\r\n public get radiusClasses(): MeshBlendRadiusDefinitions {\r\n return this._effectWrapper.radiusClasses;\r\n }\r\n\r\n /**\r\n * Gets the compiled debug visualization.\r\n */\r\n public get debugMode(): MeshBlendDebugMode {\r\n return this._effectWrapper.debugMode;\r\n }\r\n\r\n public set debugMode(value: MeshBlendDebugMode) {\r\n this._effectWrapper.debugMode = value;\r\n }\r\n\r\n /** Contact-slope narrowing factor. A value of 1 disables narrowing. */\r\n public get slopeFactor(): number {\r\n return this._effectWrapper.slopeFactor;\r\n }\r\n\r\n public set slopeFactor(value: number) {\r\n this._effectWrapper.slopeFactor = value;\r\n }\r\n\r\n /**\r\n * Applies shared mesh-blending configuration.\r\n * @param options Values to apply. Omitted values retain their current settings.\r\n */\r\n public configure(options?: IMeshBlendConfiguration): void {\r\n if (options?.depthType !== undefined) {\r\n MeshBlendingPostProcess._ValidateDepthTexture(this._depthTexture, options.depthType);\r\n }\r\n this._effectWrapper.configure(options);\r\n }\r\n\r\n /**\r\n * Creates a mesh-blending post process.\r\n * @param name The name of the post process.\r\n * @param scene The scene containing the camera.\r\n * @param camera The camera to attach the post process to.\r\n * @param options The post-process and input-texture options.\r\n */\r\n constructor(name: string, scene: Scene, camera: Camera, options: IMeshBlendingPostProcessOptions) {\r\n const sceneEngine = scene.getEngine();\r\n if (camera.getScene() !== scene) {\r\n throw new Error(\"MeshBlendingPostProcess: scene and camera must belong to the same scene\");\r\n }\r\n if (options.engine !== undefined && options.engine !== sceneEngine) {\r\n throw new Error(\"MeshBlendingPostProcess: options.engine must match the scene engine\");\r\n }\r\n if (options.effectWrapper !== undefined && !(options.effectWrapper instanceof ThinMeshBlendingPostProcess)) {\r\n throw new TypeError(\"MeshBlendingPostProcess: effectWrapper must be a ThinMeshBlendingPostProcess\");\r\n }\r\n if (options.effectWrapper !== undefined && options.effectWrapper.options.engine !== sceneEngine) {\r\n throw new Error(\"MeshBlendingPostProcess: effectWrapper must use the scene engine\");\r\n }\r\n if (options.effectWrapper !== undefined && _IsMeshBlendingEffectWrapperOwned(options.effectWrapper)) {\r\n throw new Error(\"MeshBlendingPostProcess: effectWrapper is already attached to another classic mesh-blending post process\");\r\n }\r\n const depthType = options.depthType ?? options.effectWrapper?.depthType ?? MeshBlendDepthType.View;\r\n MeshBlendingPostProcess._ValidateInputs(options, depthType);\r\n\r\n const ownsEffectWrapper = options.effectWrapper === undefined;\r\n const effectWrapper = options.effectWrapper ?? new ThinMeshBlendingPostProcess(name, sceneEngine, options);\r\n effectWrapper.hasBaseColorTexture = !!options.baseColorTexture;\r\n\r\n super(name, ThinMeshBlendingPostProcess.FragmentUrl, {\r\n ...options,\r\n camera,\r\n engine: sceneEngine,\r\n effectWrapper,\r\n uniforms: ThinMeshBlendingPostProcess.Uniforms,\r\n samplers: ThinMeshBlendingPostProcess.Samplers,\r\n textureType: options.textureType ?? Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n });\r\n\r\n this._ownsEffectWrapper = ownsEffectWrapper;\r\n _ClaimMeshBlendingEffectWrapper(effectWrapper, this);\r\n this._meshBlendTagTexture = options.meshBlendTagTexture;\r\n this._depthTexture = options.depthTexture;\r\n this._baseColorTexture = options.baseColorTexture ?? null;\r\n\r\n this._effectWrapper.configure(options);\r\n this._effectWrapper.camera = camera;\r\n this.doNotSerialize = true;\r\n this._validateInputDimensions();\r\n\r\n this.onApply = (effect: Effect) => {\r\n this._validateInputDimensions(this.width, this.height, this.inputTexture.samples);\r\n this._effectWrapper.camera = this.getCamera();\r\n effect.setTexture(\"meshBlendTagSampler\", this._meshBlendTagTexture);\r\n effect.setTexture(\"meshBlendDepthSampler\", this._depthTexture);\r\n if (this._baseColorTexture) {\r\n effect.setTexture(\"meshBlendBaseColorSampler\", this._baseColorTexture);\r\n }\r\n };\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"MeshBlendingPostProcess\";\r\n }\r\n\r\n public override dispose(camera?: Camera): void {\r\n super.dispose(camera);\r\n _ReleaseMeshBlendingEffectWrapper(this._effectWrapper, this);\r\n if (this._ownsEffectWrapper) {\r\n this._effectWrapper.dispose();\r\n }\r\n }\r\n\r\n /**\r\n * Classic mesh blending cannot be serialized because its geometry inputs are caller-owned runtime textures.\r\n * @throws Always throws because the classic wrapper is runtime-only.\r\n */\r\n public override serialize(): never {\r\n throw new Error(\"MeshBlendingPostProcess cannot be serialized; use the FrameGraph/NRGE path for serializable mesh blending\");\r\n }\r\n\r\n /**\r\n * Classic mesh blending cannot be cloned because its geometry inputs are caller-owned runtime textures.\r\n * @returns Null.\r\n */\r\n public override clone(): null {\r\n return null;\r\n }\r\n\r\n private static _ValidateInputs(options: IMeshBlendingPostProcessOptions, depthType: MeshBlendDepthType): void {\r\n _ValidateMeshBlendConfiguration(options);\r\n MeshBlendingPostProcess._ValidateMeshBlendTagTexture(options.meshBlendTagTexture);\r\n MeshBlendingPostProcess._ValidateDepthTexture(options.depthTexture, depthType);\r\n if (options.baseColorTexture) {\r\n MeshBlendingPostProcess._ValidateBaseColorTexture(options.baseColorTexture);\r\n }\r\n MeshBlendingPostProcess._ValidateInputTextureDimensions(options.meshBlendTagTexture, options.depthTexture, options.baseColorTexture);\r\n }\r\n\r\n private static _ValidateInputTextureDimensions(meshBlendTagTexture: BaseTexture, depthTexture: BaseTexture, baseColorTexture: Nullable<BaseTexture> | undefined): void {\r\n const tagInternalTexture = meshBlendTagTexture.getInternalTexture();\r\n const depthInternalTexture = depthTexture.getInternalTexture();\r\n const baseColorInternalTexture = baseColorTexture?.getInternalTexture();\r\n if (!tagInternalTexture || !depthInternalTexture) {\r\n return;\r\n }\r\n\r\n if (\r\n tagInternalTexture.width !== depthInternalTexture.width ||\r\n tagInternalTexture.height !== depthInternalTexture.height ||\r\n (baseColorInternalTexture !== null &&\r\n baseColorInternalTexture !== undefined &&\r\n (tagInternalTexture.width !== baseColorInternalTexture.width || tagInternalTexture.height !== baseColorInternalTexture.height))\r\n ) {\r\n throw new Error(\"MeshBlendingPostProcess: meshBlendTagTexture, depthTexture, and baseColorTexture when provided must have matching physical dimensions\");\r\n }\r\n const inputSamples = tagInternalTexture.samples || 1;\r\n if (\r\n (depthInternalTexture.samples || 1) !== inputSamples ||\r\n (baseColorInternalTexture !== null && baseColorInternalTexture !== undefined && (baseColorInternalTexture.samples || 1) !== inputSamples)\r\n ) {\r\n throw new Error(\"MeshBlendingPostProcess: meshBlendTagTexture, depthTexture, and baseColorTexture when provided must have matching sample counts\");\r\n }\r\n }\r\n\r\n private static _ValidateMeshBlendTagTexture(texture: BaseTexture): void {\r\n const internalTexture = texture.getInternalTexture();\r\n if (!internalTexture) {\r\n return;\r\n }\r\n MeshBlendingPostProcess._Validate2DTexture(internalTexture, \"meshBlendTagTexture\");\r\n if (internalTexture.type !== Constants.TEXTURETYPE_UNSIGNED_BYTE || internalTexture.format !== Constants.TEXTUREFORMAT_RED_INTEGER) {\r\n throw new Error(\"MeshBlendingPostProcess: meshBlendTagTexture must use TEXTURETYPE_UNSIGNED_BYTE with TEXTUREFORMAT_RED_INTEGER\");\r\n }\r\n if (internalTexture.generateMipMaps || internalTexture.samplingMode !== Constants.TEXTURE_NEAREST_SAMPLINGMODE || internalTexture.samples > 1) {\r\n throw new Error(\"MeshBlendingPostProcess: meshBlendTagTexture must use nearest sampling without mipmaps and must be single-sampled\");\r\n }\r\n }\r\n\r\n private static _ValidateDepthTexture(texture: BaseTexture, depthType: MeshBlendDepthType): void {\r\n const internalTexture = texture.getInternalTexture();\r\n if (!internalTexture) {\r\n return;\r\n }\r\n MeshBlendingPostProcess._Validate2DTexture(internalTexture, \"depthTexture\");\r\n\r\n const validFormat =\r\n internalTexture.format === Constants.TEXTUREFORMAT_RED ||\r\n internalTexture.format === Constants.TEXTUREFORMAT_RG ||\r\n internalTexture.format === Constants.TEXTUREFORMAT_RGBA;\r\n const validType =\r\n internalTexture.type === Constants.TEXTURETYPE_FLOAT ||\r\n internalTexture.type === Constants.TEXTURETYPE_HALF_FLOAT ||\r\n (depthType === MeshBlendDepthType.Screen && internalTexture.type === Constants.TEXTURETYPE_UNSIGNED_BYTE);\r\n\r\n if (!validFormat || !validType) {\r\n throw new Error(\r\n `MeshBlendingPostProcess: ${depthType === MeshBlendDepthType.View ? \"view\" : \"screen\"} depthTexture must use a floating-point color format${\r\n depthType === MeshBlendDepthType.Screen ? \" or normalized unsigned bytes\" : \"\"\r\n }`\r\n );\r\n }\r\n if (internalTexture.generateMipMaps || internalTexture.samples > 1) {\r\n throw new Error(\"MeshBlendingPostProcess: depthTexture must not use mipmaps and must be single-sampled\");\r\n }\r\n }\r\n\r\n private static _ValidateBaseColorTexture(texture: BaseTexture): void {\r\n const internalTexture = texture.getInternalTexture();\r\n if (!internalTexture) {\r\n return;\r\n }\r\n MeshBlendingPostProcess._Validate2DTexture(internalTexture, \"baseColorTexture\");\r\n\r\n const validFormat = internalTexture.format === Constants.TEXTUREFORMAT_RGB || internalTexture.format === Constants.TEXTUREFORMAT_RGBA;\r\n const validType =\r\n internalTexture.type === Constants.TEXTURETYPE_UNSIGNED_BYTE ||\r\n internalTexture.type === Constants.TEXTURETYPE_HALF_FLOAT ||\r\n internalTexture.type === Constants.TEXTURETYPE_FLOAT;\r\n if (!validFormat || !validType) {\r\n throw new Error(\"MeshBlendingPostProcess: baseColorTexture must use a non-integer RGB or RGBA color format\");\r\n }\r\n if (internalTexture.generateMipMaps || internalTexture.samples > 1) {\r\n throw new Error(\"MeshBlendingPostProcess: baseColorTexture must not use mipmaps and must be single-sampled\");\r\n }\r\n }\r\n\r\n private static _Validate2DTexture(internalTexture: InternalTexture, name: string): void {\r\n if (internalTexture.isCube || internalTexture.is3D || internalTexture.is2DArray) {\r\n throw new Error(`MeshBlendingPostProcess: ${name} must be a 2D texture`);\r\n }\r\n }\r\n\r\n private _validateInputDimensions(renderWidth?: number, renderHeight?: number, renderSamples?: number): void {\r\n MeshBlendingPostProcess._ValidateMeshBlendTagTexture(this._meshBlendTagTexture);\r\n MeshBlendingPostProcess._ValidateDepthTexture(this._depthTexture, this.depthType);\r\n if (this._baseColorTexture) {\r\n MeshBlendingPostProcess._ValidateBaseColorTexture(this._baseColorTexture);\r\n }\r\n\r\n const tagTexture = this._meshBlendTagTexture?.getInternalTexture();\r\n const depthTexture = this._depthTexture?.getInternalTexture();\r\n const baseColorTexture = this._baseColorTexture?.getInternalTexture();\r\n if (!tagTexture || !depthTexture) {\r\n return;\r\n }\r\n\r\n MeshBlendingPostProcess._ValidateInputTextureDimensions(this._meshBlendTagTexture, this._depthTexture, this._baseColorTexture);\r\n const inputSamples = tagTexture.samples || 1;\r\n if (renderWidth !== undefined && renderHeight !== undefined && renderWidth > 0 && renderHeight > 0) {\r\n if (\r\n tagTexture.width !== renderWidth ||\r\n tagTexture.height !== renderHeight ||\r\n (baseColorTexture !== null && baseColorTexture !== undefined && (baseColorTexture.width !== renderWidth || baseColorTexture.height !== renderHeight))\r\n ) {\r\n throw new Error(\r\n \"MeshBlendingPostProcess: SceneColor, meshBlendTagTexture, depthTexture, and baseColorTexture when provided must have matching physical dimensions\"\r\n );\r\n }\r\n if ((renderSamples || 1) !== inputSamples) {\r\n throw new Error(\"MeshBlendingPostProcess: SceneColor, meshBlendTagTexture, depthTexture, and baseColorTexture when provided must have matching sample counts\");\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
package/PostProcesses/pure.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export * from "./grainPostProcess.pure.js";
|
|
|
19
19
|
export * from "./highlightsPostProcess.js";
|
|
20
20
|
export * from "./imageProcessingPostProcess.js";
|
|
21
21
|
export * from "./motionBlurPostProcess.pure.js";
|
|
22
|
+
export * from "./meshBlendingPostProcess.js";
|
|
22
23
|
export * from "./passPostProcess.pure.js";
|
|
23
24
|
export * from "./postProcess.pure.js";
|
|
24
25
|
export * from "./postProcessManager.js";
|
|
@@ -47,6 +48,7 @@ export * from "./thinFXAAPostProcess.js";
|
|
|
47
48
|
export * from "./thinGrainPostProcess.js";
|
|
48
49
|
export * from "./thinImageProcessingPostProcess.js";
|
|
49
50
|
export * from "./thinMotionBlurPostProcess.js";
|
|
51
|
+
export * from "./thinMeshBlendingPostProcess.js";
|
|
50
52
|
export * from "./thinPassPostProcess.js";
|
|
51
53
|
export * from "./thinSharpenPostProcess.js";
|
|
52
54
|
export * from "./thinScreenSpaceCurvaturePostProcess.js";
|
package/PostProcesses/pure.js
CHANGED
|
@@ -20,6 +20,7 @@ export * from "./grainPostProcess.pure.js";
|
|
|
20
20
|
export * from "./highlightsPostProcess.js";
|
|
21
21
|
export * from "./imageProcessingPostProcess.js";
|
|
22
22
|
export * from "./motionBlurPostProcess.pure.js";
|
|
23
|
+
export * from "./meshBlendingPostProcess.js";
|
|
23
24
|
export * from "./passPostProcess.pure.js";
|
|
24
25
|
export * from "./postProcess.pure.js";
|
|
25
26
|
export * from "./postProcessManager.js";
|
|
@@ -48,6 +49,7 @@ export * from "./thinFXAAPostProcess.js";
|
|
|
48
49
|
export * from "./thinGrainPostProcess.js";
|
|
49
50
|
export * from "./thinImageProcessingPostProcess.js";
|
|
50
51
|
export * from "./thinMotionBlurPostProcess.js";
|
|
52
|
+
export * from "./thinMeshBlendingPostProcess.js";
|
|
51
53
|
export * from "./thinPassPostProcess.js";
|
|
52
54
|
export * from "./thinSharpenPostProcess.js";
|
|
53
55
|
export * from "./thinScreenSpaceCurvaturePostProcess.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,6DAA6D;AAC7D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\n/* eslint-disable @typescript-eslint/no-restricted-imports */\nexport * from \"./anaglyphPostProcess.pure\";\nexport * from \"./blackAndWhitePostProcess.pure\";\nexport * from \"./bloomEffect\";\nexport * from \"./bloomMergePostProcess.pure\";\nexport * from \"./blurPostProcess.pure\";\nexport * from \"./chromaticAberrationPostProcess.pure\";\nexport * from \"./circleOfConfusionPostProcess.pure\";\nexport * from \"./colorCorrectionPostProcess.pure\";\nexport * from \"./convolutionPostProcess.pure\";\nexport * from \"./depthOfFieldBlurPostProcess.pure\";\nexport * from \"./depthOfFieldEffect\";\nexport * from \"./depthOfFieldMergePostProcess\";\nexport * from \"./displayPassPostProcess.pure\";\nexport * from \"./extractHighlightsPostProcess.pure\";\nexport * from \"./filterPostProcess.pure\";\nexport * from \"./fxaaPostProcess.pure\";\nexport * from \"./grainPostProcess.pure\";\nexport * from \"./highlightsPostProcess\";\nexport * from \"./imageProcessingPostProcess\";\nexport * from \"./motionBlurPostProcess.pure\";\nexport * from \"./passPostProcess.pure\";\nexport * from \"./postProcess.pure\";\nexport * from \"./postProcessManager\";\nexport * from \"./refractionPostProcess.pure\";\nexport * from \"./RenderPipeline/pure\";\nexport * from \"./sharpenPostProcess.pure\";\nexport * from \"./stereoscopicInterlacePostProcess.pure\";\nexport * from \"./tonemapPostProcess.pure\";\nexport * from \"./volumetricLightScatteringPostProcess.pure\";\nexport * from \"./vrDistortionCorrectionPostProcess\";\nexport * from \"./vrMultiviewToSingleviewPostProcess.pure\";\nexport * from \"./screenSpaceReflectionPostProcess.pure\";\nexport * from \"./screenSpaceCurvaturePostProcess.pure\";\nexport * from \"./thinAnaglyphPostProcess\";\nexport * from \"./thinBlackAndWhitePostProcess\";\nexport * from \"./thinBloomEffect\";\nexport * from \"./thinBlurPostProcess\";\nexport * from \"./thinChromaticAberrationPostProcess\";\nexport * from \"./thinCircleOfConfusionPostProcess\";\nexport * from \"./thinColorCorrectionPostProcess\";\nexport * from \"./thinConvolutionPostProcess\";\nexport * from \"./thinDepthOfFieldEffect\";\nexport * from \"./thinExtractHighlightsPostProcess\";\nexport * from \"./thinFilterPostProcess\";\nexport * from \"./thinFXAAPostProcess\";\nexport * from \"./thinGrainPostProcess\";\nexport * from \"./thinImageProcessingPostProcess\";\nexport * from \"./thinMotionBlurPostProcess\";\nexport * from \"./thinPassPostProcess\";\nexport * from \"./thinSharpenPostProcess\";\nexport * from \"./thinScreenSpaceCurvaturePostProcess\";\nexport * from \"./thinTonemapPostProcess\";\nexport * from \"./subSurfaceScatteringPostProcess.pure\";\n"]}
|
|
1
|
+
{"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,6DAA6D;AAC7D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\n/* eslint-disable @typescript-eslint/no-restricted-imports */\nexport * from \"./anaglyphPostProcess.pure\";\nexport * from \"./blackAndWhitePostProcess.pure\";\nexport * from \"./bloomEffect\";\nexport * from \"./bloomMergePostProcess.pure\";\nexport * from \"./blurPostProcess.pure\";\nexport * from \"./chromaticAberrationPostProcess.pure\";\nexport * from \"./circleOfConfusionPostProcess.pure\";\nexport * from \"./colorCorrectionPostProcess.pure\";\nexport * from \"./convolutionPostProcess.pure\";\nexport * from \"./depthOfFieldBlurPostProcess.pure\";\nexport * from \"./depthOfFieldEffect\";\nexport * from \"./depthOfFieldMergePostProcess\";\nexport * from \"./displayPassPostProcess.pure\";\nexport * from \"./extractHighlightsPostProcess.pure\";\nexport * from \"./filterPostProcess.pure\";\nexport * from \"./fxaaPostProcess.pure\";\nexport * from \"./grainPostProcess.pure\";\nexport * from \"./highlightsPostProcess\";\nexport * from \"./imageProcessingPostProcess\";\nexport * from \"./motionBlurPostProcess.pure\";\nexport * from \"./meshBlendingPostProcess\";\nexport * from \"./passPostProcess.pure\";\nexport * from \"./postProcess.pure\";\nexport * from \"./postProcessManager\";\nexport * from \"./refractionPostProcess.pure\";\nexport * from \"./RenderPipeline/pure\";\nexport * from \"./sharpenPostProcess.pure\";\nexport * from \"./stereoscopicInterlacePostProcess.pure\";\nexport * from \"./tonemapPostProcess.pure\";\nexport * from \"./volumetricLightScatteringPostProcess.pure\";\nexport * from \"./vrDistortionCorrectionPostProcess\";\nexport * from \"./vrMultiviewToSingleviewPostProcess.pure\";\nexport * from \"./screenSpaceReflectionPostProcess.pure\";\nexport * from \"./screenSpaceCurvaturePostProcess.pure\";\nexport * from \"./thinAnaglyphPostProcess\";\nexport * from \"./thinBlackAndWhitePostProcess\";\nexport * from \"./thinBloomEffect\";\nexport * from \"./thinBlurPostProcess\";\nexport * from \"./thinChromaticAberrationPostProcess\";\nexport * from \"./thinCircleOfConfusionPostProcess\";\nexport * from \"./thinColorCorrectionPostProcess\";\nexport * from \"./thinConvolutionPostProcess\";\nexport * from \"./thinDepthOfFieldEffect\";\nexport * from \"./thinExtractHighlightsPostProcess\";\nexport * from \"./thinFilterPostProcess\";\nexport * from \"./thinFXAAPostProcess\";\nexport * from \"./thinGrainPostProcess\";\nexport * from \"./thinImageProcessingPostProcess\";\nexport * from \"./thinMotionBlurPostProcess\";\nexport * from \"./thinMeshBlendingPostProcess\";\nexport * from \"./thinPassPostProcess\";\nexport * from \"./thinSharpenPostProcess\";\nexport * from \"./thinScreenSpaceCurvaturePostProcess\";\nexport * from \"./thinTonemapPostProcess\";\nexport * from \"./subSurfaceScatteringPostProcess.pure\";\n"]}
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import { type Nullable } from "../types.js";
|
|
2
|
+
import { EffectWrapper } from "../Materials/effectRenderer.pure.js";
|
|
3
|
+
import { type AbstractEngine } from "../Engines/abstractEngine.pure.js";
|
|
4
|
+
import { type EffectWrapperCreationOptions } from "../Materials/effectRenderer.js";
|
|
5
|
+
import { type Camera } from "../Cameras/camera.pure.js";
|
|
6
|
+
/**
|
|
7
|
+
* Quality level used by mesh blending.
|
|
8
|
+
*
|
|
9
|
+
* Each value selects a separate compile-time shader variant. Medium is the default.
|
|
10
|
+
*/
|
|
11
|
+
export declare enum MeshBlendQuality {
|
|
12
|
+
/** Three search directions with the lowest refinement and exact-boundary sample counts, using sRGB color interpolation. */
|
|
13
|
+
Low = 0,
|
|
14
|
+
/** Three search directions with balanced refinement and exact-boundary sample counts, using OKLab color interpolation. */
|
|
15
|
+
Medium = 1,
|
|
16
|
+
/** Three search directions with OKLab interpolation, full rotation, close-neighbor fallback, tiny-object protection, and multi-target blending. */
|
|
17
|
+
High = 2,
|
|
18
|
+
/** Eight search directions with OKLab interpolation and the largest radial and exact-boundary sample counts. */
|
|
19
|
+
Cinematic = 3
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Debug visualization produced by mesh blending.
|
|
23
|
+
*/
|
|
24
|
+
export declare enum MeshBlendDebugMode {
|
|
25
|
+
/** Render the blended scene color. */
|
|
26
|
+
Off = 0,
|
|
27
|
+
/** Visualize the packed group and radius-class tag. */
|
|
28
|
+
PackedTag = 1,
|
|
29
|
+
/** Visualize the refined candidate direction and normalized boundary distance. */
|
|
30
|
+
CandidateDirectionDistance = 2,
|
|
31
|
+
/** Visualize the selected radius class and the resulting seam fade. */
|
|
32
|
+
SeamFade = 3,
|
|
33
|
+
/** Visualize why a candidate was accepted or rejected by contact validation. */
|
|
34
|
+
RejectionReason = 4,
|
|
35
|
+
/** Visualize the approximate amount of shader work performed by each pixel. */
|
|
36
|
+
StageWork = 5,
|
|
37
|
+
/** Visualize target continuation success, fallback use, and rejection. */
|
|
38
|
+
Continuation = 6,
|
|
39
|
+
/** Visualize the effective-radius reduction applied to thin projected objects. */
|
|
40
|
+
TinyObject = 7,
|
|
41
|
+
/** Visualize primary-only and secondary-target selections at multi-mesh junctions. */
|
|
42
|
+
MultiTarget = 8,
|
|
43
|
+
/** Visualize the farther, boundary-plus-one, boundary-plus-two, and constructed target-color samples. */
|
|
44
|
+
TargetColor = 9,
|
|
45
|
+
/** Visualize the fade attenuation applied by the base-color shadow-transfer heuristic. Neutral when no base-color texture is provided. */
|
|
46
|
+
ShadowAttenuation = 10,
|
|
47
|
+
/** Visualize the active color-interpolation mode after target-color construction. */
|
|
48
|
+
ColorInterpolation = 11,
|
|
49
|
+
/** Visualize the reconstructed world position. */
|
|
50
|
+
WorldPosition = 12
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Depth representation consumed by mesh blending.
|
|
54
|
+
*/
|
|
55
|
+
export declare enum MeshBlendDepthType {
|
|
56
|
+
/** Signed camera-space Z written by the geometry renderer's view-depth output. */
|
|
57
|
+
View = 0,
|
|
58
|
+
/** Hardware depth in the normalized screen-depth range. */
|
|
59
|
+
Screen = 1
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Radius values associated with one mesh-blending radius class.
|
|
63
|
+
*/
|
|
64
|
+
export interface IMeshBlendRadiusDefinition {
|
|
65
|
+
/** Authored blend radius in Babylon world units. */
|
|
66
|
+
worldRadius: number;
|
|
67
|
+
/** Minimum search radius in physical render-target pixels. */
|
|
68
|
+
minimumProjectedRadius: number;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The four radius definitions indexed by the packed mesh-blending radius class.
|
|
72
|
+
*/
|
|
73
|
+
export type MeshBlendRadiusDefinitions = readonly [IMeshBlendRadiusDefinition, IMeshBlendRadiusDefinition, IMeshBlendRadiusDefinition, IMeshBlendRadiusDefinition];
|
|
74
|
+
/**
|
|
75
|
+
* Checks whether a thin mesh-blending wrapper is already exclusively owned.
|
|
76
|
+
* @param wrapper Wrapper to check.
|
|
77
|
+
* @returns Whether the wrapper already has an owner.
|
|
78
|
+
* @internal
|
|
79
|
+
*/
|
|
80
|
+
export declare function _IsMeshBlendingEffectWrapperOwned(wrapper: ThinMeshBlendingPostProcess): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Claims exclusive ownership of a thin mesh-blending wrapper.
|
|
83
|
+
* @param wrapper Wrapper to claim.
|
|
84
|
+
* @param owner Owner claiming the wrapper.
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
export declare function _ClaimMeshBlendingEffectWrapper(wrapper: ThinMeshBlendingPostProcess, owner: object): void;
|
|
88
|
+
/**
|
|
89
|
+
* Releases exclusive ownership of a thin mesh-blending wrapper.
|
|
90
|
+
* @param wrapper Wrapper to release.
|
|
91
|
+
* @param owner Owner releasing the wrapper.
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
export declare function _ReleaseMeshBlendingEffectWrapper(wrapper: ThinMeshBlendingPostProcess, owner: object): void;
|
|
95
|
+
/**
|
|
96
|
+
* Configurable mesh-blending values shared by the classic and frame-graph wrappers.
|
|
97
|
+
*/
|
|
98
|
+
export interface IMeshBlendConfiguration {
|
|
99
|
+
/** Compile-time quality variant. */
|
|
100
|
+
quality?: MeshBlendQuality;
|
|
101
|
+
/** Radius definitions indexed by packed radius class. Exactly four definitions are required. */
|
|
102
|
+
radiusClasses?: readonly [IMeshBlendRadiusDefinition, IMeshBlendRadiusDefinition, IMeshBlendRadiusDefinition, IMeshBlendRadiusDefinition];
|
|
103
|
+
/** Contact-slope narrowing factor. A value of 1 disables narrowing. */
|
|
104
|
+
slopeFactor?: number;
|
|
105
|
+
/** Representation stored in the depth texture. */
|
|
106
|
+
depthType?: MeshBlendDepthType;
|
|
107
|
+
/** Debug visualization to compile into the shader. Off renders the final blended result. */
|
|
108
|
+
debugMode?: MeshBlendDebugMode;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Options used to create a thin mesh-blending post process.
|
|
112
|
+
*/
|
|
113
|
+
export interface IThinMeshBlendingPostProcessOptions extends EffectWrapperCreationOptions, IMeshBlendConfiguration {
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Creates a new set of default mesh-blending radius definitions.
|
|
117
|
+
* @returns Four independently mutable radius definitions ordered from small to extra large.
|
|
118
|
+
*/
|
|
119
|
+
export declare function CreateDefaultMeshBlendRadiusDefinitions(): MeshBlendRadiusDefinitions;
|
|
120
|
+
interface IMeshBlendQualitySettings {
|
|
121
|
+
directionCount: number;
|
|
122
|
+
radialSampleCount: number;
|
|
123
|
+
directionRefinementSampleCount: number;
|
|
124
|
+
directionRefinementStepCount: number;
|
|
125
|
+
exactEdgeSampleCount: number;
|
|
126
|
+
radiusScale: number;
|
|
127
|
+
fullRandomRotation: boolean;
|
|
128
|
+
searchJitterFactor: number;
|
|
129
|
+
immediateFourNeighborFallback: boolean;
|
|
130
|
+
tinyObjectSafeguard: boolean;
|
|
131
|
+
multiTargetSecondaryBlend: boolean;
|
|
132
|
+
colorInterpolation: "sRGB" | "OKLab";
|
|
133
|
+
}
|
|
134
|
+
type MeshBlendColorTuple = readonly [number, number, number];
|
|
135
|
+
/**
|
|
136
|
+
* Converts linear sRGB to Babylon mesh-blending OKLab coordinates.
|
|
137
|
+
* @param color Linear sRGB color. HDR components are preserved.
|
|
138
|
+
* @returns OKLab coordinates.
|
|
139
|
+
* @see https://bottosson.github.io/posts/oklab/
|
|
140
|
+
* @internal
|
|
141
|
+
*/
|
|
142
|
+
export declare function _LinearSrgbToMeshBlendOklab(color: MeshBlendColorTuple): [number, number, number];
|
|
143
|
+
/**
|
|
144
|
+
* Converts Babylon mesh-blending OKLab coordinates to linear sRGB.
|
|
145
|
+
* @param color OKLab coordinates.
|
|
146
|
+
* @returns Linear sRGB color without gamut or HDR clamping.
|
|
147
|
+
* @see https://bottosson.github.io/posts/oklab/
|
|
148
|
+
* @internal
|
|
149
|
+
*/
|
|
150
|
+
export declare function _MeshBlendOklabToLinearSrgb(color: MeshBlendColorTuple): [number, number, number];
|
|
151
|
+
/**
|
|
152
|
+
* Interpolates two linear SceneColor values using the selected mesh-blending quality policy.
|
|
153
|
+
* @param current Current linear SceneColor.
|
|
154
|
+
* @param target Target linear SceneColor.
|
|
155
|
+
* @param amount Interpolation amount.
|
|
156
|
+
* @param quality Mesh-blending quality that selects sRGB or OKLab interpolation.
|
|
157
|
+
* @returns Interpolated linear SceneColor without HDR clamping.
|
|
158
|
+
* @internal
|
|
159
|
+
*/
|
|
160
|
+
export declare function _InterpolateMeshBlendColor(current: MeshBlendColorTuple, target: MeshBlendColorTuple, amount: number, quality: MeshBlendQuality): [number, number, number];
|
|
161
|
+
/**
|
|
162
|
+
* Gets the complete quality settings used to compile a mesh-blending shader variant.
|
|
163
|
+
* @param quality Quality to inspect.
|
|
164
|
+
* @returns The immutable settings for the quality.
|
|
165
|
+
* @internal
|
|
166
|
+
*/
|
|
167
|
+
export declare function _GetMeshBlendQualitySettings(quality: MeshBlendQuality): Readonly<IMeshBlendQualitySettings>;
|
|
168
|
+
/**
|
|
169
|
+
* Gets the radius scale used by a mesh-blending quality level.
|
|
170
|
+
* @param quality Quality to convert.
|
|
171
|
+
* @returns The radius scale applied after projection and the minimum-pixel floor.
|
|
172
|
+
* @internal
|
|
173
|
+
*/
|
|
174
|
+
export declare function _GetMeshBlendQualityRadiusScale(quality: MeshBlendQuality): number;
|
|
175
|
+
/**
|
|
176
|
+
* Projects a world-space mesh-blending radius to physical render-target pixels.
|
|
177
|
+
* @param worldRadius Radius in Babylon world units.
|
|
178
|
+
* @param viewDepth Positive distance from the camera.
|
|
179
|
+
* @param renderTargetHeight Physical render-target height.
|
|
180
|
+
* @param projectionYScale Absolute Y scale from the projection matrix.
|
|
181
|
+
* @param isOrthographic Whether the projection is orthographic.
|
|
182
|
+
* @returns The projected radius in physical pixels.
|
|
183
|
+
* @internal
|
|
184
|
+
*/
|
|
185
|
+
export declare function _ProjectMeshBlendWorldRadiusToPixels(worldRadius: number, viewDepth: number, renderTargetHeight: number, projectionYScale: number, isOrthographic: boolean): number;
|
|
186
|
+
/**
|
|
187
|
+
* Calculates the final mesh-blending search radius.
|
|
188
|
+
* @param definition Radius-class definition.
|
|
189
|
+
* @param viewDepth Positive distance from the camera.
|
|
190
|
+
* @param renderTargetHeight Physical render-target height.
|
|
191
|
+
* @param projectionYScale Absolute Y scale from the projection matrix.
|
|
192
|
+
* @param isOrthographic Whether the projection is orthographic.
|
|
193
|
+
* @param quality Quality whose radius scale is applied.
|
|
194
|
+
* @returns The final radius in physical pixels.
|
|
195
|
+
* @internal
|
|
196
|
+
*/
|
|
197
|
+
export declare function _CalculateMeshBlendSearchRadius(definition: IMeshBlendRadiusDefinition, viewDepth: number, renderTargetHeight: number, projectionYScale: number, isOrthographic: boolean, quality: MeshBlendQuality): number;
|
|
198
|
+
/**
|
|
199
|
+
* Calculates the mesh-blending fade for a candidate boundary.
|
|
200
|
+
* @param distancePixels Distance from the current pixel center to the target pixel center.
|
|
201
|
+
* @param searchRadiusPixels Effective search radius in physical pixels.
|
|
202
|
+
* @returns Blend weight in the range 0 through 0.5.
|
|
203
|
+
* @internal
|
|
204
|
+
*/
|
|
205
|
+
export declare function _CalculateMeshBlendFade(distancePixels: number, searchRadiusPixels: number): number;
|
|
206
|
+
/**
|
|
207
|
+
* Converts a physical-pixel radius back to the represented world-space radius.
|
|
208
|
+
* @param radiusPixels Radius in physical render-target pixels.
|
|
209
|
+
* @param viewDepth Positive distance from the camera.
|
|
210
|
+
* @param renderTargetHeight Physical render-target height.
|
|
211
|
+
* @param projectionYScale Absolute Y scale from the projection matrix.
|
|
212
|
+
* @param isOrthographic Whether the projection is orthographic.
|
|
213
|
+
* @returns The represented radius in Babylon world units.
|
|
214
|
+
* @internal
|
|
215
|
+
*/
|
|
216
|
+
export declare function _CalculateMeshBlendEffectiveWorldRadius(radiusPixels: number, viewDepth: number, renderTargetHeight: number, projectionYScale: number, isOrthographic: boolean): number;
|
|
217
|
+
/**
|
|
218
|
+
* Calculates the contact-slope radius multiplier.
|
|
219
|
+
* @param oppositeFacing Cosine-domain alignment of the two surface spans.
|
|
220
|
+
* @param slopeFactor User-configurable narrowing factor.
|
|
221
|
+
* @returns A multiplier in the range [0.25, 1].
|
|
222
|
+
* @internal
|
|
223
|
+
*/
|
|
224
|
+
export declare function _CalculateMeshBlendSlopeScale(oppositeFacing: number, slopeFactor: number): number;
|
|
225
|
+
/**
|
|
226
|
+
* Gets the compile-time shader define for a mesh-blending quality.
|
|
227
|
+
* @param quality Quality to convert.
|
|
228
|
+
* @returns The quality define.
|
|
229
|
+
* @internal
|
|
230
|
+
*/
|
|
231
|
+
export declare function _GetMeshBlendQualityDefine(quality: MeshBlendQuality): string;
|
|
232
|
+
/**
|
|
233
|
+
* Gets all compile-time defines for a mesh-blending quality variant.
|
|
234
|
+
* @param quality Quality to convert.
|
|
235
|
+
* @returns Newline-separated shader defines containing all quality-specific constants and feature switches.
|
|
236
|
+
* @internal
|
|
237
|
+
*/
|
|
238
|
+
export declare function _GetMeshBlendQualityDefines(quality: MeshBlendQuality): string;
|
|
239
|
+
/**
|
|
240
|
+
* Validates mesh-blending configuration without mutating an effect.
|
|
241
|
+
* @param options Configuration to validate.
|
|
242
|
+
* @internal
|
|
243
|
+
*/
|
|
244
|
+
export declare function _ValidateMeshBlendConfiguration(options?: IMeshBlendConfiguration): void;
|
|
245
|
+
/**
|
|
246
|
+
* Shared WebGL2 and WebGPU effect wrapper used to visually blend SceneColor across validated contacts between opaque or alpha-tested meshes.
|
|
247
|
+
*
|
|
248
|
+
* The effect does not modify geometry, depth, normals, collisions, or shadows. Transparent rendering is caller-controlled;
|
|
249
|
+
* overlapping transparent surfaces can make SceneColor inconsistent with the single-layer geometry inputs. Meshes opt in
|
|
250
|
+
* with a packed tag whose group is in the range 1..63; group 0 disables blending. Surfaces in the same nonzero group are
|
|
251
|
+
* treated as one logical object and do not blend with one another. The four radius classes combine an authored world-space
|
|
252
|
+
* radius with a minimum radius measured in physical render-target pixels.
|
|
253
|
+
*
|
|
254
|
+
* Perspective and orthographic cameras are supported. Search noise is spatially stable and never varies by frame.
|
|
255
|
+
* Optional base-color input enables shadow estimation; without it, the related sampler and shader work are compiled out.
|
|
256
|
+
* The effect does not require or implement TAA.
|
|
257
|
+
*/
|
|
258
|
+
export declare class ThinMeshBlendingPostProcess extends EffectWrapper {
|
|
259
|
+
/**
|
|
260
|
+
* The fragment shader URL.
|
|
261
|
+
*/
|
|
262
|
+
static readonly FragmentUrl = "meshBlending";
|
|
263
|
+
/**
|
|
264
|
+
* The list of uniforms used by the effect.
|
|
265
|
+
*/
|
|
266
|
+
static readonly Uniforms: string[];
|
|
267
|
+
/**
|
|
268
|
+
* The list of samplers used by the effect.
|
|
269
|
+
*/
|
|
270
|
+
static readonly Samplers: string[];
|
|
271
|
+
protected _gatherImports(useWebGPU: boolean, list: Promise<any>[]): void;
|
|
272
|
+
/**
|
|
273
|
+
* The four configurable radius definitions indexed by packed radius class.
|
|
274
|
+
*
|
|
275
|
+
* Both values are projected against the active camera and the physical depth-texture height.
|
|
276
|
+
*/
|
|
277
|
+
readonly radiusClasses: MeshBlendRadiusDefinitions;
|
|
278
|
+
/**
|
|
279
|
+
* Camera used to project radii and reconstruct view-space positions.
|
|
280
|
+
*/
|
|
281
|
+
camera: Nullable<Camera>;
|
|
282
|
+
private _slopeFactor;
|
|
283
|
+
/**
|
|
284
|
+
* Contact-slope narrowing factor. A value of 1 disables narrowing.
|
|
285
|
+
*/
|
|
286
|
+
get slopeFactor(): number;
|
|
287
|
+
set slopeFactor(value: number);
|
|
288
|
+
private readonly _stableBlueNoiseTexture;
|
|
289
|
+
private readonly _customDefines;
|
|
290
|
+
private _quality;
|
|
291
|
+
private _debugMode;
|
|
292
|
+
private _depthType;
|
|
293
|
+
private _hasBaseColorTexture;
|
|
294
|
+
private readonly _inverseProjection;
|
|
295
|
+
private readonly _inverseView;
|
|
296
|
+
private _cachedProjection;
|
|
297
|
+
private _cachedView;
|
|
298
|
+
private _projectionUpdateFlag;
|
|
299
|
+
private _viewUpdateFlag;
|
|
300
|
+
/**
|
|
301
|
+
* Gets the compile-time quality variant.
|
|
302
|
+
*/
|
|
303
|
+
get quality(): MeshBlendQuality;
|
|
304
|
+
set quality(value: MeshBlendQuality);
|
|
305
|
+
/**
|
|
306
|
+
* Gets the compiled debug visualization.
|
|
307
|
+
*/
|
|
308
|
+
get debugMode(): MeshBlendDebugMode;
|
|
309
|
+
set debugMode(value: MeshBlendDebugMode);
|
|
310
|
+
/**
|
|
311
|
+
* Gets the representation stored in the bound depth texture.
|
|
312
|
+
*/
|
|
313
|
+
get depthType(): MeshBlendDepthType;
|
|
314
|
+
set depthType(value: MeshBlendDepthType);
|
|
315
|
+
/**
|
|
316
|
+
* Whether a base-color texture is bound and shadow estimation should be compiled.
|
|
317
|
+
* @internal
|
|
318
|
+
*/
|
|
319
|
+
get hasBaseColorTexture(): boolean;
|
|
320
|
+
set hasBaseColorTexture(value: boolean);
|
|
321
|
+
/**
|
|
322
|
+
* Constructs a mesh-blending post process.
|
|
323
|
+
* @param name Name of the effect.
|
|
324
|
+
* @param engine Engine used to render the effect.
|
|
325
|
+
* @param options Options used to configure the effect.
|
|
326
|
+
*/
|
|
327
|
+
constructor(name: string, engine?: Nullable<AbstractEngine>, options?: IThinMeshBlendingPostProcessOptions);
|
|
328
|
+
/**
|
|
329
|
+
* Applies shared mesh-blending configuration.
|
|
330
|
+
* @param options Values to apply. Omitted values retain their current settings.
|
|
331
|
+
*/
|
|
332
|
+
configure(options?: IMeshBlendConfiguration): void;
|
|
333
|
+
private _applyConfiguration;
|
|
334
|
+
bind(noDefaultBindings?: boolean): void;
|
|
335
|
+
private _updateInverseProjection;
|
|
336
|
+
dispose(): void;
|
|
337
|
+
private _updateEffectDefines;
|
|
338
|
+
}
|
|
339
|
+
export {};
|