@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.
Files changed (316) hide show
  1. package/Animations/animation.js +2 -2
  2. package/Animations/animation.js.map +1 -1
  3. package/Animations/animationGroup.js +1 -1
  4. package/Animations/animationGroup.js.map +1 -1
  5. package/Animations/animatorAvatar.js +13 -12
  6. package/Animations/animatorAvatar.js.map +1 -1
  7. package/Animations/easing.js +1 -1
  8. package/Animations/easing.js.map +1 -1
  9. package/Animations/pathCursor.js +1 -2
  10. package/Animations/pathCursor.js.map +1 -1
  11. package/Cameras/Inputs/geospatialCameraPointersInput.js +10 -8
  12. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
  13. package/Cameras/geospatialCameraMovement.js +6 -7
  14. package/Cameras/geospatialCameraMovement.js.map +1 -1
  15. package/Engines/Extensions/engine.multiview.js +6 -0
  16. package/Engines/Extensions/engine.multiview.js.map +1 -1
  17. package/Engines/abstractEngine.js +2 -2
  18. package/Engines/abstractEngine.js.map +1 -1
  19. package/Engines/constants.d.ts +9 -4
  20. package/Engines/constants.js +9 -4
  21. package/Engines/constants.js.map +1 -1
  22. package/Engines/webgpuEngine.js +2 -0
  23. package/Engines/webgpuEngine.js.map +1 -1
  24. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +6 -0
  25. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +38 -11
  26. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
  27. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.d.ts +105 -0
  28. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.js +318 -0
  29. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.js.map +1 -0
  30. package/FrameGraph/Node/Blocks/index.d.ts +1 -0
  31. package/FrameGraph/Node/Blocks/index.js +1 -0
  32. package/FrameGraph/Node/Blocks/index.js.map +1 -1
  33. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +4 -0
  34. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +4 -0
  35. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  36. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +34 -0
  37. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +144 -0
  38. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -0
  39. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +26 -0
  40. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +82 -0
  41. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -0
  42. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +61 -0
  43. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +207 -0
  44. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -0
  45. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +104 -0
  46. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +218 -0
  47. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -0
  48. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +217 -0
  49. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +640 -0
  50. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -0
  51. package/FrameGraph/frameGraph.js +1 -0
  52. package/FrameGraph/frameGraph.js.map +1 -1
  53. package/FrameGraph/index.d.ts +1 -0
  54. package/FrameGraph/index.js +1 -0
  55. package/FrameGraph/index.js.map +1 -1
  56. package/Gizmos/boundingBoxGizmo.js +4 -0
  57. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  58. package/Layers/selectionOutlineLayer.d.ts +7 -0
  59. package/Layers/selectionOutlineLayer.js +18 -1
  60. package/Layers/selectionOutlineLayer.js.map +1 -1
  61. package/Layers/thinSelectionOutlineLayer.d.ts +7 -0
  62. package/Layers/thinSelectionOutlineLayer.js +86 -36
  63. package/Layers/thinSelectionOutlineLayer.js.map +1 -1
  64. package/Lights/Clustered/clusteredLightContainer.d.ts +6 -0
  65. package/Lights/Clustered/clusteredLightContainer.js +50 -5
  66. package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
  67. package/Lights/light.d.ts +7 -0
  68. package/Lights/light.js +10 -0
  69. package/Lights/light.js.map +1 -1
  70. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +13 -3
  71. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  72. package/Materials/PBR/openpbrMaterial.d.ts +166 -53
  73. package/Materials/PBR/openpbrMaterial.js +180 -61
  74. package/Materials/PBR/openpbrMaterial.js.map +1 -1
  75. package/Materials/PBR/pbrBRDFConfiguration.js +1 -1
  76. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  77. package/Materials/PBR/pbrBaseMaterial.d.ts +36 -31
  78. package/Materials/PBR/pbrBaseMaterial.js +2 -32
  79. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  80. package/Materials/Textures/Filtering/hdrFiltering.js +6 -0
  81. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  82. package/Materials/Textures/cubeTexture.js +10 -0
  83. package/Materials/Textures/cubeTexture.js.map +1 -1
  84. package/Materials/Textures/envCubeTexture.js +13 -13
  85. package/Materials/Textures/envCubeTexture.js.map +1 -1
  86. package/Materials/environmentLighting.defines.d.ts +31 -0
  87. package/Materials/environmentLighting.defines.js +33 -0
  88. package/Materials/environmentLighting.defines.js.map +1 -0
  89. package/Materials/material.js +1 -0
  90. package/Materials/material.js.map +1 -1
  91. package/Materials/materialHelper.functions.js +9 -3
  92. package/Materials/materialHelper.functions.js.map +1 -1
  93. package/Materials/materialHelper.geometryrendering.js +10 -3
  94. package/Materials/materialHelper.geometryrendering.js.map +1 -1
  95. package/Materials/prepass.defines.d.ts +43 -0
  96. package/Materials/prepass.defines.js +45 -0
  97. package/Materials/prepass.defines.js.map +1 -0
  98. package/Materials/standardMaterial.d.ts +36 -31
  99. package/Materials/standardMaterial.js +2 -32
  100. package/Materials/standardMaterial.js.map +1 -1
  101. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +101 -62
  102. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  103. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.js +39 -25
  104. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.js.map +1 -1
  105. package/Meshes/abstractMesh.d.ts +8 -1
  106. package/Meshes/abstractMesh.js +9 -2
  107. package/Meshes/abstractMesh.js.map +1 -1
  108. package/Meshes/mesh.js +31 -4
  109. package/Meshes/mesh.js.map +1 -1
  110. package/Misc/greasedLineTools.js +5 -0
  111. package/Misc/greasedLineTools.js.map +1 -1
  112. package/Misc/textureTools.d.ts +3 -1
  113. package/Misc/textureTools.js +74 -13
  114. package/Misc/textureTools.js.map +1 -1
  115. package/Misc/tools.js +1 -1
  116. package/Misc/tools.js.map +1 -1
  117. package/Particles/EmitterTypes/coneParticleEmitter.js +2 -4
  118. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  119. package/Particles/baseParticleSystem.d.ts +33 -1
  120. package/Particles/baseParticleSystem.js +65 -0
  121. package/Particles/baseParticleSystem.js.map +1 -1
  122. package/Particles/computeShaderParticleSystem.js +6 -0
  123. package/Particles/computeShaderParticleSystem.js.map +1 -1
  124. package/Particles/gpuParticleSystem.d.ts +24 -6
  125. package/Particles/gpuParticleSystem.js +85 -36
  126. package/Particles/gpuParticleSystem.js.map +1 -1
  127. package/Particles/particleSystem.d.ts +0 -6
  128. package/Particles/particleSystem.js +3 -14
  129. package/Particles/particleSystem.js.map +1 -1
  130. package/Particles/thinParticleSystem.d.ts +1 -3
  131. package/Particles/thinParticleSystem.js +1 -27
  132. package/Particles/thinParticleSystem.js.map +1 -1
  133. package/Particles/webgl2ParticleSystem.js +7 -0
  134. package/Particles/webgl2ParticleSystem.js.map +1 -1
  135. package/PostProcesses/subSurfaceScatteringPostProcess.js.map +1 -1
  136. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +1 -1
  137. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
  138. package/Rendering/IBLShadows/iblShadowsPluginMaterial.d.ts +6 -10
  139. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +46 -13
  140. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
  141. package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -19
  142. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +21 -65
  143. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  144. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +15 -52
  145. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +129 -220
  146. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
  147. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +3 -0
  148. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
  149. package/Rendering/depthRenderer.js +6 -0
  150. package/Rendering/depthRenderer.js.map +1 -1
  151. package/Rendering/geometryBufferRenderer.d.ts +34 -5
  152. package/Rendering/geometryBufferRenderer.js +209 -16
  153. package/Rendering/geometryBufferRenderer.js.map +1 -1
  154. package/Rendering/geometryBufferRendererSceneComponent.d.ts +4 -6
  155. package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
  156. package/Rendering/iblCdfGenerator.d.ts +10 -0
  157. package/Rendering/iblCdfGenerator.js +52 -17
  158. package/Rendering/iblCdfGenerator.js.map +1 -1
  159. package/Rendering/index.d.ts +0 -6
  160. package/Rendering/index.js +0 -6
  161. package/Rendering/index.js.map +1 -1
  162. package/Rendering/objectRenderer.js +1 -0
  163. package/Rendering/objectRenderer.js.map +1 -1
  164. package/Rendering/prePassRenderer.js +7 -1
  165. package/Rendering/prePassRenderer.js.map +1 -1
  166. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  167. package/Shaders/ShadersInclude/helperFunctions.js +5 -0
  168. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  169. package/Shaders/ShadersInclude/openpbrBaseLayerData.js +1 -1
  170. package/Shaders/ShadersInclude/openpbrBaseLayerData.js.map +1 -1
  171. package/Shaders/{iblVoxelSlabDebug.fragment.d.ts → ShadersInclude/openpbrBlockPrePass.d.ts} +1 -1
  172. package/Shaders/ShadersInclude/openpbrBlockPrePass.js +77 -0
  173. package/Shaders/ShadersInclude/openpbrBlockPrePass.js.map +1 -0
  174. package/Shaders/ShadersInclude/openpbrDirectLighting.js +42 -17
  175. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  176. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +43 -17
  177. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  178. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js +10 -1
  179. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js.map +1 -1
  180. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +1 -0
  181. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js +14 -38
  182. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -1
  183. package/Shaders/ShadersInclude/openpbrIblFunctions.js +4 -2
  184. package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  185. package/Shaders/{iblVoxelSlabDebug.vertex.d.ts → ShadersInclude/openpbrSubsurfaceLayerData.d.ts} +1 -1
  186. package/Shaders/ShadersInclude/openpbrSubsurfaceLayerData.js +35 -0
  187. package/Shaders/ShadersInclude/openpbrSubsurfaceLayerData.js.map +1 -0
  188. package/Shaders/ShadersInclude/openpbrTransmissionLayerData.js +1 -1
  189. package/Shaders/ShadersInclude/openpbrTransmissionLayerData.js.map +1 -1
  190. package/Shaders/ShadersInclude/openpbrUboDeclaration.js +1 -1
  191. package/Shaders/ShadersInclude/openpbrUboDeclaration.js.map +1 -1
  192. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js +9 -0
  193. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js.map +1 -1
  194. package/Shaders/{iblVoxelGrid3dDebug.fragment.d.ts → ShadersInclude/openpbrVolumeFunctions.d.ts} +1 -1
  195. package/Shaders/ShadersInclude/openpbrVolumeFunctions.js +67 -0
  196. package/Shaders/ShadersInclude/openpbrVolumeFunctions.js.map +1 -0
  197. package/Shaders/ShadersInclude/pbrBlockPrePass.js +14 -3
  198. package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  199. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +1 -1
  200. package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
  201. package/{ShadersWGSL/iblVoxelSlabDebug.fragment.d.ts → Shaders/ShadersInclude/pbrFragmentReflectionDeclaration.d.ts} +1 -1
  202. package/Shaders/ShadersInclude/pbrFragmentReflectionDeclaration.js +43 -0
  203. package/Shaders/ShadersInclude/pbrFragmentReflectionDeclaration.js.map +1 -0
  204. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +1 -0
  205. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +2 -32
  206. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  207. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +1 -1
  208. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
  209. package/Shaders/ShadersInclude/sceneUboDeclaration.js +1 -1
  210. package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  211. package/Shaders/geometry.fragment.d.ts +12 -0
  212. package/Shaders/geometry.fragment.js +102 -1
  213. package/Shaders/geometry.fragment.js.map +1 -1
  214. package/Shaders/geometry.vertex.d.ts +1 -0
  215. package/Shaders/geometry.vertex.js +46 -2
  216. package/Shaders/geometry.vertex.js.map +1 -1
  217. package/Shaders/gpuUpdateParticles.vertex.js +12 -6
  218. package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
  219. package/Shaders/iblShadowVoxelTracing.fragment.d.ts +1 -0
  220. package/Shaders/iblShadowVoxelTracing.fragment.js +7 -6
  221. package/Shaders/iblShadowVoxelTracing.fragment.js.map +1 -1
  222. package/Shaders/iblVoxelGrid.fragment.d.ts +1 -0
  223. package/Shaders/iblVoxelGrid.fragment.js +33 -5
  224. package/Shaders/iblVoxelGrid.fragment.js.map +1 -1
  225. package/Shaders/lod3D.fragment.d.ts +5 -0
  226. package/Shaders/lod3D.fragment.js +13 -0
  227. package/Shaders/lod3D.fragment.js.map +1 -0
  228. package/Shaders/openpbr.fragment.d.ts +3 -1
  229. package/Shaders/openpbr.fragment.js +74 -8
  230. package/Shaders/openpbr.fragment.js.map +1 -1
  231. package/Shaders/openpbr.vertex.js +11 -5
  232. package/Shaders/openpbr.vertex.js.map +1 -1
  233. package/ShadersWGSL/ShadersInclude/helperFunctions.js +5 -0
  234. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  235. package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js +3 -2
  236. package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js.map +1 -1
  237. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js +1 -1
  238. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js.map +1 -1
  239. package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.d.ts +5 -0
  240. package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js +101 -0
  241. package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js.map +1 -0
  242. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +44 -19
  243. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  244. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -13
  245. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  246. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +1 -0
  247. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js +14 -34
  248. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -1
  249. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +5 -3
  250. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  251. package/ShadersWGSL/ShadersInclude/openpbrSubsurfaceLayerData.d.ts +5 -0
  252. package/ShadersWGSL/ShadersInclude/openpbrSubsurfaceLayerData.js +35 -0
  253. package/ShadersWGSL/ShadersInclude/openpbrSubsurfaceLayerData.js.map +1 -0
  254. package/ShadersWGSL/ShadersInclude/openpbrTransmissionLayerData.js +1 -1
  255. package/ShadersWGSL/ShadersInclude/openpbrTransmissionLayerData.js.map +1 -1
  256. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js +1 -1
  257. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js.map +1 -1
  258. package/ShadersWGSL/ShadersInclude/openpbrVolumeFunctions.d.ts +5 -0
  259. package/ShadersWGSL/ShadersInclude/openpbrVolumeFunctions.js +68 -0
  260. package/ShadersWGSL/ShadersInclude/openpbrVolumeFunctions.js.map +1 -0
  261. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +15 -4
  262. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  263. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +2 -2
  264. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -1
  265. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  266. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  267. package/ShadersWGSL/ShadersInclude/pbrFragmentReflectionDeclaration.d.ts +5 -0
  268. package/ShadersWGSL/ShadersInclude/pbrFragmentReflectionDeclaration.js +39 -0
  269. package/ShadersWGSL/ShadersInclude/pbrFragmentReflectionDeclaration.js.map +1 -0
  270. package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +1 -0
  271. package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js +2 -28
  272. package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  273. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +2 -1
  274. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  275. package/ShadersWGSL/geometry.fragment.d.ts +11 -0
  276. package/ShadersWGSL/geometry.fragment.js +103 -1
  277. package/ShadersWGSL/geometry.fragment.js.map +1 -1
  278. package/ShadersWGSL/geometry.vertex.d.ts +1 -0
  279. package/ShadersWGSL/geometry.vertex.js +47 -3
  280. package/ShadersWGSL/geometry.vertex.js.map +1 -1
  281. package/ShadersWGSL/gpuUpdateParticles.compute.js +14 -7
  282. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  283. package/ShadersWGSL/iblShadowVoxelTracing.fragment.d.ts +1 -0
  284. package/ShadersWGSL/iblShadowVoxelTracing.fragment.js +8 -8
  285. package/ShadersWGSL/iblShadowVoxelTracing.fragment.js.map +1 -1
  286. package/ShadersWGSL/iblVoxelGrid.fragment.js +1 -1
  287. package/ShadersWGSL/iblVoxelGrid.fragment.js.map +1 -1
  288. package/ShadersWGSL/lod3D.fragment.d.ts +5 -0
  289. package/ShadersWGSL/lod3D.fragment.js +13 -0
  290. package/ShadersWGSL/lod3D.fragment.js.map +1 -0
  291. package/ShadersWGSL/openpbr.fragment.d.ts +3 -1
  292. package/ShadersWGSL/openpbr.fragment.js +75 -9
  293. package/ShadersWGSL/openpbr.fragment.js.map +1 -1
  294. package/ShadersWGSL/openpbr.vertex.js +6 -0
  295. package/ShadersWGSL/openpbr.vertex.js.map +1 -1
  296. package/XR/webXRSessionManager.js +7 -5
  297. package/XR/webXRSessionManager.js.map +1 -1
  298. package/package.json +1 -1
  299. package/readme.md +4 -0
  300. package/scene.d.ts +7 -0
  301. package/scene.js +13 -0
  302. package/scene.js.map +1 -1
  303. package/Shaders/iblVoxelGrid3dDebug.fragment.js +0 -24
  304. package/Shaders/iblVoxelGrid3dDebug.fragment.js.map +0 -1
  305. package/Shaders/iblVoxelSlabDebug.fragment.js +0 -13
  306. package/Shaders/iblVoxelSlabDebug.fragment.js.map +0 -1
  307. package/Shaders/iblVoxelSlabDebug.vertex.js +0 -11
  308. package/Shaders/iblVoxelSlabDebug.vertex.js.map +0 -1
  309. package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.d.ts +0 -5
  310. package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js +0 -23
  311. package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js.map +0 -1
  312. package/ShadersWGSL/iblVoxelSlabDebug.fragment.js +0 -14
  313. package/ShadersWGSL/iblVoxelSlabDebug.fragment.js.map +0 -1
  314. package/ShadersWGSL/iblVoxelSlabDebug.vertex.d.ts +0 -5
  315. package/ShadersWGSL/iblVoxelSlabDebug.vertex.js +0 -12
  316. 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 formats of textures to create as render targets. If not provided, all textures will be RGBA and float or half float, depending on the engine capabilities.
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 pbrMaterial = material;
569
- defines.push("#define METALLICWORKFLOW");
618
+ const openpbrMaterial = material;
570
619
  defines.push("#define METALLIC");
