@babylonjs/core 9.1.0 → 9.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Animations/animation.js +2 -2
- package/Animations/animation.js.map +1 -1
- package/Animations/animationGroup.js +1 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/animatorAvatar.js +13 -12
- package/Animations/animatorAvatar.js.map +1 -1
- package/Animations/easing.js +1 -1
- package/Animations/easing.js.map +1 -1
- package/Animations/pathCursor.js +1 -2
- package/Animations/pathCursor.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.js +10 -8
- package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
- package/Cameras/geospatialCameraMovement.js +6 -7
- package/Cameras/geospatialCameraMovement.js.map +1 -1
- package/Engines/Extensions/engine.multiview.js +6 -0
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/constants.d.ts +9 -4
- package/Engines/constants.js +9 -4
- package/Engines/constants.js.map +1 -1
- package/Engines/webgpuEngine.js +2 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +6 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +38 -11
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.d.ts +105 -0
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.js +318 -0
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/index.d.ts +1 -0
- package/FrameGraph/Node/Blocks/index.js +1 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +4 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +4 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +34 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +144 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +26 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +82 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +61 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +207 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +104 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +218 -0
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +217 -0
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +640 -0
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -0
- package/FrameGraph/frameGraph.js +1 -0
- package/FrameGraph/frameGraph.js.map +1 -1
- package/FrameGraph/index.d.ts +1 -0
- package/FrameGraph/index.js +1 -0
- package/FrameGraph/index.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.js +4 -0
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Layers/selectionOutlineLayer.d.ts +7 -0
- package/Layers/selectionOutlineLayer.js +18 -1
- package/Layers/selectionOutlineLayer.js.map +1 -1
- package/Layers/thinSelectionOutlineLayer.d.ts +7 -0
- package/Layers/thinSelectionOutlineLayer.js +86 -36
- package/Layers/thinSelectionOutlineLayer.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.d.ts +6 -0
- package/Lights/Clustered/clusteredLightContainer.js +50 -5
- package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
- package/Lights/light.d.ts +7 -0
- package/Lights/light.js +10 -0
- package/Lights/light.js.map +1 -1
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js +13 -3
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.d.ts +166 -53
- package/Materials/PBR/openpbrMaterial.js +180 -61
- package/Materials/PBR/openpbrMaterial.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.js +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +36 -31
- package/Materials/PBR/pbrBaseMaterial.js +2 -32
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/Filtering/hdrFiltering.js +6 -0
- package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
- package/Materials/Textures/cubeTexture.js +10 -0
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/envCubeTexture.js +13 -13
- package/Materials/Textures/envCubeTexture.js.map +1 -1
- package/Materials/environmentLighting.defines.d.ts +31 -0
- package/Materials/environmentLighting.defines.js +33 -0
- package/Materials/environmentLighting.defines.js.map +1 -0
- package/Materials/material.js +1 -0
- package/Materials/material.js.map +1 -1
- package/Materials/materialHelper.functions.js +9 -3
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.js +10 -3
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/prepass.defines.d.ts +43 -0
- package/Materials/prepass.defines.js +45 -0
- package/Materials/prepass.defines.js.map +1 -0
- package/Materials/standardMaterial.d.ts +36 -31
- package/Materials/standardMaterial.js +2 -32
- package/Materials/standardMaterial.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +101 -62
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.js +39 -25
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +8 -1
- package/Meshes/abstractMesh.js +9 -2
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/mesh.js +31 -4
- package/Meshes/mesh.js.map +1 -1
- package/Misc/greasedLineTools.js +5 -0
- package/Misc/greasedLineTools.js.map +1 -1
- package/Misc/textureTools.d.ts +3 -1
- package/Misc/textureTools.js +74 -13
- package/Misc/textureTools.js.map +1 -1
- package/Misc/tools.js +1 -1
- package/Misc/tools.js.map +1 -1
- package/Particles/EmitterTypes/coneParticleEmitter.js +2 -4
- package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +33 -1
- package/Particles/baseParticleSystem.js +65 -0
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/computeShaderParticleSystem.js +6 -0
- package/Particles/computeShaderParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +24 -6
- package/Particles/gpuParticleSystem.js +85 -36
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particleSystem.d.ts +0 -6
- package/Particles/particleSystem.js +3 -14
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +1 -3
- package/Particles/thinParticleSystem.js +1 -27
- package/Particles/thinParticleSystem.js.map +1 -1
- package/Particles/webgl2ParticleSystem.js +7 -0
- package/Particles/webgl2ParticleSystem.js.map +1 -1
- package/PostProcesses/subSurfaceScatteringPostProcess.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +1 -1
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.d.ts +6 -10
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +46 -13
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -19
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +21 -65
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +15 -52
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +129 -220
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +3 -0
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
- package/Rendering/depthRenderer.js +6 -0
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +34 -5
- package/Rendering/geometryBufferRenderer.js +209 -16
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/geometryBufferRendererSceneComponent.d.ts +4 -6
- package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
- package/Rendering/iblCdfGenerator.d.ts +10 -0
- package/Rendering/iblCdfGenerator.js +52 -17
- package/Rendering/iblCdfGenerator.js.map +1 -1
- package/Rendering/index.d.ts +0 -6
- package/Rendering/index.js +0 -6
- package/Rendering/index.js.map +1 -1
- package/Rendering/objectRenderer.js +1 -0
- package/Rendering/objectRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.js +7 -1
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +5 -0
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrBaseLayerData.js +1 -1
- package/Shaders/ShadersInclude/openpbrBaseLayerData.js.map +1 -1
- package/Shaders/{iblVoxelSlabDebug.fragment.d.ts → ShadersInclude/openpbrBlockPrePass.d.ts} +1 -1
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js +77 -0
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js.map +1 -0
- package/Shaders/ShadersInclude/openpbrDirectLighting.js +42 -17
- package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +43 -17
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js +10 -1
- package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +1 -0
- package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js +14 -38
- package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrIblFunctions.js +4 -2
- package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/Shaders/{iblVoxelSlabDebug.vertex.d.ts → ShadersInclude/openpbrSubsurfaceLayerData.d.ts} +1 -1
- package/Shaders/ShadersInclude/openpbrSubsurfaceLayerData.js +35 -0
- package/Shaders/ShadersInclude/openpbrSubsurfaceLayerData.js.map +1 -0
- package/Shaders/ShadersInclude/openpbrTransmissionLayerData.js +1 -1
- package/Shaders/ShadersInclude/openpbrTransmissionLayerData.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/openpbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrVertexDeclaration.js +9 -0
- package/Shaders/ShadersInclude/openpbrVertexDeclaration.js.map +1 -1
- package/Shaders/{iblVoxelGrid3dDebug.fragment.d.ts → ShadersInclude/openpbrVolumeFunctions.d.ts} +1 -1
- package/Shaders/ShadersInclude/openpbrVolumeFunctions.js +67 -0
- package/Shaders/ShadersInclude/openpbrVolumeFunctions.js.map +1 -0
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +14 -3
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
- package/{ShadersWGSL/iblVoxelSlabDebug.fragment.d.ts → Shaders/ShadersInclude/pbrFragmentReflectionDeclaration.d.ts} +1 -1
- package/Shaders/ShadersInclude/pbrFragmentReflectionDeclaration.js +43 -0
- package/Shaders/ShadersInclude/pbrFragmentReflectionDeclaration.js.map +1 -0
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +1 -0
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +2 -32
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/Shaders/geometry.fragment.d.ts +12 -0
- package/Shaders/geometry.fragment.js +102 -1
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/geometry.vertex.d.ts +1 -0
- package/Shaders/geometry.vertex.js +46 -2
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js +12 -6
- package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
- package/Shaders/iblShadowVoxelTracing.fragment.d.ts +1 -0
- package/Shaders/iblShadowVoxelTracing.fragment.js +7 -6
- package/Shaders/iblShadowVoxelTracing.fragment.js.map +1 -1
- package/Shaders/iblVoxelGrid.fragment.d.ts +1 -0
- package/Shaders/iblVoxelGrid.fragment.js +33 -5
- package/Shaders/iblVoxelGrid.fragment.js.map +1 -1
- package/Shaders/lod3D.fragment.d.ts +5 -0
- package/Shaders/lod3D.fragment.js +13 -0
- package/Shaders/lod3D.fragment.js.map +1 -0
- package/Shaders/openpbr.fragment.d.ts +3 -1
- package/Shaders/openpbr.fragment.js +74 -8
- package/Shaders/openpbr.fragment.js.map +1 -1
- package/Shaders/openpbr.vertex.js +11 -5
- package/Shaders/openpbr.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/helperFunctions.js +5 -0
- package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js +3 -2
- package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js +101 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +44 -19
- package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -13
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js +14 -34
- package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +5 -3
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrSubsurfaceLayerData.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/openpbrSubsurfaceLayerData.js +35 -0
- package/ShadersWGSL/ShadersInclude/openpbrSubsurfaceLayerData.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrTransmissionLayerData.js +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrTransmissionLayerData.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrVolumeFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/openpbrVolumeFunctions.js +68 -0
- package/ShadersWGSL/ShadersInclude/openpbrVolumeFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +15 -4
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +2 -2
- package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrFragmentReflectionDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrFragmentReflectionDeclaration.js +39 -0
- package/ShadersWGSL/ShadersInclude/pbrFragmentReflectionDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js +2 -28
- package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +2 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/ShadersWGSL/geometry.fragment.d.ts +11 -0
- package/ShadersWGSL/geometry.fragment.js +103 -1
- package/ShadersWGSL/geometry.fragment.js.map +1 -1
- package/ShadersWGSL/geometry.vertex.d.ts +1 -0
- package/ShadersWGSL/geometry.vertex.js +47 -3
- package/ShadersWGSL/geometry.vertex.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +14 -7
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/ShadersWGSL/iblShadowVoxelTracing.fragment.d.ts +1 -0
- package/ShadersWGSL/iblShadowVoxelTracing.fragment.js +8 -8
- package/ShadersWGSL/iblShadowVoxelTracing.fragment.js.map +1 -1
- package/ShadersWGSL/iblVoxelGrid.fragment.js +1 -1
- package/ShadersWGSL/iblVoxelGrid.fragment.js.map +1 -1
- package/ShadersWGSL/lod3D.fragment.d.ts +5 -0
- package/ShadersWGSL/lod3D.fragment.js +13 -0
- package/ShadersWGSL/lod3D.fragment.js.map +1 -0
- package/ShadersWGSL/openpbr.fragment.d.ts +3 -1
- package/ShadersWGSL/openpbr.fragment.js +75 -9
- package/ShadersWGSL/openpbr.fragment.js.map +1 -1
- package/ShadersWGSL/openpbr.vertex.js +6 -0
- package/ShadersWGSL/openpbr.vertex.js.map +1 -1
- package/XR/webXRSessionManager.js +7 -5
- package/XR/webXRSessionManager.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +4 -0
- package/scene.d.ts +7 -0
- package/scene.js +13 -0
- package/scene.js.map +1 -1
- package/Shaders/iblVoxelGrid3dDebug.fragment.js +0 -24
- package/Shaders/iblVoxelGrid3dDebug.fragment.js.map +0 -1
- package/Shaders/iblVoxelSlabDebug.fragment.js +0 -13
- package/Shaders/iblVoxelSlabDebug.fragment.js.map +0 -1
- package/Shaders/iblVoxelSlabDebug.vertex.js +0 -11
- package/Shaders/iblVoxelSlabDebug.vertex.js.map +0 -1
- package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.d.ts +0 -5
- package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js +0 -23
- package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js.map +0 -1
- package/ShadersWGSL/iblVoxelSlabDebug.fragment.js +0 -14
- package/ShadersWGSL/iblVoxelSlabDebug.fragment.js.map +0 -1
- package/ShadersWGSL/iblVoxelSlabDebug.vertex.d.ts +0 -5
- package/ShadersWGSL/iblVoxelSlabDebug.vertex.js +0 -12
- package/ShadersWGSL/iblVoxelSlabDebug.vertex.js.map +0 -1
|
@@ -10,8 +10,19 @@ import "../Shaders/geometry.fragment.js";
|
|
|
10
10
|
import "../Shaders/geometry.vertex.js";
|
|
11
11
|
import { MaterialFlags } from "../Materials/materialFlags.js";
|
|
12
12
|
import { AddClipPlaneUniforms, BindClipPlane, PrepareStringDefinesForClipPlanes } from "../Materials/clipPlaneMaterialHelper.js";
|
|
13
|
-
import { BindMorphTargetParameters, BindSceneUniformBuffer, PrepareDefinesAndAttributesForMorphTargets, PushAttributesForInstances } from "../Materials/materialHelper.functions.js";
|
|
13
|
+
import { BindMorphTargetParameters, BindSceneUniformBuffer, PrepareDefinesAndAttributesForMorphTargets, PushAttributesForInstances, PrepareUniformsAndSamplersForIBL, PrepareDefinesForIBL, } from "../Materials/materialHelper.functions.js";
|
|
14
14
|
import "../Engines/Extensions/engine.multiRender.js";
|
|
15
|
+
const Samplers = [
|
|
16
|
+
"diffuseSampler",
|
|
17
|
+
"bumpSampler",
|
|
18
|
+
"reflectivitySampler",
|
|
19
|
+
"albedoSampler",
|
|
20
|
+
"morphTargets",
|
|
21
|
+
"boneSampler",
|
|
22
|
+
"transmissionWeightSampler",
|
|
23
|
+
"subsurfaceWeightSampler",
|
|
24
|
+
"iblShadowSampler",
|
|
25
|
+
];
|
|
15
26
|
/** list the uniforms used by the geometry renderer */
|
|
16
27
|
const Uniforms = [
|
|
17
28
|
"world",
|
|
@@ -27,6 +38,13 @@ const Uniforms = [
|
|
|
27
38
|
"albedoMatrix",
|
|
28
39
|
"reflectivityColor",
|
|
29
40
|
"albedoColor",
|
|
41
|
+
"reflectionMatrix",
|
|
42
|
+
"vTransmissionWeight",
|
|
43
|
+
"vSubsurfaceWeight",
|
|
44
|
+
"vEyePosition",
|
|
45
|
+
"vTransmissionScatterAnisotropy",
|
|
46
|
+
"vSubsurfaceScatterAnisotropy",
|
|
47
|
+
"shadowTextureSize",
|
|
30
48
|
"metallic",
|
|
31
49
|
"glossiness",
|
|
32
50
|
"vTangentSpaceParams",
|
|
@@ -37,6 +55,7 @@ const Uniforms = [
|
|
|
37
55
|
"morphTargetTextureIndices",
|
|
38
56
|
"boneTextureInfo",
|
|
39
57
|
];
|
|
58
|
+
PrepareUniformsAndSamplersForIBL(Uniforms, Samplers, true);
|
|
40
59
|
AddClipPlaneUniforms(Uniforms);
|
|
41
60
|
/**
|
|
42
61
|
* This renderer is helpful to fill one of the render target with a geometry buffer.
|
|
@@ -85,6 +104,7 @@ export class GeometryBufferRenderer {
|
|
|
85
104
|
this._enableVelocity = false;
|
|
86
105
|
this._enableVelocityLinear = false;
|
|
87
106
|
this._enableScreenspaceDepth = false;
|
|
107
|
+
this._enableIrradiance = false;
|
|
88
108
|
this._attachmentsFromPrePass = [];
|
|
89
109
|
}
|
|
90
110
|
/**
|
|
@@ -121,6 +141,10 @@ export class GeometryBufferRenderer {
|
|
|
121
141
|
this._screenspaceDepthIndex = index;
|
|
122
142
|
this._enableScreenspaceDepth = true;
|
|
123
143
|
}
|
|
144
|
+
else if (geometryBufferType === GeometryBufferRenderer.IRRADIANCE_TEXTURE_TYPE) {
|
|
145
|
+
this._irradianceIndex = index;
|
|
146
|
+
this._enableIrradiance = true;
|
|
147
|
+
}
|
|
124
148
|
}
|
|
125
149
|
/**
|
|
126
150
|
* @internal
|
|
@@ -178,6 +202,8 @@ export class GeometryBufferRenderer {
|
|
|
178
202
|
return this._normalIndex;
|
|
179
203
|
case GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE:
|
|
180
204
|
return this._screenspaceDepthIndex;
|
|
205
|
+
case GeometryBufferRenderer.IRRADIANCE_TEXTURE_TYPE:
|
|
206
|
+
return this._irradianceIndex;
|
|
181
207
|
default:
|
|
182
208
|
return -1;
|
|
183
209
|
}
|
|
@@ -300,6 +326,22 @@ export class GeometryBufferRenderer {
|
|
|
300
326
|
this._createRenderTargets();
|
|
301
327
|
}
|
|
302
328
|
}
|
|
329
|
+
/**
|
|
330
|
+
* Gets a boolean indicating if objects irradiance are enabled in the G buffer.
|
|
331
|
+
*/
|
|
332
|
+
get enableIrradiance() {
|
|
333
|
+
return this._enableIrradiance;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Sets whether or not objects irradiance are enabled for the G buffer.
|
|
337
|
+
*/
|
|
338
|
+
set enableIrradiance(enable) {
|
|
339
|
+
this._enableIrradiance = enable;
|
|
340
|
+
if (!this._linkedWithPrePass) {
|
|
341
|
+
this.dispose();
|
|
342
|
+
this._createRenderTargets();
|
|
343
|
+
}
|
|
344
|
+
}
|
|
303
345
|
/**
|
|
304
346
|
* Gets the scene associated with the buffer.
|
|
305
347
|
*/
|
|
@@ -324,7 +366,8 @@ export class GeometryBufferRenderer {
|
|
|
324
366
|
* @param scene The scene the buffer belongs to
|
|
325
367
|
* @param ratioOrDimensions How big is the buffer related to the main canvas (default: 1). You can also directly pass a width and height for the generated textures
|
|
326
368
|
* @param depthFormat Format of the depth texture (default: 15)
|
|
327
|
-
* @param textureTypesAndFormats The types and
|
|
369
|
+
* @param textureTypesAndFormats The types, formats and optional sampling modes of textures to create as render targets.
|
|
370
|
+
* If not provided, all textures will be RGBA and float or half float, depending on the engine capabilities.
|
|
328
371
|
*/
|
|
329
372
|
constructor(scene, ratioOrDimensions = 1, depthFormat = 15, textureTypesAndFormats) {
|
|
330
373
|
/**
|
|
@@ -359,6 +402,7 @@ export class GeometryBufferRenderer {
|
|
|
359
402
|
this._enableVelocityLinear = false;
|
|
360
403
|
this._enableReflectivity = false;
|
|
361
404
|
this._enableScreenspaceDepth = false;
|
|
405
|
+
this._enableIrradiance = false;
|
|
362
406
|
this._clearColor = new Color4(0, 0, 0, 0);
|
|
363
407
|
this._clearDepthColor = new Color4(0, 0, 0, 1); // sets an invalid value by default - depth in the depth texture is view.z, so 0 is not possible because view.z can't be less than camera.minZ
|
|
364
408
|
this._positionIndex = -1;
|
|
@@ -368,7 +412,13 @@ export class GeometryBufferRenderer {
|
|
|
368
412
|
this._depthIndex = -1;
|
|
369
413
|
this._normalIndex = -1;
|
|
370
414
|
this._screenspaceDepthIndex = -1;
|
|
415
|
+
this._irradianceIndex = -1;
|
|
371
416
|
this._linkedWithPrePass = false;
|
|
417
|
+
/**
|
|
418
|
+
* This will store a mask in the alpha channel of the irradiance texture to indicate which pixels have
|
|
419
|
+
* scattering and should be taken into account when applying image-based lighting.
|
|
420
|
+
*/
|
|
421
|
+
this.generateIrradianceWithScatterMask = false;
|
|
372
422
|
/**
|
|
373
423
|
* If set to true (default: false), the depth texture will be cleared with the depth value corresponding to the far plane (1 in normal mode, 0 in reverse depth buffer mode)
|
|
374
424
|
* If set to false, the depth texture is always cleared with 0.
|
|
@@ -565,38 +615,57 @@ export class GeometryBufferRenderer {
|
|
|
565
615
|
}
|
|
566
616
|
}
|
|
567
617
|
else if (material.getClassName() === "OpenPBRMaterial") {
|
|
568
|
-
const
|
|
569
|
-
defines.push("#define METALLICWORKFLOW");
|
|
618
|
+
const openpbrMaterial = material;
|
|
570
619
|
defines.push("#define METALLIC");
|
|
571
620
|
defines.push("#define ROUGHNESS");
|
|
572
|
-
if (
|
|
621
|
+
if (openpbrMaterial._useRoughnessFromMetallicTextureGreen && openpbrMaterial.baseMetalnessTexture) {
|
|
573
622
|
defines.push("#define ORMTEXTURE");
|
|
574
|
-
defines.push(`#define REFLECTIVITY_UV${
|
|
623
|
+
defines.push(`#define REFLECTIVITY_UV${openpbrMaterial.baseMetalnessTexture.coordinatesIndex + 1}`);
|
|
575
624
|
needUv = true;
|
|
576
625
|
}
|
|
577
|
-
else if (
|
|
626
|
+
else if (openpbrMaterial.baseMetalnessTexture) {
|
|
578
627
|
defines.push("#define METALLIC_TEXTURE");
|
|
579
|
-
defines.push(`#define METALLIC_UV${
|
|
628
|
+
defines.push(`#define METALLIC_UV${openpbrMaterial.baseMetalnessTexture.coordinatesIndex + 1}`);
|
|
580
629
|
needUv = true;
|
|
581
630
|
}
|
|
582
|
-
else if (
|
|
631
|
+
else if (openpbrMaterial.specularRoughnessTexture) {
|
|
583
632
|
defines.push("#define ROUGHNESS_TEXTURE");
|
|
584
|
-
defines.push(`#define ROUGHNESS_UV${
|
|
633
|
+
defines.push(`#define ROUGHNESS_UV${openpbrMaterial.specularRoughnessTexture.coordinatesIndex + 1}`);
|
|
585
634
|
needUv = true;
|
|
586
635
|
}
|
|
587
|
-
if (
|
|
636
|
+
if (openpbrMaterial.baseColorTexture) {
|
|
588
637
|
defines.push("#define ALBEDOTEXTURE");
|
|
589
|
-
defines.push(`#define ALBEDO_UV${
|
|
590
|
-
if (
|
|
638
|
+
defines.push(`#define ALBEDO_UV${openpbrMaterial.baseColorTexture.coordinatesIndex + 1}`);
|
|
639
|
+
if (openpbrMaterial.baseColorTexture.gammaSpace) {
|
|
591
640
|
defines.push("#define GAMMAALBEDO");
|
|
592
641
|
}
|
|
593
642
|
needUv = true;
|
|
594
643
|
}
|
|
595
|
-
if (
|
|
644
|
+
if (openpbrMaterial.baseColor) {
|
|
596
645
|
defines.push("#define ALBEDOCOLOR");
|
|
597
646
|
}
|
|
598
647
|
}
|
|
599
648
|
}
|
|
649
|
+
if (this._enableIrradiance && this.generateIrradianceWithScatterMask) {
|
|
650
|
+
defines.push("#define IRRADIANCE_SCATTER_MASK");
|
|
651
|
+
if (material.getClassName() === "OpenPBRMaterial") {
|
|
652
|
+
const openpbrMaterial = material;
|
|
653
|
+
if (openpbrMaterial.subsurfaceWeight > 0) {
|
|
654
|
+
if (openpbrMaterial.subsurfaceWeightTexture) {
|
|
655
|
+
defines.push("#define SUBSURFACE_WEIGHT");
|
|
656
|
+
defines.push(`#define SUBSURFACEWEIGHT_UV${openpbrMaterial.subsurfaceWeightTexture.coordinatesIndex + 1}`);
|
|
657
|
+
needUv = true;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
if (openpbrMaterial.transmissionWeight > 0) {
|
|
661
|
+
if (openpbrMaterial.transmissionWeightTexture) {
|
|
662
|
+
defines.push("#define TRANSMISSION_WEIGHT");
|
|
663
|
+
defines.push(`#define TRANSMISSIONWEIGHT_UV${openpbrMaterial.transmissionWeightTexture.coordinatesIndex + 1}`);
|
|
664
|
+
needUv = true;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
}
|
|
600
669
|
if (needUv) {
|
|
601
670
|
defines.push("#define NEED_UV");
|
|
602
671
|
if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {
|
|
@@ -648,6 +717,47 @@ export class GeometryBufferRenderer {
|
|
|
648
717
|
defines.push("#define SCREENSPACE_DEPTH");
|
|
649
718
|
}
|
|
650
719
|
}
|
|
720
|
+
if (this._enableIrradiance) {
|
|
721
|
+
if (this._irradianceIndex !== -1) {
|
|
722
|
+
defines.push("#define IRRADIANCE_INDEX " + this._irradianceIndex);
|
|
723
|
+
defines.push("#define IRRADIANCE");
|
|
724
|
+
// Check if scene has IBL setup
|
|
725
|
+
const scene = this._scene;
|
|
726
|
+
if (scene.environmentTexture) {
|
|
727
|
+
const iblDefines = {};
|
|
728
|
+
let realtime = false;
|
|
729
|
+
let realtimeQuality = 0;
|
|
730
|
+
if (material.getClassName() === "OpenPBRMaterial" ||
|
|
731
|
+
material.getClassName() === "StandardMaterial" ||
|
|
732
|
+
material.getClassName() === "PBRMetallicRoughnessMaterial" ||
|
|
733
|
+
material.getClassName() === "PBRSpecularGlossinessMaterial" ||
|
|
734
|
+
material.getClassName() === "PBRMaterial") {
|
|
735
|
+
realtime = material.realtimeFiltering ? true : false;
|
|
736
|
+
realtimeQuality = material.realtimeFilteringQuality || 0;
|
|
737
|
+
}
|
|
738
|
+
PrepareDefinesForIBL(scene, scene.environmentTexture, iblDefines, realtime, realtimeQuality, true);
|
|
739
|
+
for (const define in iblDefines) {
|
|
740
|
+
if (iblDefines[define]) {
|
|
741
|
+
defines.push("#define " + define);
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
if (!iblDefines.USEIRRADIANCEMAP) {
|
|
745
|
+
defines.push("#define SPHERICAL_HARMONICS");
|
|
746
|
+
}
|
|
747
|
+
const iblShadowsPipeline = scene.postProcessRenderPipelineManager.supportedPipelines.find((p) => p.getClassName() === "IBLShadowsRenderPipeline");
|
|
748
|
+
if (iblShadowsPipeline) {
|
|
749
|
+
const pipeline = iblShadowsPipeline;
|
|
750
|
+
const shadowTexture = pipeline._getAccumulatedTexture();
|
|
751
|
+
if (shadowTexture) {
|
|
752
|
+
defines.push("#define IBL_SHADOW_TEXTURE");
|
|
753
|
+
if (pipeline.coloredShadows) {
|
|
754
|
+
defines.push("#define COLORED_IBL_SHADOWS");
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
}
|
|
651
761
|
if (this.generateNormalsInWorldSpace) {
|
|
652
762
|
defines.push("#define NORMAL_WORLDSPACE");
|
|
653
763
|
}
|
|
@@ -706,7 +816,7 @@ export class GeometryBufferRenderer {
|
|
|
706
816
|
drawWrapper.setEffect(engine.createEffect("geometry", {
|
|
707
817
|
attributes: attribs,
|
|
708
818
|
uniformsNames: Uniforms,
|
|
709
|
-
samplers:
|
|
819
|
+
samplers: Samplers,
|
|
710
820
|
defines: join,
|
|
711
821
|
onCompiled: null,
|
|
712
822
|
fallbacks: null,
|
|
@@ -797,6 +907,12 @@ export class GeometryBufferRenderer {
|
|
|
797
907
|
textureNames.push("gBuffer_ScreenspaceDepth");
|
|
798
908
|
textureTypesAndFormats.push(this._textureTypesAndFormats[GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE]);
|
|
799
909
|
}
|
|
910
|
+
if (this._enableIrradiance) {
|
|
911
|
+
this._irradianceIndex = count;
|
|
912
|
+
count++;
|
|
913
|
+
textureNames.push("gBuffer_Irradiance");
|
|
914
|
+
textureTypesAndFormats.push(this._textureTypesAndFormats[GeometryBufferRenderer.IRRADIANCE_TEXTURE_TYPE]);
|
|
915
|
+
}
|
|
800
916
|
return [count, textureNames, textureTypesAndFormats];
|
|
801
917
|
}
|
|
802
918
|
_createRenderTargets() {
|
|
@@ -814,20 +930,23 @@ export class GeometryBufferRenderer {
|
|
|
814
930
|
: { width: engine.getRenderWidth() * this._ratioOrDimensions, height: engine.getRenderHeight() * this._ratioOrDimensions };
|
|
815
931
|
const textureTypes = [];
|
|
816
932
|
const textureFormats = [];
|
|
933
|
+
const samplingModes = [];
|
|
817
934
|
for (const typeAndFormat of textureTypesAndFormat) {
|
|
818
935
|
if (typeAndFormat) {
|
|
819
936
|
textureTypes.push(typeAndFormat.textureType);
|
|
820
937
|
textureFormats.push(typeAndFormat.textureFormat);
|
|
938
|
+
samplingModes.push(typeAndFormat.samplingMode ?? 2);
|
|
821
939
|
}
|
|
822
940
|
else {
|
|
823
941
|
textureTypes.push(type);
|
|
824
942
|
textureFormats.push(5);
|
|
943
|
+
samplingModes.push(2);
|
|
825
944
|
}
|
|
826
945
|
}
|
|
827
946
|
this._normalsAreUnsigned =
|
|
828
947
|
textureTypes[GeometryBufferRenderer.NORMAL_TEXTURE_TYPE] === 11 ||
|
|
829
948
|
textureTypes[GeometryBufferRenderer.NORMAL_TEXTURE_TYPE] === 13;
|
|
830
|
-
this._multiRenderTarget = new MultiRenderTarget("gBuffer", dimensions, count, this._scene, { generateMipMaps: false, generateDepthTexture: true, types: textureTypes, formats: textureFormats, depthTextureFormat: this._depthFormat }, textureNames.concat("gBuffer_DepthBuffer"));
|
|
949
|
+
this._multiRenderTarget = new MultiRenderTarget("gBuffer", dimensions, count, this._scene, { generateMipMaps: false, generateDepthTexture: true, types: textureTypes, formats: textureFormats, samplingModes, depthTextureFormat: this._depthFormat }, textureNames.concat("gBuffer_DepthBuffer"));
|
|
831
950
|
if (!this.isSupported) {
|
|
832
951
|
return;
|
|
833
952
|
}
|
|
@@ -907,6 +1026,7 @@ export class GeometryBufferRenderer {
|
|
|
907
1026
|
if (!this._useUbo) {
|
|
908
1027
|
effect.setMatrix("viewProjection", scene.getTransformMatrix());
|
|
909
1028
|
effect.setMatrix("view", scene.getViewMatrix());
|
|
1029
|
+
this._scene.bindEyePosition(effect, "vEyePosition");
|
|
910
1030
|
}
|
|
911
1031
|
else {
|
|
912
1032
|
BindSceneUniformBuffer(effect, this._scene.getSceneUniformBuffer());
|
|
@@ -1053,6 +1173,74 @@ export class GeometryBufferRenderer {
|
|
|
1053
1173
|
}
|
|
1054
1174
|
}
|
|
1055
1175
|
}
|
|
1176
|
+
// IBL binding for irradiance
|
|
1177
|
+
if (this._enableIrradiance && scene.environmentTexture) {
|
|
1178
|
+
const reflectionTexture = scene.environmentTexture;
|
|
1179
|
+
const iblShadowsPipeline = scene.postProcessRenderPipelineManager.supportedPipelines.find((p) => p.getClassName() === "IBLShadowsRenderPipeline");
|
|
1180
|
+
if (iblShadowsPipeline) {
|
|
1181
|
+
const pipeline = iblShadowsPipeline;
|
|
1182
|
+
const shadowTexture = pipeline._getAccumulatedTexture();
|
|
1183
|
+
if (shadowTexture) {
|
|
1184
|
+
effect.setTexture("iblShadowSampler", shadowTexture);
|
|
1185
|
+
effect.setFloat2("shadowTextureSize", shadowTexture.getSize().width, shadowTexture.getSize().height);
|
|
1186
|
+
}
|
|
1187
|
+
}
|
|
1188
|
+
// Bind reflection matrix
|
|
1189
|
+
effect.setMatrix("reflectionMatrix", reflectionTexture.getReflectionTextureMatrix());
|
|
1190
|
+
// Bind reflection info (intensity and other parameters)
|
|
1191
|
+
effect.setFloat2("vReflectionInfos", reflectionTexture.level * scene.iblIntensity, 0.0);
|
|
1192
|
+
// Bind reflection sampler
|
|
1193
|
+
effect.setTexture("reflectionSampler", reflectionTexture);
|
|
1194
|
+
// Bind irradiance sampler if available
|
|
1195
|
+
if (reflectionTexture.irradianceTexture) {
|
|
1196
|
+
effect.setTexture("irradianceSampler", reflectionTexture.irradianceTexture);
|
|
1197
|
+
if (reflectionTexture.irradianceTexture._dominantDirection) {
|
|
1198
|
+
effect.setVector3("vReflectionDominantDirection", reflectionTexture.irradianceTexture._dominantDirection);
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
1201
|
+
// Bind spherical harmonics uniforms if available
|
|
1202
|
+
if (reflectionTexture.sphericalPolynomial) {
|
|
1203
|
+
const polynomials = reflectionTexture.sphericalPolynomial;
|
|
1204
|
+
if (polynomials.preScaledHarmonics) {
|
|
1205
|
+
const harmonics = polynomials.preScaledHarmonics;
|
|
1206
|
+
effect.setVector3("vSphericalL00", harmonics.l00);
|
|
1207
|
+
effect.setVector3("vSphericalL1_1", harmonics.l1_1);
|
|
1208
|
+
effect.setVector3("vSphericalL10", harmonics.l10);
|
|
1209
|
+
effect.setVector3("vSphericalL11", harmonics.l11);
|
|
1210
|
+
effect.setVector3("vSphericalL2_2", harmonics.l2_2);
|
|
1211
|
+
effect.setVector3("vSphericalL2_1", harmonics.l2_1);
|
|
1212
|
+
effect.setVector3("vSphericalL20", harmonics.l20);
|
|
1213
|
+
effect.setVector3("vSphericalL21", harmonics.l21);
|
|
1214
|
+
effect.setVector3("vSphericalL22", harmonics.l22);
|
|
1215
|
+
}
|
|
1216
|
+
else {
|
|
1217
|
+
effect.setFloat3("vSphericalX", polynomials.x.x, polynomials.x.y, polynomials.x.z);
|
|
1218
|
+
effect.setFloat3("vSphericalY", polynomials.y.x, polynomials.y.y, polynomials.y.z);
|
|
1219
|
+
effect.setFloat3("vSphericalZ", polynomials.z.x, polynomials.z.y, polynomials.z.z);
|
|
1220
|
+
effect.setFloat3("vSphericalXX_ZZ", polynomials.xx.x - polynomials.zz.x, polynomials.xx.y - polynomials.zz.y, polynomials.xx.z - polynomials.zz.z);
|
|
1221
|
+
effect.setFloat3("vSphericalYY_ZZ", polynomials.yy.x - polynomials.zz.x, polynomials.yy.y - polynomials.zz.y, polynomials.yy.z - polynomials.zz.z);
|
|
1222
|
+
effect.setFloat3("vSphericalZZ", polynomials.zz.x, polynomials.zz.y, polynomials.zz.z);
|
|
1223
|
+
effect.setFloat3("vSphericalXY", polynomials.xy.x, polynomials.xy.y, polynomials.xy.z);
|
|
1224
|
+
effect.setFloat3("vSphericalYZ", polynomials.yz.x, polynomials.yz.y, polynomials.yz.z);
|
|
1225
|
+
effect.setFloat3("vSphericalZX", polynomials.zx.x, polynomials.zx.y, polynomials.zx.z);
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1228
|
+
if (this.generateIrradianceWithScatterMask && material.getClassName() === "OpenPBRMaterial") {
|
|
1229
|
+
const openpbrMaterial = material;
|
|
1230
|
+
effect.setFloat("vSubsurfaceWeight", openpbrMaterial.subsurfaceWeight);
|
|
1231
|
+
if (openpbrMaterial.subsurfaceWeightTexture) {
|
|
1232
|
+
effect.setTexture("subsurfaceWeightSampler", openpbrMaterial.subsurfaceWeightTexture);
|
|
1233
|
+
effect.setMatrix("subsurfaceWeightMatrix", openpbrMaterial.subsurfaceWeightTexture.getTextureMatrix());
|
|
1234
|
+
}
|
|
1235
|
+
effect.setFloat("vTransmissionWeight", openpbrMaterial.transmissionWeight);
|
|
1236
|
+
if (openpbrMaterial.transmissionWeightTexture) {
|
|
1237
|
+
effect.setTexture("transmissionWeightSampler", openpbrMaterial.transmissionWeightTexture);
|
|
1238
|
+
effect.setMatrix("transmissionWeightMatrix", openpbrMaterial.transmissionWeightTexture.getTextureMatrix());
|
|
1239
|
+
}
|
|
1240
|
+
effect.setFloat("vTransmissionScatterAnisotropy", openpbrMaterial.transmissionScatterAnisotropy);
|
|
1241
|
+
effect.setFloat("vSubsurfaceScatterAnisotropy", openpbrMaterial.subsurfaceScatterAnisotropy);
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1056
1244
|
// Clip plane
|
|
1057
1245
|
BindClipPlane(effect, material, this._scene);
|
|
1058
1246
|
// Bones
|
|
@@ -1195,6 +1383,11 @@ GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE = 5;
|
|
|
1195
1383
|
* using getIndex(GeometryBufferRenderer.VELOCITY_LINEAR_TEXTURE_TYPE)
|
|
1196
1384
|
*/
|
|
1197
1385
|
GeometryBufferRenderer.VELOCITY_LINEAR_TEXTURE_TYPE = 6;
|
|
1386
|
+
/**
|
|
1387
|
+
* Constant used to retrieve the irradiance texture index in the G-Buffer textures array
|
|
1388
|
+
* using getIndex(GeometryBufferRenderer.IRRADIANCE_TEXTURE_TYPE)
|
|
1389
|
+
*/
|
|
1390
|
+
GeometryBufferRenderer.IRRADIANCE_TEXTURE_TYPE = 7;
|
|
1198
1391
|
/**
|
|
1199
1392
|
* @internal
|
|
1200
1393
|
*/
|