@onerjs/core 8.53.5 → 8.53.6

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 (841) hide show
  1. package/Animations/animationGroup.d.ts +0 -1
  2. package/Animations/animationGroup.js +0 -1
  3. package/Animations/animationGroup.js.map +1 -1
  4. package/Animations/animationGroup.pure.js +2 -0
  5. package/Animations/animationGroup.pure.js.map +1 -1
  6. package/Animations/runtimeAnimation.js +11 -0
  7. package/Animations/runtimeAnimation.js.map +1 -1
  8. package/Audio/audioSceneComponent.pure.js +1 -1
  9. package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
  10. package/AudioV2/abstractAudio/abstractSound.js +7 -2
  11. package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
  12. package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
  13. package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
  14. package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
  15. package/AudioV2/abstractAudio/staticSound.js +17 -1
  16. package/AudioV2/abstractAudio/staticSound.js.map +1 -1
  17. package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
  18. package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
  19. package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
  20. package/AudioV2/abstractAudio/streamingSound.js +9 -1
  21. package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
  22. package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
  23. package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
  24. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
  25. package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
  26. package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
  27. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  28. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
  29. package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
  30. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  31. package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
  32. package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
  33. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  34. package/Bones/bone.pure.js +3 -3
  35. package/Buffers/buffer.pure.js +0 -12
  36. package/Buffers/buffer.pure.js.map +1 -1
  37. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
  38. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  39. package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
  40. package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
  41. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  42. package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
  43. package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
  44. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
  45. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
  46. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  47. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
  48. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  49. package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
  50. package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
  51. package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
  52. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  53. package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
  54. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  55. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
  56. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  57. package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
  58. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  59. package/Cameras/Inputs/followCameraPointersInput.js +239 -203
  60. package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
  61. package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
  62. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  63. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
  64. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  65. package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
  66. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  67. package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
  68. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  69. package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
  70. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  71. package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
  72. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
  73. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  74. package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
  75. package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
  76. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
  77. package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
  78. package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
  79. package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
  80. package/Cameras/VR/vrExperienceHelper.js +0 -2
  81. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  82. package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
  83. package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
  84. package/Cameras/arcRotateCamera.pure.js +1559 -1479
  85. package/Cameras/arcRotateCamera.pure.js.map +1 -1
  86. package/Cameras/camera.pure.js +1225 -1178
  87. package/Cameras/camera.pure.js.map +1 -1
  88. package/Cameras/flyCamera.pure.js +369 -351
  89. package/Cameras/flyCamera.pure.js.map +1 -1
  90. package/Cameras/followCamera.pure.js +229 -192
  91. package/Cameras/followCamera.pure.js.map +1 -1
  92. package/Cameras/freeCamera.pure.js +373 -351
  93. package/Cameras/freeCamera.pure.js.map +1 -1
  94. package/Cameras/geospatialCamera.pure.d.ts +30 -7
  95. package/Cameras/geospatialCamera.pure.js +502 -457
  96. package/Cameras/geospatialCamera.pure.js.map +1 -1
  97. package/Cameras/geospatialCameraMovement.js +2 -2
  98. package/Cameras/geospatialCameraMovement.js.map +1 -1
  99. package/Cameras/targetCamera.pure.d.ts +7 -0
  100. package/Cameras/targetCamera.pure.js +550 -509
  101. package/Cameras/targetCamera.pure.js.map +1 -1
  102. package/Cameras/universalCamera.pure.js +98 -85
  103. package/Cameras/universalCamera.pure.js.map +1 -1
  104. package/Collisions/gpuPicker.d.ts +111 -4
  105. package/Collisions/gpuPicker.js +696 -119
  106. package/Collisions/gpuPicker.js.map +1 -1
  107. package/Compute/computeShader.pure.js +372 -355
  108. package/Compute/computeShader.pure.js.map +1 -1
  109. package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
  110. package/Decorators/nodeDecorator.d.ts +11 -1
  111. package/Decorators/nodeDecorator.js +43 -6
  112. package/Decorators/nodeDecorator.js.map +1 -1
  113. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
  114. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
  115. package/Engines/Native/nativeHelpers.js +15 -0
  116. package/Engines/Native/nativeHelpers.js.map +1 -1
  117. package/Engines/Native/nativeInterfaces.d.ts +7 -2
  118. package/Engines/Native/nativeInterfaces.js.map +1 -1
  119. package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
  120. package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
  121. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
  122. package/Engines/Processors/shaderProcessor.js +5 -3
  123. package/Engines/Processors/shaderProcessor.js.map +1 -1
  124. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
  125. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
  126. package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
  127. package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
  128. package/Engines/abstractEngine.functions.d.ts +8 -2
  129. package/Engines/abstractEngine.functions.js +12 -4
  130. package/Engines/abstractEngine.functions.js.map +1 -1
  131. package/Engines/abstractEngine.pure.d.ts +20 -1
  132. package/Engines/abstractEngine.pure.js +21 -134
  133. package/Engines/abstractEngine.pure.js.map +1 -1
  134. package/Engines/engine.d.ts +208 -0
  135. package/Engines/engine.pure.js +0 -15
  136. package/Engines/engine.pure.js.map +1 -1
  137. package/Engines/nullEngine.pure.d.ts +66 -0
  138. package/Engines/nullEngine.pure.js +97 -0
  139. package/Engines/nullEngine.pure.js.map +1 -1
  140. package/Engines/thinEngine.pure.d.ts +0 -13
  141. package/Engines/thinEngine.pure.js +4 -23
  142. package/Engines/thinEngine.pure.js.map +1 -1
  143. package/Engines/thinNativeEngine.d.ts +0 -1
  144. package/Engines/thinNativeEngine.js +0 -1
  145. package/Engines/thinNativeEngine.js.map +1 -1
  146. package/Engines/thinNativeEngine.pure.d.ts +27 -0
  147. package/Engines/thinNativeEngine.pure.js +383 -17
  148. package/Engines/thinNativeEngine.pure.js.map +1 -1
  149. package/Engines/webgpuEngine.d.ts +1 -0
  150. package/Engines/webgpuEngine.js +1 -0
  151. package/Engines/webgpuEngine.js.map +1 -1
  152. package/Engines/webgpuEngine.pure.d.ts +9 -0
  153. package/Engines/webgpuEngine.pure.js +7 -0
  154. package/Engines/webgpuEngine.pure.js.map +1 -1
  155. package/FlowGraph/flowGraph.js +9 -0
  156. package/FlowGraph/flowGraph.js.map +1 -1
  157. package/FlowGraph/flowGraphContext.js +597 -584
  158. package/FlowGraph/flowGraphContext.js.map +1 -1
  159. package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
  160. package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
  161. package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
  162. package/FlowGraph/serialization.d.ts +11 -0
  163. package/FlowGraph/serialization.js +11 -1
  164. package/FlowGraph/serialization.js.map +1 -1
  165. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
  166. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
  167. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
  168. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
  169. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
  170. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
  171. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
  172. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
  173. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
  174. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
  175. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
  176. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
  177. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
  178. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
  179. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
  180. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
  181. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
  182. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
  183. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
  184. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
  185. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
  186. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
  187. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
  188. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
  189. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
  190. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
  191. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
  192. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
  193. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
  194. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
  195. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
  196. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
  197. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
  198. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
  199. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
  200. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
  201. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
  202. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
  203. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
  204. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
  205. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
  206. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
  207. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
  208. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
  209. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
  210. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
  211. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
  212. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
  213. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
  214. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
  215. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
  216. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  217. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
  218. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
  219. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
  220. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
  221. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
  222. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
  223. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
  224. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
  225. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
  226. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
  227. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
  228. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
  229. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
  230. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
  231. package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
  232. package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
  233. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
  234. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
  235. package/FrameGraph/Node/nodeRenderGraph.js +715 -693
  236. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  237. package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
  238. package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
  239. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
  240. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
  241. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  242. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
  243. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
  244. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
  245. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
  246. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
  247. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
  248. package/Helpers/environmentHelper.js +2 -2
  249. package/Helpers/environmentHelper.js.map +1 -1
  250. package/Layers/effectLayer.js +529 -519
  251. package/Layers/effectLayer.js.map +1 -1
  252. package/Layers/glowLayer.pure.js +428 -413
  253. package/Layers/glowLayer.pure.js.map +1 -1
  254. package/Layers/highlightLayer.pure.js +473 -458
  255. package/Layers/highlightLayer.pure.js.map +1 -1
  256. package/Layers/selectionOutlineLayer.pure.js +360 -345
  257. package/Layers/selectionOutlineLayer.pure.js.map +1 -1
  258. package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
  259. package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
  260. package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
  261. package/Lights/Shadows/shadowGenerator.js +6 -1
  262. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  263. package/Lights/areaLight.pure.js +61 -39
  264. package/Lights/areaLight.pure.js.map +1 -1
  265. package/Lights/directionalLight.pure.js +308 -284
  266. package/Lights/directionalLight.pure.js.map +1 -1
  267. package/Lights/hemisphericLight.pure.js +123 -104
  268. package/Lights/hemisphericLight.pure.js.map +1 -1
  269. package/Lights/light.d.ts +5 -3
  270. package/Lights/light.js +869 -827
  271. package/Lights/light.js.map +1 -1
  272. package/Lights/pointLight.pure.js +185 -174
  273. package/Lights/pointLight.pure.js.map +1 -1
  274. package/Lights/rectAreaLight.pure.d.ts +17 -0
  275. package/Lights/rectAreaLight.pure.js +238 -159
  276. package/Lights/rectAreaLight.pure.js.map +1 -1
  277. package/Lights/shadowLight.js +280 -268
  278. package/Lights/shadowLight.js.map +1 -1
  279. package/Lights/spotLight.pure.js +460 -427
  280. package/Lights/spotLight.pure.js.map +1 -1
  281. package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
  282. package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
  283. package/Loading/sceneLoader.d.ts +5 -1
  284. package/Loading/sceneLoader.js +299 -402
  285. package/Loading/sceneLoader.js.map +1 -1
  286. package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
  287. package/Materials/Background/backgroundMaterial.pure.js +949 -794
  288. package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
  289. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
  290. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
  291. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
  292. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
  293. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
  294. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
  295. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
  296. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
  297. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
  298. package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
  299. package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
  300. package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
  301. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
  302. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
  303. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
  304. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
  305. package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
  306. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
  307. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
  308. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
  309. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
  310. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
  311. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
  312. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
  313. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
  314. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
  315. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
  316. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
  317. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
  318. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
  319. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
  320. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
  321. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
  322. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
  323. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
  324. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
  325. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
  326. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
  327. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
  328. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
  329. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
  330. package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
  331. package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
  332. package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
  333. package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
  334. package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
  335. package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
  336. package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
  337. package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
  338. package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
  339. package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
  340. package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
  341. package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
  342. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
  343. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
  344. package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
  345. package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
  346. package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
  347. package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
  348. package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
  349. package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
  350. package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
  351. package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
  352. package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
  353. package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
  354. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
  355. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
  356. package/Materials/Node/nodeMaterial.pure.js +1765 -1737
  357. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  358. package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
  359. package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
  360. package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
  361. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  362. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
  363. package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
  364. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  365. package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
  366. package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
  367. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  368. package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
  369. package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
  370. package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
  371. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
  372. package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
  373. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  374. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
  375. package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
  376. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  377. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
  378. package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
  379. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  380. package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
  381. package/Materials/PBR/pbrMaterial.pure.js +1041 -685
  382. package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
  383. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
  384. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
  385. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
  386. package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
  387. package/Materials/PBR/pbrSheenConfiguration.js +314 -270
  388. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  389. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
  390. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
  391. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
  392. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
  393. package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
  394. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  395. package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
  396. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
  397. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
  398. package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
  399. package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
  400. package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
  401. package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
  402. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
  403. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
  404. package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
  405. package/Materials/Textures/HTML/htmlTexture.js +455 -0
  406. package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
  407. package/Materials/Textures/HTML/index.d.ts +4 -0
  408. package/Materials/Textures/HTML/index.js +5 -0
  409. package/Materials/Textures/HTML/index.js.map +1 -0
  410. package/Materials/Textures/HTML/pure.d.ts +5 -0
  411. package/Materials/Textures/HTML/pure.js +6 -0
  412. package/Materials/Textures/HTML/pure.js.map +1 -0
  413. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
  414. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  415. package/Materials/Textures/baseTexture.pure.js +880 -825
  416. package/Materials/Textures/baseTexture.pure.js.map +1 -1
  417. package/Materials/Textures/cubeTexture.d.ts +0 -1
  418. package/Materials/Textures/cubeTexture.js +0 -1
  419. package/Materials/Textures/cubeTexture.js.map +1 -1
  420. package/Materials/Textures/cubeTexture.pure.js +368 -333
  421. package/Materials/Textures/cubeTexture.pure.js.map +1 -1
  422. package/Materials/Textures/dynamicTexture.d.ts +0 -1
  423. package/Materials/Textures/dynamicTexture.js +0 -1
  424. package/Materials/Textures/dynamicTexture.js.map +1 -1
  425. package/Materials/Textures/dynamicTexture.pure.js +2 -0
  426. package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
  427. package/Materials/Textures/htmlElementTexture.d.ts +0 -2
  428. package/Materials/Textures/htmlElementTexture.js +0 -2
  429. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  430. package/Materials/Textures/htmlElementTexture.pure.js +4 -0
  431. package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
  432. package/Materials/Textures/index.d.ts +1 -0
  433. package/Materials/Textures/index.js +1 -1
  434. package/Materials/Textures/index.js.map +1 -1
  435. package/Materials/Textures/multiRenderTarget.d.ts +0 -1
  436. package/Materials/Textures/multiRenderTarget.js +0 -1
  437. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  438. package/Materials/Textures/multiRenderTarget.pure.js +2 -0
  439. package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
  440. package/Materials/Textures/pure.d.ts +1 -0
  441. package/Materials/Textures/pure.js +1 -0
  442. package/Materials/Textures/pure.js.map +1 -1
  443. package/Materials/Textures/texture.pure.js +961 -923
  444. package/Materials/Textures/texture.pure.js.map +1 -1
  445. package/Materials/Textures/videoTexture.pure.d.ts +3 -0
  446. package/Materials/Textures/videoTexture.pure.js +450 -401
  447. package/Materials/Textures/videoTexture.pure.js.map +1 -1
  448. package/Materials/colorCurves.pure.js +510 -477
  449. package/Materials/colorCurves.pure.js.map +1 -1
  450. package/Materials/effect.pure.js +0 -7
  451. package/Materials/effect.pure.js.map +1 -1
  452. package/Materials/imageProcessing.js +12 -4
  453. package/Materials/imageProcessing.js.map +1 -1
  454. package/Materials/imageProcessingConfiguration.pure.js +647 -587
  455. package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
  456. package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
  457. package/Materials/material.decalMapConfiguration.pure.js +149 -130
  458. package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
  459. package/Materials/material.detailMapConfiguration.d.ts +3 -3
  460. package/Materials/material.detailMapConfiguration.js +213 -175
  461. package/Materials/material.detailMapConfiguration.js.map +1 -1
  462. package/Materials/material.pure.js +1815 -1721
  463. package/Materials/material.pure.js.map +1 -1
  464. package/Materials/materialPluginBase.pure.js +270 -249
  465. package/Materials/materialPluginBase.pure.js.map +1 -1
  466. package/Materials/materialPluginManager.pure.js +18 -8
  467. package/Materials/materialPluginManager.pure.js.map +1 -1
  468. package/Materials/materialStencilState.js +211 -200
  469. package/Materials/materialStencilState.js.map +1 -1
  470. package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
  471. package/Materials/meshDebugPluginMaterial.pure.js +397 -275
  472. package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
  473. package/Materials/standardMaterial.pure.d.ts +32 -32
  474. package/Materials/standardMaterial.pure.js +1804 -1394
  475. package/Materials/standardMaterial.pure.js.map +1 -1
  476. package/Maths/math.color.pure.js +5 -5
  477. package/Maths/math.functions.js +38 -30
  478. package/Maths/math.functions.js.map +1 -1
  479. package/Maths/math.vector.pure.js +25 -25
  480. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
  481. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  482. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
  483. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
  484. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  485. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
  486. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
  487. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
  488. package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
  489. package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
  490. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
  491. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
  492. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
  493. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
  494. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
  495. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
  496. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
  497. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
  498. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
  499. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
  500. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
  501. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
  502. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
  503. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
  504. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
  505. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
  506. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
  507. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
  508. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
  509. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
  510. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
  511. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
  512. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
  513. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
  514. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
  515. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
  516. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
  517. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
  518. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
  519. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
  520. package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
  521. package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
  522. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
  523. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
  524. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
  525. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
  526. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
  527. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
  528. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
  529. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
  530. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
  531. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
  532. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
  533. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
  534. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
  535. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
  536. package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
  537. package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
  538. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
  539. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
  540. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
  541. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
  542. package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
  543. package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
  544. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
  545. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
  546. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
  547. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
  548. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
  549. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
  550. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
  551. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
  552. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
  553. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
  554. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
  555. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
  556. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
  557. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
  558. package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
  559. package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
  560. package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
  561. package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
  562. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
  563. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
  564. package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
  565. package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
  566. package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
  567. package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
  568. package/Meshes/Node/nodeGeometry.js +560 -538
  569. package/Meshes/Node/nodeGeometry.js.map +1 -1
  570. package/Meshes/Node/nodeGeometryBlock.js +473 -458
  571. package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
  572. package/Meshes/abstractMesh.pure.js +2218 -2207
  573. package/Meshes/abstractMesh.pure.js.map +1 -1
  574. package/Meshes/geometry.js +30 -15
  575. package/Meshes/geometry.js.map +1 -1
  576. package/Meshes/mesh.pure.js +26 -14
  577. package/Meshes/mesh.pure.js.map +1 -1
  578. package/Meshes/mesh.vertexData.js +1665 -1655
  579. package/Meshes/mesh.vertexData.js.map +1 -1
  580. package/Meshes/transformNode.pure.js +1400 -1372
  581. package/Meshes/transformNode.pure.js.map +1 -1
  582. package/Misc/decorators.d.ts +34 -19
  583. package/Misc/decorators.functions.d.ts +33 -2
  584. package/Misc/decorators.functions.js +114 -35
  585. package/Misc/decorators.functions.js.map +1 -1
  586. package/Misc/decorators.js +96 -68
  587. package/Misc/decorators.js.map +1 -1
  588. package/Misc/decorators.serialization.js +47 -40
  589. package/Misc/decorators.serialization.js.map +1 -1
  590. package/Misc/decorators.serializationUtilities.d.ts +24 -0
  591. package/Misc/decorators.serializationUtilities.js +20 -0
  592. package/Misc/decorators.serializationUtilities.js.map +1 -0
  593. package/Misc/dumpTools.pure.js +43 -33
  594. package/Misc/dumpTools.pure.js.map +1 -1
  595. package/Misc/fileTools.pure.js +8 -0
  596. package/Misc/fileTools.pure.js.map +1 -1
  597. package/Misc/observable.pure.js +0 -7
  598. package/Misc/observable.pure.js.map +1 -1
  599. package/Misc/snapshotRenderingHelper.d.ts +4 -1
  600. package/Misc/snapshotRenderingHelper.js.map +1 -1
  601. package/Misc/symbolMetadataPolyfill.d.ts +11 -0
  602. package/Misc/symbolMetadataPolyfill.js +22 -0
  603. package/Misc/symbolMetadataPolyfill.js.map +1 -0
  604. package/Misc/tools.pure.js +2 -2
  605. package/Misc/tools.pure.js.map +1 -1
  606. package/Morph/morphTarget.js +382 -365
  607. package/Morph/morphTarget.js.map +1 -1
  608. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
  609. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
  610. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
  611. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
  612. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
  613. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
  614. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
  615. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
  616. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
  617. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
  618. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
  619. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
  620. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
  621. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
  622. package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
  623. package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
  624. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
  625. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
  626. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
  627. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
  628. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
  629. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
  630. package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
  631. package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
  632. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
  633. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
  634. package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
  635. package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
  636. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
  637. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
  638. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
  639. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
  640. package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
  641. package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
  642. package/Particles/Node/nodeParticleBlock.js +339 -324
  643. package/Particles/Node/nodeParticleBlock.js.map +1 -1
  644. package/Particles/Node/nodeParticleSystemSet.js +494 -473
  645. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  646. package/Particles/gpuParticleSystem.d.ts +0 -1
  647. package/Particles/gpuParticleSystem.js +0 -1
  648. package/Particles/gpuParticleSystem.js.map +1 -1
  649. package/Particles/gpuParticleSystem.pure.d.ts +4 -3
  650. package/Particles/gpuParticleSystem.pure.js +27 -16
  651. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  652. package/Particles/particleSystem.pure.js +57 -2
  653. package/Particles/particleSystem.pure.js.map +1 -1
  654. package/Particles/thinParticleSystem.d.ts +0 -1
  655. package/Particles/thinParticleSystem.js +0 -1
  656. package/Particles/thinParticleSystem.js.map +1 -1
  657. package/Particles/thinParticleSystem.pure.js +2 -0
  658. package/Particles/thinParticleSystem.pure.js.map +1 -1
  659. package/Particles/webgl2ParticleSystem.pure.js +2 -0
  660. package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
  661. package/Physics/v1/physicsImpostor.pure.js +4 -4
  662. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
  663. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
  664. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
  665. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
  666. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
  667. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
  668. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  669. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
  670. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
  671. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  672. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
  673. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
  674. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
  675. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
  676. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
  677. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
  678. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
  679. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
  680. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
  681. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  682. package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
  683. package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
  684. package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
  685. package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
  686. package/PostProcesses/blurPostProcess.pure.js +127 -115
  687. package/PostProcesses/blurPostProcess.pure.js.map +1 -1
  688. package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
  689. package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
  690. package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
  691. package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
  692. package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
  693. package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
  694. package/PostProcesses/convolutionPostProcess.pure.js +96 -84
  695. package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
  696. package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
  697. package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
  698. package/PostProcesses/filterPostProcess.pure.js +66 -54
  699. package/PostProcesses/filterPostProcess.pure.js.map +1 -1
  700. package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
  701. package/PostProcesses/grainPostProcess.pure.js +82 -70
  702. package/PostProcesses/grainPostProcess.pure.js.map +1 -1
  703. package/PostProcesses/imageProcessingPostProcess.js +334 -322
  704. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  705. package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
  706. package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
  707. package/PostProcesses/passPostProcess.pure.js +75 -63
  708. package/PostProcesses/passPostProcess.pure.js.map +1 -1
  709. package/PostProcesses/postProcess.pure.js +899 -835
  710. package/PostProcesses/postProcess.pure.js.map +1 -1
  711. package/PostProcesses/refractionPostProcess.pure.js +114 -87
  712. package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
  713. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
  714. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
  715. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
  716. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
  717. package/PostProcesses/sharpenPostProcess.pure.js +86 -74
  718. package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
  719. package/PostProcesses/tonemapPostProcess.pure.js +82 -70
  720. package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
  721. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
  722. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
  723. package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
  724. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
  725. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
  726. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
  727. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
  728. package/Probes/reflectionProbe.pure.js +238 -224
  729. package/Probes/reflectionProbe.pure.js.map +1 -1
  730. package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
  731. package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
  732. package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
  733. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
  734. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
  735. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
  736. package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
  737. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
  738. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  739. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
  740. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
  741. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
  742. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
  743. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
  744. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
  745. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
  746. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
  747. package/Rendering/edgesRenderer.pure.js.map +1 -1
  748. package/Rendering/prePassRenderer.d.ts +0 -2
  749. package/Rendering/prePassRenderer.js +0 -2
  750. package/Rendering/prePassRenderer.js.map +1 -1
  751. package/Rendering/prePassRenderer.pure.js +2 -0
  752. package/Rendering/prePassRenderer.pure.js.map +1 -1
  753. package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
  754. package/Rendering/reflectiveShadowMap.pure.js +151 -130
  755. package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
  756. package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
  757. package/Rendering/thinDepthPeelingRenderer.js +0 -1
  758. package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
  759. package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
  760. package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
  761. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
  762. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  763. package/Shaders/gaussianSplatting.fragment.js +17 -1
  764. package/Shaders/gaussianSplatting.fragment.js.map +1 -1
  765. package/Shaders/gaussianSplatting.vertex.js +1 -1
  766. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  767. package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
  768. package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
  769. package/Shaders/picking.fragment.js +39 -3
  770. package/Shaders/picking.fragment.js.map +1 -1
  771. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
  772. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
  773. package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
  774. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  775. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
  776. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  777. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
  778. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  779. package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
  780. package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
  781. package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
  782. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  783. package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
  784. package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
  785. package/ShadersWGSL/lightingVolume.compute.js +2 -2
  786. package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
  787. package/ShadersWGSL/picking.fragment.js +22 -1
  788. package/ShadersWGSL/picking.fragment.js.map +1 -1
  789. package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
  790. package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
  791. package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
  792. package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
  793. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
  794. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
  795. package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
  796. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
  797. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
  798. package/XR/features/WebXRLayers.pure.d.ts +8 -0
  799. package/XR/features/WebXRLayers.pure.js +43 -6
  800. package/XR/features/WebXRLayers.pure.js.map +1 -1
  801. package/XR/native/nativeXRRenderTarget.d.ts +2 -2
  802. package/XR/native/nativeXRRenderTarget.js +2 -2
  803. package/XR/native/nativeXRRenderTarget.js.map +1 -1
  804. package/XR/webXRExperienceHelper.js +10 -1
  805. package/XR/webXRExperienceHelper.js.map +1 -1
  806. package/XR/webXRGraphicsBinding.d.ts +90 -0
  807. package/XR/webXRGraphicsBinding.js +85 -0
  808. package/XR/webXRGraphicsBinding.js.map +1 -0
  809. package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
  810. package/XR/webXRLayerRenderTargetTexture.js +30 -0
  811. package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
  812. package/XR/webXRManagedOutputCanvas.d.ts +14 -0
  813. package/XR/webXRManagedOutputCanvas.js +24 -5
  814. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  815. package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
  816. package/XR/webXRRenderTargetTextureProvider.js +33 -35
  817. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  818. package/XR/webXRSessionManager.d.ts +11 -0
  819. package/XR/webXRSessionManager.js +37 -0
  820. package/XR/webXRSessionManager.js.map +1 -1
  821. package/XR/webXRTypes.d.ts +9 -6
  822. package/XR/webXRTypes.js.map +1 -1
  823. package/XR/webXRWebGLLayer.d.ts +2 -2
  824. package/XR/webXRWebGLLayer.js +2 -2
  825. package/XR/webXRWebGLLayer.js.map +1 -1
  826. package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
  827. package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
  828. package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
  829. package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
  830. package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
  831. package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
  832. package/index.d.ts +1 -0
  833. package/index.js +1 -0
  834. package/index.js.map +1 -1
  835. package/node.js +878 -845
  836. package/node.js.map +1 -1
  837. package/package.json +8 -14
  838. package/scene.pure.d.ts +12 -0
  839. package/scene.pure.js +36 -0
  840. package/scene.pure.js.map +1 -1
  841. package/tslib.es6.js +304 -150
