@babylonjs/core 7.31.2 → 7.32.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/Behaviors/Cameras/autoRotationBehavior.js +1 -0
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Cameras/camera.d.ts +5 -2
- package/Cameras/camera.js +1 -0
- package/Cameras/camera.js.map +1 -1
- package/Decorators/nodeDecorator.d.ts +9 -1
- package/Decorators/nodeDecorator.js +8 -0
- package/Decorators/nodeDecorator.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.js +40 -53
- package/Engines/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/Extensions/engine.renderTarget.js +20 -8
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.debugging.js +16 -7
- package/Engines/WebGPU/Extensions/engine.debugging.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.js +43 -44
- package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js +8 -6
- package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +3 -3
- package/Engines/WebGPU/webgpuHardwareTexture.js +12 -9
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +25 -19
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureManager.js +5 -3
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.d.ts +6 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/constants.d.ts +6 -1
- package/Engines/constants.js +6 -1
- package/Engines/constants.js.map +1 -1
- package/Engines/renderTargetWrapper.d.ts +7 -0
- package/Engines/renderTargetWrapper.js +15 -0
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +3 -1
- package/Engines/webgpuEngine.js +9 -8
- package/Engines/webgpuEngine.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.d.ts +47 -0
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.js +113 -0
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.d.ts +62 -0
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.js +171 -0
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.d.ts +51 -0
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.js +127 -0
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.d.ts +67 -0
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.js +187 -0
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.d.ts +77 -0
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.js +232 -0
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.d.ts +47 -0
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.js +113 -0
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Rendering/cullObjectsBlock.d.ts +41 -0
- package/FrameGraph/Node/Blocks/Rendering/cullObjectsBlock.js +79 -0
- package/FrameGraph/Node/Blocks/Rendering/cullObjectsBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +119 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +451 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.d.ts +63 -0
- package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js +154 -0
- package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Teleport/teleportInBlock.d.ts +59 -0
- package/FrameGraph/Node/Blocks/Teleport/teleportInBlock.js +131 -0
- package/FrameGraph/Node/Blocks/Teleport/teleportInBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Teleport/teleportOutBlock.d.ts +49 -0
- package/FrameGraph/Node/Blocks/Teleport/teleportOutBlock.js +107 -0
- package/FrameGraph/Node/Blocks/Teleport/teleportOutBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Textures/clearBlock.d.ts +50 -0
- package/FrameGraph/Node/Blocks/Textures/clearBlock.js +125 -0
- package/FrameGraph/Node/Blocks/Textures/clearBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.d.ts +38 -0
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js +71 -0
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.d.ts +34 -0
- package/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.js +59 -0
- package/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/elbowBlock.d.ts +28 -0
- package/FrameGraph/Node/Blocks/elbowBlock.js +47 -0
- package/FrameGraph/Node/Blocks/elbowBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/index.d.ts +17 -0
- package/FrameGraph/Node/Blocks/index.js +18 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -0
- package/FrameGraph/Node/Blocks/inputBlock.d.ts +94 -0
- package/FrameGraph/Node/Blocks/inputBlock.js +270 -0
- package/FrameGraph/Node/Blocks/inputBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/outputBlock.d.ts +30 -0
- package/FrameGraph/Node/Blocks/outputBlock.js +51 -0
- package/FrameGraph/Node/Blocks/outputBlock.js.map +1 -0
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +110 -0
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +78 -0
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -0
- package/FrameGraph/Node/nodeRenderGraph.d.ts +196 -0
- package/FrameGraph/Node/nodeRenderGraph.js +614 -0
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -0
- package/FrameGraph/Node/nodeRenderGraphBlock.d.ts +190 -0
- package/FrameGraph/Node/nodeRenderGraphBlock.js +495 -0
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -0
- package/FrameGraph/Node/nodeRenderGraphBlockConnectionPoint.d.ts +143 -0
- package/FrameGraph/Node/nodeRenderGraphBlockConnectionPoint.js +275 -0
- package/FrameGraph/Node/nodeRenderGraphBlockConnectionPoint.js.map +1 -0
- package/FrameGraph/Node/nodeRenderGraphBuildState.d.ts +21 -0
- package/FrameGraph/Node/nodeRenderGraphBuildState.js +35 -0
- package/FrameGraph/Node/nodeRenderGraphBuildState.js.map +1 -0
- package/FrameGraph/Passes/cullPass.d.ts +28 -0
- package/FrameGraph/Passes/cullPass.js +38 -0
- package/FrameGraph/Passes/cullPass.js.map +1 -0
- package/FrameGraph/Passes/pass.d.ts +14 -0
- package/FrameGraph/Passes/pass.js +20 -0
- package/FrameGraph/Passes/pass.js.map +1 -0
- package/FrameGraph/Passes/renderPass.d.ts +49 -0
- package/FrameGraph/Passes/renderPass.js +72 -0
- package/FrameGraph/Passes/renderPass.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/blackAndWhiteTask.d.ts +16 -0
- package/FrameGraph/Tasks/PostProcesses/blackAndWhiteTask.js +17 -0
- package/FrameGraph/Tasks/PostProcesses/blackAndWhiteTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.d.ts +12 -0
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js +21 -0
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/bloomTask.d.ts +54 -0
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js +114 -0
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/blurTask.d.ts +17 -0
- package/FrameGraph/Tasks/PostProcesses/blurTask.js +24 -0
- package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.d.ts +30 -0
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js +35 -0
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.d.ts +12 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +26 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.d.ts +12 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js +29 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.d.ts +65 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js +134 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/extractHighlightsTask.d.ts +16 -0
- package/FrameGraph/Tasks/PostProcesses/extractHighlightsTask.js +17 -0
- package/FrameGraph/Tasks/PostProcesses/extractHighlightsTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.d.ts +41 -0
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js +64 -0
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/cullObjectsTask.d.ts +28 -0
- package/FrameGraph/Tasks/Rendering/cullObjectsTask.js +52 -0
- package/FrameGraph/Tasks/Rendering/cullObjectsTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +145 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +259 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +66 -0
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +127 -0
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -0
- package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +34 -0
- package/FrameGraph/Tasks/Texture/clearTextureTask.js +42 -0
- package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -0
- package/FrameGraph/Tasks/Texture/copyToBackbufferColorTask.d.ts +12 -0
- package/FrameGraph/Tasks/Texture/copyToBackbufferColorTask.js +23 -0
- package/FrameGraph/Tasks/Texture/copyToBackbufferColorTask.js.map +1 -0
- package/FrameGraph/Tasks/Texture/copyToTextureTask.d.ts +26 -0
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js +31 -0
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js.map +1 -0
- package/FrameGraph/Tasks/Texture/generateMipMapsTask.d.ts +22 -0
- package/FrameGraph/Tasks/Texture/generateMipMapsTask.js +34 -0
- package/FrameGraph/Tasks/Texture/generateMipMapsTask.js.map +1 -0
- package/FrameGraph/frameGraph.d.ts +143 -0
- package/FrameGraph/frameGraph.js +275 -0
- package/FrameGraph/frameGraph.js.map +1 -0
- package/FrameGraph/frameGraphContext.d.ts +5 -0
- package/FrameGraph/frameGraphContext.js +6 -0
- package/FrameGraph/frameGraphContext.js.map +1 -0
- package/FrameGraph/frameGraphObjectList.d.ts +15 -0
- package/FrameGraph/frameGraphObjectList.js +7 -0
- package/FrameGraph/frameGraphObjectList.js.map +1 -0
- package/FrameGraph/frameGraphRenderContext.d.ts +110 -0
- package/FrameGraph/frameGraphRenderContext.js +237 -0
- package/FrameGraph/frameGraphRenderContext.js.map +1 -0
- package/FrameGraph/frameGraphTask.d.ts +49 -0
- package/FrameGraph/frameGraphTask.js +117 -0
- package/FrameGraph/frameGraphTask.js.map +1 -0
- package/FrameGraph/frameGraphTextureManager.d.ts +50 -0
- package/FrameGraph/frameGraphTextureManager.js +277 -0
- package/FrameGraph/frameGraphTextureManager.js.map +1 -0
- package/FrameGraph/frameGraphTypes.d.ts +59 -0
- package/FrameGraph/frameGraphTypes.js +9 -0
- package/FrameGraph/frameGraphTypes.js.map +1 -0
- package/FrameGraph/index.d.ts +28 -0
- package/FrameGraph/index.js +30 -0
- package/FrameGraph/index.js.map +1 -0
- package/Gamepads/gamepadSceneComponent.d.ts +0 -1
- package/Gamepads/gamepadSceneComponent.js +1 -7
- package/Gamepads/gamepadSceneComponent.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.d.ts +7 -0
- package/Gizmos/boundingBoxGizmo.js +19 -6
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +3 -1
- package/Inputs/scene.inputManager.js +20 -8
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Layers/layer.d.ts +1 -1
- package/Layers/layer.js +1 -1
- package/Layers/layer.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +4 -0
- package/Materials/PBR/pbrBaseMaterial.js +8 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +32 -2
- package/Materials/Textures/dynamicTexture.js +13 -18
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/index.d.ts +1 -0
- package/Materials/Textures/index.js +1 -0
- package/Materials/Textures/index.js.map +1 -1
- package/Materials/Textures/mirrorTexture.js +0 -6
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +20 -8
- package/Materials/Textures/multiRenderTarget.js +2 -0
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +8 -1
- package/Materials/Textures/renderTargetTexture.js +28 -10
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/textureCreationOptions.d.ts +20 -2
- package/Materials/Textures/textureCreationOptions.js +20 -1
- package/Materials/Textures/textureCreationOptions.js.map +1 -1
- package/Materials/effectRenderer.d.ts +132 -14
- package/Materials/effectRenderer.js +229 -33
- package/Materials/effectRenderer.js.map +1 -1
- package/Materials/index.d.ts +1 -0
- package/Materials/index.js +1 -0
- package/Materials/index.js.map +1 -1
- package/Materials/materialHelper.functions.js +2 -0
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.d.ts +122 -0
- package/Materials/materialHelper.geometryrendering.js +259 -0
- package/Materials/materialHelper.geometryrendering.js.map +1 -0
- package/Materials/standardMaterial.d.ts +4 -0
- package/Materials/standardMaterial.js +8 -0
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/index.d.ts +1 -0
- package/Maths/index.js +1 -0
- package/Maths/index.js.map +1 -1
- package/Meshes/Builders/greasedLineBuilder.d.ts +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.d.ts +22 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.js +39 -0
- package/Meshes/Node/Blocks/geometryOptimizeBlock.js.map +1 -1
- package/Misc/copyTextureToTexture.d.ts +3 -2
- package/Misc/copyTextureToTexture.js +11 -5
- package/Misc/copyTextureToTexture.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.d.ts +5 -3
- package/PostProcesses/blackAndWhitePostProcess.js +24 -19
- package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
- package/PostProcesses/bloomEffect.d.ts +7 -5
- package/PostProcesses/bloomEffect.js +49 -23
- package/PostProcesses/bloomEffect.js.map +1 -1
- package/PostProcesses/bloomMergePostProcess.d.ts +5 -5
- package/PostProcesses/bloomMergePostProcess.js +28 -19
- package/PostProcesses/bloomMergePostProcess.js.map +1 -1
- package/PostProcesses/blurPostProcess.d.ts +7 -43
- package/PostProcesses/blurPostProcess.js +47 -185
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/circleOfConfusionPostProcess.d.ts +13 -6
- package/PostProcesses/circleOfConfusionPostProcess.js +59 -38
- package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
- package/PostProcesses/depthOfFieldBlurPostProcess.d.ts +2 -6
- package/PostProcesses/depthOfFieldBlurPostProcess.js +14 -11
- package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
- package/PostProcesses/depthOfFieldEffect.d.ts +5 -2
- package/PostProcesses/depthOfFieldEffect.js +53 -45
- package/PostProcesses/depthOfFieldEffect.js.map +1 -1
- package/PostProcesses/depthOfFieldMergePostProcess.d.ts +0 -1
- package/PostProcesses/depthOfFieldMergePostProcess.js +18 -12
- package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.d.ts +8 -4
- package/PostProcesses/extractHighlightsPostProcess.js +35 -22
- package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
- package/PostProcesses/index.d.ts +6 -0
- package/PostProcesses/index.js +6 -0
- package/PostProcesses/index.js.map +1 -1
- package/PostProcesses/postProcess.d.ts +15 -70
- package/PostProcesses/postProcess.js +80 -97
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/thinBlackAndWhitePostProcess.d.ts +28 -0
- package/PostProcesses/thinBlackAndWhitePostProcess.js +50 -0
- package/PostProcesses/thinBlackAndWhitePostProcess.js.map +1 -0
- package/PostProcesses/thinBloomEffect.d.ts +49 -0
- package/PostProcesses/thinBloomEffect.js +59 -0
- package/PostProcesses/thinBloomEffect.js.map +1 -0
- package/PostProcesses/thinBloomMergePostProcess.d.ts +15 -0
- package/PostProcesses/thinBloomMergePostProcess.js +38 -0
- package/PostProcesses/thinBloomMergePostProcess.js.map +1 -0
- package/PostProcesses/thinBlurPostProcess.d.ts +89 -0
- package/PostProcesses/thinBlurPostProcess.js +242 -0
- package/PostProcesses/thinBlurPostProcess.js.map +1 -0
- package/PostProcesses/thinCircleOfConfusionPostProcess.d.ts +62 -0
- package/PostProcesses/thinCircleOfConfusionPostProcess.js +81 -0
- package/PostProcesses/thinCircleOfConfusionPostProcess.js.map +1 -0
- package/PostProcesses/thinDepthOfFieldBlurPostProcess.d.ts +8 -0
- package/PostProcesses/thinDepthOfFieldBlurPostProcess.js +13 -0
- package/PostProcesses/thinDepthOfFieldBlurPostProcess.js.map +1 -0
- package/PostProcesses/thinDepthOfFieldEffect.d.ts +70 -0
- package/PostProcesses/thinDepthOfFieldEffect.js +115 -0
- package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -0
- package/PostProcesses/thinDepthOfFieldMergePostProcess.d.ts +11 -0
- package/PostProcesses/thinDepthOfFieldMergePostProcess.js +30 -0
- package/PostProcesses/thinDepthOfFieldMergePostProcess.js.map +1 -0
- package/PostProcesses/thinExtractHighlightsPostProcess.d.ts +30 -0
- package/PostProcesses/thinExtractHighlightsPostProcess.js +55 -0
- package/PostProcesses/thinExtractHighlightsPostProcess.js.map +1 -0
- package/Rendering/depthPeelingRenderer.js +2 -2
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.js +4 -4
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.d.ts +5 -0
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +75 -0
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -0
- package/Shaders/ShadersInclude/prePassVertex.js +1 -2
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.js +9 -1
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Shaders/colorCorrection.fragment.js +1 -0
- package/Shaders/colorCorrection.fragment.js.map +1 -1
- package/Shaders/default.fragment.js +17 -25
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.js +4 -6
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/pbr.fragment.d.ts +1 -0
- package/Shaders/pbr.fragment.js +2 -74
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.js +3 -3
- package/Shaders/pbr.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +100 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/prePassVertex.js +1 -2
- package/ShadersWGSL/ShadersInclude/prePassVertex.js.map +1 -1
- package/ShadersWGSL/background.vertex.js +1 -1
- package/ShadersWGSL/background.vertex.js.map +1 -1
- package/ShadersWGSL/circleOfConfusion.fragment.js +10 -2
- package/ShadersWGSL/circleOfConfusion.fragment.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +20 -31
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/default.vertex.js +4 -5
- package/ShadersWGSL/default.vertex.js.map +1 -1
- package/ShadersWGSL/glowMapGeneration.fragment.js +1 -1
- package/ShadersWGSL/glowMapGeneration.fragment.js.map +1 -1
- package/ShadersWGSL/glowMapGeneration.vertex.js +1 -1
- package/ShadersWGSL/glowMapGeneration.vertex.js.map +1 -1
- package/ShadersWGSL/pbr.fragment.d.ts +1 -0
- package/ShadersWGSL/pbr.fragment.js +2 -100
- package/ShadersWGSL/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/pbr.vertex.js +4 -2
- package/ShadersWGSL/pbr.vertex.js.map +1 -1
- package/XR/features/WebXRRawCameraAccess.js +1 -1
- package/XR/features/WebXRRawCameraAccess.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +19 -2
- package/scene.js +110 -13
- package/scene.js.map +1 -1
- package/sceneComponent.d.ts +0 -1
- package/sceneComponent.js +0 -1
- package/sceneComponent.js.map +1 -1
- package/types.d.ts +12 -0
- package/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractHighlightsPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/extractHighlightsPostProcess.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"extractHighlightsPostProcess.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/extractHighlightsPostProcess.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,WAAW;IACzD;;OAEG;IAEH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;IACzC,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QAC9B,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1C,CAAC;IAED,gBAAgB;IAChB,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;IACzC,CAAC;IAED,gBAAgB;IAChB,IAAW,SAAS,CAAC,KAAa;QAC9B,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1C,CAAC;IAQD;;;OAGG;IACa,YAAY;QACxB,OAAO,8BAA8B,CAAC;IAC1C,CAAC;IAID,YACI,IAAY,EACZ,OAAoC,EACpC,SAA2B,IAAI,EAC/B,YAAqB,EACrB,MAAuB,EACvB,QAAkB,EAClB,cAAsB,SAAS,CAAC,wBAAwB,EACxD,gBAAgB,GAAG,KAAK;QAExB,MAAM,YAAY,GAAG;YACjB,QAAQ,EAAE,gCAAgC,CAAC,QAAQ;YACnD,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACvD,MAAM;YACN,YAAY;YACZ,MAAM;YACN,QAAQ;YACR,WAAW;YACX,gBAAgB;YAChB,GAAI,OAA8B;SACrC,CAAC;QAEF,KAAK,CAAC,IAAI,EAAE,gCAAgC,CAAC,WAAW,EAAE;YACtD,aAAa,EAAE,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YACnJ,GAAG,YAAY;SAClB,CAAC,CAAC;QAzCP;;;WAGG;QACI,sBAAiB,GAA0B,IAAI,CAAC;QAuCnD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE;YAC1C,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC9D,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,MAAM,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAC9E;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AApEG;IADC,SAAS,EAAE;6DAGX;AAoEL,aAAa,CAAC,sCAAsC,EAAE,4BAA4B,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { PostProcessOptions } from \"./postProcess\";\r\nimport { PostProcess } from \"./postProcess\";\r\nimport type { AbstractEngine } from \"../Engines/abstractEngine\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\nimport { serialize } from \"../Misc/decorators\";\r\nimport { RegisterClass } from \"../Misc/typeStore\";\r\nimport { ThinExtractHighlightsPostProcess } from \"./thinExtractHighlightsPostProcess\";\r\n\r\n/**\r\n * The extract highlights post process sets all pixels to black except pixels above the specified luminance threshold. Used as the first step for a bloom effect.\r\n */\r\nexport class ExtractHighlightsPostProcess extends PostProcess {\r\n /**\r\n * The luminance threshold, pixels below this value will be set to black.\r\n */\r\n @serialize()\r\n public get threshold() {\r\n return this._effectWrapper.threshold;\r\n }\r\n\r\n public set threshold(value: number) {\r\n this._effectWrapper.threshold = value;\r\n }\r\n\r\n /** @internal */\r\n public get _exposure() {\r\n return this._effectWrapper._exposure;\r\n }\r\n\r\n /** @internal */\r\n public set _exposure(value: number) {\r\n this._effectWrapper._exposure = value;\r\n }\r\n\r\n /**\r\n * Post process which has the input texture to be used when performing highlight extraction\r\n * @internal\r\n */\r\n public _inputPostProcess: Nullable<PostProcess> = null;\r\n\r\n /**\r\n * Gets a string identifying the name of the class\r\n * @returns \"ExtractHighlightsPostProcess\" string\r\n */\r\n public override getClassName(): string {\r\n return \"ExtractHighlightsPostProcess\";\r\n }\r\n\r\n protected override _effectWrapper: ThinExtractHighlightsPostProcess;\r\n\r\n constructor(\r\n name: string,\r\n options: number | PostProcessOptions,\r\n camera: Nullable<Camera> = null,\r\n samplingMode?: number,\r\n engine?: AbstractEngine,\r\n reusable?: boolean,\r\n textureType: number = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n blockCompilation = false\r\n ) {\r\n const localOptions = {\r\n uniforms: ThinExtractHighlightsPostProcess.Uniforms,\r\n size: typeof options === \"number\" ? options : undefined,\r\n camera,\r\n samplingMode,\r\n engine,\r\n reusable,\r\n textureType,\r\n blockCompilation,\r\n ...(options as PostProcessOptions),\r\n };\r\n\r\n super(name, ThinExtractHighlightsPostProcess.FragmentUrl, {\r\n effectWrapper: typeof options === \"number\" || !options.effectWrapper ? new ThinExtractHighlightsPostProcess(name, engine, localOptions) : undefined,\r\n ...localOptions,\r\n });\r\n\r\n this.onApplyObservable.add((effect: Effect) => {\r\n this.externalTextureSamplerBinding = !!this._inputPostProcess;\r\n if (this._inputPostProcess) {\r\n effect.setTextureFromPostProcess(\"textureSampler\", this._inputPostProcess);\r\n }\r\n });\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ExtractHighlightsPostProcess\", ExtractHighlightsPostProcess);\r\n"]}
|
package/PostProcesses/index.d.ts
CHANGED
|
@@ -31,6 +31,12 @@ export * from "./vrDistortionCorrectionPostProcess";
|
|
|
31
31
|
export * from "./vrMultiviewToSingleviewPostProcess";
|
|
32
32
|
export * from "./screenSpaceReflectionPostProcess";
|
|
33
33
|
export * from "./screenSpaceCurvaturePostProcess";
|
|
34
|
+
export * from "./thinBlackAndWhitePostProcess";
|
|
35
|
+
export * from "./thinBloomEffect";
|
|
36
|
+
export * from "./thinBlurPostProcess";
|
|
37
|
+
export * from "./thinCircleOfConfusionPostProcess";
|
|
38
|
+
export * from "./thinDepthOfFieldEffect";
|
|
39
|
+
export * from "./thinExtractHighlightsPostProcess";
|
|
34
40
|
export * from "../Shaders/postprocess.vertex";
|
|
35
41
|
export * from "../ShadersWGSL/postprocess.vertex";
|
|
36
42
|
export * from "../Shaders/kernelBlur.fragment";
|
package/PostProcesses/index.js
CHANGED
|
@@ -32,6 +32,12 @@ export * from "./vrDistortionCorrectionPostProcess.js";
|
|
|
32
32
|
export * from "./vrMultiviewToSingleviewPostProcess.js";
|
|
33
33
|
export * from "./screenSpaceReflectionPostProcess.js";
|
|
34
34
|
export * from "./screenSpaceCurvaturePostProcess.js";
|
|
35
|
+
export * from "./thinBlackAndWhitePostProcess.js";
|
|
36
|
+
export * from "./thinBloomEffect.js";
|
|
37
|
+
export * from "./thinBlurPostProcess.js";
|
|
38
|
+
export * from "./thinCircleOfConfusionPostProcess.js";
|
|
39
|
+
export * from "./thinDepthOfFieldEffect.js";
|
|
40
|
+
export * from "./thinExtractHighlightsPostProcess.js";
|
|
35
41
|
// Postprocess
|
|
36
42
|
export * from "../Shaders/postprocess.vertex.js";
|
|
37
43
|
export * from "../ShadersWGSL/postprocess.vertex.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nexport * from \"./anaglyphPostProcess\";\r\nexport * from \"./blackAndWhitePostProcess\";\r\nexport * from \"./bloomEffect\";\r\nexport * from \"./bloomMergePostProcess\";\r\nexport * from \"./blurPostProcess\";\r\nexport * from \"./chromaticAberrationPostProcess\";\r\nexport * from \"./circleOfConfusionPostProcess\";\r\nexport * from \"./colorCorrectionPostProcess\";\r\nexport * from \"./convolutionPostProcess\";\r\nexport * from \"./depthOfFieldBlurPostProcess\";\r\nexport * from \"./depthOfFieldEffect\";\r\nexport * from \"./depthOfFieldMergePostProcess\";\r\nexport * from \"./displayPassPostProcess\";\r\nexport * from \"./extractHighlightsPostProcess\";\r\nexport * from \"./filterPostProcess\";\r\nexport * from \"./fxaaPostProcess\";\r\nexport * from \"./grainPostProcess\";\r\nexport * from \"./highlightsPostProcess\";\r\nexport * from \"./imageProcessingPostProcess\";\r\nexport * from \"./motionBlurPostProcess\";\r\nexport * from \"./passPostProcess\";\r\nexport * from \"./postProcess\";\r\nexport * from \"./postProcessManager\";\r\nexport * from \"./refractionPostProcess\";\r\nexport * from \"./RenderPipeline/index\";\r\nexport * from \"./sharpenPostProcess\";\r\nexport * from \"./stereoscopicInterlacePostProcess\";\r\nexport * from \"./tonemapPostProcess\";\r\nexport * from \"./volumetricLightScatteringPostProcess\";\r\nexport * from \"./vrDistortionCorrectionPostProcess\";\r\nexport * from \"./vrMultiviewToSingleviewPostProcess\";\r\nexport * from \"./screenSpaceReflectionPostProcess\";\r\nexport * from \"./screenSpaceCurvaturePostProcess\";\r\n\r\n// Postprocess\r\nexport * from \"../Shaders/postprocess.vertex\";\r\nexport * from \"../ShadersWGSL/postprocess.vertex\";\r\n\r\n// Blur postprocess\r\nexport * from \"../Shaders/kernelBlur.fragment\";\r\nexport * from \"../Shaders/kernelBlur.vertex\";\r\nexport * from \"../ShadersWGSL/kernelBlur.fragment\";\r\nexport * from \"../ShadersWGSL/kernelBlur.vertex\";\r\n\r\n// Pass postprocess\r\nexport * from \"../Shaders/pass.fragment\";\r\nexport * from \"../Shaders/passCube.fragment\";\r\nexport * from \"../ShadersWGSL/pass.fragment\";\r\nexport * from \"../ShadersWGSL/passCube.fragment\";\r\n\r\n// vrDFistortionCorrection postprocess\r\nexport * from \"../Shaders/vrDistortionCorrection.fragment\";\r\nexport * from \"../ShadersWGSL/vrDistortionCorrection.fragment\";\r\n\r\n// Image processing postprocess\r\nexport * from \"../ShadersWGSL/imageProcessing.fragment\";\r\nexport * from \"../Shaders/imageProcessing.fragment\";\r\n\r\n// Sharpen\r\nexport * from \"../Shaders/sharpen.fragment\";\r\nexport * from \"../ShadersWGSL/sharpen.fragment\";\r\n\r\n// Grain\r\nexport * from \"../Shaders/grain.fragment\";\r\nexport * from \"../ShadersWGSL/grain.fragment\";\r\n\r\n// Chromatic Aberration\r\nexport * from \"../Shaders/chromaticAberration.fragment\";\r\nexport * from \"../ShadersWGSL/chromaticAberration.fragment\";\r\n\r\n// Depth of field merge\r\nexport * from \"../Shaders/depthOfFieldMerge.fragment\";\r\nexport * from \"../ShadersWGSL/depthOfFieldMerge.fragment\";\r\n\r\n// Circle of confusion\r\nexport * from \"../Shaders/circleOfConfusion.fragment\";\r\nexport * from \"../ShadersWGSL/circleOfConfusion.fragment\";\r\n\r\n// Bloom\r\nexport * from \"../Shaders/bloomMerge.fragment\";\r\nexport * from \"../ShadersWGSL/bloomMerge.fragment\";\r\n\r\n// Extract highlights\r\nexport * from \"../Shaders/extractHighlights.fragment\";\r\nexport * from \"../ShadersWGSL/extractHighlights.fragment\";\r\n\r\n// FXAA\r\nexport * from \"../Shaders/fxaa.fragment\";\r\nexport * from \"../Shaders/fxaa.vertex\";\r\nexport * from \"../ShadersWGSL/fxaa.fragment\";\r\nexport * from \"../ShadersWGSL/fxaa.vertex\";\r\n\r\n// B&W\r\nexport * from \"../Shaders/blackAndWhite.fragment\";\r\nexport * from \"../ShadersWGSL/blackAndWhite.fragment\";\r\n\r\n// Anaglyph\r\nexport * from \"../Shaders/anaglyph.fragment\";\r\nexport * from \"../ShadersWGSL/anaglyph.fragment\";\r\n\r\n// Convolution\r\nexport * from \"../Shaders/convolution.fragment\";\r\nexport * from \"../ShadersWGSL/convolution.fragment\";\r\n\r\n// Color correction\r\nexport * from \"../Shaders/colorCorrection.fragment\";\r\nexport * from \"../ShadersWGSL/colorCorrection.fragment\";\r\n\r\n// Motion blur\r\nexport * from \"../Shaders/motionBlur.fragment\";\r\nexport * from \"../ShadersWGSL/motionBlur.fragment\";\r\n\r\n// Filter\r\nexport * from \"../Shaders/filter.fragment\";\r\nexport * from \"../ShadersWGSL/filter.fragment\";\r\n\r\n// Highlights\r\nexport * from \"../Shaders/highlights.fragment\";\r\nexport * from \"../ShadersWGSL/highlights.fragment\";\r\n\r\n// Display\r\nexport * from \"../Shaders/displayPass.fragment\";\r\nexport * from \"../ShadersWGSL/displayPass.fragment\";\r\n\r\n// Tonemap\r\nexport * from \"../Shaders/tonemap.fragment\";\r\nexport * from \"../ShadersWGSL/tonemap.fragment\";\r\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dev/core/src/PostProcesses/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nexport * from \"./anaglyphPostProcess\";\r\nexport * from \"./blackAndWhitePostProcess\";\r\nexport * from \"./bloomEffect\";\r\nexport * from \"./bloomMergePostProcess\";\r\nexport * from \"./blurPostProcess\";\r\nexport * from \"./chromaticAberrationPostProcess\";\r\nexport * from \"./circleOfConfusionPostProcess\";\r\nexport * from \"./colorCorrectionPostProcess\";\r\nexport * from \"./convolutionPostProcess\";\r\nexport * from \"./depthOfFieldBlurPostProcess\";\r\nexport * from \"./depthOfFieldEffect\";\r\nexport * from \"./depthOfFieldMergePostProcess\";\r\nexport * from \"./displayPassPostProcess\";\r\nexport * from \"./extractHighlightsPostProcess\";\r\nexport * from \"./filterPostProcess\";\r\nexport * from \"./fxaaPostProcess\";\r\nexport * from \"./grainPostProcess\";\r\nexport * from \"./highlightsPostProcess\";\r\nexport * from \"./imageProcessingPostProcess\";\r\nexport * from \"./motionBlurPostProcess\";\r\nexport * from \"./passPostProcess\";\r\nexport * from \"./postProcess\";\r\nexport * from \"./postProcessManager\";\r\nexport * from \"./refractionPostProcess\";\r\nexport * from \"./RenderPipeline/index\";\r\nexport * from \"./sharpenPostProcess\";\r\nexport * from \"./stereoscopicInterlacePostProcess\";\r\nexport * from \"./tonemapPostProcess\";\r\nexport * from \"./volumetricLightScatteringPostProcess\";\r\nexport * from \"./vrDistortionCorrectionPostProcess\";\r\nexport * from \"./vrMultiviewToSingleviewPostProcess\";\r\nexport * from \"./screenSpaceReflectionPostProcess\";\r\nexport * from \"./screenSpaceCurvaturePostProcess\";\r\n\r\nexport * from \"./thinBlackAndWhitePostProcess\";\r\nexport * from \"./thinBloomEffect\";\r\nexport * from \"./thinBlurPostProcess\";\r\nexport * from \"./thinCircleOfConfusionPostProcess\";\r\nexport * from \"./thinDepthOfFieldEffect\";\r\nexport * from \"./thinExtractHighlightsPostProcess\";\r\n\r\n// Postprocess\r\nexport * from \"../Shaders/postprocess.vertex\";\r\nexport * from \"../ShadersWGSL/postprocess.vertex\";\r\n\r\n// Blur postprocess\r\nexport * from \"../Shaders/kernelBlur.fragment\";\r\nexport * from \"../Shaders/kernelBlur.vertex\";\r\nexport * from \"../ShadersWGSL/kernelBlur.fragment\";\r\nexport * from \"../ShadersWGSL/kernelBlur.vertex\";\r\n\r\n// Pass postprocess\r\nexport * from \"../Shaders/pass.fragment\";\r\nexport * from \"../Shaders/passCube.fragment\";\r\nexport * from \"../ShadersWGSL/pass.fragment\";\r\nexport * from \"../ShadersWGSL/passCube.fragment\";\r\n\r\n// vrDFistortionCorrection postprocess\r\nexport * from \"../Shaders/vrDistortionCorrection.fragment\";\r\nexport * from \"../ShadersWGSL/vrDistortionCorrection.fragment\";\r\n\r\n// Image processing postprocess\r\nexport * from \"../ShadersWGSL/imageProcessing.fragment\";\r\nexport * from \"../Shaders/imageProcessing.fragment\";\r\n\r\n// Sharpen\r\nexport * from \"../Shaders/sharpen.fragment\";\r\nexport * from \"../ShadersWGSL/sharpen.fragment\";\r\n\r\n// Grain\r\nexport * from \"../Shaders/grain.fragment\";\r\nexport * from \"../ShadersWGSL/grain.fragment\";\r\n\r\n// Chromatic Aberration\r\nexport * from \"../Shaders/chromaticAberration.fragment\";\r\nexport * from \"../ShadersWGSL/chromaticAberration.fragment\";\r\n\r\n// Depth of field merge\r\nexport * from \"../Shaders/depthOfFieldMerge.fragment\";\r\nexport * from \"../ShadersWGSL/depthOfFieldMerge.fragment\";\r\n\r\n// Circle of confusion\r\nexport * from \"../Shaders/circleOfConfusion.fragment\";\r\nexport * from \"../ShadersWGSL/circleOfConfusion.fragment\";\r\n\r\n// Bloom\r\nexport * from \"../Shaders/bloomMerge.fragment\";\r\nexport * from \"../ShadersWGSL/bloomMerge.fragment\";\r\n\r\n// Extract highlights\r\nexport * from \"../Shaders/extractHighlights.fragment\";\r\nexport * from \"../ShadersWGSL/extractHighlights.fragment\";\r\n\r\n// FXAA\r\nexport * from \"../Shaders/fxaa.fragment\";\r\nexport * from \"../Shaders/fxaa.vertex\";\r\nexport * from \"../ShadersWGSL/fxaa.fragment\";\r\nexport * from \"../ShadersWGSL/fxaa.vertex\";\r\n\r\n// B&W\r\nexport * from \"../Shaders/blackAndWhite.fragment\";\r\nexport * from \"../ShadersWGSL/blackAndWhite.fragment\";\r\n\r\n// Anaglyph\r\nexport * from \"../Shaders/anaglyph.fragment\";\r\nexport * from \"../ShadersWGSL/anaglyph.fragment\";\r\n\r\n// Convolution\r\nexport * from \"../Shaders/convolution.fragment\";\r\nexport * from \"../ShadersWGSL/convolution.fragment\";\r\n\r\n// Color correction\r\nexport * from \"../Shaders/colorCorrection.fragment\";\r\nexport * from \"../ShadersWGSL/colorCorrection.fragment\";\r\n\r\n// Motion blur\r\nexport * from \"../Shaders/motionBlur.fragment\";\r\nexport * from \"../ShadersWGSL/motionBlur.fragment\";\r\n\r\n// Filter\r\nexport * from \"../Shaders/filter.fragment\";\r\nexport * from \"../ShadersWGSL/filter.fragment\";\r\n\r\n// Highlights\r\nexport * from \"../Shaders/highlights.fragment\";\r\nexport * from \"../ShadersWGSL/highlights.fragment\";\r\n\r\n// Display\r\nexport * from \"../Shaders/displayPass.fragment\";\r\nexport * from \"../ShadersWGSL/displayPass.fragment\";\r\n\r\n// Tonemap\r\nexport * from \"../Shaders/tonemap.fragment\";\r\nexport * from \"../ShadersWGSL/tonemap.fragment\";\r\n"]}
|
|
@@ -16,6 +16,8 @@ import type { PrePassRenderer } from "../Rendering/prePassRenderer";
|
|
|
16
16
|
import type { PrePassEffectConfiguration } from "../Rendering/prePassEffectConfiguration";
|
|
17
17
|
import { AbstractEngine } from "../Engines/abstractEngine";
|
|
18
18
|
import type { IAssetContainer } from "../IAssetContainer.js";
|
|
19
|
+
import type { EffectWrapperCustomShaderCodeProcessing, EffectWrapperCreationOptions } from "../Materials/effectRenderer";
|
|
20
|
+
import { EffectWrapper } from "../Materials/effectRenderer";
|
|
19
21
|
declare module "../Engines/abstractEngine" {
|
|
20
22
|
interface AbstractEngine {
|
|
21
23
|
/**
|
|
@@ -51,31 +53,10 @@ declare module "../Materials/effect" {
|
|
|
51
53
|
setTextureFromPostProcessOutput(channel: string, postProcess: Nullable<PostProcess>): void;
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
|
-
/**
|
|
55
|
-
* Allows for custom processing of the shader code used by a post process
|
|
56
|
-
*/
|
|
57
|
-
export type PostProcessCustomShaderCodeProcessing = {
|
|
58
|
-
/**
|
|
59
|
-
* If provided, will be called two times with the vertex and fragment code so that this code can be updated after the #include have been processed
|
|
60
|
-
*/
|
|
61
|
-
processCodeAfterIncludes?: (postProcessName: string, shaderType: string, code: string) => string;
|
|
62
|
-
/**
|
|
63
|
-
* If provided, will be called two times with the vertex and fragment code so that this code can be updated before it is compiled by the GPU
|
|
64
|
-
*/
|
|
65
|
-
processFinalCode?: (postProcessName: string, shaderType: string, code: string) => string;
|
|
66
|
-
/**
|
|
67
|
-
* If provided, will be called before creating the effect to collect additional custom bindings (defines, uniforms, samplers)
|
|
68
|
-
*/
|
|
69
|
-
defineCustomBindings?: (postProcessName: string, defines: Nullable<string>, uniforms: string[], samplers: string[]) => Nullable<string>;
|
|
70
|
-
/**
|
|
71
|
-
* If provided, will be called when binding inputs to the shader code to allow the user to add custom bindings
|
|
72
|
-
*/
|
|
73
|
-
bindCustomBindings?: (postProcessName: string, effect: Effect) => void;
|
|
74
|
-
};
|
|
75
56
|
/**
|
|
76
57
|
* Options for the PostProcess constructor
|
|
77
58
|
*/
|
|
78
|
-
export type PostProcessOptions = {
|
|
59
|
+
export type PostProcessOptions = EffectWrapperCreationOptions & {
|
|
79
60
|
/**
|
|
80
61
|
* The width of the texture created for this post process.
|
|
81
62
|
* This parameter (and height) is only used when passing a value for the 5th parameter (options) to the PostProcess constructor function.
|
|
@@ -88,22 +69,6 @@ export type PostProcessOptions = {
|
|
|
88
69
|
* If you use a PostProcessOptions for the 3rd parameter of the constructor, size is used instead of width and height.
|
|
89
70
|
*/
|
|
90
71
|
height?: number;
|
|
91
|
-
/**
|
|
92
|
-
* The list of uniforms used in the shader (if any)
|
|
93
|
-
*/
|
|
94
|
-
uniforms?: Nullable<string[]>;
|
|
95
|
-
/**
|
|
96
|
-
* The list of samplers used in the shader (if any)
|
|
97
|
-
*/
|
|
98
|
-
samplers?: Nullable<string[]>;
|
|
99
|
-
/**
|
|
100
|
-
* The list of uniform buffers used in the shader (if any)
|
|
101
|
-
*/
|
|
102
|
-
uniformBuffers?: Nullable<string[]>;
|
|
103
|
-
/**
|
|
104
|
-
* String of defines that will be set when running the fragment shader. (default: null)
|
|
105
|
-
*/
|
|
106
|
-
defines?: Nullable<string>;
|
|
107
72
|
/**
|
|
108
73
|
* The size of the post process texture.
|
|
109
74
|
* It is either a ratio to downscale or upscale the texture create for this post process, or an object containing width and height values.
|
|
@@ -133,31 +98,14 @@ export type PostProcessOptions = {
|
|
|
133
98
|
* Type of the texture created for this post process (default: Constants.TEXTURETYPE_UNSIGNED_INT)
|
|
134
99
|
*/
|
|
135
100
|
textureType?: number;
|
|
136
|
-
/**
|
|
137
|
-
* The url of the vertex shader to be used. (default: "postprocess")
|
|
138
|
-
*/
|
|
139
|
-
vertexUrl?: string;
|
|
140
|
-
/**
|
|
141
|
-
* The index parameters to be used for babylons include syntax "#include<kernelBlurVaryingDeclaration>[0..varyingCount]". (default: undefined)
|
|
142
|
-
* See usage in babylon.blurPostProcess.ts and kernelBlur.vertex.fx
|
|
143
|
-
*/
|
|
144
|
-
indexParameters?: any;
|
|
145
|
-
/**
|
|
146
|
-
* If the shader should not be compiled immediately. (default: false)
|
|
147
|
-
*/
|
|
148
|
-
blockCompilation?: boolean;
|
|
149
101
|
/**
|
|
150
102
|
* Format of the texture created for this post process (default: TEXTUREFORMAT_RGBA)
|
|
151
103
|
*/
|
|
152
104
|
textureFormat?: number;
|
|
153
105
|
/**
|
|
154
|
-
* The
|
|
106
|
+
* The effect wrapper instance used by the post process. If not provided, a new one will be created.
|
|
155
107
|
*/
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Defines additional code to call to prepare the shader code
|
|
159
|
-
*/
|
|
160
|
-
extraInitializations?: (useWebGPU: boolean, list: Promise<any>[]) => void;
|
|
108
|
+
effectWrapper?: EffectWrapper;
|
|
161
109
|
};
|
|
162
110
|
/**
|
|
163
111
|
* PostProcess can be used to apply a shader to a texture after it has been rendered
|
|
@@ -168,23 +116,23 @@ export declare class PostProcess {
|
|
|
168
116
|
* Force all the postprocesses to compile to glsl even on WebGPU engines.
|
|
169
117
|
* False by default. This is mostly meant for backward compatibility.
|
|
170
118
|
*/
|
|
171
|
-
static ForceGLSL: boolean;
|
|
119
|
+
static get ForceGLSL(): boolean;
|
|
120
|
+
static set ForceGLSL(force: boolean);
|
|
172
121
|
/** @internal */
|
|
173
122
|
_parentContainer: Nullable<IAssetContainer>;
|
|
174
|
-
private static _CustomShaderCodeProcessing;
|
|
175
123
|
/**
|
|
176
124
|
* Registers a shader code processing with a post process name.
|
|
177
125
|
* @param postProcessName name of the post process. Use null for the fallback shader code processing. This is the shader code processing that will be used in case no specific shader code processing has been associated to a post process name
|
|
178
126
|
* @param customShaderCodeProcessing shader code processing to associate to the post process name
|
|
179
127
|
*/
|
|
180
|
-
static RegisterShaderCodeProcessing(postProcessName: Nullable<string>, customShaderCodeProcessing?:
|
|
181
|
-
private static _GetShaderCodeProcessing;
|
|
128
|
+
static RegisterShaderCodeProcessing(postProcessName: Nullable<string>, customShaderCodeProcessing?: EffectWrapperCustomShaderCodeProcessing): void;
|
|
182
129
|
/**
|
|
183
130
|
* Gets or sets the unique id of the post process
|
|
184
131
|
*/
|
|
185
132
|
uniqueId: number;
|
|
186
133
|
/** Name of the PostProcess. */
|
|
187
|
-
name: string;
|
|
134
|
+
get name(): string;
|
|
135
|
+
set name(value: string);
|
|
188
136
|
/**
|
|
189
137
|
* Width of the texture to apply the post process on
|
|
190
138
|
*/
|
|
@@ -223,7 +171,8 @@ export declare class PostProcess {
|
|
|
223
171
|
/**
|
|
224
172
|
* Type of alpha mode to use when performing the post process (default: Engine.ALPHA_DISABLE)
|
|
225
173
|
*/
|
|
226
|
-
alphaMode: number;
|
|
174
|
+
get alphaMode(): number;
|
|
175
|
+
set alphaMode(value: number);
|
|
227
176
|
/**
|
|
228
177
|
* Sets the setAlphaBlendConstants of the babylon engine
|
|
229
178
|
*/
|
|
@@ -274,7 +223,6 @@ export declare class PostProcess {
|
|
|
274
223
|
private _camera;
|
|
275
224
|
protected _scene: Scene;
|
|
276
225
|
private _engine;
|
|
277
|
-
private _shadersLoaded;
|
|
278
226
|
protected _webGPUReady: boolean;
|
|
279
227
|
private _options;
|
|
280
228
|
private _reusable;
|
|
@@ -308,7 +256,6 @@ export declare class PostProcess {
|
|
|
308
256
|
* @internal
|
|
309
257
|
*/
|
|
310
258
|
_currentRenderTextureInd: number;
|
|
311
|
-
private _drawWrapper;
|
|
312
259
|
private _samplers;
|
|
313
260
|
private _fragmentUrl;
|
|
314
261
|
private _vertexUrl;
|
|
@@ -402,6 +349,7 @@ export declare class PostProcess {
|
|
|
402
349
|
* See https://en.wikipedia.org/wiki/Texel_(graphics)
|
|
403
350
|
*/
|
|
404
351
|
get texelSize(): Vector2;
|
|
352
|
+
protected readonly _effectWrapper: EffectWrapper;
|
|
405
353
|
/**
|
|
406
354
|
* Creates a new instance PostProcess
|
|
407
355
|
* @param name The name of the PostProcess.
|
|
@@ -430,10 +378,7 @@ export declare class PostProcess {
|
|
|
430
378
|
* @param extraInitializations Defines additional code to call to prepare the shader code
|
|
431
379
|
*/
|
|
432
380
|
constructor(name: string, fragmentUrl: string, parameters: Nullable<string[]>, samplers: Nullable<string[]>, options: number | PostProcessOptions, camera: Nullable<Camera>, samplingMode?: number, engine?: AbstractEngine, reusable?: boolean, defines?: Nullable<string>, textureType?: number, vertexUrl?: string, indexParameters?: any, blockCompilation?: boolean, textureFormat?: number, shaderLanguage?: ShaderLanguage, extraInitializations?: (useWebGPU: boolean, list: Promise<any>[]) => void);
|
|
433
|
-
/** @internal */
|
|
434
381
|
protected _gatherImports(useWebGPU: boolean | undefined, list: Promise<any>[]): void;
|
|
435
|
-
private _importPromises;
|
|
436
|
-
private _postConstructor;
|
|
437
382
|
/**
|
|
438
383
|
* Gets a string identifying the name of the class
|
|
439
384
|
* @returns "PostProcess" string
|
|
@@ -446,7 +391,7 @@ export declare class PostProcess {
|
|
|
446
391
|
getEngine(): AbstractEngine;
|
|
447
392
|
/**
|
|
448
393
|
* The effect that is created when initializing the post process.
|
|
449
|
-
* @returns The created effect corresponding the postprocess.
|
|
394
|
+
* @returns The created effect corresponding to the postprocess.
|
|
450
395
|
*/
|
|
451
396
|
getEffect(): Effect;
|
|
452
397
|
/**
|
|
@@ -552,5 +497,5 @@ export declare class PostProcess {
|
|
|
552
497
|
/**
|
|
553
498
|
* @internal
|
|
554
499
|
*/
|
|
555
|
-
static _Parse(parsedPostProcess: any, targetCamera: Camera
|
|
500
|
+
static _Parse(parsedPostProcess: any, targetCamera: Nullable<Camera>, scene: Nullable<Scene>, rootUrl: string): Nullable<PostProcess>;
|
|
556
501
|
}
|
|
@@ -7,9 +7,9 @@ import { Effect } from "../Materials/effect.js";
|
|
|
7
7
|
import { serialize, serializeAsColor4 } from "../Misc/decorators.js";
|
|
8
8
|
import { SerializationHelper } from "../Misc/decorators.serialization.js";
|
|
9
9
|
import { GetClass, RegisterClass } from "../Misc/typeStore.js";
|
|
10
|
-
import { DrawWrapper } from "../Materials/drawWrapper.js";
|
|
11
10
|
import { AbstractEngine } from "../Engines/abstractEngine.js";
|
|
12
11
|
import { GetExponentOfTwo } from "../Misc/tools.functions.js";
|
|
12
|
+
import { EffectWrapper } from "../Materials/effectRenderer.js";
|
|
13
13
|
AbstractEngine.prototype.setTextureFromPostProcess = function (channel, postProcess, name) {
|
|
14
14
|
let postProcessInput = null;
|
|
15
15
|
if (postProcess) {
|
|
@@ -47,20 +47,39 @@ Effect.prototype.setTextureFromPostProcessOutput = function (channel, postProces
|
|
|
47
47
|
* See https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses
|
|
48
48
|
*/
|
|
49
49
|
export class PostProcess {
|
|
50
|
+
/**
|
|
51
|
+
* Force all the postprocesses to compile to glsl even on WebGPU engines.
|
|
52
|
+
* False by default. This is mostly meant for backward compatibility.
|
|
53
|
+
*/
|
|
54
|
+
static get ForceGLSL() {
|
|
55
|
+
return EffectWrapper.ForceGLSL;
|
|
56
|
+
}
|
|
57
|
+
static set ForceGLSL(force) {
|
|
58
|
+
EffectWrapper.ForceGLSL = force;
|
|
59
|
+
}
|
|
50
60
|
/**
|
|
51
61
|
* Registers a shader code processing with a post process name.
|
|
52
62
|
* @param postProcessName name of the post process. Use null for the fallback shader code processing. This is the shader code processing that will be used in case no specific shader code processing has been associated to a post process name
|
|
53
63
|
* @param customShaderCodeProcessing shader code processing to associate to the post process name
|
|
54
64
|
*/
|
|
55
65
|
static RegisterShaderCodeProcessing(postProcessName, customShaderCodeProcessing) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
66
|
+
EffectWrapper.RegisterShaderCodeProcessing(postProcessName, customShaderCodeProcessing);
|
|
67
|
+
}
|
|
68
|
+
/** Name of the PostProcess. */
|
|
69
|
+
get name() {
|
|
70
|
+
return this._effectWrapper.name;
|
|
61
71
|
}
|
|
62
|
-
|
|
63
|
-
|
|
72
|
+
set name(value) {
|
|
73
|
+
this._effectWrapper.name = value;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Type of alpha mode to use when performing the post process (default: Engine.ALPHA_DISABLE)
|
|
77
|
+
*/
|
|
78
|
+
get alphaMode() {
|
|
79
|
+
return this._effectWrapper.alphaMode;
|
|
80
|
+
}
|
|
81
|
+
set alphaMode(value) {
|
|
82
|
+
this._effectWrapper.alphaMode = value;
|
|
64
83
|
}
|
|
65
84
|
/**
|
|
66
85
|
* Number of sample textures (default: 1)
|
|
@@ -205,10 +224,6 @@ export class PostProcess {
|
|
|
205
224
|
* By default, the buffer will only be cleared if alpha mode is disabled (and autoClear is true).
|
|
206
225
|
*/
|
|
207
226
|
this.forceAutoClearInAlphaMode = false;
|
|
208
|
-
/**
|
|
209
|
-
* Type of alpha mode to use when performing the post process (default: Engine.ALPHA_DISABLE)
|
|
210
|
-
*/
|
|
211
|
-
this.alphaMode = 0;
|
|
212
227
|
/**
|
|
213
228
|
* Animations to be used for the post processing
|
|
214
229
|
*/
|
|
@@ -242,7 +257,6 @@ export class PostProcess {
|
|
|
242
257
|
* Modify the scale of the post process to be the same as the viewport (default: false)
|
|
243
258
|
*/
|
|
244
259
|
this.adaptScaleToCurrentViewport = false;
|
|
245
|
-
this._shadersLoaded = false;
|
|
246
260
|
this._webGPUReady = false;
|
|
247
261
|
this._reusable = false;
|
|
248
262
|
this._renderId = 0;
|
|
@@ -269,11 +283,6 @@ export class PostProcess {
|
|
|
269
283
|
this._currentRenderTextureInd = 0;
|
|
270
284
|
this._scaleRatio = new Vector2(1, 1);
|
|
271
285
|
this._texelSize = Vector2.Zero();
|
|
272
|
-
/**
|
|
273
|
-
* Executed when the effect was created
|
|
274
|
-
* @returns effect that was created for this post process
|
|
275
|
-
*/
|
|
276
|
-
this.onEffectCreatedObservable = new Observable(undefined, true);
|
|
277
286
|
// Events
|
|
278
287
|
/**
|
|
279
288
|
* An event triggered when the postprocess is activated.
|
|
@@ -295,10 +304,9 @@ export class PostProcess {
|
|
|
295
304
|
* An event triggered after rendering the postprocess
|
|
296
305
|
*/
|
|
297
306
|
this.onAfterRenderObservable = new Observable();
|
|
298
|
-
this._importPromises = [];
|
|
299
|
-
this.name = name;
|
|
300
307
|
let size = 1;
|
|
301
308
|
let uniformBuffers = null;
|
|
309
|
+
let effectWrapper;
|
|
302
310
|
if (parameters && !Array.isArray(parameters)) {
|
|
303
311
|
const options = parameters;
|
|
304
312
|
parameters = options.uniforms ?? null;
|
|
@@ -308,7 +316,7 @@ export class PostProcess {
|
|
|
308
316
|
samplingMode = options.samplingMode ?? 1;
|
|
309
317
|
engine = options.engine;
|
|
310
318
|
reusable = options.reusable;
|
|
311
|
-
defines = options.defines ?? null;
|
|
319
|
+
defines = Array.isArray(options.defines) ? options.defines.join("\n") : (options.defines ?? null);
|
|
312
320
|
textureType = options.textureType ?? 0;
|
|
313
321
|
vertexUrl = options.vertexUrl ?? "postprocess";
|
|
314
322
|
indexParameters = options.indexParameters;
|
|
@@ -317,6 +325,7 @@ export class PostProcess {
|
|
|
317
325
|
shaderLanguage = options.shaderLanguage ?? 0 /* ShaderLanguage.GLSL */;
|
|
318
326
|
uniformBuffers = options.uniformBuffers ?? null;
|
|
319
327
|
extraInitializations = options.extraInitializations;
|
|
328
|
+
effectWrapper = options.effectWrapper;
|
|
320
329
|
}
|
|
321
330
|
else if (_size) {
|
|
322
331
|
if (typeof _size === "number") {
|
|
@@ -326,6 +335,27 @@ export class PostProcess {
|
|
|
326
335
|
size = { width: _size.width, height: _size.height };
|
|
327
336
|
}
|
|
328
337
|
}
|
|
338
|
+
const useExistingThinPostProcess = !!effectWrapper;
|
|
339
|
+
this._effectWrapper =
|
|
340
|
+
effectWrapper ??
|
|
341
|
+
new EffectWrapper({
|
|
342
|
+
name,
|
|
343
|
+
useShaderStore: true,
|
|
344
|
+
useAsPostProcess: true,
|
|
345
|
+
fragmentShader: fragmentUrl,
|
|
346
|
+
engine: engine || camera?.getScene().getEngine(),
|
|
347
|
+
uniforms: parameters,
|
|
348
|
+
samplers,
|
|
349
|
+
uniformBuffers,
|
|
350
|
+
defines,
|
|
351
|
+
vertexUrl,
|
|
352
|
+
indexParameters,
|
|
353
|
+
blockCompilation,
|
|
354
|
+
shaderLanguage,
|
|
355
|
+
extraInitializations,
|
|
356
|
+
});
|
|
357
|
+
this.name = name;
|
|
358
|
+
this.onEffectCreatedObservable = this._effectWrapper.onEffectCreatedObservable;
|
|
329
359
|
if (camera != null) {
|
|
330
360
|
this._camera = camera;
|
|
331
361
|
this._scene = camera.getScene();
|
|
@@ -345,18 +375,25 @@ export class PostProcess {
|
|
|
345
375
|
this._textureFormat = textureFormat;
|
|
346
376
|
this._shaderLanguage = shaderLanguage || 0 /* ShaderLanguage.GLSL */;
|
|
347
377
|
this._samplers = samplers || [];
|
|
348
|
-
this._samplers.
|
|
378
|
+
if (this._samplers.indexOf("textureSampler") === -1) {
|
|
379
|
+
this._samplers.push("textureSampler");
|
|
380
|
+
}
|
|
349
381
|
this._fragmentUrl = fragmentUrl;
|
|
350
382
|
this._vertexUrl = vertexUrl;
|
|
351
383
|
this._parameters = parameters || [];
|
|
352
|
-
this._parameters.
|
|
384
|
+
if (this._parameters.indexOf("scale") === -1) {
|
|
385
|
+
this._parameters.push("scale");
|
|
386
|
+
}
|
|
353
387
|
this._uniformBuffers = uniformBuffers || [];
|
|
354
388
|
this._indexParameters = indexParameters;
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
389
|
+
if (!useExistingThinPostProcess) {
|
|
390
|
+
this._webGPUReady = this._shaderLanguage === 1 /* ShaderLanguage.WGSL */;
|
|
391
|
+
const importPromises = [];
|
|
392
|
+
this._gatherImports(this._engine.isWebGPU && !PostProcess.ForceGLSL, importPromises);
|
|
393
|
+
this._effectWrapper._webGPUReady = this._webGPUReady;
|
|
394
|
+
this._effectWrapper._postConstructor(blockCompilation, defines, extraInitializations, importPromises);
|
|
395
|
+
}
|
|
358
396
|
}
|
|
359
|
-
/** @internal */
|
|
360
397
|
_gatherImports(useWebGPU = false, list) {
|
|
361
398
|
// this._webGPUReady is used to detect when a postprocess is intended to be used with WebGPU
|
|
362
399
|
if (useWebGPU && this._webGPUReady) {
|
|
@@ -366,20 +403,6 @@ export class PostProcess {
|
|
|
366
403
|
list.push(Promise.all([import("../Shaders/postprocess.vertex.js")]));
|
|
367
404
|
}
|
|
368
405
|
}
|
|
369
|
-
_postConstructor(blockCompilation, defines = null, extraInitializations) {
|
|
370
|
-
const engine = this.getEngine();
|
|
371
|
-
const useWebGPU = engine.isWebGPU && !PostProcess.ForceGLSL;
|
|
372
|
-
this._gatherImports(useWebGPU, this._importPromises);
|
|
373
|
-
if (extraInitializations) {
|
|
374
|
-
extraInitializations(useWebGPU, this._importPromises);
|
|
375
|
-
}
|
|
376
|
-
if (useWebGPU && this._webGPUReady) {
|
|
377
|
-
this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;
|
|
378
|
-
}
|
|
379
|
-
if (!blockCompilation) {
|
|
380
|
-
this.updateEffect(defines);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
406
|
/**
|
|
384
407
|
* Gets a string identifying the name of the class
|
|
385
408
|
* @returns "PostProcess" string
|
|
@@ -396,10 +419,10 @@ export class PostProcess {
|
|
|
396
419
|
}
|
|
397
420
|
/**
|
|
398
421
|
* The effect that is created when initializing the post process.
|
|
399
|
-
* @returns The created effect corresponding the postprocess.
|
|
422
|
+
* @returns The created effect corresponding to the postprocess.
|
|
400
423
|
*/
|
|
401
424
|
getEffect() {
|
|
402
|
-
return this.
|
|
425
|
+
return this._effectWrapper.drawWrapper.effect;
|
|
403
426
|
}
|
|
404
427
|
/**
|
|
405
428
|
* To avoid multiple redundant textures for multiple post process, the output the output texture for this post process can be shared with another.
|
|
@@ -433,42 +456,8 @@ export class PostProcess {
|
|
|
433
456
|
* @param fragmentUrl The url of the fragment shader to be used (default: the one given at construction time)
|
|
434
457
|
*/
|
|
435
458
|
updateEffect(defines = null, uniforms = null, samplers = null, indexParameters, onCompiled, onError, vertexUrl, fragmentUrl) {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
const newUniforms = uniforms?.slice() ?? [];
|
|
439
|
-
newUniforms.push(...this._parameters);
|
|
440
|
-
const newSamplers = samplers?.slice() ?? [];
|
|
441
|
-
newSamplers.push(...this._samplers);
|
|
442
|
-
defines = customShaderCodeProcessing.defineCustomBindings(this.name, defines, newUniforms, newSamplers);
|
|
443
|
-
uniforms = newUniforms;
|
|
444
|
-
samplers = newSamplers;
|
|
445
|
-
}
|
|
446
|
-
this._postProcessDefines = defines;
|
|
447
|
-
this._drawWrapper.effect = this._engine.createEffect({ vertex: vertexUrl ?? this._vertexUrl, fragment: fragmentUrl ?? this._fragmentUrl }, {
|
|
448
|
-
attributes: ["position"],
|
|
449
|
-
uniformsNames: uniforms || this._parameters,
|
|
450
|
-
uniformBuffersNames: this._uniformBuffers,
|
|
451
|
-
samplers: samplers || this._samplers,
|
|
452
|
-
defines: defines !== null ? defines : "",
|
|
453
|
-
fallbacks: null,
|
|
454
|
-
onCompiled: onCompiled ?? null,
|
|
455
|
-
onError: onError ?? null,
|
|
456
|
-
indexParameters: indexParameters || this._indexParameters,
|
|
457
|
-
processCodeAfterIncludes: customShaderCodeProcessing?.processCodeAfterIncludes
|
|
458
|
-
? (shaderType, code) => customShaderCodeProcessing.processCodeAfterIncludes(this.name, shaderType, code)
|
|
459
|
-
: null,
|
|
460
|
-
processFinalCode: customShaderCodeProcessing?.processFinalCode
|
|
461
|
-
? (shaderType, code) => customShaderCodeProcessing.processFinalCode(this.name, shaderType, code)
|
|
462
|
-
: null,
|
|
463
|
-
shaderLanguage: this._shaderLanguage,
|
|
464
|
-
extraInitializationsAsync: this._shadersLoaded
|
|
465
|
-
? undefined
|
|
466
|
-
: async () => {
|
|
467
|
-
await Promise.all(this._importPromises);
|
|
468
|
-
this._shadersLoaded = true;
|
|
469
|
-
},
|
|
470
|
-
}, this._engine);
|
|
471
|
-
this.onEffectCreatedObservable.notifyObservers(this._drawWrapper.effect);
|
|
459
|
+
this._effectWrapper.updateEffect(defines, uniforms, samplers, indexParameters, onCompiled, onError, vertexUrl, fragmentUrl);
|
|
460
|
+
this._postProcessDefines = Array.isArray(this._effectWrapper.options.defines) ? this._effectWrapper.options.defines.join("\n") : this._effectWrapper.options.defines;
|
|
472
461
|
}
|
|
473
462
|
/**
|
|
474
463
|
* The post process is reusable if it can be used multiple times within one frame.
|
|
@@ -654,7 +643,7 @@ export class PostProcess {
|
|
|
654
643
|
* If the post process is supported.
|
|
655
644
|
*/
|
|
656
645
|
get isSupported() {
|
|
657
|
-
return this.
|
|
646
|
+
return this._effectWrapper.drawWrapper.effect.isSupported;
|
|
658
647
|
}
|
|
659
648
|
/**
|
|
660
649
|
* The aspect ratio of the output texture.
|
|
@@ -673,7 +662,7 @@ export class PostProcess {
|
|
|
673
662
|
* @returns true if the post-process is ready (shader is compiled)
|
|
674
663
|
*/
|
|
675
664
|
isReady() {
|
|
676
|
-
return this.
|
|
665
|
+
return this._effectWrapper.isReady();
|
|
677
666
|
}
|
|
678
667
|
/**
|
|
679
668
|
* Binds all textures and uniforms to the shader, this will be run on every pass.
|
|
@@ -681,16 +670,15 @@ export class PostProcess {
|
|
|
681
670
|
*/
|
|
682
671
|
apply() {
|
|
683
672
|
// Check
|
|
684
|
-
if (!this.
|
|
673
|
+
if (!this._effectWrapper.isReady()) {
|
|
685
674
|
return null;
|
|
686
675
|
}
|
|
687
676
|
// States
|
|
688
|
-
this._engine.enableEffect(this.
|
|
677
|
+
this._engine.enableEffect(this._effectWrapper.drawWrapper);
|
|
689
678
|
this._engine.setState(false);
|
|
690
679
|
this._engine.setDepthBuffer(false);
|
|
691
680
|
this._engine.setDepthWrite(false);
|
|
692
681
|
// Alpha
|
|
693
|
-
this._engine.setAlphaMode(this.alphaMode);
|
|
694
682
|
if (this.alphaConstants) {
|
|
695
683
|
this.getEngine().setAlphaConstants(this.alphaConstants.r, this.alphaConstants.g, this.alphaConstants.b, this.alphaConstants.a);
|
|
696
684
|
}
|
|
@@ -706,13 +694,13 @@ export class PostProcess {
|
|
|
706
694
|
source = this.inputTexture;
|
|
707
695
|
}
|
|
708
696
|
if (!this.externalTextureSamplerBinding) {
|
|
709
|
-
this.
|
|
697
|
+
this._effectWrapper.drawWrapper.effect._bindTexture("textureSampler", source?.texture);
|
|
710
698
|
}
|
|
711
699
|
// Parameters
|
|
712
|
-
this.
|
|
713
|
-
this.onApplyObservable.notifyObservers(this.
|
|
714
|
-
|
|
715
|
-
return this.
|
|
700
|
+
this._effectWrapper.drawWrapper.effect.setVector2("scale", this._scaleRatio);
|
|
701
|
+
this.onApplyObservable.notifyObservers(this._effectWrapper.drawWrapper.effect);
|
|
702
|
+
this._effectWrapper.bind();
|
|
703
|
+
return this._effectWrapper.drawWrapper.effect;
|
|
716
704
|
}
|
|
717
705
|
_disposeTextures() {
|
|
718
706
|
if (this._shareOutputWithPostProcess || this._forcedOutputTexture) {
|
|
@@ -798,6 +786,7 @@ export class PostProcess {
|
|
|
798
786
|
serializationObject.fragmentUrl = this._fragmentUrl;
|
|
799
787
|
serializationObject.parameters = this._parameters;
|
|
800
788
|
serializationObject.samplers = this._samplers;
|
|
789
|
+
serializationObject.uniformBuffers = this._uniformBuffers;
|
|
801
790
|
serializationObject.options = this._options;
|
|
802
791
|
serializationObject.defines = this._postProcessDefines;
|
|
803
792
|
serializationObject.textureFormat = this._textureFormat;
|
|
@@ -849,18 +838,12 @@ export class PostProcess {
|
|
|
849
838
|
}, parsedPostProcess, scene, rootUrl);
|
|
850
839
|
}
|
|
851
840
|
}
|
|
852
|
-
/**
|
|
853
|
-
* Force all the postprocesses to compile to glsl even on WebGPU engines.
|
|
854
|
-
* False by default. This is mostly meant for backward compatibility.
|
|
855
|
-
*/
|
|
856
|
-
PostProcess.ForceGLSL = false;
|
|
857
|
-
PostProcess._CustomShaderCodeProcessing = {};
|
|
858
841
|
__decorate([
|
|
859
842
|
serialize()
|
|
860
843
|
], PostProcess.prototype, "uniqueId", void 0);
|
|
861
844
|
__decorate([
|
|
862
845
|
serialize()
|
|
863
|
-
], PostProcess.prototype, "name",
|
|
846
|
+
], PostProcess.prototype, "name", null);
|
|
864
847
|
__decorate([
|
|
865
848
|
serialize()
|
|
866
849
|
], PostProcess.prototype, "width", void 0);
|
|
@@ -881,7 +864,7 @@ __decorate([
|
|
|
881
864
|
], PostProcess.prototype, "forceAutoClearInAlphaMode", void 0);
|
|
882
865
|
__decorate([
|
|
883
866
|
serialize()
|
|
884
|
-
], PostProcess.prototype, "alphaMode",
|
|
867
|
+
], PostProcess.prototype, "alphaMode", null);
|
|
885
868
|
__decorate([
|
|
886
869
|
serialize()
|
|
887
870
|
], PostProcess.prototype, "alphaConstants", void 0);
|