571
620
  defines.push("#define ROUGHNESS");
572
- if (pbrMaterial._useRoughnessFromMetallicTextureGreen && pbrMaterial.baseMetalnessTexture) {
621
+ if (openpbrMaterial._useRoughnessFromMetallicTextureGreen && openpbrMaterial.baseMetalnessTexture) {
573
622
  defines.push("#define ORMTEXTURE");
574
- defines.push(`#define REFLECTIVITY_UV${pbrMaterial.baseMetalnessTexture.coordinatesIndex + 1}`);
623
+ defines.push(`#define REFLECTIVITY_UV${openpbrMaterial.baseMetalnessTexture.coordinatesIndex + 1}`);
575
624
  needUv = true;
576
625
  }
577
- else if (pbrMaterial.baseMetalnessTexture) {
626
+ else if (openpbrMaterial.baseMetalnessTexture) {
578
627
  defines.push("#define METALLIC_TEXTURE");
579
- defines.push(`#define METALLIC_UV${pbrMaterial.baseMetalnessTexture.coordinatesIndex + 1}`);
628
+ defines.push(`#define METALLIC_UV${openpbrMaterial.baseMetalnessTexture.coordinatesIndex + 1}`);
580
629
  needUv = true;
581
630
  }
582
- else if (pbrMaterial.specularRoughnessTexture) {
631
+ else if (openpbrMaterial.specularRoughnessTexture) {
583
632
  defines.push("#define ROUGHNESS_TEXTURE");
584
- defines.push(`#define ROUGHNESS_UV${pbrMaterial.specularRoughnessTexture.coordinatesIndex + 1}`);
633
+ defines.push(`#define ROUGHNESS_UV${openpbrMaterial.specularRoughnessTexture.coordinatesIndex + 1}`);
585
634
  needUv = true;
586
635
  }
587
- if (pbrMaterial.baseColorTexture) {
636
+ if (openpbrMaterial.baseColorTexture) {
588
637
  defines.push("#define ALBEDOTEXTURE");
589
- defines.push(`#define ALBEDO_UV${pbrMaterial.baseColorTexture.coordinatesIndex + 1}`);
590
- if (pbrMaterial.baseColorTexture.gammaSpace) {
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 (pbrMaterial.baseColor) {
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: ["diffuseSampler", "bumpSampler", "reflectivitySampler", "albedoSampler", "morphTargets", "boneSampler"],
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
  */