@@ -1,5 +1,5 @@
1
1
  /** This file must only contain pure code and pure imports */
2
- import { __decorate } from "../tslib.es6.js";
2
+ import { __esDecorate, __runInitializers } from "../tslib.es6.js";
3
3
  import { serializeAsVector3, serialize, serializeAsMeshReference } from "../Misc/decorators.js";
4
4
  import { Logger } from "../Misc/logger.js";
5
5
  import { Vector2, Vector3, Matrix } from "../Maths/math.vector.pure.js";
@@ -20,498 +20,533 @@ import { RegisterClass } from "../Misc/typeStore.js";
20
20
  /**
21
21
  * Inspired by https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-13-volumetric-light-scattering-post-process
22
22
  */
23
- export class VolumetricLightScatteringPostProcess extends PostProcess {
24
- /**
25
- * @internal
26
- * VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead
27
- */
28
- get useDiffuseColor() {
29
- Logger.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead");
30
- return false;
31
- }
32
- set useDiffuseColor(useDiffuseColor) {
33
- Logger.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead");
34
- }
35
- /**
36
- * @constructor
37
- * @param name The post-process name
38
- * @param ratio The size of the post-process and/or internal pass (0.5 means that your postprocess will have a width = canvas.width 0.5 and a height = canvas.height 0.5)
39
- * @param camera The camera that the post-process will be attached to
40
- * @param mesh The mesh used to create the light scattering
41
- * @param samples The post-process quality, default 100
42
- * @param samplingMode The post-process filtering mode
43
- * @param engine The babylon engine
44
- * @param reusable If the post-process is reusable
45
- * @param scene The constructor needs a scene reference to initialize internal components. If "camera" is null a "scene" must be provided
46
- */
47
- constructor(name, ratio, camera, mesh, samples = 100, samplingMode = Texture.BILINEAR_SAMPLINGMODE, engine, reusable, scene) {
48
- super(name, "volumetricLightScattering", ["decay", "exposure", "weight", "meshPositionOnScreen", "density"], ["lightScatteringSampler"], ratio.postProcessRatio || ratio, camera, samplingMode, engine, reusable, "#define NUM_SAMPLES " + samples);
49
- this._screenCoordinates = Vector2.Zero();
50
- /**
51
- * Custom position of the mesh. Used if "useCustomMeshPosition" is set to "true"
52
- */
53
- this.customMeshPosition = Vector3.Zero();
54
- /**
55
- * Set if the post-process should use a custom position for the light source (true) or the internal mesh position (false)
56
- */
57
- this.useCustomMeshPosition = false;
58
- /**
59
- * If the post-process should inverse the light scattering direction
60
- */
61
- this.invert = true;
62
- /**
63
- * Array containing the excluded meshes not rendered in the internal pass
64
- */
65
- this.excludedMeshes = [];
66
- /**
67
- * Array containing the only meshes rendered in the internal pass.
68
- * If this array is not empty, only the meshes from this array are rendered in the internal pass
69
- */
70
- this.includedMeshes = [];
71
- /**
72
- * Controls the overall intensity of the post-process
73
- */
74
- this.exposure = 0.3;
75
- /**
76
- * Dissipates each sample's contribution in range [0, 1]
77
- */
78
- this.decay = 0.96815;
79
- /**
80
- * Controls the overall intensity of each sample
81
- */
82
- this.weight = 0.58767;
83
- /**
84
- * Controls the density of each sample
85
- */
86
- this.density = 0.926;
87
- scene = camera?.getScene() ?? scene ?? this._scene; // parameter "scene" can be null.
88
- engine = scene.getEngine();
89
- this._viewPort = new Viewport(0, 0, 1, 1).toGlobal(engine.getRenderWidth(), engine.getRenderHeight());
90
- // Configure mesh
91
- this.mesh = mesh ?? VolumetricLightScatteringPostProcess.CreateDefaultMesh("VolumetricLightScatteringMesh", scene);
92
- // Configure
93
- this._createPass(scene, ratio.passRatio || ratio);
94
- this.onActivate = (camera) => {
95
- if (!this.isSupported) {
96
- this.dispose(camera);
97
- }
98
- this.onActivate = null;
99
- };
100
- this.onApplyObservable.add((effect) => {
101
- this._updateMeshScreenCoordinates(scene);
102
- effect.setTexture("lightScatteringSampler", this._volumetricLightScatteringRTT);
103
- effect.setFloat("exposure", this.exposure);
104
- effect.setFloat("decay", this.decay);
105
- effect.setFloat("weight", this.weight);
106
- effect.setFloat("density", this.density);
107
- effect.setVector2("meshPositionOnScreen", this._screenCoordinates);
108
- });
109
- }
110
- /**
111
- * Returns the string "VolumetricLightScatteringPostProcess"
112
- * @returns "VolumetricLightScatteringPostProcess"
113
- */
114
- getClassName() {
115
- return "VolumetricLightScatteringPostProcess";
116
- }
117
- _isReady(subMesh, useInstances) {
118
- const mesh = subMesh.getMesh();
119
- // Render this.mesh as default
120
- if (mesh === this.mesh && mesh.material) {
121
- return mesh.material.isReady(mesh);
122
- }
123
- const renderingMaterial = mesh._internalAbstractMeshDataInfo._materialForRenderPass?.[this._scene.getEngine().currentRenderPassId];
124
- if (renderingMaterial) {
125
- return renderingMaterial.isReadyForSubMesh(mesh, subMesh, useInstances);
126
- }
127
- const defines = [];
128
- const attribs = [VertexBuffer.PositionKind];
129
- const material = subMesh.getMaterial();
130
- let uv1 = false;
131
- let uv2 = false;
132
- const color = false;
133
- // Alpha test
134
- if (material) {
135
- const needAlphaTesting = material.needAlphaTestingForMesh(mesh);
136
- if (needAlphaTesting) {
137
- defines.push("#define ALPHATEST");
138
- }
139
- if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {
140
- attribs.push(VertexBuffer.UVKind);
141
- defines.push("#define UV1");
142
- uv1 = needAlphaTesting;
143
- }
144
- if (mesh.isVerticesDataPresent(VertexBuffer.UV2Kind)) {
145
- attribs.push(VertexBuffer.UV2Kind);
146
- defines.push("#define UV2");
147
- uv2 = needAlphaTesting;
148
- }
149
- }
150
- // Bones
151
- const fallbacks = new EffectFallbacks();
152
- if (mesh.useBones && mesh.computeBonesUsingShaders && mesh.skeleton) {
153
- attribs.push(VertexBuffer.MatricesIndicesKind);
154
- attribs.push(VertexBuffer.MatricesWeightsKind);
155
- if (mesh.numBoneInfluencers > 4) {
156
- attribs.push(VertexBuffer.MatricesIndicesExtraKind);
157
- attribs.push(VertexBuffer.MatricesWeightsExtraKind);
158
- }
159
- defines.push("#define NUM_BONE_INFLUENCERS " + mesh.numBoneInfluencers);
160
- if (mesh.numBoneInfluencers > 0) {
161
- fallbacks.addCPUSkinningFallback(0, mesh);
162
- }
163
- const skeleton = mesh.skeleton;
164
- if (skeleton.isUsingTextureForMatrices) {
165
- defines.push("#define BONETEXTURE");
23
+ let VolumetricLightScatteringPostProcess = (() => {
24
+ var _a;
25
+ let _classSuper = PostProcess;
26
+ let _customMeshPosition_decorators;
27
+ let _customMeshPosition_initializers = [];
28
+ let _customMeshPosition_extraInitializers = [];
29
+ let _useCustomMeshPosition_decorators;
30
+ let _useCustomMeshPosition_initializers = [];
31
+ let _useCustomMeshPosition_extraInitializers = [];
32
+ let _invert_decorators;
33
+ let _invert_initializers = [];
34
+ let _invert_extraInitializers = [];
35
+ let _mesh_decorators;
36
+ let _mesh_initializers = [];
37
+ let _mesh_extraInitializers = [];
38
+ let _excludedMeshes_decorators;
39
+ let _excludedMeshes_initializers = [];
40
+ let _excludedMeshes_extraInitializers = [];
41
+ let _includedMeshes_decorators;
42
+ let _includedMeshes_initializers = [];
43
+ let _includedMeshes_extraInitializers = [];
44
+ let _exposure_decorators;
45
+ let _exposure_initializers = [];
46
+ let _exposure_extraInitializers = [];
47
+ let _decay_decorators;
48
+ let _decay_initializers = [];
49
+ let _decay_extraInitializers = [];
50
+ let _weight_decorators;
51
+ let _weight_initializers = [];
52
+ let _weight_extraInitializers = [];
53
+ let _density_decorators;
54
+ let _density_initializers = [];
55
+ let _density_extraInitializers = [];
56
+ return _a = class VolumetricLightScatteringPostProcess extends _classSuper {
57
+ /**
58
+ * @internal
59
+ * VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead
60
+ */
61
+ get useDiffuseColor() {
62
+ Logger.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead");
63
+ return false;
166
64
  }
167
- else {
168
- defines.push("#define BonesPerMesh " + (skeleton.bones.length + 1));
65
+ set useDiffuseColor(useDiffuseColor) {
66
+ Logger.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead");
169
67
  }
170
- }
171
- else {
172
- defines.push("#define NUM_BONE_INFLUENCERS 0");
173
- }
174
- // Morph targets
175
- const numMorphInfluencers = mesh.morphTargetManager
176
- ? PrepareDefinesAndAttributesForMorphTargets(mesh.morphTargetManager, defines, attribs, mesh, true, // usePositionMorph
177
- false, // useNormalMorph
178
- false, // useTangentMorph
179
- uv1, // useUVMorph
180
- uv2, // useUV2Morph
181
- color // useColorMorph
182
- )
183
- : 0;
184
- // Instances
185
- if (useInstances) {
186
- defines.push("#define INSTANCES");
187
- PushAttributesForInstances(attribs);
188
- if (subMesh.getRenderingMesh().hasThinInstances) {
189
- defines.push("#define THIN_INSTANCES");
190
- }
191
- }
192
- // Baked vertex animations
193
- const bvaManager = mesh.bakedVertexAnimationManager;
194
- if (bvaManager && bvaManager.isEnabled) {
195
- defines.push("#define BAKED_VERTEX_ANIMATION_TEXTURE");
196
- if (useInstances) {
197
- attribs.push("bakedVertexAnimationSettingsInstanced");
198
- }
199
- }
200
- // Get correct effect
201
- const drawWrapper = subMesh._getDrawWrapper(undefined, true);
202
- const cachedDefines = drawWrapper.defines;
203
- const join = defines.join("\n");
204
- if (cachedDefines !== join) {
205
- const uniforms = [
206
- "world",
207
- "mBones",
208
- "boneTextureInfo",
209
- "viewProjection",
210
- "diffuseMatrix",
211
- "morphTargetInfluences",
212
- "morphTargetCount",
213
- "morphTargetTextureInfo",
214
- "morphTargetTextureIndices",
215
- "bakedVertexAnimationSettings",
216
- "bakedVertexAnimationTextureSizeInverted",
217
- "bakedVertexAnimationTime",
218
- "bakedVertexAnimationTexture",
219
- ];
220
- const samplers = ["diffuseSampler", "morphTargets", "boneSampler", "bakedVertexAnimationTexture"];
221
- drawWrapper.setEffect(mesh
222
- .getScene()
223
- .getEngine()
224
- .createEffect("volumetricLightScatteringPass", {
225
- attributes: attribs,
226
- uniformsNames: uniforms,
227
- uniformBuffersNames: [],
228
- samplers: samplers,
229
- defines: join,
230
- fallbacks: fallbacks,
231
- onCompiled: null,
232
- onError: null,
233
- indexParameters: { maxSimultaneousMorphTargets: numMorphInfluencers },
234
- }, mesh.getScene().getEngine()), join);
235
- }
236
- return drawWrapper.effect.isReady();
237
- }
238
- /**
239
- * Sets the new light position for light scattering effect
240
- * @param position The new custom light position
241
- */
242
- setCustomMeshPosition(position) {
243
- this.customMeshPosition = position;
244
- }
245
- /**
246
- * Returns the light position for light scattering effect
247
- * @returns Vector3 The custom light position
248
- */
249
- getCustomMeshPosition() {
250
- return this.customMeshPosition;
251
- }
252
- /**
253
- * Disposes the internal assets and detaches the post-process from the camera
254
- * @param camera The camera from which to detach the post-process
255
- */
256
- dispose(camera) {
257
- const rttIndex = camera.getScene().customRenderTargets.indexOf(this._volumetricLightScatteringRTT);
258
- if (rttIndex !== -1) {
259
- camera.getScene().customRenderTargets.splice(rttIndex, 1);
260
- }
261
- this._volumetricLightScatteringRTT.dispose();
262
- super.dispose(camera);
263
- }
264
- /**
265
- * Returns the render target texture used by the post-process
266
- * @returns the render target texture used by the post-process
267
- */
268
- getPass() {
269
- return this._volumetricLightScatteringRTT;
270
- }
271
- // Private methods
272
- _meshExcluded(mesh) {
273
- if ((this.includedMeshes.length > 0 && this.includedMeshes.indexOf(mesh) === -1) || (this.excludedMeshes.length > 0 && this.excludedMeshes.indexOf(mesh) !== -1)) {
274
- return true;
275
- }
276
- return false;
277
- }
278
- _createPass(scene, ratio) {
279
- const engine = scene.getEngine();
280
- this._volumetricLightScatteringRTT = new RenderTargetTexture("volumetricLightScatteringMap", { width: engine.getRenderWidth() * ratio, height: engine.getRenderHeight() * ratio }, scene, false, true, 0);
281
- this._volumetricLightScatteringRTT.wrapU = Texture.CLAMP_ADDRESSMODE;
282
- this._volumetricLightScatteringRTT.wrapV = Texture.CLAMP_ADDRESSMODE;
283
- this._volumetricLightScatteringRTT.renderList = null;
284
- this._volumetricLightScatteringRTT.renderParticles = false;
285
- this._volumetricLightScatteringRTT.ignoreCameraViewport = true;
286
- const camera = this.getCamera();
287
- if (camera) {
288
- camera.customRenderTargets.push(this._volumetricLightScatteringRTT);
289
- }
290
- else {
291
- scene.customRenderTargets.push(this._volumetricLightScatteringRTT);
292
- }
293
- // Custom render function for submeshes
294
- const renderSubMesh = (subMesh) => {
295
- const renderingMesh = subMesh.getRenderingMesh();
296
- const effectiveMesh = subMesh.getEffectiveMesh();
297
- if (this._meshExcluded(renderingMesh)) {
298
- return;
299
- }
300
- effectiveMesh._internalAbstractMeshDataInfo._isActiveIntermediate = false;
301
- const material = subMesh.getMaterial();
302
- if (!material) {
303
- return;
68
+ /**
69
+ * @constructor
70
+ * @param name The post-process name
71
+ * @param ratio The size of the post-process and/or internal pass (0.5 means that your postprocess will have a width = canvas.width 0.5 and a height = canvas.height 0.5)
72
+ * @param camera The camera that the post-process will be attached to
73
+ * @param mesh The mesh used to create the light scattering
74
+ * @param samples The post-process quality, default 100
75
+ * @param samplingMode The post-process filtering mode
76
+ * @param engine The babylon engine
77
+ * @param reusable If the post-process is reusable
78
+ * @param scene The constructor needs a scene reference to initialize internal components. If "camera" is null a "scene" must be provided
79
+ */
80
+ constructor(name, ratio, camera, mesh, samples = 100, samplingMode = Texture.BILINEAR_SAMPLINGMODE, engine, reusable, scene) {
81
+ super(name, "volumetricLightScattering", ["decay", "exposure", "weight", "meshPositionOnScreen", "density"], ["lightScatteringSampler"], ratio.postProcessRatio || ratio, camera, samplingMode, engine, reusable, "#define NUM_SAMPLES " + samples);
82
+ this._screenCoordinates = Vector2.Zero();
83
+ /**
84
+ * Custom position of the mesh. Used if "useCustomMeshPosition" is set to "true"
85
+ */
86
+ this.customMeshPosition = __runInitializers(this, _customMeshPosition_initializers, Vector3.Zero());
87
+ /**
88
+ * Set if the post-process should use a custom position for the light source (true) or the internal mesh position (false)
89
+ */
90
+ this.useCustomMeshPosition = (__runInitializers(this, _customMeshPosition_extraInitializers), __runInitializers(this, _useCustomMeshPosition_initializers, false));
91
+ /**
92
+ * If the post-process should inverse the light scattering direction
93
+ */
94
+ this.invert = (__runInitializers(this, _useCustomMeshPosition_extraInitializers), __runInitializers(this, _invert_initializers, true));
95
+ /**
96
+ * The internal mesh used by the post-process
97
+ */
98
+ this.mesh = (__runInitializers(this, _invert_extraInitializers), __runInitializers(this, _mesh_initializers, void 0));
99
+ /**
100
+ * Array containing the excluded meshes not rendered in the internal pass
101
+ */
102
+ this.excludedMeshes = (__runInitializers(this, _mesh_extraInitializers), __runInitializers(this, _excludedMeshes_initializers, []));
103
+ /**
104
+ * Array containing the only meshes rendered in the internal pass.
105
+ * If this array is not empty, only the meshes from this array are rendered in the internal pass
106
+ */
107
+ this.includedMeshes = (__runInitializers(this, _excludedMeshes_extraInitializers), __runInitializers(this, _includedMeshes_initializers, []));
108
+ /**
109
+ * Controls the overall intensity of the post-process
110
+ */
111
+ this.exposure = (__runInitializers(this, _includedMeshes_extraInitializers), __runInitializers(this, _exposure_initializers, 0.3));
112
+ /**
113
+ * Dissipates each sample's contribution in range [0, 1]
114
+ */
115
+ this.decay = (__runInitializers(this, _exposure_extraInitializers), __runInitializers(this, _decay_initializers, 0.96815));
116
+ /**
117
+ * Controls the overall intensity of each sample
118
+ */
119
+ this.weight = (__runInitializers(this, _decay_extraInitializers), __runInitializers(this, _weight_initializers, 0.58767));
120
+ /**
121
+ * Controls the density of each sample
122
+ */
123
+ this.density = (__runInitializers(this, _weight_extraInitializers), __runInitializers(this, _density_initializers, 0.926));
124
+ __runInitializers(this, _density_extraInitializers);
125
+ scene = camera?.getScene() ?? scene ?? this._scene; // parameter "scene" can be null.
126
+ engine = scene.getEngine();
127
+ this._viewPort = new Viewport(0, 0, 1, 1).toGlobal(engine.getRenderWidth(), engine.getRenderHeight());
128
+ // Configure mesh
129
+ this.mesh = mesh ?? _a.CreateDefaultMesh("VolumetricLightScatteringMesh", scene);
130
+ // Configure
131
+ this._createPass(scene, ratio.passRatio || ratio);
132
+ this.onActivate = (camera) => {
133
+ if (!this.isSupported) {
134
+ this.dispose(camera);
135
+ }
136
+ this.onActivate = null;
137
+ };
138
+ this.onApplyObservable.add((effect) => {
139
+ this._updateMeshScreenCoordinates(scene);
140
+ effect.setTexture("lightScatteringSampler", this._volumetricLightScatteringRTT);
141
+ effect.setFloat("exposure", this.exposure);
142
+ effect.setFloat("decay", this.decay);
143
+ effect.setFloat("weight", this.weight);
144
+ effect.setFloat("density", this.density);
145
+ effect.setVector2("meshPositionOnScreen", this._screenCoordinates);
146
+ });
304
147
  }
305
- const scene = renderingMesh.getScene();
306
- const engine = scene.getEngine();
307
- // Culling
308
- engine.setState(material.backFaceCulling, undefined, undefined, undefined, material.cullBackFaces);
309
- // Managing instances
310
- const batch = renderingMesh._getInstancesRenderList(subMesh._id, !!subMesh.getReplacementMesh());
311
- if (batch.mustReturn) {
312
- return;
148
+ /**
149
+ * Returns the string "VolumetricLightScatteringPostProcess"
150
+ * @returns "VolumetricLightScatteringPostProcess"
151
+ */
152
+ getClassName() {
153
+ return "VolumetricLightScatteringPostProcess";
313
154
  }
314
- const hardwareInstancedRendering = engine.getCaps().instancedArrays && (batch.visibleInstances[subMesh._id] !== null || renderingMesh.hasThinInstances);
315
- if (this._isReady(subMesh, hardwareInstancedRendering)) {
316
- const renderingMaterial = effectiveMesh._internalAbstractMeshDataInfo._materialForRenderPass?.[engine.currentRenderPassId];
317
- let drawWrapper = subMesh._getDrawWrapper();
318
- if (renderingMesh === this.mesh && !drawWrapper) {
319
- drawWrapper = material._getDrawWrapper();
320
- }
321
- if (!drawWrapper) {
322
- return;
323
- }
324
- const effect = drawWrapper.effect;
325
- engine.enableEffect(drawWrapper);
326
- if (!hardwareInstancedRendering) {
327
- renderingMesh._bind(subMesh, effect, material.fillMode);
155
+ _isReady(subMesh, useInstances) {
156
+ const mesh = subMesh.getMesh();
157
+ // Render this.mesh as default
158
+ if (mesh === this.mesh && mesh.material) {
159
+ return mesh.material.isReady(mesh);
328
160
  }
329
- if (renderingMesh === this.mesh) {
330
- material.bind(effectiveMesh.getWorldMatrix(), renderingMesh);
161
+ const renderingMaterial = mesh._internalAbstractMeshDataInfo._materialForRenderPass?.[this._scene.getEngine().currentRenderPassId];
162
+ if (renderingMaterial) {
163
+ return renderingMaterial.isReadyForSubMesh(mesh, subMesh, useInstances);
331
164
  }
332
- else if (renderingMaterial) {
333
- renderingMaterial.bindForSubMesh(effectiveMesh.getWorldMatrix(), effectiveMesh, subMesh);
165
+ const defines = [];
166
+ const attribs = [VertexBuffer.PositionKind];
167
+ const material = subMesh.getMaterial();
168
+ let uv1 = false;
169
+ let uv2 = false;
170
+ const color = false;
171
+ // Alpha test
172
+ if (material) {
173
+ const needAlphaTesting = material.needAlphaTestingForMesh(mesh);
174
+ if (needAlphaTesting) {
175
+ defines.push("#define ALPHATEST");
176
+ }
177
+ if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {
178
+ attribs.push(VertexBuffer.UVKind);
179
+ defines.push("#define UV1");
180
+ uv1 = needAlphaTesting;
181
+ }
182
+ if (mesh.isVerticesDataPresent(VertexBuffer.UV2Kind)) {
183
+ attribs.push(VertexBuffer.UV2Kind);
184
+ defines.push("#define UV2");
185
+ uv2 = needAlphaTesting;
186
+ }
334
187
  }
335
- else {
336
- effect.setMatrix("viewProjection", scene.getTransformMatrix());
337
- // Alpha test
338
- if (material.needAlphaTestingForMesh(effectiveMesh)) {
339
- const alphaTexture = material.getAlphaTestTexture();
340
- if (alphaTexture) {
341
- effect.setTexture("diffuseSampler", alphaTexture);
342
- effect.setMatrix("diffuseMatrix", alphaTexture.getTextureMatrix());
343
- }
188
+ // Bones
189
+ const fallbacks = new EffectFallbacks();
190
+ if (mesh.useBones && mesh.computeBonesUsingShaders && mesh.skeleton) {
191
+ attribs.push(VertexBuffer.MatricesIndicesKind);
192
+ attribs.push(VertexBuffer.MatricesWeightsKind);
193
+ if (mesh.numBoneInfluencers > 4) {
194
+ attribs.push(VertexBuffer.MatricesIndicesExtraKind);
195
+ attribs.push(VertexBuffer.MatricesWeightsExtraKind);
344
196
  }
345
- // Bones
346
- BindBonesParameters(renderingMesh, effect);
347
- // Morph targets
348
- BindMorphTargetParameters(renderingMesh, effect);
349
- if (renderingMesh.morphTargetManager && renderingMesh.morphTargetManager.isUsingTextureForTargets) {
350
- renderingMesh.morphTargetManager._bind(effect);
197
+ defines.push("#define NUM_BONE_INFLUENCERS " + mesh.numBoneInfluencers);
198
+ if (mesh.numBoneInfluencers > 0) {
199
+ fallbacks.addCPUSkinningFallback(0, mesh);
351
200
  }
352
- // Baked vertex animations
353
- const bvaManager = subMesh.getMesh().bakedVertexAnimationManager;
354
- if (bvaManager && bvaManager.isEnabled) {
355
- bvaManager.bind(effect, hardwareInstancedRendering);
201
+ const skeleton = mesh.skeleton;
202
+ if (skeleton.isUsingTextureForMatrices) {
203
+ defines.push("#define BONETEXTURE");
204
+ }
205
+ else {
206
+ defines.push("#define BonesPerMesh " + (skeleton.bones.length + 1));
356
207
  }
357
208
  }
358
- if (hardwareInstancedRendering && renderingMesh.hasThinInstances) {
359
- effect.setMatrix("world", effectiveMesh.getWorldMatrix());
209
+ else {
210
+ defines.push("#define NUM_BONE_INFLUENCERS 0");
360
211
  }
361
- // Draw
362
- renderingMesh._processRendering(effectiveMesh, subMesh, effect, Material.TriangleFillMode, batch, hardwareInstancedRendering, (isInstance, world) => {
363
- if (!isInstance) {
364
- effect.setMatrix("world", world);
212
+ // Morph targets
213
+ const numMorphInfluencers = mesh.morphTargetManager
214
+ ? PrepareDefinesAndAttributesForMorphTargets(mesh.morphTargetManager, defines, attribs, mesh, true, // usePositionMorph
215
+ false, // useNormalMorph
216
+ false, // useTangentMorph
217
+ uv1, // useUVMorph
218
+ uv2, // useUV2Morph
219
+ color // useColorMorph
220
+ )
221
+ : 0;
222
+ // Instances
223
+ if (useInstances) {
224
+ defines.push("#define INSTANCES");
225
+ PushAttributesForInstances(attribs);
226
+ if (subMesh.getRenderingMesh().hasThinInstances) {
227
+ defines.push("#define THIN_INSTANCES");
365
228
  }
366
- });
367
- }
368
- };
369
- // Render target texture callbacks
370
- let savedSceneClearColor;
371
- const sceneClearColor = new Color4(0.0, 0.0, 0.0, 1.0);
372
- this._volumetricLightScatteringRTT.onBeforeRenderObservable.add(() => {
373
- savedSceneClearColor = scene.clearColor;
374
- scene.clearColor = sceneClearColor;
375
- });
376
- this._volumetricLightScatteringRTT.onAfterRenderObservable.add(() => {
377
- scene.clearColor = savedSceneClearColor;
378
- });
379
- this._volumetricLightScatteringRTT.customIsReadyFunction = (mesh, refreshRate, preWarm) => {
380
- if ((preWarm || refreshRate === 0) && mesh.subMeshes) {
381
- for (let i = 0; i < mesh.subMeshes.length; ++i) {
382
- const subMesh = mesh.subMeshes[i];
383
- const material = subMesh.getMaterial();
384
- const renderingMesh = subMesh.getRenderingMesh();
385
- if (!material) {
386
- continue;
387
- }
388
- const batch = renderingMesh._getInstancesRenderList(subMesh._id, !!subMesh.getReplacementMesh());
389
- const hardwareInstancedRendering = engine.getCaps().instancedArrays && (batch.visibleInstances[subMesh._id] !== null || renderingMesh.hasThinInstances);
390
- if (!this._isReady(subMesh, hardwareInstancedRendering)) {
391
- return false;
229
+ }
230
+ // Baked vertex animations
231
+ const bvaManager = mesh.bakedVertexAnimationManager;
232
+ if (bvaManager && bvaManager.isEnabled) {
233
+ defines.push("#define BAKED_VERTEX_ANIMATION_TEXTURE");
234
+ if (useInstances) {
235
+ attribs.push("bakedVertexAnimationSettingsInstanced");
392
236
  }
393
237
  }
238
+ // Get correct effect
239
+ const drawWrapper = subMesh._getDrawWrapper(undefined, true);
240
+ const cachedDefines = drawWrapper.defines;
241
+ const join = defines.join("\n");
242
+ if (cachedDefines !== join) {
243
+ const uniforms = [
244
+ "world",
245
+ "mBones",
246
+ "boneTextureInfo",
247
+ "viewProjection",
248
+ "diffuseMatrix",
249
+ "morphTargetInfluences",
250
+ "morphTargetCount",
251
+ "morphTargetTextureInfo",
252
+ "morphTargetTextureIndices",
253
+ "bakedVertexAnimationSettings",
254
+ "bakedVertexAnimationTextureSizeInverted",
255
+ "bakedVertexAnimationTime",
256
+ "bakedVertexAnimationTexture",
257
+ ];
258
+ const samplers = ["diffuseSampler", "morphTargets", "boneSampler", "bakedVertexAnimationTexture"];
259
+ drawWrapper.setEffect(mesh
260
+ .getScene()
261
+ .getEngine()
262
+ .createEffect("volumetricLightScatteringPass", {
263
+ attributes: attribs,
264
+ uniformsNames: uniforms,
265
+ uniformBuffersNames: [],
266
+ samplers: samplers,
267
+ defines: join,
268
+ fallbacks: fallbacks,
269
+ onCompiled: null,
270
+ onError: null,
271
+ indexParameters: { maxSimultaneousMorphTargets: numMorphInfluencers },
272
+ }, mesh.getScene().getEngine()), join);
273
+ }
274
+ return drawWrapper.effect.isReady();
275
+ }
276
+ /**
277
+ * Sets the new light position for light scattering effect
278
+ * @param position The new custom light position
279
+ */
280
+ setCustomMeshPosition(position) {
281
+ this.customMeshPosition = position;
282
+ }
283
+ /**
284
+ * Returns the light position for light scattering effect
285
+ * @returns Vector3 The custom light position
286
+ */
287
+ getCustomMeshPosition() {
288
+ return this.customMeshPosition;
394
289
  }
395
- return true;
396
- };
397
- this._volumetricLightScatteringRTT.customRenderFunction = (opaqueSubMeshes, alphaTestSubMeshes, transparentSubMeshes, depthOnlySubMeshes) => {
398
- const engine = scene.getEngine();
399
- let index;
400
- if (depthOnlySubMeshes.length) {
401
- engine.setColorWrite(false);
402
- for (index = 0; index < depthOnlySubMeshes.length; index++) {
403
- renderSubMesh(depthOnlySubMeshes.data[index]);
290
+ /**
291
+ * Disposes the internal assets and detaches the post-process from the camera
292
+ * @param camera The camera from which to detach the post-process
293
+ */
294
+ dispose(camera) {
295
+ const rttIndex = camera.getScene().customRenderTargets.indexOf(this._volumetricLightScatteringRTT);
296
+ if (rttIndex !== -1) {
297
+ camera.getScene().customRenderTargets.splice(rttIndex, 1);
404
298
  }
405
- engine.setColorWrite(true);
299
+ this._volumetricLightScatteringRTT.dispose();
300
+ super.dispose(camera);
406
301
  }
407
- for (index = 0; index < opaqueSubMeshes.length; index++) {
408
- renderSubMesh(opaqueSubMeshes.data[index]);
302
+ /**
303
+ * Returns the render target texture used by the post-process
304
+ * @returns the render target texture used by the post-process
305
+ */
306
+ getPass() {
307
+ return this._volumetricLightScatteringRTT;
409
308
  }
410
- for (index = 0; index < alphaTestSubMeshes.length; index++) {
411
- renderSubMesh(alphaTestSubMeshes.data[index]);
309
+ // Private methods
310
+ _meshExcluded(mesh) {
311
+ if ((this.includedMeshes.length > 0 && this.includedMeshes.indexOf(mesh) === -1) || (this.excludedMeshes.length > 0 && this.excludedMeshes.indexOf(mesh) !== -1)) {
312
+ return true;
313
+ }
314
+ return false;
412
315
  }
413
- if (transparentSubMeshes.length) {
414
- // Sort sub meshes
415
- for (index = 0; index < transparentSubMeshes.length; index++) {
416
- const submesh = transparentSubMeshes.data[index];
417
- const boundingInfo = submesh.getBoundingInfo();
418
- if (boundingInfo && scene.activeCamera) {
419
- submesh._alphaIndex = submesh.getMesh().alphaIndex;
420
- submesh._distanceToCamera = boundingInfo.boundingSphere.centerWorld.subtract(scene.activeCamera.position).length();
421
- }
316
+ _createPass(scene, ratio) {
317
+ const engine = scene.getEngine();
318
+ this._volumetricLightScatteringRTT = new RenderTargetTexture("volumetricLightScatteringMap", { width: engine.getRenderWidth() * ratio, height: engine.getRenderHeight() * ratio }, scene, false, true, 0);
319
+ this._volumetricLightScatteringRTT.wrapU = Texture.CLAMP_ADDRESSMODE;
320
+ this._volumetricLightScatteringRTT.wrapV = Texture.CLAMP_ADDRESSMODE;
321
+ this._volumetricLightScatteringRTT.renderList = null;
322
+ this._volumetricLightScatteringRTT.renderParticles = false;
323
+ this._volumetricLightScatteringRTT.ignoreCameraViewport = true;
324
+ const camera = this.getCamera();
325
+ if (camera) {
326
+ camera.customRenderTargets.push(this._volumetricLightScatteringRTT);
422
327
  }
423
- const sortedArray = transparentSubMeshes.data.slice(0, transparentSubMeshes.length);
424
- sortedArray.sort((a, b) => {
425
- // Alpha index first
426
- if (a._alphaIndex > b._alphaIndex) {
427
- return 1;
328
+ else {
329
+ scene.customRenderTargets.push(this._volumetricLightScatteringRTT);
330
+ }
331
+ // Custom render function for submeshes
332
+ const renderSubMesh = (subMesh) => {
333
+ const renderingMesh = subMesh.getRenderingMesh();
334
+ const effectiveMesh = subMesh.getEffectiveMesh();
335
+ if (this._meshExcluded(renderingMesh)) {
336
+ return;
428
337
  }
429
- if (a._alphaIndex < b._alphaIndex) {
430
- return -1;
338
+ effectiveMesh._internalAbstractMeshDataInfo._isActiveIntermediate = false;
339
+ const material = subMesh.getMaterial();
340
+ if (!material) {
341
+ return;
431
342
  }
432
- // Then distance to camera
433
- if (a._distanceToCamera < b._distanceToCamera) {
434
- return 1;
343
+ const scene = renderingMesh.getScene();
344
+ const engine = scene.getEngine();
345
+ // Culling
346
+ engine.setState(material.backFaceCulling, undefined, undefined, undefined, material.cullBackFaces);
347
+ // Managing instances
348
+ const batch = renderingMesh._getInstancesRenderList(subMesh._id, !!subMesh.getReplacementMesh());
349
+ if (batch.mustReturn) {
350
+ return;
435
351
  }
436
- if (a._distanceToCamera > b._distanceToCamera) {
437
- return -1;
352
+ const hardwareInstancedRendering = engine.getCaps().instancedArrays && (batch.visibleInstances[subMesh._id] !== null || renderingMesh.hasThinInstances);
353
+ if (this._isReady(subMesh, hardwareInstancedRendering)) {
354
+ const renderingMaterial = effectiveMesh._internalAbstractMeshDataInfo._materialForRenderPass?.[engine.currentRenderPassId];
355
+ let drawWrapper = subMesh._getDrawWrapper();
356
+ if (renderingMesh === this.mesh && !drawWrapper) {
357
+ drawWrapper = material._getDrawWrapper();
358
+ }
359
+ if (!drawWrapper) {
360
+ return;
361
+ }
362
+ const effect = drawWrapper.effect;
363
+ engine.enableEffect(drawWrapper);
364
+ if (!hardwareInstancedRendering) {
365
+ renderingMesh._bind(subMesh, effect, material.fillMode);
366
+ }
367
+ if (renderingMesh === this.mesh) {
368
+ material.bind(effectiveMesh.getWorldMatrix(), renderingMesh);
369
+ }
370
+ else if (renderingMaterial) {
371
+ renderingMaterial.bindForSubMesh(effectiveMesh.getWorldMatrix(), effectiveMesh, subMesh);
372
+ }
373
+ else {
374
+ effect.setMatrix("viewProjection", scene.getTransformMatrix());
375
+ // Alpha test
376
+ if (material.needAlphaTestingForMesh(effectiveMesh)) {
377
+ const alphaTexture = material.getAlphaTestTexture();
378
+ if (alphaTexture) {
379
+ effect.setTexture("diffuseSampler", alphaTexture);
380
+ effect.setMatrix("diffuseMatrix", alphaTexture.getTextureMatrix());
381
+ }
382
+ }
383
+ // Bones
384
+ BindBonesParameters(renderingMesh, effect);
385
+ // Morph targets
386
+ BindMorphTargetParameters(renderingMesh, effect);
387
+ if (renderingMesh.morphTargetManager && renderingMesh.morphTargetManager.isUsingTextureForTargets) {
388
+ renderingMesh.morphTargetManager._bind(effect);
389
+ }
390
+ // Baked vertex animations
391
+ const bvaManager = subMesh.getMesh().bakedVertexAnimationManager;
392
+ if (bvaManager && bvaManager.isEnabled) {
393
+ bvaManager.bind(effect, hardwareInstancedRendering);
394
+ }
395
+ }
396
+ if (hardwareInstancedRendering && renderingMesh.hasThinInstances) {
397
+ effect.setMatrix("world", effectiveMesh.getWorldMatrix());
398
+ }
399
+ // Draw
400
+ renderingMesh._processRendering(effectiveMesh, subMesh, effect, Material.TriangleFillMode, batch, hardwareInstancedRendering, (isInstance, world) => {
401
+ if (!isInstance) {
402
+ effect.setMatrix("world", world);
403
+ }
404
+ });
438
405
  }
439
- return 0;
406
+ };
407
+ // Render target texture callbacks
408
+ let savedSceneClearColor;
409
+ const sceneClearColor = new Color4(0.0, 0.0, 0.0, 1.0);
410
+ this._volumetricLightScatteringRTT.onBeforeRenderObservable.add(() => {
411
+ savedSceneClearColor = scene.clearColor;
412
+ scene.clearColor = sceneClearColor;
413
+ });
414
+ this._volumetricLightScatteringRTT.onAfterRenderObservable.add(() => {
415
+ scene.clearColor = savedSceneClearColor;
440
416
  });
441
- // Render sub meshes
442
- engine.setAlphaMode(2);
443
- for (index = 0; index < sortedArray.length; index++) {
444
- renderSubMesh(sortedArray[index]);
417
+ this._volumetricLightScatteringRTT.customIsReadyFunction = (mesh, refreshRate, preWarm) => {
418
+ if ((preWarm || refreshRate === 0) && mesh.subMeshes) {
419
+ for (let i = 0; i < mesh.subMeshes.length; ++i) {
420
+ const subMesh = mesh.subMeshes[i];
421
+ const material = subMesh.getMaterial();
422
+ const renderingMesh = subMesh.getRenderingMesh();
423
+ if (!material) {
424
+ continue;
425
+ }
426
+ const batch = renderingMesh._getInstancesRenderList(subMesh._id, !!subMesh.getReplacementMesh());
427
+ const hardwareInstancedRendering = engine.getCaps().instancedArrays && (batch.visibleInstances[subMesh._id] !== null || renderingMesh.hasThinInstances);
428
+ if (!this._isReady(subMesh, hardwareInstancedRendering)) {
429
+ return false;
430
+ }
431
+ }
432
+ }
433
+ return true;
434
+ };
435
+ this._volumetricLightScatteringRTT.customRenderFunction = (opaqueSubMeshes, alphaTestSubMeshes, transparentSubMeshes, depthOnlySubMeshes) => {
436
+ const engine = scene.getEngine();
437
+ let index;
438
+ if (depthOnlySubMeshes.length) {
439
+ engine.setColorWrite(false);
440
+ for (index = 0; index < depthOnlySubMeshes.length; index++) {
441
+ renderSubMesh(depthOnlySubMeshes.data[index]);
442
+ }
443
+ engine.setColorWrite(true);
444
+ }
445
+ for (index = 0; index < opaqueSubMeshes.length; index++) {
446
+ renderSubMesh(opaqueSubMeshes.data[index]);
447
+ }
448
+ for (index = 0; index < alphaTestSubMeshes.length; index++) {
449
+ renderSubMesh(alphaTestSubMeshes.data[index]);
450
+ }
451
+ if (transparentSubMeshes.length) {
452
+ // Sort sub meshes
453
+ for (index = 0; index < transparentSubMeshes.length; index++) {
454
+ const submesh = transparentSubMeshes.data[index];
455
+ const boundingInfo = submesh.getBoundingInfo();
456
+ if (boundingInfo && scene.activeCamera) {
457
+ submesh._alphaIndex = submesh.getMesh().alphaIndex;
458
+ submesh._distanceToCamera = boundingInfo.boundingSphere.centerWorld.subtract(scene.activeCamera.position).length();
459
+ }
460
+ }
461
+ const sortedArray = transparentSubMeshes.data.slice(0, transparentSubMeshes.length);
462
+ sortedArray.sort((a, b) => {
463
+ // Alpha index first
464
+ if (a._alphaIndex > b._alphaIndex) {
465
+ return 1;
466
+ }
467
+ if (a._alphaIndex < b._alphaIndex) {
468
+ return -1;
469
+ }
470
+ // Then distance to camera
471
+ if (a._distanceToCamera < b._distanceToCamera) {
472
+ return 1;
473
+ }
474
+ if (a._distanceToCamera > b._distanceToCamera) {
475
+ return -1;
476
+ }
477
+ return 0;
478
+ });
479
+ // Render sub meshes
480
+ engine.setAlphaMode(2);
481
+ for (index = 0; index < sortedArray.length; index++) {
482
+ renderSubMesh(sortedArray[index]);
483
+ }
484
+ engine.setAlphaMode(0);
485
+ }
486
+ };
487
+ }
488
+ _updateMeshScreenCoordinates(scene) {
489
+ const transform = scene.getTransformMatrix();
490
+ let meshPosition;
491
+ if (this.useCustomMeshPosition) {
492
+ meshPosition = this.customMeshPosition;
493
+ }
494
+ else if (this.attachedNode) {
495
+ meshPosition = this.attachedNode.position;
496
+ }
497
+ else {
498
+ meshPosition = this.mesh.parent ? this.mesh.getAbsolutePosition() : this.mesh.position;
499
+ }
500
+ const pos = Vector3.Project(meshPosition, Matrix.Identity(), transform, this._viewPort);
501
+ this._screenCoordinates.x = pos.x / this._viewPort.width;
502
+ this._screenCoordinates.y = pos.y / this._viewPort.height;
503
+ if (this.invert) {
504
+ this._screenCoordinates.y = 1.0 - this._screenCoordinates.y;
445
505
  }
446
- engine.setAlphaMode(0);
447
506
  }
448
- };
449
- }
450
- _updateMeshScreenCoordinates(scene) {
451
- const transform = scene.getTransformMatrix();
452
- let meshPosition;
453
- if (this.useCustomMeshPosition) {
454
- meshPosition = this.customMeshPosition;
455
- }
456
- else if (this.attachedNode) {
457
- meshPosition = this.attachedNode.position;
458
- }
459
- else {
460
- meshPosition = this.mesh.parent ? this.mesh.getAbsolutePosition() : this.mesh.position;
461
- }
462
- const pos = Vector3.Project(meshPosition, Matrix.Identity(), transform, this._viewPort);
463
- this._screenCoordinates.x = pos.x / this._viewPort.width;
464
- this._screenCoordinates.y = pos.y / this._viewPort.height;
465
- if (this.invert) {
466
- this._screenCoordinates.y = 1.0 - this._screenCoordinates.y;
467
- }
468
- }
469
- // Static methods
470
- /**
471
- * Creates a default mesh for the Volumeric Light Scattering post-process
472
- * @param name The mesh name
473
- * @param scene The scene where to create the mesh
474
- * @returns the default mesh
475
- */
476
- static CreateDefaultMesh(name, scene) {
477
- const mesh = CreatePlane(name, { size: 1 }, scene);
478
- mesh.billboardMode = AbstractMesh.BILLBOARDMODE_ALL;
479
- const material = new StandardMaterial(name + "Material", scene);
480
- material.emissiveColor = new Color3(1, 1, 1);
481
- mesh.material = material;
482
- return mesh;
483
- }
484
- }
485
- __decorate([
486
- serializeAsVector3()
487
- ], VolumetricLightScatteringPostProcess.prototype, "customMeshPosition", void 0);
488
- __decorate([
489
- serialize()
490
- ], VolumetricLightScatteringPostProcess.prototype, "useCustomMeshPosition", void 0);
491
- __decorate([
492
- serialize()
493
- ], VolumetricLightScatteringPostProcess.prototype, "invert", void 0);
494
- __decorate([
495
- serializeAsMeshReference()
496
- ], VolumetricLightScatteringPostProcess.prototype, "mesh", void 0);
497
- __decorate([
498
- serialize()
499
- ], VolumetricLightScatteringPostProcess.prototype, "excludedMeshes", void 0);
500
- __decorate([
501
- serialize()
502
- ], VolumetricLightScatteringPostProcess.prototype, "includedMeshes", void 0);
503
- __decorate([
504
- serialize()
505
- ], VolumetricLightScatteringPostProcess.prototype, "exposure", void 0);
506
- __decorate([
507
- serialize()
508
- ], VolumetricLightScatteringPostProcess.prototype, "decay", void 0);
509
- __decorate([
510
- serialize()
511
- ], VolumetricLightScatteringPostProcess.prototype, "weight", void 0);
512
- __decorate([
513
- serialize()
514
- ], VolumetricLightScatteringPostProcess.prototype, "density", void 0);
507
+ // Static methods
508
+ /**
509
+ * Creates a default mesh for the Volumeric Light Scattering post-process
510
+ * @param name The mesh name
511
+ * @param scene The scene where to create the mesh
512
+ * @returns the default mesh
513
+ */
514
+ static CreateDefaultMesh(name, scene) {
515
+ const mesh = CreatePlane(name, { size: 1 }, scene);
516
+ mesh.billboardMode = AbstractMesh.BILLBOARDMODE_ALL;
517
+ const material = new StandardMaterial(name + "Material", scene);
518
+ material.emissiveColor = new Color3(1, 1, 1);
519
+ mesh.material = material;
520
+ return mesh;
521
+ }
522
+ },
523
+ (() => {
524
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
525
+ _customMeshPosition_decorators = [serializeAsVector3()];
526
+ _useCustomMeshPosition_decorators = [serialize()];
527
+ _invert_decorators = [serialize()];
528
+ _mesh_decorators = [serializeAsMeshReference()];
529
+ _excludedMeshes_decorators = [serialize()];
530
+ _includedMeshes_decorators = [serialize()];
531
+ _exposure_decorators = [serialize()];
532
+ _decay_decorators = [serialize()];
533
+ _weight_decorators = [serialize()];
534
+ _density_decorators = [serialize()];
535
+ __esDecorate(null, null, _customMeshPosition_decorators, { kind: "field", name: "customMeshPosition", static: false, private: false, access: { has: obj => "customMeshPosition" in obj, get: obj => obj.customMeshPosition, set: (obj, value) => { obj.customMeshPosition = value; } }, metadata: _metadata }, _customMeshPosition_initializers, _customMeshPosition_extraInitializers);
536
+ __esDecorate(null, null, _useCustomMeshPosition_decorators, { kind: "field", name: "useCustomMeshPosition", static: false, private: false, access: { has: obj => "useCustomMeshPosition" in obj, get: obj => obj.useCustomMeshPosition, set: (obj, value) => { obj.useCustomMeshPosition = value; } }, metadata: _metadata }, _useCustomMeshPosition_initializers, _useCustomMeshPosition_extraInitializers);
537
+ __esDecorate(null, null, _invert_decorators, { kind: "field", name: "invert", static: false, private: false, access: { has: obj => "invert" in obj, get: obj => obj.invert, set: (obj, value) => { obj.invert = value; } }, metadata: _metadata }, _invert_initializers, _invert_extraInitializers);
538
+ __esDecorate(null, null, _mesh_decorators, { kind: "field", name: "mesh", static: false, private: false, access: { has: obj => "mesh" in obj, get: obj => obj.mesh, set: (obj, value) => { obj.mesh = value; } }, metadata: _metadata }, _mesh_initializers, _mesh_extraInitializers);
539
+ __esDecorate(null, null, _excludedMeshes_decorators, { kind: "field", name: "excludedMeshes", static: false, private: false, access: { has: obj => "excludedMeshes" in obj, get: obj => obj.excludedMeshes, set: (obj, value) => { obj.excludedMeshes = value; } }, metadata: _metadata }, _excludedMeshes_initializers, _excludedMeshes_extraInitializers);
540
+ __esDecorate(null, null, _includedMeshes_decorators, { kind: "field", name: "includedMeshes", static: false, private: false, access: { has: obj => "includedMeshes" in obj, get: obj => obj.includedMeshes, set: (obj, value) => { obj.includedMeshes = value; } }, metadata: _metadata }, _includedMeshes_initializers, _includedMeshes_extraInitializers);
541
+ __esDecorate(null, null, _exposure_decorators, { kind: "field", name: "exposure", static: false, private: false, access: { has: obj => "exposure" in obj, get: obj => obj.exposure, set: (obj, value) => { obj.exposure = value; } }, metadata: _metadata }, _exposure_initializers, _exposure_extraInitializers);
542
+ __esDecorate(null, null, _decay_decorators, { kind: "field", name: "decay", static: false, private: false, access: { has: obj => "decay" in obj, get: obj => obj.decay, set: (obj, value) => { obj.decay = value; } }, metadata: _metadata }, _decay_initializers, _decay_extraInitializers);
543
+ __esDecorate(null, null, _weight_decorators, { kind: "field", name: "weight", static: false, private: false, access: { has: obj => "weight" in obj, get: obj => obj.weight, set: (obj, value) => { obj.weight = value; } }, metadata: _metadata }, _weight_initializers, _weight_extraInitializers);
544
+ __esDecorate(null, null, _density_decorators, { kind: "field", name: "density", static: false, private: false, access: { has: obj => "density" in obj, get: obj => obj.density, set: (obj, value) => { obj.density = value; } }, metadata: _metadata }, _density_initializers, _density_extraInitializers);
545
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
546
+ })(),
547
+ _a;
548
+ })();
549
+ export { VolumetricLightScatteringPostProcess };
515
550
  let _Registered = false;
516
551
  /**
517
552
  * Register side effects for volumetricLightScatteringPostProcess.