@babylonjs/core 6.14.2 → 6.16.0
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/Actions/actionManager.js +8 -3
- package/Actions/actionManager.js.map +1 -1
- package/Behaviors/Cameras/framingBehavior.d.ts +2 -1
- package/Behaviors/Cameras/framingBehavior.js +3 -1
- package/Behaviors/Cameras/framingBehavior.js.map +1 -1
- package/Bones/skeleton.js +1 -0
- package/Bones/skeleton.js.map +1 -1
- package/Compute/computeEffect.js +1 -1
- package/Compute/computeEffect.js.map +1 -1
- package/{Materials/Node/nodeMaterialDecorator.d.ts → Decorators/nodeDecorator.d.ts} +6 -7
- package/{Materials/Node/nodeMaterialDecorator.js → Decorators/nodeDecorator.js} +3 -3
- package/Decorators/nodeDecorator.js.map +1 -0
- package/Engines/Processors/shaderCodeNode.js +1 -1
- package/Engines/Processors/shaderCodeNode.js.map +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.js +2 -1
- package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js +3 -0
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +11 -10
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +3 -3
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/nativeEngine.js +5 -4
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.d.ts +2 -0
- package/Engines/thinEngine.js +35 -4
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +12 -2
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphBinaryOpBlocks.d.ts +34 -0
- package/FlowGraph/Blocks/Data/flowGraphBinaryOpBlocks.js +29 -0
- package/FlowGraph/Blocks/Data/flowGraphBinaryOpBlocks.js.map +1 -0
- package/FlowGraph/Blocks/Data/index.d.ts +1 -0
- package/FlowGraph/Blocks/Data/index.js +2 -0
- package/FlowGraph/Blocks/Data/index.js.map +1 -0
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.d.ts +23 -0
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js +51 -0
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js.map +1 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.d.ts +20 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js +29 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js.map +1 -0
- package/FlowGraph/Blocks/Event/index.d.ts +2 -0
- package/FlowGraph/Blocks/Event/index.js +3 -0
- package/FlowGraph/Blocks/Event/index.js.map +1 -0
- package/FlowGraph/Blocks/Execution/flowGraphForLoopBlock.d.ts +43 -0
- package/FlowGraph/Blocks/Execution/flowGraphForLoopBlock.js +40 -0
- package/FlowGraph/Blocks/Execution/flowGraphForLoopBlock.js.map +1 -0
- package/FlowGraph/Blocks/Execution/flowGraphLogBlock.d.ts +18 -0
- package/FlowGraph/Blocks/Execution/flowGraphLogBlock.js +21 -0
- package/FlowGraph/Blocks/Execution/flowGraphLogBlock.js.map +1 -0
- package/FlowGraph/Blocks/Execution/index.d.ts +2 -0
- package/FlowGraph/Blocks/Execution/index.js +3 -0
- package/FlowGraph/Blocks/Execution/index.js.map +1 -0
- package/FlowGraph/Blocks/index.d.ts +3 -0
- package/FlowGraph/Blocks/index.js +5 -0
- package/FlowGraph/Blocks/index.js.map +1 -0
- package/FlowGraph/flowGraph.d.ts +34 -0
- package/FlowGraph/flowGraph.js +54 -0
- package/FlowGraph/flowGraph.js.map +1 -0
- package/FlowGraph/flowGraphBlock.d.ts +33 -0
- package/FlowGraph/flowGraphBlock.js +39 -0
- package/FlowGraph/flowGraphBlock.js.map +1 -0
- package/FlowGraph/flowGraphConnection.d.ts +38 -0
- package/FlowGraph/flowGraphConnection.js +40 -0
- package/FlowGraph/flowGraphConnection.js.map +1 -0
- package/FlowGraph/flowGraphDataConnection.d.ts +15 -0
- package/FlowGraph/flowGraphDataConnection.js +30 -0
- package/FlowGraph/flowGraphDataConnection.js.map +1 -0
- package/FlowGraph/flowGraphEventBlock.d.ts +20 -0
- package/FlowGraph/flowGraphEventBlock.js +15 -0
- package/FlowGraph/flowGraphEventBlock.js.map +1 -0
- package/FlowGraph/flowGraphExecutionBlock.d.ts +24 -0
- package/FlowGraph/flowGraphExecutionBlock.js +27 -0
- package/FlowGraph/flowGraphExecutionBlock.js.map +1 -0
- package/FlowGraph/flowGraphSignalConnection.d.ts +14 -0
- package/FlowGraph/flowGraphSignalConnection.js +22 -0
- package/FlowGraph/flowGraphSignalConnection.js.map +1 -0
- package/FlowGraph/flowGraphWithOnDoneExecutionBlock.d.ts +7 -0
- package/FlowGraph/flowGraphWithOnDoneExecutionBlock.js +8 -0
- package/FlowGraph/flowGraphWithOnDoneExecutionBlock.js.map +1 -0
- package/FlowGraph/index.d.ts +6 -0
- package/FlowGraph/index.js +8 -0
- package/FlowGraph/index.js.map +1 -0
- package/Gizmos/lightGizmo.d.ts +5 -0
- package/Gizmos/lightGizmo.js +21 -7
- package/Gizmos/lightGizmo.js.map +1 -1
- package/Gizmos/planeRotationGizmo.d.ts +6 -0
- package/Gizmos/planeRotationGizmo.js +5 -1
- package/Gizmos/planeRotationGizmo.js.map +1 -1
- package/Gizmos/rotationGizmo.d.ts +8 -0
- package/Gizmos/rotationGizmo.js +15 -0
- package/Gizmos/rotationGizmo.js.map +1 -1
- package/Layers/layer.js +1 -1
- package/Layers/layer.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +2 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +4 -3
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +3 -1
- package/Lights/Shadows/shadowGenerator.js +4 -2
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/directionalLight.d.ts +1 -1
- package/Lights/directionalLight.js.map +1 -1
- package/Lights/hemisphericLight.d.ts +1 -1
- package/Lights/hemisphericLight.js.map +1 -1
- package/Lights/light.d.ts +1 -1
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.d.ts +1 -1
- package/Lights/pointLight.js.map +1 -1
- package/Lights/spotLight.d.ts +1 -1
- package/Lights/spotLight.js.map +1 -1
- package/Loading/sceneLoader.js +2 -0
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js +13 -13
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/fogBlock.js +6 -6
- package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js +11 -11
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js +16 -16
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +27 -27
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +8 -8
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.js +28 -28
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.js +3 -5
- package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/derivativeBlock.js +2 -2
- package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/discardBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragDepthBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/fragDepthBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +15 -15
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +6 -6
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +13 -13
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +13 -13
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +5 -5
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/shadowMapBlock.js +7 -7
- package/Materials/Node/Blocks/Fragment/shadowMapBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/twirlBlock.js +3 -3
- package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.js +11 -11
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js +6 -6
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +9 -9
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +47 -47
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +9 -9
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.js +14 -14
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.js +4 -4
- package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js +8 -8
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Teleport/index.d.ts +2 -0
- package/Materials/Node/Blocks/Teleport/index.js +3 -0
- package/Materials/Node/Blocks/Teleport/index.js.map +1 -0
- package/Materials/Node/Blocks/Teleport/teleportInBlock.d.ts +42 -0
- package/Materials/Node/Blocks/Teleport/teleportInBlock.js +83 -0
- package/Materials/Node/Blocks/Teleport/teleportInBlock.js.map +1 -0
- package/Materials/Node/Blocks/Teleport/teleportOutBlock.d.ts +59 -0
- package/Materials/Node/Blocks/Teleport/teleportOutBlock.js +122 -0
- package/Materials/Node/Blocks/Teleport/teleportOutBlock.js.map +1 -0
- package/Materials/Node/Blocks/Vertex/bonesBlock.js +5 -5
- package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js +11 -11
- package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +11 -11
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +39 -39
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +3 -3
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/addBlock.js +1 -1
- package/Materials/Node/Blocks/addBlock.js.map +1 -1
- package/Materials/Node/Blocks/arcTan2Block.js +1 -1
- package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
- package/Materials/Node/Blocks/clampBlock.js +4 -4
- package/Materials/Node/Blocks/clampBlock.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.js +7 -7
- package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
- package/Materials/Node/Blocks/colorMergerBlock.js +8 -8
- package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
- package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
- package/Materials/Node/Blocks/conditionalBlock.js +10 -10
- package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
- package/Materials/Node/Blocks/crossBlock.js +1 -1
- package/Materials/Node/Blocks/crossBlock.js.map +1 -1
- package/Materials/Node/Blocks/curveBlock.js +5 -5
- package/Materials/Node/Blocks/curveBlock.js.map +1 -1
- package/Materials/Node/Blocks/customBlock.js +4 -4
- package/Materials/Node/Blocks/customBlock.js.map +1 -1
- package/Materials/Node/Blocks/desaturateBlock.js +4 -4
- package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
- package/Materials/Node/Blocks/distanceBlock.js +1 -1
- package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
- package/Materials/Node/Blocks/divideBlock.js +1 -1
- package/Materials/Node/Blocks/divideBlock.js.map +1 -1
- package/Materials/Node/Blocks/dotBlock.js +1 -1
- package/Materials/Node/Blocks/dotBlock.js.map +1 -1
- package/Materials/Node/Blocks/elbowBlock.js +1 -1
- package/Materials/Node/Blocks/elbowBlock.js.map +1 -1
- package/Materials/Node/Blocks/fresnelBlock.js +1 -1
- package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
- package/Materials/Node/Blocks/gradientBlock.js +8 -8
- package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
- package/Materials/Node/Blocks/index.d.ts +1 -0
- package/Materials/Node/Blocks/index.js +1 -0
- package/Materials/Node/Blocks/index.js.map +1 -1
- package/Materials/Node/Blocks/lengthBlock.js +1 -1
- package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
- package/Materials/Node/Blocks/lerpBlock.js +1 -1
- package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
- package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
- package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
- package/Materials/Node/Blocks/matrixDeterminantBlock.js +1 -1
- package/Materials/Node/Blocks/matrixDeterminantBlock.js.map +1 -1
- package/Materials/Node/Blocks/matrixTransposeBlock.js +1 -1
- package/Materials/Node/Blocks/matrixTransposeBlock.js.map +1 -1
- package/Materials/Node/Blocks/maxBlock.js +1 -1
- package/Materials/Node/Blocks/maxBlock.js.map +1 -1
- package/Materials/Node/Blocks/meshAttributeExistsBlock.js +7 -7
- package/Materials/Node/Blocks/meshAttributeExistsBlock.js.map +1 -1
- package/Materials/Node/Blocks/minBlock.js +1 -1
- package/Materials/Node/Blocks/minBlock.js.map +1 -1
- package/Materials/Node/Blocks/modBlock.js +1 -1
- package/Materials/Node/Blocks/modBlock.js.map +1 -1
- package/Materials/Node/Blocks/multiplyBlock.js +1 -1
- package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
- package/Materials/Node/Blocks/nLerpBlock.js +1 -1
- package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
- package/Materials/Node/Blocks/negateBlock.js +1 -1
- package/Materials/Node/Blocks/negateBlock.js.map +1 -1
- package/Materials/Node/Blocks/normalBlendBlock.js +6 -6
- package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
- package/Materials/Node/Blocks/normalizeBlock.js +1 -1
- package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
- package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
- package/Materials/Node/Blocks/posterizeBlock.js +1 -1
- package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/powBlock.js +1 -1
- package/Materials/Node/Blocks/powBlock.js.map +1 -1
- package/Materials/Node/Blocks/randomNumberBlock.js +1 -1
- package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
- package/Materials/Node/Blocks/reciprocalBlock.js +2 -2
- package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
- package/Materials/Node/Blocks/reflectBlock.js +1 -1
- package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
- package/Materials/Node/Blocks/refractBlock.js +1 -1
- package/Materials/Node/Blocks/refractBlock.js.map +1 -1
- package/Materials/Node/Blocks/remapBlock.js +4 -4
- package/Materials/Node/Blocks/remapBlock.js.map +1 -1
- package/Materials/Node/Blocks/replaceColorBlock.js +6 -6
- package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
- package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
- package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
- package/Materials/Node/Blocks/scaleBlock.js +1 -1
- package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
- package/Materials/Node/Blocks/simplexPerlin3DBlock.js +41 -41
- package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
- package/Materials/Node/Blocks/smoothStepBlock.js +1 -1
- package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
- package/Materials/Node/Blocks/stepBlock.js +1 -1
- package/Materials/Node/Blocks/stepBlock.js.map +1 -1
- package/Materials/Node/Blocks/subtractBlock.js +1 -1
- package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.js +13 -14
- package/Materials/Node/Blocks/transformBlock.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.js +17 -17
- package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
- package/Materials/Node/Blocks/trigonometryBlock.js +2 -2
- package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
- package/Materials/Node/Blocks/vectorMergerBlock.js +22 -22
- package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/vectorSplitterBlock.js +8 -8
- package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
- package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
- package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/voronoiNoiseBlock.js +5 -5
- package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
- package/Materials/Node/Blocks/waveBlock.js +3 -4
- package/Materials/Node/Blocks/waveBlock.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.js +155 -155
- package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
- package/Materials/Node/index.d.ts +1 -1
- package/Materials/Node/index.js +1 -1
- package/Materials/Node/index.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +1 -0
- package/Materials/Node/nodeMaterial.js +50 -15
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.d.ts +14 -2
- package/Materials/Node/nodeMaterialBlock.js +34 -11
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js +1 -1
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +36 -36
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.js +4 -4
- package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
- package/Materials/Textures/Filtering/hdrFiltering.js +1 -0
- package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
- package/Materials/effect.js +1 -1
- package/Materials/effect.js.map +1 -1
- package/Materials/effectRenderer.d.ts +4 -0
- package/Materials/effectRenderer.js +8 -2
- package/Materials/effectRenderer.js.map +1 -1
- package/Materials/greasedLinePluginMaterial.d.ts +4 -0
- package/Materials/greasedLinePluginMaterial.js +12 -1
- package/Materials/greasedLinePluginMaterial.js.map +1 -1
- package/Materials/materialPluginManager.js +5 -5
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/meshDebugPluginMaterial.d.ts +4 -15
- package/Materials/meshDebugPluginMaterial.js +8 -29
- package/Materials/meshDebugPluginMaterial.js.map +1 -1
- package/Materials/shadowDepthWrapper.js +5 -5
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Meshes/Builders/boxBuilder.d.ts +31 -0
- package/Meshes/Builders/boxBuilder.js +65 -1
- package/Meshes/Builders/boxBuilder.js.map +1 -1
- package/Meshes/Builders/capsuleBuilder.js +3 -3
- package/Meshes/Builders/capsuleBuilder.js.map +1 -1
- package/Meshes/Builders/cylinderBuilder.js +2 -2
- package/Meshes/Builders/cylinderBuilder.js.map +1 -1
- package/Meshes/Builders/groundBuilder.js +2 -2
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/Builders/icoSphereBuilder.js +1 -1
- package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
- package/Meshes/Builders/linesBuilder.d.ts +1 -1
- package/Meshes/Builders/linesBuilder.js +1 -1
- package/Meshes/Builders/linesBuilder.js.map +1 -1
- package/Meshes/Builders/sphereBuilder.js +1 -1
- package/Meshes/Builders/sphereBuilder.js.map +1 -1
- package/Meshes/Builders/torusBuilder.js +1 -1
- package/Meshes/Builders/torusBuilder.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.d.ts +85 -0
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js +210 -0
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.d.ts +68 -0
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js +186 -0
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js.map +1 -0
- package/Meshes/Node/Blocks/IntFloatConverterBlock.d.ts +35 -0
- package/Meshes/Node/Blocks/IntFloatConverterBlock.js +81 -0
- package/Meshes/Node/Blocks/IntFloatConverterBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Matrices/alignBlock.d.ts +31 -0
- package/Meshes/Node/Blocks/Matrices/alignBlock.js +58 -0
- package/Meshes/Node/Blocks/Matrices/alignBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Matrices/rotationXBlock.d.ts +28 -0
- package/Meshes/Node/Blocks/Matrices/rotationXBlock.js +53 -0
- package/Meshes/Node/Blocks/Matrices/rotationXBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Matrices/rotationYBlock.d.ts +28 -0
- package/Meshes/Node/Blocks/Matrices/rotationYBlock.js +53 -0
- package/Meshes/Node/Blocks/Matrices/rotationYBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Matrices/rotationZBlock.d.ts +28 -0
- package/Meshes/Node/Blocks/Matrices/rotationZBlock.js +53 -0
- package/Meshes/Node/Blocks/Matrices/rotationZBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Matrices/scalingBlock.d.ts +28 -0
- package/Meshes/Node/Blocks/Matrices/scalingBlock.js +54 -0
- package/Meshes/Node/Blocks/Matrices/scalingBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Matrices/translationBlock.d.ts +28 -0
- package/Meshes/Node/Blocks/Matrices/translationBlock.js +54 -0
- package/Meshes/Node/Blocks/Matrices/translationBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Set/setColorsBlock.d.ts +44 -0
- package/Meshes/Node/Blocks/Set/setColorsBlock.js +91 -0
- package/Meshes/Node/Blocks/Set/setColorsBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.d.ts +36 -0
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js +84 -0
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Set/setNormalsBlock.d.ts +44 -0
- package/Meshes/Node/Blocks/Set/setNormalsBlock.js +91 -0
- package/Meshes/Node/Blocks/Set/setNormalsBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Set/setPositionsBlock.d.ts +44 -0
- package/Meshes/Node/Blocks/Set/setPositionsBlock.js +82 -0
- package/Meshes/Node/Blocks/Set/setPositionsBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Set/setTangentsBlock.d.ts +44 -0
- package/Meshes/Node/Blocks/Set/setTangentsBlock.js +91 -0
- package/Meshes/Node/Blocks/Set/setTangentsBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Set/setUVsBlock.d.ts +55 -0
- package/Meshes/Node/Blocks/Set/setUVsBlock.js +145 -0
- package/Meshes/Node/Blocks/Set/setUVsBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/boxBlock.d.ts +68 -0
- package/Meshes/Node/Blocks/Sources/boxBlock.js +175 -0
- package/Meshes/Node/Blocks/Sources/boxBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/capsuleBlock.d.ts +52 -0
- package/Meshes/Node/Blocks/Sources/capsuleBlock.js +117 -0
- package/Meshes/Node/Blocks/Sources/capsuleBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/cylinderBlock.d.ts +64 -0
- package/Meshes/Node/Blocks/Sources/cylinderBlock.js +143 -0
- package/Meshes/Node/Blocks/Sources/cylinderBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/discBlock.d.ts +48 -0
- package/Meshes/Node/Blocks/Sources/discBlock.js +104 -0
- package/Meshes/Node/Blocks/Sources/discBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/gridBlock.d.ts +56 -0
- package/Meshes/Node/Blocks/Sources/gridBlock.js +125 -0
- package/Meshes/Node/Blocks/Sources/gridBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.d.ts +56 -0
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.js +120 -0
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/meshBlock.d.ts +38 -0
- package/Meshes/Node/Blocks/Sources/meshBlock.js +78 -0
- package/Meshes/Node/Blocks/Sources/meshBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/planeBlock.d.ts +48 -0
- package/Meshes/Node/Blocks/Sources/planeBlock.js +118 -0
- package/Meshes/Node/Blocks/Sources/planeBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/sphereBlock.d.ts +64 -0
- package/Meshes/Node/Blocks/Sources/sphereBlock.js +136 -0
- package/Meshes/Node/Blocks/Sources/sphereBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Sources/torusBlock.d.ts +48 -0
- package/Meshes/Node/Blocks/Sources/torusBlock.js +104 -0
- package/Meshes/Node/Blocks/Sources/torusBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Teleport/teleportInBlock.d.ts +37 -0
- package/Meshes/Node/Blocks/Teleport/teleportInBlock.js +75 -0
- package/Meshes/Node/Blocks/Teleport/teleportInBlock.js.map +1 -0
- package/Meshes/Node/Blocks/Teleport/teleportOutBlock.d.ts +50 -0
- package/Meshes/Node/Blocks/Teleport/teleportOutBlock.js +105 -0
- package/Meshes/Node/Blocks/Teleport/teleportOutBlock.js.map +1 -0
- package/Meshes/Node/Blocks/computeNormalsBlock.d.ts +26 -0
- package/Meshes/Node/Blocks/computeNormalsBlock.js +49 -0
- package/Meshes/Node/Blocks/computeNormalsBlock.js.map +1 -0
- package/Meshes/Node/Blocks/conditionBlock.d.ts +72 -0
- package/Meshes/Node/Blocks/conditionBlock.js +174 -0
- package/Meshes/Node/Blocks/conditionBlock.js.map +1 -0
- package/Meshes/Node/Blocks/debugBlock.d.ts +34 -0
- package/Meshes/Node/Blocks/debugBlock.js +63 -0
- package/Meshes/Node/Blocks/debugBlock.js.map +1 -0
- package/Meshes/Node/Blocks/geometryElbowBlock.d.ts +31 -0
- package/Meshes/Node/Blocks/geometryElbowBlock.js +53 -0
- package/Meshes/Node/Blocks/geometryElbowBlock.js.map +1 -0
- package/Meshes/Node/Blocks/geometryInputBlock.d.ts +71 -0
- package/Meshes/Node/Blocks/geometryInputBlock.js +218 -0
- package/Meshes/Node/Blocks/geometryInputBlock.js.map +1 -0
- package/Meshes/Node/Blocks/geometryOutputBlock.d.ts +30 -0
- package/Meshes/Node/Blocks/geometryOutputBlock.js +42 -0
- package/Meshes/Node/Blocks/geometryOutputBlock.js.map +1 -0
- package/Meshes/Node/Blocks/geometryTransformBlock.d.ts +53 -0
- package/Meshes/Node/Blocks/geometryTransformBlock.js +134 -0
- package/Meshes/Node/Blocks/geometryTransformBlock.js.map +1 -0
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.d.ts +77 -0
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.js +248 -0
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.js.map +1 -0
- package/Meshes/Node/Blocks/mapRangeBlock.d.ts +42 -0
- package/Meshes/Node/Blocks/mapRangeBlock.js +84 -0
- package/Meshes/Node/Blocks/mapRangeBlock.js.map +1 -0
- package/Meshes/Node/Blocks/mathBlock.d.ts +58 -0
- package/Meshes/Node/Blocks/mathBlock.js +233 -0
- package/Meshes/Node/Blocks/mathBlock.js.map +1 -0
- package/Meshes/Node/Blocks/mergeGeometryBlock.d.ts +55 -0
- package/Meshes/Node/Blocks/mergeGeometryBlock.js +123 -0
- package/Meshes/Node/Blocks/mergeGeometryBlock.js.map +1 -0
- package/Meshes/Node/Blocks/noiseBlock.d.ts +49 -0
- package/Meshes/Node/Blocks/noiseBlock.js +149 -0
- package/Meshes/Node/Blocks/noiseBlock.js.map +1 -0
- package/Meshes/Node/Blocks/normalizeVectorBlock.d.ts +27 -0
- package/Meshes/Node/Blocks/normalizeVectorBlock.js +51 -0
- package/Meshes/Node/Blocks/normalizeVectorBlock.js.map +1 -0
- package/Meshes/Node/Blocks/randomBlock.d.ts +31 -0
- package/Meshes/Node/Blocks/randomBlock.js +99 -0
- package/Meshes/Node/Blocks/randomBlock.js.map +1 -0
- package/Meshes/Node/Blocks/vectorConverterBlock.d.ts +84 -0
- package/Meshes/Node/Blocks/vectorConverterBlock.js +238 -0
- package/Meshes/Node/Blocks/vectorConverterBlock.js.map +1 -0
- package/Meshes/Node/Enums/nodeGeometryConnectionPointTypes.d.ts +27 -0
- package/Meshes/Node/Enums/nodeGeometryConnectionPointTypes.js +29 -0
- package/Meshes/Node/Enums/nodeGeometryConnectionPointTypes.js.map +1 -0
- package/Meshes/Node/Enums/nodeGeometryContextualSources.d.ts +33 -0
- package/Meshes/Node/Enums/nodeGeometryContextualSources.js +35 -0
- package/Meshes/Node/Enums/nodeGeometryContextualSources.js.map +1 -0
- package/Meshes/Node/Interfaces/nodeGeometryExecutionContext.d.ts +25 -0
- package/Meshes/Node/Interfaces/nodeGeometryExecutionContext.js +2 -0
- package/Meshes/Node/Interfaces/nodeGeometryExecutionContext.js.map +1 -0
- package/Meshes/Node/index.d.ts +49 -0
- package/Meshes/Node/index.js +50 -0
- package/Meshes/Node/index.js.map +1 -0
- package/Meshes/Node/nodeGeometry.d.ts +180 -0
- package/Meshes/Node/nodeGeometry.js +529 -0
- package/Meshes/Node/nodeGeometry.js.map +1 -0
- package/Meshes/Node/nodeGeometryBlock.d.ts +166 -0
- package/Meshes/Node/nodeGeometryBlock.js +432 -0
- package/Meshes/Node/nodeGeometryBlock.js.map +1 -0
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.d.ts +176 -0
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +305 -0
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -0
- package/Meshes/Node/nodeGeometryBuildState.d.ts +57 -0
- package/Meshes/Node/nodeGeometryBuildState.js +178 -0
- package/Meshes/Node/nodeGeometryBuildState.js.map +1 -0
- package/Meshes/index.d.ts +1 -0
- package/Meshes/index.js +1 -0
- package/Meshes/index.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +37 -2
- package/Meshes/mesh.vertexData.js +425 -95
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/meshUVSpaceRenderer.js +1 -0
- package/Meshes/meshUVSpaceRenderer.js.map +1 -1
- package/Particles/IGPUParticleSystemPlatform.d.ts +1 -0
- package/Particles/IGPUParticleSystemPlatform.js.map +1 -1
- package/Particles/computeShaderParticleSystem.d.ts +1 -0
- package/Particles/computeShaderParticleSystem.js +5 -0
- package/Particles/computeShaderParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.js +11 -1
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/webgl2ParticleSystem.d.ts +1 -0
- package/Particles/webgl2ParticleSystem.js +5 -0
- package/Particles/webgl2ParticleSystem.js.map +1 -1
- package/Physics/v2/IPhysicsEnginePlugin.d.ts +20 -2
- package/Physics/v2/IPhysicsEnginePlugin.js +8 -0
- package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.d.ts +27 -2
- package/Physics/v2/Plugins/havokPlugin.js +98 -11
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/Physics/v2/physicsAggregate.d.ts +4 -0
- package/Physics/v2/physicsAggregate.js +3 -0
- package/Physics/v2/physicsAggregate.js.map +1 -1
- package/Physics/v2/physicsBody.d.ts +7 -0
- package/Physics/v2/physicsBody.js +10 -0
- package/Physics/v2/physicsBody.js.map +1 -1
- package/Physics/v2/physicsShape.d.ts +3 -0
- package/Physics/v2/physicsShape.js +11 -0
- package/Physics/v2/physicsShape.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +6 -4
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
- package/PostProcesses/blurPostProcess.js +5 -5
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/depthOfFieldBlurPostProcess.js +1 -1
- package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -1
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderer.d.ts +0 -1
- package/Rendering/fluidRenderer/fluidRenderer.js +0 -1
- package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +16 -8
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js +9 -4
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +8 -4
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.js +20 -10
- package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -3
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js +9 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js +13 -6
- package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js +36 -18
- package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +2 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +6 -3
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +4 -2
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragment.js +40 -20
- package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js +11 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +57 -7
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js +2 -1
- package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js +2 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.js +20 -7
- package/Shaders/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +12 -6
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +12 -6
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.js +12 -6
- package/Shaders/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +12 -6
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +12 -6
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/decalFragment.js +6 -3
- package/Shaders/ShadersInclude/decalFragment.js.map +1 -1
- package/Shaders/ShadersInclude/decalFragmentDeclaration.js +2 -1
- package/Shaders/ShadersInclude/decalFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/decalVertexDeclaration.js +2 -1
- package/Shaders/ShadersInclude/decalVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +48 -24
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +5 -2
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +22 -11
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/depthPrePass.js +2 -1
- package/Shaders/ShadersInclude/depthPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.js +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.js.map +1 -1
- package/Shaders/ShadersInclude/fibonacci.js +4 -1
- package/Shaders/ShadersInclude/fibonacci.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragment.js +6 -3
- package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js +9 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertex.js +2 -1
- package/Shaders/ShadersInclude/fogVertex.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js +2 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.js +3 -1
- package/Shaders/ShadersInclude/fresnelFunction.js.map +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.js +20 -2
- package/Shaders/ShadersInclude/harmonicsFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +48 -17
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +98 -28
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js +2 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js +18 -9
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js +71 -28
- package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js +4 -1
- package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js +14 -7
- package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/instancesVertex.js +12 -6
- package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.js +9 -4
- package/Shaders/ShadersInclude/kernelBlurFragment.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.js +8 -4
- package/Shaders/ShadersInclude/kernelBlurFragment2.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +186 -93
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js +54 -22
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js +51 -20
- package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +18 -9
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js +15 -7
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +48 -20
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js +2 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.js +2 -1
- package/Shaders/ShadersInclude/logDepthFragment.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.js +2 -1
- package/Shaders/ShadersInclude/logDepthVertex.js.map +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +2 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js +2 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.js +5 -2
- package/Shaders/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js +2 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js +16 -8
- package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +8 -4
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +2 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +7 -2
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js +5 -2
- package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitFragment.js +24 -12
- package/Shaders/ShadersInclude/oitFragment.js.map +1 -1
- package/Shaders/ShadersInclude/packingFunctions.js +4 -1
- package/Shaders/ShadersInclude/packingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +118 -42
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +49 -20
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +25 -8
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +26 -11
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +32 -12
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js +194 -84
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +12 -6
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +30 -14
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +56 -28
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +18 -9
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +14 -7
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +8 -4
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js +36 -15
- package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +8 -4
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +8 -4
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +10 -5
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js +12 -6
- package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js +8 -4
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js +197 -77
- package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js +79 -36
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js +145 -60
- package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js +226 -100
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +146 -67
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +34 -8
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +53 -22
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +12 -5
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +88 -44
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +10 -5
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +30 -15
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js +27 -8
- package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js +9 -4
- package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +4 -2
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +64 -32
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js +2 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +2 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js +24 -12
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js +4 -2
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.js +52 -17
- package/Shaders/ShadersInclude/reflectionFunction.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +2 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +4 -2
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js +2 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.js +18 -6
- package/Shaders/ShadersInclude/samplerVertexImplementation.js.map +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +6 -3
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js +6 -3
- package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js +6 -3
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/screenSpaceRayTrace.js +109 -24
- package/Shaders/ShadersInclude/screenSpaceRayTrace.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.js +20 -10
- package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +10 -5
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +2 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +2 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +8 -4
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js +12 -6
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +6 -3
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +311 -54
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.js +14 -7
- package/Shaders/ShadersInclude/shadowsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +2 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js +2 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.js +4 -2
- package/Shaders/ShadersInclude/uvVariableDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/vertexColorMixing.js +8 -4
- package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
- package/Shaders/anaglyph.fragment.js +4 -2
- package/Shaders/anaglyph.fragment.js.map +1 -1
- package/Shaders/background.fragment.js +133 -62
- package/Shaders/background.fragment.js.map +1 -1
- package/Shaders/background.vertex.js +63 -30
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/blackAndWhite.fragment.js +5 -2
- package/Shaders/blackAndWhite.fragment.js.map +1 -1
- package/Shaders/bloomMerge.fragment.js +5 -2
- package/Shaders/bloomMerge.fragment.js.map +1 -1
- package/Shaders/blur.fragment.js +6 -2
- package/Shaders/blur.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js +4 -2
- package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js +12 -6
- package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
- package/Shaders/chromaticAberration.fragment.js +8 -2
- package/Shaders/chromaticAberration.fragment.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.js +9 -4
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Shaders/clearQuad.fragment.js +2 -1
- package/Shaders/clearQuad.fragment.js.map +1 -1
- package/Shaders/clearQuad.vertex.js +11 -4
- package/Shaders/clearQuad.vertex.js.map +1 -1
- package/Shaders/color.fragment.js +10 -5
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.js +18 -9
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/colorCorrection.fragment.js +10 -2
- package/Shaders/colorCorrection.fragment.js.map +1 -1
- package/Shaders/convolution.fragment.js +23 -2
- package/Shaders/convolution.fragment.js.map +1 -1
- package/Shaders/copyTextureToTexture.fragment.js +12 -5
- package/Shaders/copyTextureToTexture.fragment.js.map +1 -1
- package/Shaders/default.fragment.js +142 -71
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.js +58 -29
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/depth.fragment.js +24 -11
- package/Shaders/depth.fragment.js.map +1 -1
- package/Shaders/depth.vertex.js +35 -17
- package/Shaders/depth.vertex.js.map +1 -1
- package/Shaders/depthBoxBlur.fragment.js +6 -2
- package/Shaders/depthBoxBlur.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.js +28 -3
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js +17 -8
- package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
- package/Shaders/displayPass.fragment.js +4 -2
- package/Shaders/displayPass.fragment.js.map +1 -1
- package/Shaders/extractHighlights.fragment.js +4 -2
- package/Shaders/extractHighlights.fragment.js.map +1 -1
- package/Shaders/filter.fragment.js +4 -2
- package/Shaders/filter.fragment.js.map +1 -1
- package/Shaders/fluidRenderingBilateralBlur.fragment.js +4 -1
- package/Shaders/fluidRenderingBilateralBlur.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.fragment.js +22 -11
- package/Shaders/fluidRenderingParticleDepth.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js +10 -5
- package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleDiffuse.fragment.js +2 -1
- package/Shaders/fluidRenderingParticleDiffuse.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDiffuse.vertex.js +0 -1
- package/Shaders/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleThickness.fragment.js +2 -1
- package/Shaders/fluidRenderingParticleThickness.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js +2 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/Shaders/fluidRenderingRender.fragment.js +76 -35
- package/Shaders/fluidRenderingRender.fragment.js.map +1 -1
- package/Shaders/fluidRenderingStandardBlur.fragment.js +4 -1
- package/Shaders/fluidRenderingStandardBlur.fragment.js.map +1 -1
- package/Shaders/fxaa.fragment.js +47 -6
- package/Shaders/fxaa.fragment.js.map +1 -1
- package/Shaders/fxaa.vertex.js +6 -3
- package/Shaders/fxaa.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.js +85 -42
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/geometry.vertex.js +91 -45
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js +7 -2
- package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.fragment.js +46 -22
- package/Shaders/glowMapGeneration.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.vertex.js +41 -20
- package/Shaders/glowMapGeneration.vertex.js.map +1 -1
- package/Shaders/glowMapMerge.fragment.js +20 -10
- package/Shaders/glowMapMerge.fragment.js.map +1 -1
- package/Shaders/glowMapMerge.vertex.js +6 -3
- package/Shaders/glowMapMerge.vertex.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.js +16 -8
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.js +77 -39
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/gpuUpdateParticles.fragment.js +2 -1
- package/Shaders/gpuUpdateParticles.fragment.js.map +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js +206 -100
- package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
- package/Shaders/grain.fragment.js +5 -2
- package/Shaders/grain.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.fragment.js +1 -1
- package/Shaders/hdrFiltering.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.vertex.js +6 -3
- package/Shaders/hdrFiltering.vertex.js.map +1 -1
- package/Shaders/highlights.fragment.js +4 -2
- package/Shaders/highlights.fragment.js.map +1 -1
- package/Shaders/imageProcessing.fragment.js +12 -6
- package/Shaders/imageProcessing.fragment.js.map +1 -1
- package/Shaders/kernelBlur.fragment.js +24 -11
- package/Shaders/kernelBlur.fragment.js.map +1 -1
- package/Shaders/kernelBlur.vertex.js +10 -5
- package/Shaders/kernelBlur.vertex.js.map +1 -1
- package/Shaders/layer.fragment.js +13 -6
- package/Shaders/layer.fragment.js.map +1 -1
- package/Shaders/layer.vertex.js +6 -3
- package/Shaders/layer.vertex.js.map +1 -1
- package/Shaders/lensFlare.fragment.js +6 -3
- package/Shaders/lensFlare.fragment.js.map +1 -1
- package/Shaders/lensFlare.vertex.js +6 -3
- package/Shaders/lensFlare.vertex.js.map +1 -1
- package/Shaders/lensHighlights.fragment.js +14 -5
- package/Shaders/lensHighlights.fragment.js.map +1 -1
- package/Shaders/line.fragment.js +6 -3
- package/Shaders/line.fragment.js.map +1 -1
- package/Shaders/line.vertex.js +8 -4
- package/Shaders/line.vertex.js.map +1 -1
- package/Shaders/meshUVSpaceRenderer.fragment.js +3 -1
- package/Shaders/meshUVSpaceRenderer.fragment.js.map +1 -1
- package/Shaders/meshUVSpaceRenderer.vertex.js +14 -7
- package/Shaders/meshUVSpaceRenderer.vertex.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.js +21 -8
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/motionBlur.fragment.js +35 -14
- package/Shaders/motionBlur.fragment.js.map +1 -1
- package/Shaders/noise.fragment.js +13 -2
- package/Shaders/noise.fragment.js.map +1 -1
- package/Shaders/oitBackBlend.fragment.js +2 -1
- package/Shaders/oitBackBlend.fragment.js.map +1 -1
- package/Shaders/oitFinal.fragment.js +4 -1
- package/Shaders/oitFinal.fragment.js.map +1 -1
- package/Shaders/outline.fragment.js +11 -5
- package/Shaders/outline.fragment.js.map +1 -1
- package/Shaders/outline.vertex.js +27 -13
- package/Shaders/outline.vertex.js.map +1 -1
- package/Shaders/particles.fragment.js +18 -9
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.js +58 -29
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/pass.fragment.js +4 -2
- package/Shaders/pass.fragment.js.map +1 -1
- package/Shaders/passCube.fragment.js +17 -8
- package/Shaders/passCube.fragment.js.map +1 -1
- package/Shaders/pbr.fragment.js +389 -154
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.js +70 -35
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/postprocess.vertex.js +6 -3
- package/Shaders/postprocess.vertex.js.map +1 -1
- package/Shaders/procedural.vertex.js +6 -3
- package/Shaders/procedural.vertex.js.map +1 -1
- package/Shaders/refraction.fragment.js +1 -1
- package/Shaders/refraction.fragment.js.map +1 -1
- package/Shaders/rgbdDecode.fragment.js +4 -2
- package/Shaders/rgbdDecode.fragment.js.map +1 -1
- package/Shaders/rgbdEncode.fragment.js +4 -2
- package/Shaders/rgbdEncode.fragment.js.map +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js +11 -3
- package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection.fragment.js +57 -15
- package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection2.fragment.js +125 -51
- package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection2Blur.fragment.js +7 -1
- package/Shaders/screenSpaceReflection2Blur.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js +28 -13
- package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js.map +1 -1
- package/Shaders/shadowMap.fragment.js +14 -6
- package/Shaders/shadowMap.fragment.js.map +1 -1
- package/Shaders/shadowMap.vertex.js +35 -17
- package/Shaders/shadowMap.vertex.js.map +1 -1
- package/Shaders/sharpen.fragment.js +8 -2
- package/Shaders/sharpen.fragment.js.map +1 -1
- package/Shaders/spriteMap.fragment.js +17 -4
- package/Shaders/spriteMap.fragment.js.map +1 -1
- package/Shaders/spriteMap.vertex.js +2 -1
- package/Shaders/spriteMap.vertex.js.map +1 -1
- package/Shaders/sprites.fragment.js +17 -7
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.js +10 -4
- package/Shaders/sprites.vertex.js.map +1 -1
- package/Shaders/ssao.fragment.js +0 -2
- package/Shaders/ssao.fragment.js.map +1 -1
- package/Shaders/ssao2.fragment.js +0 -2
- package/Shaders/ssao2.fragment.js.map +1 -1
- package/Shaders/ssaoCombine.fragment.js +8 -4
- package/Shaders/ssaoCombine.fragment.js.map +1 -1
- package/Shaders/standard.fragment.js +101 -25
- package/Shaders/standard.fragment.js.map +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js +14 -6
- package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
- package/Shaders/subSurfaceScattering.fragment.js +58 -12
- package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
- package/Shaders/tonemap.fragment.js +21 -9
- package/Shaders/tonemap.fragment.js.map +1 -1
- package/Shaders/velocity.fragment.js +8 -4
- package/Shaders/velocity.fragment.js.map +1 -1
- package/Shaders/velocity.vertex.js +18 -9
- package/Shaders/velocity.vertex.js.map +1 -1
- package/Shaders/volumetricLightScattering.fragment.js +9 -4
- package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js +12 -5
- package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js +23 -11
- package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js +6 -2
- package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js +4 -2
- package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +24 -12
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -3
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +14 -6
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js +36 -18
- package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +20 -7
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +12 -6
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +12 -6
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +12 -6
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +14 -7
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.js +16 -8
- package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +3 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +16 -8
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +8 -4
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +2 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +6 -2
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +8 -3
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +229 -90
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/ShadersWGSL/postprocess.vertex.js +9 -4
- package/ShadersWGSL/postprocess.vertex.js.map +1 -1
- package/assetContainer.d.ts +7 -0
- package/assetContainer.js +46 -0
- package/assetContainer.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.js +5 -0
- package/scene.js.map +1 -1
- package/Materials/Node/nodeMaterialDecorator.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meshVertexDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/meshVertexDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"meshVertexDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/meshVertexDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG;CACd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"meshVertexDeclaration\";\nconst shader = `uniform mat4 world;uniform float visibility;\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const meshVertexDeclaration = { name, shader };\n"]}
|
|
@@ -3,19 +3,27 @@ import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
|
3
3
|
const name = "morphTargetsVertex";
|
|
4
4
|
const shader = `#ifdef MORPHTARGETS
|
|
5
5
|
#ifdef MORPHTARGETS_TEXTURE
|
|
6
|
-
vertexID=float(gl_VertexID)*morphTargetTextureInfo.x;
|
|
7
|
-
|
|
6
|
+
vertexID=float(gl_VertexID)*morphTargetTextureInfo.x;positionUpdated+=(readVector3FromRawSampler({X},vertexID)-position)*morphTargetInfluences[{X}];vertexID+=1.0;
|
|
7
|
+
#ifdef MORPHTARGETS_NORMAL
|
|
8
|
+
normalUpdated+=(readVector3FromRawSampler({X},vertexID) -normal)*morphTargetInfluences[{X}];vertexID+=1.0;
|
|
9
|
+
#endif
|
|
8
10
|
#ifdef MORPHTARGETS_UV
|
|
9
|
-
uvUpdated+=(readVector3FromRawSampler({X},vertexID).xy-uv)*morphTargetInfluences[{X}];
|
|
11
|
+
uvUpdated+=(readVector3FromRawSampler({X},vertexID).xy-uv)*morphTargetInfluences[{X}];vertexID+=1.0;
|
|
12
|
+
#endif
|
|
10
13
|
#ifdef MORPHTARGETS_TANGENT
|
|
11
|
-
tangentUpdated.xyz+=(readVector3FromRawSampler({X},vertexID) -tangent.xyz)*morphTargetInfluences[{X}];
|
|
14
|
+
tangentUpdated.xyz+=(readVector3FromRawSampler({X},vertexID) -tangent.xyz)*morphTargetInfluences[{X}];
|
|
15
|
+
#endif
|
|
12
16
|
#else
|
|
13
|
-
positionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];
|
|
14
|
-
|
|
17
|
+
positionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];
|
|
18
|
+
#ifdef MORPHTARGETS_NORMAL
|
|
19
|
+
normalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];
|
|
20
|
+
#endif
|
|
15
21
|
#ifdef MORPHTARGETS_TANGENT
|
|
16
|
-
tangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];
|
|
22
|
+
tangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];
|
|
23
|
+
#endif
|
|
17
24
|
#ifdef MORPHTARGETS_UV
|
|
18
|
-
uvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];
|
|
25
|
+
uvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];
|
|
26
|
+
#endif
|
|
19
27
|
#endif
|
|
20
28
|
#endif
|
|
21
29
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morphTargetsVertex.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/morphTargetsVertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"morphTargetsVertex.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/morphTargetsVertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"morphTargetsVertex\";\nconst shader = `#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE \nvertexID=float(gl_VertexID)*morphTargetTextureInfo.x;positionUpdated+=(readVector3FromRawSampler({X},vertexID)-position)*morphTargetInfluences[{X}];vertexID+=1.0;\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(readVector3FromRawSampler({X},vertexID) -normal)*morphTargetInfluences[{X}];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(readVector3FromRawSampler({X},vertexID).xy-uv)*morphTargetInfluences[{X}];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(readVector3FromRawSampler({X},vertexID) -tangent.xyz)*morphTargetInfluences[{X}];\n#endif\n#else\npositionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const morphTargetsVertex = { name, shader };\n"]}
|
|
@@ -3,12 +3,16 @@ import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
|
3
3
|
const name = "morphTargetsVertexDeclaration";
|
|
4
4
|
const shader = `#ifdef MORPHTARGETS
|
|
5
5
|
#ifndef MORPHTARGETS_TEXTURE
|
|
6
|
-
attribute vec3 position{X};
|
|
7
|
-
|
|
6
|
+
attribute vec3 position{X};
|
|
7
|
+
#ifdef MORPHTARGETS_NORMAL
|
|
8
|
+
attribute vec3 normal{X};
|
|
9
|
+
#endif
|
|
8
10
|
#ifdef MORPHTARGETS_TANGENT
|
|
9
|
-
attribute vec3 tangent{X};
|
|
11
|
+
attribute vec3 tangent{X};
|
|
12
|
+
#endif
|
|
10
13
|
#ifdef MORPHTARGETS_UV
|
|
11
|
-
attribute vec2 uv_{X};
|
|
14
|
+
attribute vec2 uv_{X};
|
|
15
|
+
#endif
|
|
12
16
|
#endif
|
|
13
17
|
#endif
|
|
14
18
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morphTargetsVertexDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/morphTargetsVertexDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,+BAA+B,CAAC;AAC7C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;CAcd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"morphTargetsVertexDeclaration\";\nconst shader = `#ifdef MORPHTARGETS\n#ifndef MORPHTARGETS_TEXTURE\nattribute vec3 position{X};\
|
|
1
|
+
{"version":3,"file":"morphTargetsVertexDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/morphTargetsVertexDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,+BAA+B,CAAC;AAC7C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;CAcd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"morphTargetsVertexDeclaration\";\nconst shader = `#ifdef MORPHTARGETS\n#ifndef MORPHTARGETS_TEXTURE\nattribute vec3 position{X};\n#ifdef MORPHTARGETS_NORMAL\nattribute vec3 normal{X};\n#endif\n#ifdef MORPHTARGETS_TANGENT\nattribute vec3 tangent{X};\n#endif\n#ifdef MORPHTARGETS_UV\nattribute vec2 uv_{X};\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const morphTargetsVertexDeclaration = { name, shader };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morphTargetsVertexGlobal.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/morphTargetsVertexGlobal.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,0BAA0B,CAAC;AACxC,MAAM,MAAM,GAAG;;;;;CAKd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"morphTargetsVertexGlobal\";\nconst shader = `#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\nfloat vertexID;\
|
|
1
|
+
{"version":3,"file":"morphTargetsVertexGlobal.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/morphTargetsVertexGlobal.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,0BAA0B,CAAC;AACxC,MAAM,MAAM,GAAG;;;;;CAKd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"morphTargetsVertexGlobal\";\nconst shader = `#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\nfloat vertexID;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const morphTargetsVertexGlobal = { name, shader };\n"]}
|
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
3
|
const name = "morphTargetsVertexGlobalDeclaration";
|
|
4
4
|
const shader = `#ifdef MORPHTARGETS
|
|
5
|
-
uniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];
|
|
6
|
-
|
|
5
|
+
uniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];
|
|
6
|
+
#ifdef MORPHTARGETS_TEXTURE
|
|
7
|
+
precision mediump sampler2DArray;
|
|
8
|
+
uniform float morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];uniform vec3 morphTargetTextureInfo;uniform sampler2DArray morphTargets;vec3 readVector3FromRawSampler(int targetIndex,float vertexIndex)
|
|
9
|
+
{
|
|
10
|
+
float y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV).xyz;}
|
|
11
|
+
#endif
|
|
7
12
|
#endif
|
|
8
13
|
`;
|
|
9
14
|
// Sideeffect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morphTargetsVertexGlobalDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,qCAAqC,CAAC;AACnD,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"morphTargetsVertexGlobalDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,qCAAqC,CAAC;AACnD,MAAM,MAAM,GAAG;;;;;;;;;CASd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"morphTargetsVertexGlobalDeclaration\";\nconst shader = `#ifdef MORPHTARGETS\nuniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];\n#ifdef MORPHTARGETS_TEXTURE \nprecision mediump sampler2DArray; \nuniform float morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];uniform vec3 morphTargetTextureInfo;uniform sampler2DArray morphTargets;vec3 readVector3FromRawSampler(int targetIndex,float vertexIndex)\n{ \nfloat y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV).xyz;}\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const morphTargetsVertexGlobalDeclaration = { name, shader };\n"]}
|
|
@@ -3,8 +3,11 @@ import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
|
3
3
|
const name = "oitDeclaration";
|
|
4
4
|
const shader = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY
|
|
5
5
|
#extension GL_EXT_draw_buffers : require
|
|
6
|
-
layout(location=0) out vec2 depth;
|
|
7
|
-
|
|
6
|
+
layout(location=0) out vec2 depth;
|
|
7
|
+
layout(location=1) out vec4 frontColor;layout(location=2) out vec4 backColor;
|
|
8
|
+
#define MAX_DEPTH 99999.0
|
|
9
|
+
highp vec4 gl_FragColor;uniform sampler2D oitDepthSampler;uniform sampler2D oitFrontColorSampler;
|
|
10
|
+
#endif
|
|
8
11
|
`;
|
|
9
12
|
// Sideeffect
|
|
10
13
|
ShaderStore.IncludesShadersStore[name] = shader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oitDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/oitDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAC9B,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"oitDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/oitDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAC9B,MAAM,MAAM,GAAG;;;;;;;CAOd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"oitDeclaration\";\nconst shader = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY\n#extension GL_EXT_draw_buffers : require\nlayout(location=0) out vec2 depth; \nlayout(location=1) out vec4 frontColor;layout(location=2) out vec4 backColor;\n#define MAX_DEPTH 99999.0\nhighp vec4 gl_FragColor;uniform sampler2D oitDepthSampler;uniform sampler2D oitFrontColorSampler;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const oitDeclaration = { name, shader };\n"]}
|
|
@@ -2,18 +2,30 @@
|
|
|
2
2
|
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
3
|
const name = "oitFragment";
|
|
4
4
|
const shader = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY
|
|
5
|
-
float fragDepth=gl_FragCoord.z;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
5
|
+
float fragDepth=gl_FragCoord.z;
|
|
6
|
+
#ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS
|
|
7
|
+
uint halfFloat=packHalf2x16(vec2(fragDepth));vec2 full=unpackHalf2x16(halfFloat);fragDepth=full.x;
|
|
8
|
+
#endif
|
|
9
|
+
ivec2 fragCoord=ivec2(gl_FragCoord.xy);vec2 lastDepth=texelFetch(oitDepthSampler,fragCoord,0).rg;vec4 lastFrontColor=texelFetch(oitFrontColorSampler,fragCoord,0);depth.rg=vec2(-MAX_DEPTH);frontColor=lastFrontColor;backColor=vec4(0.0);
|
|
10
|
+
#ifdef USE_REVERSE_DEPTHBUFFER
|
|
11
|
+
float furthestDepth=-lastDepth.x;float nearestDepth=lastDepth.y;
|
|
12
|
+
#else
|
|
13
|
+
float nearestDepth=-lastDepth.x;float furthestDepth=lastDepth.y;
|
|
14
|
+
#endif
|
|
15
|
+
float alphaMultiplier=1.0-lastFrontColor.a;
|
|
16
|
+
#ifdef USE_REVERSE_DEPTHBUFFER
|
|
17
|
+
if (fragDepth>nearestDepth || fragDepth<furthestDepth) {
|
|
18
|
+
#else
|
|
19
|
+
if (fragDepth<nearestDepth || fragDepth>furthestDepth) {
|
|
20
|
+
#endif
|
|
21
|
+
return;}
|
|
22
|
+
#ifdef USE_REVERSE_DEPTHBUFFER
|
|
23
|
+
if (fragDepth<nearestDepth && fragDepth>furthestDepth) {
|
|
24
|
+
#else
|
|
25
|
+
if (fragDepth>nearestDepth && fragDepth<furthestDepth) {
|
|
26
|
+
#endif
|
|
27
|
+
depth.rg=vec2(-fragDepth,fragDepth);return;}
|
|
28
|
+
#endif
|
|
17
29
|
`;
|
|
18
30
|
// Sideeffect
|
|
19
31
|
ShaderStore.IncludesShadersStore[name] = shader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oitFragment.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/oitFragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,aAAa,CAAC;AAC3B,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"oitFragment.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/oitFragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,aAAa,CAAC;AAC3B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"oitFragment\";\nconst shader = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY\nfloat fragDepth=gl_FragCoord.z; \n#ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS\nuint halfFloat=packHalf2x16(vec2(fragDepth));vec2 full=unpackHalf2x16(halfFloat);fragDepth=full.x;\n#endif\nivec2 fragCoord=ivec2(gl_FragCoord.xy);vec2 lastDepth=texelFetch(oitDepthSampler,fragCoord,0).rg;vec4 lastFrontColor=texelFetch(oitFrontColorSampler,fragCoord,0);depth.rg=vec2(-MAX_DEPTH);frontColor=lastFrontColor;backColor=vec4(0.0);\n#ifdef USE_REVERSE_DEPTHBUFFER\nfloat furthestDepth=-lastDepth.x;float nearestDepth=lastDepth.y;\n#else\nfloat nearestDepth=-lastDepth.x;float furthestDepth=lastDepth.y;\n#endif\nfloat alphaMultiplier=1.0-lastFrontColor.a;\n#ifdef USE_REVERSE_DEPTHBUFFER\nif (fragDepth>nearestDepth || fragDepth<furthestDepth) {\n#else\nif (fragDepth<nearestDepth || fragDepth>furthestDepth) {\n#endif\nreturn;}\n#ifdef USE_REVERSE_DEPTHBUFFER\nif (fragDepth<nearestDepth && fragDepth>furthestDepth) {\n#else\nif (fragDepth>nearestDepth && fragDepth<furthestDepth) {\n#endif\ndepth.rg=vec2(-fragDepth,fragDepth);return;}\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const oitFragment = { name, shader };\n"]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
// Do not edit.
|
|
2
2
|
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
3
|
const name = "packingFunctions";
|
|
4
|
-
const shader = `vec4 pack(float depth)
|
|
4
|
+
const shader = `vec4 pack(float depth)
|
|
5
|
+
{const vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}
|
|
6
|
+
float unpack(vec4 color)
|
|
7
|
+
{const vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}`;
|
|
5
8
|
// Sideeffect
|
|
6
9
|
ShaderStore.IncludesShadersStore[name] = shader;
|
|
7
10
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packingFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/packingFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"packingFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/packingFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,MAAM,GAAG;;;kHAGmG,CAAC;AACnH,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"packingFunctions\";\nconst shader = `vec4 pack(float depth)\n{const vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}\nfloat unpack(vec4 color)\n{const vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const packingFunctions = { name, shader };\n"]}
|
|
@@ -3,56 +3,134 @@ import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
|
3
3
|
const name = "pbrBRDFFunctions";
|
|
4
4
|
const shader = `#define FRESNEL_MAXIMUM_ON_ROUGH 0.25
|
|
5
5
|
#ifdef MS_BRDF_ENERGY_CONSERVATION
|
|
6
|
-
vec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {
|
|
6
|
+
vec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}
|
|
7
|
+
#endif
|
|
7
8
|
#ifdef ENVIRONMENTBRDF
|
|
8
|
-
vec3 getBRDFLookup(float NdotV,float perceptualRoughness) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
vec3
|
|
9
|
+
vec3 getBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(NdotV,perceptualRoughness);vec4 brdfLookup=texture2D(environmentBrdfSampler,UV);
|
|
10
|
+
#ifdef ENVIRONMENTBRDF_RGBD
|
|
11
|
+
brdfLookup.rgb=fromRGBD(brdfLookup.rgba);
|
|
12
|
+
#endif
|
|
13
|
+
return brdfLookup.rgb;}
|
|
14
|
+
vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {
|
|
15
|
+
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
16
|
+
vec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;
|
|
17
|
+
#else
|
|
18
|
+
vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;
|
|
19
|
+
#endif
|
|
20
|
+
return reflectance;}
|
|
21
|
+
vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {
|
|
22
|
+
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
23
|
+
vec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);
|
|
24
|
+
#else
|
|
25
|
+
vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;
|
|
26
|
+
#endif
|
|
27
|
+
return reflectance;}
|
|
28
|
+
#endif
|
|
29
|
+
/* NOT USED
|
|
30
|
+
#if defined(SHEEN) && defined(SHEEN_SOFTER)
|
|
31
|
+
float getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)
|
|
32
|
+
{float c=1.0-NdotV;float c3=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}
|
|
33
|
+
#endif
|
|
34
|
+
*/
|
|
35
|
+
#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)
|
|
36
|
+
vec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)
|
|
37
|
+
{float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}
|
|
38
|
+
#endif
|
|
21
39
|
#if defined(SHEEN) && defined(ENVIRONMENTBRDF)
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
40
|
+
/**
|
|
41
|
+
* The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.
|
|
42
|
+
* The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table
|
|
43
|
+
*/
|
|
44
|
+
vec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}
|
|
45
|
+
#endif
|
|
46
|
+
vec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)
|
|
47
|
+
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
|
|
48
|
+
float fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)
|
|
49
|
+
{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}
|
|
50
|
+
#ifdef CLEARCOAT
|
|
51
|
+
vec3 getR0RemappedForClearCoat(vec3 f0) {
|
|
52
|
+
#ifdef CLEARCOAT_DEFAULTIOR
|
|
25
53
|
#ifdef MOBILE
|
|
26
|
-
return saturate(f0*(f0*0.526868+0.529324)-0.0482256);
|
|
27
|
-
|
|
54
|
+
return saturate(f0*(f0*0.526868+0.529324)-0.0482256);
|
|
55
|
+
#else
|
|
56
|
+
return saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);
|
|
57
|
+
#endif
|
|
28
58
|
#else
|
|
29
|
-
vec3 s=sqrt(f0);
|
|
30
|
-
|
|
59
|
+
vec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);
|
|
60
|
+
#endif
|
|
61
|
+
}
|
|
62
|
+
#endif
|
|
31
63
|
#ifdef IRIDESCENCE
|
|
32
|
-
const mat3 XYZ_TO_REC709=mat3(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
64
|
+
const mat3 XYZ_TO_REC709=mat3(
|
|
65
|
+
3.2404542,-0.9692660, 0.0556434,
|
|
66
|
+
-1.5371385, 1.8760108,-0.2040259,
|
|
67
|
+
-0.4985314, 0.0415560, 1.0572252
|
|
68
|
+
);vec3 getIORTfromAirToSurfaceR0(vec3 f0) {vec3 sqrtF0=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}
|
|
69
|
+
vec3 getR0fromIORs(vec3 iorT,float iorI) {return square((iorT-vec3(iorI))/(iorT+vec3(iorI)));}
|
|
70
|
+
float getR0fromIORs(float iorT,float iorI) {return square((iorT-iorI)/(iorT+iorI));}
|
|
71
|
+
vec3 evalSensitivity(float opd,vec3 shift) {float phase=2.0*PI*opd*1.0e-9;const vec3 val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);const vec3 pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);const vec3 var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);vec3 xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);xyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));xyz/=1.0685e-7;vec3 srgb=XYZ_TO_REC709*xyz;return srgb;}
|
|
72
|
+
vec3 evalIridescence(float outsideIOR,float eta2,float cosTheta1,float thinFilmThickness,vec3 baseF0) {vec3 I=vec3(1.0);float iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));float sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));float cosTheta2Sq=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}
|
|
73
|
+
float cosTheta2=sqrt(cosTheta2Sq);float R0=getR0fromIORs(iridescenceIOR,outsideIOR);float R12=fresnelSchlickGGX(cosTheta1,R0,1.);float R21=R12;float T121=1.0-R12;float phi12=0.0;if (iridescenceIOR<outsideIOR) phi12=PI;float phi21=PI-phi12;vec3 baseIOR=getIORTfromAirToSurfaceR0(clamp(baseF0,0.0,0.9999));
|
|
74
|
+
vec3 R1=getR0fromIORs(baseIOR,iridescenceIOR);vec3 R23=fresnelSchlickGGX(cosTheta2,R1,vec3(1.));vec3 phi23=vec3(0.0);if (baseIOR[0]<iridescenceIOR) phi23[0]=PI;if (baseIOR[1]<iridescenceIOR) phi23[1]=PI;if (baseIOR[2]<iridescenceIOR) phi23[2]=PI;float opd=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;vec3 phi=vec3(phi21)+phi23;vec3 R123=clamp(R12*R23,1e-5,0.9999);vec3 r123=sqrt(R123);vec3 Rs=square(T121)*R23/(vec3(1.0)-R123);vec3 C0=R12+Rs;I=C0;vec3 Cm=Rs-T121;for (int m=1; m<=2; ++m)
|
|
75
|
+
{Cm*=r123;vec3 Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);I+=Cm*Sm;}
|
|
76
|
+
return max(I,vec3(0.0));}
|
|
77
|
+
#endif
|
|
78
|
+
float normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)
|
|
79
|
+
{float a2=square(alphaG);float d=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}
|
|
80
|
+
#ifdef SHEEN
|
|
81
|
+
float normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)
|
|
82
|
+
{float invR=1./alphaG;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}
|
|
83
|
+
#endif
|
|
37
84
|
#ifdef ANISOTROPIC
|
|
38
|
-
float normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {
|
|
85
|
+
float normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {float a2=alphaTB.x*alphaTB.y;vec3 v=vec3(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);float v2=dot(v,v);float w2=a2/v2;return a2*w2*w2*RECIPROCAL_PI;}
|
|
86
|
+
#endif
|
|
39
87
|
#ifdef BRDF_V_HEIGHT_CORRELATED
|
|
40
|
-
float smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {
|
|
41
|
-
|
|
42
|
-
float
|
|
43
|
-
|
|
44
|
-
float
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
88
|
+
float smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {
|
|
89
|
+
#ifdef MOBILE
|
|
90
|
+
float GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);float GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);
|
|
91
|
+
#else
|
|
92
|
+
float a2=alphaG*alphaG;float GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);float GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);return 0.5/(GGXV+GGXL);
|
|
93
|
+
#endif
|
|
94
|
+
}
|
|
95
|
+
#else
|
|
96
|
+
float smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)
|
|
97
|
+
{
|
|
98
|
+
#ifdef MOBILE
|
|
99
|
+
return 1.0/(dot+alphaG+(1.0-alphaG)*dot ));
|
|
100
|
+
#else
|
|
101
|
+
float alphaSquared=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));
|
|
102
|
+
#endif
|
|
103
|
+
}
|
|
104
|
+
float smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)
|
|
105
|
+
{float visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}
|
|
106
|
+
#endif
|
|
48
107
|
#ifdef ANISOTROPIC
|
|
49
|
-
float smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {
|
|
108
|
+
float smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {float lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));float lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));float v=0.5/(lambdaV+lambdaL);return v;}
|
|
109
|
+
#endif
|
|
50
110
|
#ifdef CLEARCOAT
|
|
51
|
-
float visibility_Kelemen(float VdotH) {
|
|
111
|
+
float visibility_Kelemen(float VdotH) {return 0.25/(VdotH*VdotH); }
|
|
112
|
+
#endif
|
|
52
113
|
#ifdef SHEEN
|
|
53
|
-
float visibility_Ashikhmin(float NdotL,float NdotV)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
114
|
+
float visibility_Ashikhmin(float NdotL,float NdotV)
|
|
115
|
+
{return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}
|
|
116
|
+
/* NOT USED
|
|
117
|
+
#ifdef SHEEN_SOFTER
|
|
118
|
+
float l(float x,float alphaG)
|
|
119
|
+
{float oneMinusAlphaSq=(1.0-alphaG)*(1.0-alphaG);float a=mix(21.5473,25.3245,oneMinusAlphaSq);float b=mix(3.82987,3.32435,oneMinusAlphaSq);float c=mix(0.19823,0.16801,oneMinusAlphaSq);float d=mix(-1.97760,-1.27393,oneMinusAlphaSq);float e=mix(-4.32054,-4.85967,oneMinusAlphaSq);return a/(1.0+b*pow(x,c))+d*x+e;}
|
|
120
|
+
float lambdaSheen(float cosTheta,float alphaG)
|
|
121
|
+
{return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}
|
|
122
|
+
float visibility_CharlieSheen(float NdotL,float NdotV,float alphaG)
|
|
123
|
+
{float G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}
|
|
124
|
+
#endif
|
|
125
|
+
*/
|
|
126
|
+
#endif
|
|
127
|
+
float diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {float diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));float diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));float diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;float fresnel =
|
|
128
|
+
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *
|
|
129
|
+
(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}
|
|
130
|
+
#ifdef SS_TRANSLUCENCY
|
|
131
|
+
vec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {vec3 S=1./maxEps(diffusionDistance);vec3 temp=exp((-0.333333333*thickness)*S);return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);}
|
|
132
|
+
float computeWrappedDiffuseNdotL(float NdotL,float w) {float t=1.0+w;float invt2=1.0/square(t);return saturate((NdotL+w)*invt2);}
|
|
133
|
+
#endif
|
|
58
134
|
`;
|
|
59
135
|
// Sideeffect
|
|
60
136
|
ShaderStore.IncludesShadersStore[name] = shader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbrBRDFFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrBRDFFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyQd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrBRDFFunctions\";\nconst shader = `#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\n#ifdef MS_BRDF_ENERGY_CONSERVATION\nvec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\rreturn 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);\r}\r#endif\n#ifdef ENVIRONMENTBRDF\nvec3 getBRDFLookup(float NdotV,float perceptualRoughness) {\rvec2 UV=vec2(NdotV,perceptualRoughness);\rvec4 brdfLookup=texture2D(environmentBrdfSampler,UV);\r#ifdef ENVIRONMENTBRDF_RGBD\nbrdfLookup.rgb=fromRGBD(brdfLookup.rgba);\r#endif\nreturn brdfLookup.rgb;\r}\rvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {\r#ifdef BRDF_V_HEIGHT_CORRELATED\nvec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;\r#else\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;\r#endif\nreturn reflectance;\r}\rvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\r#ifdef BRDF_V_HEIGHT_CORRELATED\nvec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);\r#else\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;\r#endif\nreturn reflectance;\r}\r#endif\n/* NOT USED\r#if defined(SHEEN) && defined(SHEEN_SOFTER)\nfloat getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)\r{\rfloat c=1.0-NdotV;\rfloat c3=c*c*c;\rreturn 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));\r}\r#endif\n*/\r#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)\nvec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\r{\rfloat weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\rreturn reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\r}\r#endif\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF)\n/**\r* The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.\r* The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table\r*/\rvec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {\rvec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;\rreturn sheenEnvironmentReflectance;\r}\r#endif\nvec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)\r{\rreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\r}\rfloat fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)\r{\rreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\r}\r#ifdef CLEARCOAT\nvec3 getR0RemappedForClearCoat(vec3 f0) {\r#ifdef CLEARCOAT_DEFAULTIOR\n#ifdef MOBILE\nreturn saturate(f0*(f0*0.526868+0.529324)-0.0482256);\r#else\nreturn saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);\r#endif\n#else\nvec3 s=sqrt(f0);\rvec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);\rreturn square(t);\r#endif\n}\r#endif\n#ifdef IRIDESCENCE\nconst mat3 XYZ_TO_REC709=mat3(\r3.2404542,-0.9692660, 0.0556434,\r-1.5371385, 1.8760108,-0.2040259,\r-0.4985314, 0.0415560, 1.0572252\r);\rvec3 getIORTfromAirToSurfaceR0(vec3 f0) {\rvec3 sqrtF0=sqrt(f0);\rreturn (1.+sqrtF0)/(1.-sqrtF0);\r}\rvec3 getR0fromIORs(vec3 iorT,float iorI) {\rreturn square((iorT-vec3(iorI))/(iorT+vec3(iorI)));\r}\rfloat getR0fromIORs(float iorT,float iorI) {\rreturn square((iorT-iorI)/(iorT+iorI));\r}\rvec3 evalSensitivity(float opd,vec3 shift) {\rfloat phase=2.0*PI*opd*1.0e-9;\rconst vec3 val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);\rconst vec3 pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);\rconst vec3 var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);\rvec3 xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);\rxyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));\rxyz/=1.0685e-7;\rvec3 srgb=XYZ_TO_REC709*xyz;\rreturn srgb;\r}\rvec3 evalIridescence(float outsideIOR,float eta2,float cosTheta1,float thinFilmThickness,vec3 baseF0) {\rvec3 I=vec3(1.0);\rfloat iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));\rfloat sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));\rfloat cosTheta2Sq=1.0-sinTheta2Sq;\rif (cosTheta2Sq<0.0) {\rreturn I;\r}\rfloat cosTheta2=sqrt(cosTheta2Sq);\rfloat R0=getR0fromIORs(iridescenceIOR,outsideIOR);\rfloat R12=fresnelSchlickGGX(cosTheta1,R0,1.);\rfloat R21=R12;\rfloat T121=1.0-R12;\rfloat phi12=0.0;\rif (iridescenceIOR<outsideIOR) phi12=PI;\rfloat phi21=PI-phi12;\rvec3 baseIOR=getIORTfromAirToSurfaceR0(clamp(baseF0,0.0,0.9999)); \rvec3 R1=getR0fromIORs(baseIOR,iridescenceIOR);\rvec3 R23=fresnelSchlickGGX(cosTheta2,R1,vec3(1.));\rvec3 phi23=vec3(0.0);\rif (baseIOR[0]<iridescenceIOR) phi23[0]=PI;\rif (baseIOR[1]<iridescenceIOR) phi23[1]=PI;\rif (baseIOR[2]<iridescenceIOR) phi23[2]=PI;\rfloat opd=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;\rvec3 phi=vec3(phi21)+phi23;\rvec3 R123=clamp(R12*R23,1e-5,0.9999);\rvec3 r123=sqrt(R123);\rvec3 Rs=square(T121)*R23/(vec3(1.0)-R123);\rvec3 C0=R12+Rs;\rI=C0;\rvec3 Cm=Rs-T121;\rfor (int m=1; m<=2; ++m)\r{\rCm*=r123;\rvec3 Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);\rI+=Cm*Sm;\r}\rreturn max(I,vec3(0.0));\r}\r#endif\nfloat normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)\r{\rfloat a2=square(alphaG);\rfloat d=NdotH*NdotH*(a2-1.0)+1.0;\rreturn a2/(PI*d*d);\r}\r#ifdef SHEEN\nfloat normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)\r{\rfloat invR=1./alphaG;\rfloat cos2h=NdotH*NdotH;\rfloat sin2h=1.-cos2h;\rreturn (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);\r}\r#endif\n#ifdef ANISOTROPIC\nfloat normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {\rfloat a2=alphaTB.x*alphaTB.y;\rvec3 v=vec3(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);\rfloat v2=dot(v,v);\rfloat w2=a2/v2;\rreturn a2*w2*w2*RECIPROCAL_PI;\r}\r#endif\n#ifdef BRDF_V_HEIGHT_CORRELATED\nfloat smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {\r#ifdef MOBILE\nfloat GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);\rfloat GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);\rreturn 0.5/(GGXV+GGXL);\r#else\nfloat a2=alphaG*alphaG;\rfloat GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);\rfloat GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);\rreturn 0.5/(GGXV+GGXL);\r#endif\n}\r#else\nfloat smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)\r{\r#ifdef MOBILE\nreturn 1.0/(dot+alphaG+(1.0-alphaG)*dot ));\r#else\nfloat alphaSquared=alphaG*alphaG;\rreturn 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));\r#endif\n}\rfloat smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)\r{\rfloat visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);\rreturn visibility;\r}\r#endif\n#ifdef ANISOTROPIC\nfloat smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {\rfloat lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));\rfloat lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));\rfloat v=0.5/(lambdaV+lambdaL);\rreturn v;\r}\r#endif\n#ifdef CLEARCOAT\nfloat visibility_Kelemen(float VdotH) {\rreturn 0.25/(VdotH*VdotH); \r}\r#endif\n#ifdef SHEEN\nfloat visibility_Ashikhmin(float NdotL,float NdotV)\r{\rreturn 1./(4.*(NdotL+NdotV-NdotL*NdotV));\r}\r/* NOT USED\r#ifdef SHEEN_SOFTER\nfloat l(float x,float alphaG)\r{\rfloat oneMinusAlphaSq=(1.0-alphaG)*(1.0-alphaG);\rfloat a=mix(21.5473,25.3245,oneMinusAlphaSq);\rfloat b=mix(3.82987,3.32435,oneMinusAlphaSq);\rfloat c=mix(0.19823,0.16801,oneMinusAlphaSq);\rfloat d=mix(-1.97760,-1.27393,oneMinusAlphaSq);\rfloat e=mix(-4.32054,-4.85967,oneMinusAlphaSq);\rreturn a/(1.0+b*pow(x,c))+d*x+e;\r}\rfloat lambdaSheen(float cosTheta,float alphaG)\r{\rreturn abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));\r}\rfloat visibility_CharlieSheen(float NdotL,float NdotV,float alphaG)\r{\rfloat G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));\rreturn G/(4.0*NdotV*NdotL);\r}\r#endif\n*/\r#endif\nfloat diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {\rfloat diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));\rfloat diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));\rfloat diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;\rfloat fresnel =\r(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *\r(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);\rreturn fresnel/PI;\r}\r#ifdef SS_TRANSLUCENCY\nvec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {\rvec3 S=1./maxEps(diffusionDistance);\rvec3 temp=exp((-0.333333333*thickness)*S);\rreturn tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);\r}\rfloat computeWrappedDiffuseNdotL(float NdotL,float w) {\rfloat t=1.0+w;\rfloat invt2=1.0/square(t);\rreturn saturate((NdotL+w)*invt2);\r}\r#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const pbrBRDFFunctions = { name, shader };\n"]}
|
|
1
|
+
{"version":3,"file":"pbrBRDFFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrBRDFFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkId,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrBRDFFunctions\";\nconst shader = `#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\n#ifdef MS_BRDF_ENERGY_CONSERVATION\nvec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);}\n#endif\n#ifdef ENVIRONMENTBRDF\nvec3 getBRDFLookup(float NdotV,float perceptualRoughness) {vec2 UV=vec2(NdotV,perceptualRoughness);vec4 brdfLookup=texture2D(environmentBrdfSampler,UV);\n#ifdef ENVIRONMENTBRDF_RGBD\nbrdfLookup.rgb=fromRGBD(brdfLookup.rgba);\n#endif\nreturn brdfLookup.rgb;}\nvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {\n#ifdef BRDF_V_HEIGHT_CORRELATED\nvec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;\n#else\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;\n#endif\nreturn reflectance;}\nvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\n#ifdef BRDF_V_HEIGHT_CORRELATED\nvec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);\n#else\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;\n#endif\nreturn reflectance;}\n#endif\n/* NOT USED\n#if defined(SHEEN) && defined(SHEEN_SOFTER)\nfloat getBRDFLookupCharlieSheen(float NdotV,float perceptualRoughness)\n{float c=1.0-NdotV;float c3=c*c*c;return 0.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));}\n#endif\n*/\n#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)\nvec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\n{float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));}\n#endif\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF)\n/**\n* The sheen BRDF not containing F can be easily stored in the blue channel of the BRDF texture.\n* The blue channel contains DCharlie*VAshikhmin*NdotL as a lokkup table\n*/\nvec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;return sheenEnvironmentReflectance;}\n#endif\nvec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)\n{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}\nfloat fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)\n{return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);}\n#ifdef CLEARCOAT\nvec3 getR0RemappedForClearCoat(vec3 f0) {\n#ifdef CLEARCOAT_DEFAULTIOR\n#ifdef MOBILE\nreturn saturate(f0*(f0*0.526868+0.529324)-0.0482256);\n#else\nreturn saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);\n#endif\n#else\nvec3 s=sqrt(f0);vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);return square(t);\n#endif\n}\n#endif\n#ifdef IRIDESCENCE\nconst mat3 XYZ_TO_REC709=mat3(\n3.2404542,-0.9692660, 0.0556434,\n-1.5371385, 1.8760108,-0.2040259,\n-0.4985314, 0.0415560, 1.0572252\n);vec3 getIORTfromAirToSurfaceR0(vec3 f0) {vec3 sqrtF0=sqrt(f0);return (1.+sqrtF0)/(1.-sqrtF0);}\nvec3 getR0fromIORs(vec3 iorT,float iorI) {return square((iorT-vec3(iorI))/(iorT+vec3(iorI)));}\nfloat getR0fromIORs(float iorT,float iorI) {return square((iorT-iorI)/(iorT+iorI));}\nvec3 evalSensitivity(float opd,vec3 shift) {float phase=2.0*PI*opd*1.0e-9;const vec3 val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);const vec3 pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);const vec3 var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);vec3 xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);xyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));xyz/=1.0685e-7;vec3 srgb=XYZ_TO_REC709*xyz;return srgb;}\nvec3 evalIridescence(float outsideIOR,float eta2,float cosTheta1,float thinFilmThickness,vec3 baseF0) {vec3 I=vec3(1.0);float iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));float sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));float cosTheta2Sq=1.0-sinTheta2Sq;if (cosTheta2Sq<0.0) {return I;}\nfloat cosTheta2=sqrt(cosTheta2Sq);float R0=getR0fromIORs(iridescenceIOR,outsideIOR);float R12=fresnelSchlickGGX(cosTheta1,R0,1.);float R21=R12;float T121=1.0-R12;float phi12=0.0;if (iridescenceIOR<outsideIOR) phi12=PI;float phi21=PI-phi12;vec3 baseIOR=getIORTfromAirToSurfaceR0(clamp(baseF0,0.0,0.9999)); \nvec3 R1=getR0fromIORs(baseIOR,iridescenceIOR);vec3 R23=fresnelSchlickGGX(cosTheta2,R1,vec3(1.));vec3 phi23=vec3(0.0);if (baseIOR[0]<iridescenceIOR) phi23[0]=PI;if (baseIOR[1]<iridescenceIOR) phi23[1]=PI;if (baseIOR[2]<iridescenceIOR) phi23[2]=PI;float opd=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;vec3 phi=vec3(phi21)+phi23;vec3 R123=clamp(R12*R23,1e-5,0.9999);vec3 r123=sqrt(R123);vec3 Rs=square(T121)*R23/(vec3(1.0)-R123);vec3 C0=R12+Rs;I=C0;vec3 Cm=Rs-T121;for (int m=1; m<=2; ++m)\n{Cm*=r123;vec3 Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);I+=Cm*Sm;}\nreturn max(I,vec3(0.0));}\n#endif\nfloat normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)\n{float a2=square(alphaG);float d=NdotH*NdotH*(a2-1.0)+1.0;return a2/(PI*d*d);}\n#ifdef SHEEN\nfloat normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)\n{float invR=1./alphaG;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);}\n#endif\n#ifdef ANISOTROPIC\nfloat normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {float a2=alphaTB.x*alphaTB.y;vec3 v=vec3(alphaTB.y*TdotH,alphaTB.x *BdotH,a2*NdotH);float v2=dot(v,v);float w2=a2/v2;return a2*w2*w2*RECIPROCAL_PI;}\n#endif\n#ifdef BRDF_V_HEIGHT_CORRELATED\nfloat smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {\n#ifdef MOBILE\nfloat GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);float GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);return 0.5/(GGXV+GGXL);\n#else\nfloat a2=alphaG*alphaG;float GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);float GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);return 0.5/(GGXV+GGXL);\n#endif\n}\n#else\nfloat smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)\n{\n#ifdef MOBILE\nreturn 1.0/(dot+alphaG+(1.0-alphaG)*dot ));\n#else\nfloat alphaSquared=alphaG*alphaG;return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));\n#endif\n}\nfloat smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)\n{float visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);return visibility;}\n#endif\n#ifdef ANISOTROPIC\nfloat smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {float lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));float lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));float v=0.5/(lambdaV+lambdaL);return v;}\n#endif\n#ifdef CLEARCOAT\nfloat visibility_Kelemen(float VdotH) {return 0.25/(VdotH*VdotH); }\n#endif\n#ifdef SHEEN\nfloat visibility_Ashikhmin(float NdotL,float NdotV)\n{return 1./(4.*(NdotL+NdotV-NdotL*NdotV));}\n/* NOT USED\n#ifdef SHEEN_SOFTER\nfloat l(float x,float alphaG)\n{float oneMinusAlphaSq=(1.0-alphaG)*(1.0-alphaG);float a=mix(21.5473,25.3245,oneMinusAlphaSq);float b=mix(3.82987,3.32435,oneMinusAlphaSq);float c=mix(0.19823,0.16801,oneMinusAlphaSq);float d=mix(-1.97760,-1.27393,oneMinusAlphaSq);float e=mix(-4.32054,-4.85967,oneMinusAlphaSq);return a/(1.0+b*pow(x,c))+d*x+e;}\nfloat lambdaSheen(float cosTheta,float alphaG)\n{return abs(cosTheta)<0.5 ? exp(l(cosTheta,alphaG)) : exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));}\nfloat visibility_CharlieSheen(float NdotL,float NdotV,float alphaG)\n{float G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));return G/(4.0*NdotV*NdotL);}\n#endif\n*/\n#endif\nfloat diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {float diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));float diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));float diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;float fresnel =\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);return fresnel/PI;}\n#ifdef SS_TRANSLUCENCY\nvec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {vec3 S=1./maxEps(diffusionDistance);vec3 temp=exp((-0.333333333*thickness)*S);return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);}\nfloat computeWrappedDiffuseNdotL(float NdotL,float w) {float t=1.0+w;float invt2=1.0/square(t);return saturate((NdotL+w)*invt2);}\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const pbrBRDFFunctions = { name, shader };\n"]}
|
|
@@ -2,49 +2,78 @@
|
|
|
2
2
|
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
3
|
import "./decalFragment.js";
|
|
4
4
|
const name = "pbrBlockAlbedoOpacity";
|
|
5
|
-
const shader = `struct albedoOpacityOutParams
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const shader = `struct albedoOpacityOutParams
|
|
6
|
+
{vec3 surfaceAlbedo;float alpha;};
|
|
7
|
+
#define pbr_inline
|
|
8
|
+
void albedoOpacityBlock(
|
|
9
|
+
in vec4 vAlbedoColor,
|
|
10
|
+
#ifdef ALBEDO
|
|
11
|
+
in vec4 albedoTexture,
|
|
12
|
+
in vec2 albedoInfos,
|
|
13
|
+
#endif
|
|
8
14
|
#ifdef OPACITY
|
|
9
|
-
in vec4 opacityMap,
|
|
15
|
+
in vec4 opacityMap,
|
|
16
|
+
in vec2 vOpacityInfos,
|
|
17
|
+
#endif
|
|
10
18
|
#ifdef DETAIL
|
|
11
|
-
in vec4 detailColor,
|
|
19
|
+
in vec4 detailColor,
|
|
20
|
+
in vec4 vDetailInfos,
|
|
21
|
+
#endif
|
|
12
22
|
#ifdef DECAL
|
|
13
|
-
in vec4 decalColor,
|
|
14
|
-
|
|
23
|
+
in vec4 decalColor,
|
|
24
|
+
in vec4 vDecalInfos,
|
|
25
|
+
#endif
|
|
26
|
+
out albedoOpacityOutParams outParams
|
|
27
|
+
)
|
|
28
|
+
{vec3 surfaceAlbedo=vAlbedoColor.rgb;float alpha=vAlbedoColor.a;
|
|
29
|
+
#ifdef ALBEDO
|
|
15
30
|
#if defined(ALPHAFROMALBEDO) || defined(ALPHATEST)
|
|
16
|
-
alpha*=albedoTexture.a;
|
|
31
|
+
alpha*=albedoTexture.a;
|
|
32
|
+
#endif
|
|
17
33
|
#ifdef GAMMAALBEDO
|
|
18
|
-
surfaceAlbedo*=toLinearSpace(albedoTexture.rgb);
|
|
19
|
-
|
|
20
|
-
surfaceAlbedo*=
|
|
34
|
+
surfaceAlbedo*=toLinearSpace(albedoTexture.rgb);
|
|
35
|
+
#else
|
|
36
|
+
surfaceAlbedo*=albedoTexture.rgb;
|
|
37
|
+
#endif
|
|
38
|
+
surfaceAlbedo*=albedoInfos.y;
|
|
39
|
+
#endif
|
|
21
40
|
#ifndef DECAL_AFTER_DETAIL
|
|
22
41
|
#include<decalFragment>
|
|
23
42
|
#endif
|
|
24
43
|
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
25
|
-
surfaceAlbedo*=vColor.rgb;
|
|
44
|
+
surfaceAlbedo*=vColor.rgb;
|
|
45
|
+
#endif
|
|
26
46
|
#ifdef DETAIL
|
|
27
|
-
float detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);
|
|
47
|
+
float detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);surfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo;
|
|
48
|
+
#endif
|
|
28
49
|
#ifdef DECAL_AFTER_DETAIL
|
|
29
50
|
#include<decalFragment>
|
|
30
51
|
#endif
|
|
31
52
|
#define CUSTOM_FRAGMENT_UPDATE_ALBEDO
|
|
32
53
|
#ifdef OPACITY
|
|
33
54
|
#ifdef OPACITYRGB
|
|
34
|
-
alpha=getLuminance(opacityMap.rgb);
|
|
35
|
-
|
|
36
|
-
alpha*=
|
|
55
|
+
alpha=getLuminance(opacityMap.rgb);
|
|
56
|
+
#else
|
|
57
|
+
alpha*=opacityMap.a;
|
|
58
|
+
#endif
|
|
59
|
+
alpha*=vOpacityInfos.y;
|
|
60
|
+
#endif
|
|
37
61
|
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
38
|
-
alpha*=vColor.a;
|
|
62
|
+
alpha*=vColor.a;
|
|
63
|
+
#endif
|
|
39
64
|
#if !defined(SS_LINKREFRACTIONTOTRANSPARENCY) && !defined(ALPHAFRESNEL)
|
|
40
65
|
#ifdef ALPHATEST
|
|
41
66
|
#if DEBUGMODE != 88
|
|
42
|
-
if (alpha<ALPHATESTVALUE)
|
|
67
|
+
if (alpha<ALPHATESTVALUE)
|
|
68
|
+
discard;
|
|
69
|
+
#endif
|
|
43
70
|
#ifndef ALPHABLEND
|
|
44
|
-
alpha=1.0;
|
|
71
|
+
alpha=1.0;
|
|
72
|
+
#endif
|
|
45
73
|
#endif
|
|
46
74
|
#endif
|
|
47
|
-
outParams.surfaceAlbedo=surfaceAlbedo;
|
|
75
|
+
outParams.surfaceAlbedo=surfaceAlbedo;outParams.alpha=alpha;}
|
|
76
|
+
`;
|
|
48
77
|
// Sideeffect
|
|
49
78
|
ShaderStore.IncludesShadersStore[name] = shader;
|
|
50
79
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbrBlockAlbedoOpacity.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,iBAAiB,CAAC;AAEzB,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"pbrBlockAlbedoOpacity.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,iBAAiB,CAAC;AAEzB,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./decalFragment\";\n\nconst name = \"pbrBlockAlbedoOpacity\";\nconst shader = `struct albedoOpacityOutParams\n{vec3 surfaceAlbedo;float alpha;};\n#define pbr_inline\nvoid albedoOpacityBlock(\nin vec4 vAlbedoColor,\n#ifdef ALBEDO\nin vec4 albedoTexture,\nin vec2 albedoInfos,\n#endif\n#ifdef OPACITY\nin vec4 opacityMap,\nin vec2 vOpacityInfos,\n#endif\n#ifdef DETAIL\nin vec4 detailColor,\nin vec4 vDetailInfos,\n#endif\n#ifdef DECAL\nin vec4 decalColor,\nin vec4 vDecalInfos,\n#endif\nout albedoOpacityOutParams outParams\n)\n{vec3 surfaceAlbedo=vAlbedoColor.rgb;float alpha=vAlbedoColor.a;\n#ifdef ALBEDO\n#if defined(ALPHAFROMALBEDO) || defined(ALPHATEST)\nalpha*=albedoTexture.a;\n#endif\n#ifdef GAMMAALBEDO\nsurfaceAlbedo*=toLinearSpace(albedoTexture.rgb);\n#else\nsurfaceAlbedo*=albedoTexture.rgb;\n#endif\nsurfaceAlbedo*=albedoInfos.y;\n#endif\n#ifndef DECAL_AFTER_DETAIL\n#include<decalFragment>\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nsurfaceAlbedo*=vColor.rgb;\n#endif\n#ifdef DETAIL\nfloat detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);surfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo; \n#endif\n#ifdef DECAL_AFTER_DETAIL\n#include<decalFragment>\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_ALBEDO\n#ifdef OPACITY\n#ifdef OPACITYRGB\nalpha=getLuminance(opacityMap.rgb);\n#else\nalpha*=opacityMap.a;\n#endif\nalpha*=vOpacityInfos.y;\n#endif\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\n#if !defined(SS_LINKREFRACTIONTOTRANSPARENCY) && !defined(ALPHAFRESNEL)\n#ifdef ALPHATEST \n#if DEBUGMODE != 88\nif (alpha<ALPHATESTVALUE)\ndiscard;\n#endif\n#ifndef ALPHABLEND\nalpha=1.0;\n#endif\n#endif\n#endif\noutParams.surfaceAlbedo=surfaceAlbedo;outParams.alpha=alpha;}\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const pbrBlockAlbedoOpacity = { name, shader };\n"]}
|