@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 { Logger } from "../../../Misc/logger.js";
4
4
  import { serialize } from "../../../Misc/decorators.js";
5
5
  import { SerializationHelper } from "../../../Misc/decorators.serialization.js";
@@ -18,497 +18,527 @@ import { ThinSSAO2PostProcess } from "../../thinSSAO2PostProcess.js";
18
18
  import { ThinSSAO2BlurPostProcess } from "../../thinSSAO2BlurPostProcess.js";
19
19
  import { ThinSSAO2CombinePostProcess } from "../../thinSSAO2CombinePostProcess.js";
20
20
  import { RegisterClass } from "../../../Misc/typeStore.js";
21
+ import { RegisterPostProcessRenderPipelineManagerSceneComponent } from "../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.pure.js";
22
+ import { PostProcessRenderPipelineManager } from "../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js";
21
23
  import { RegisterPrePassRendererSceneComponent } from "../../../Rendering/prePassRendererSceneComponent.pure.js";
22
24
  import { RegisterGeometryBufferRendererSceneComponent } from "../../../Rendering/geometryBufferRendererSceneComponent.pure.js";
23
25
  /* eslint-disable @typescript-eslint/naming-convention */
24
26
  /**
25
27
  * Render pipeline to produce ssao effect
26
28
  */
27
- export class SSAO2RenderingPipeline extends PostProcessRenderPipeline {
28
- /**
29
- * The output strength of the SSAO post-process. Default value is 1.0.
30
- */
31
- get totalStrength() {
32
- return this._thinSSAORenderingPipeline.totalStrength;
33
- }
34
- set totalStrength(value) {
35
- this._thinSSAORenderingPipeline.totalStrength = value;
36
- }
37
- /**
38
- * Maximum depth value to still render AO. A smooth falloff makes the dimming more natural, so there will be no abrupt shading change.
39
- */
40
- get maxZ() {
41
- return this._thinSSAORenderingPipeline.maxZ;
42
- }
43
- set maxZ(value) {
44
- this._thinSSAORenderingPipeline.maxZ = value;
45
- }
46
- /**
47
- * In order to save performances, SSAO radius is clamped on close geometry. This ratio changes by how much.
48
- */
49
- get minZAspect() {
50
- return this._thinSSAORenderingPipeline.minZAspect;
51
- }
52
- set minZAspect(value) {
53
- this._thinSSAORenderingPipeline.minZAspect = value;
54
- }
55
- /**
56
- * Used in SSAO calculations to compensate for accuracy issues with depth values. Default 0.02.
57
- *
58
- * Normally you do not need to change this value, but you can experiment with it if you get a lot of in false self-occlusion on flat surfaces when using fewer than 16 samples. Useful range is normally [0..0.1] but higher values is allowed.
59
- */
60
- set epsilon(n) {
61
- this._thinSSAORenderingPipeline.epsilon = n;
62
- }
63
- get epsilon() {
64
- return this._thinSSAORenderingPipeline.epsilon;
65
- }
66
- /**
67
- * Number of samples used for the SSAO calculations. Default value is 8.
68
- */
69
- set samples(n) {
70
- this._thinSSAORenderingPipeline.samples = n;
71
- }
72
- get samples() {
73
- return this._thinSSAORenderingPipeline.samples;
74
- }
75
- /**
76
- * Number of samples to use for antialiasing.
77
- */
78
- set textureSamples(n) {
79
- this._textureSamples = n;
80
- if (this._prePassRenderer) {
81
- this._prePassRenderer.samples = n;
82
- }
83
- else {
84
- this._originalColorPostProcess.samples = n;
85
- }
86
- }
87
- get textureSamples() {
88
- return this._textureSamples;
89
- }
90
- get _geometryBufferRenderer() {
91
- if (!this._forceGeometryBuffer) {
92
- return null;
93
- }
94
- return this._forcedGeometryBuffer ?? this._scene.geometryBufferRenderer;
95
- }
96
- get _prePassRenderer() {
97
- if (this._forceGeometryBuffer) {
98
- return null;
99
- }
100
- return this._scene.prePassRenderer;
101
- }
102
- /**
103
- * The radius around the analyzed pixel used by the SSAO post-process. Default value is 2.0
104
- */
105
- get radius() {
106
- return this._thinSSAORenderingPipeline.radius;
107
- }
108
- set radius(value) {
109
- this._thinSSAORenderingPipeline.radius = value;
110
- }
111
- /**
112
- * The base color of the SSAO post-process
113
- * The final result is "base + ssao" between [0, 1]
114
- */
115
- get base() {
116
- return this._thinSSAORenderingPipeline.base;
117
- }
118
- set base(value) {
119
- this._thinSSAORenderingPipeline.base = value;
120
- }
121
- /**
122
- * Skips the denoising (blur) stage of the SSAO calculations.
123
- *
124
- * Useful to temporarily set while experimenting with the other SSAO2 settings.
125
- */
126
- set bypassBlur(b) {
127
- this._thinSSAORenderingPipeline.bypassBlur = b;
128
- }
129
- get bypassBlur() {
130
- return this._thinSSAORenderingPipeline.bypassBlur;
131
- }
132
- /**
133
- * Enables the configurable bilateral denoising (blurring) filter. Default is true.
134
- * Set to false to instead use a legacy bilateral filter that can't be configured.
135
- *
136
- * The denoising filter runs after the SSAO calculations and is a very important step. Both options results in a so called bilateral being used, but the "expensive" one can be
137
- * configured in several ways to fit your scene.
138
- */
139
- set expensiveBlur(b) {
140
- this._thinSSAORenderingPipeline.expensiveBlur = b;
141
- }
142
- get expensiveBlur() {
143
- return this._thinSSAORenderingPipeline.expensiveBlur;
144
- }
145
- /**
146
- * The number of samples the bilateral filter uses in both dimensions when denoising the SSAO calculations. Default value is 16.
147
- *
148
- * A higher value should result in smoother shadows but will use more processing time in the shaders.
149
- *
150
- * A high value can cause the shadows to get to blurry or create visible artifacts (bands) near sharp details in the geometry. The artifacts can sometimes be mitigated by increasing the bilateralSoften setting.
151
- */
152
- get bilateralSamples() {
153
- return this._thinSSAORenderingPipeline.bilateralSamples;
154
- }
155
- set bilateralSamples(n) {
156
- this._thinSSAORenderingPipeline.bilateralSamples = n;
157
- }
158
- /**
159
- * Controls the shape of the denoising kernel used by the bilateral filter. Default value is 0.
160
- *
161
- * By default the bilateral filter acts like a box-filter, treating all samples on the same depth with equal weights. This is effective to maximize the denoising effect given a limited set of samples. However, it also often results in visible ghosting around sharp shadow regions and can spread out lines over large areas so they are no longer visible.
162
- *
163
- * Increasing this setting will make the filter pay less attention to samples further away from the center sample, reducing many artifacts but at the same time increasing noise.
164
- *
165
- * Useful value range is [0..1].
166
- */
167
- get bilateralSoften() {
168
- return this._thinSSAORenderingPipeline.bilateralSoften;
169
- }
170
- set bilateralSoften(n) {
171
- this._thinSSAORenderingPipeline.bilateralSoften = n;
172
- }
173
- /**
174
- * How forgiving the bilateral denoiser should be when rejecting samples. Default value is 0.
175
- *
176
- * A higher value results in the bilateral filter being more forgiving and thus doing a better job at denoising slanted and curved surfaces, but can lead to shadows spreading out around corners or between objects that are close to each other depth wise.
177
- *
178
- * Useful value range is normally [0..1], but higher values are allowed.
179
- */
180
- get bilateralTolerance() {
181
- return this._thinSSAORenderingPipeline.bilateralTolerance;
182
- }
183
- set bilateralTolerance(n) {
184
- this._thinSSAORenderingPipeline.bilateralTolerance = n;
185
- }
186
- /**
187
- * Support test.
188
- */
189
- static get IsSupported() {
190
- const engine = EngineStore.LastCreatedEngine;
191
- if (!engine) {
192
- return false;
193
- }
194
- return engine._features.supportSSAO2;
195
- }
196
- /**
197
- * Indicates that the combine stage should use the current camera viewport to render the SSAO result on only a portion of the output texture (default: true).
198
- */
199
- get useViewportInCombineStage() {
200
- return this._thinSSAORenderingPipeline.useViewportInCombineStage;
201
- }
202
- set useViewportInCombineStage(b) {
203
- this._thinSSAORenderingPipeline.useViewportInCombineStage = b;
204
- }
205
- /**
206
- * Checks if all the post processes in the pipeline are ready.
207
- * @returns True if all the post processes in the pipeline are ready
208
- */
209
- isReady() {
210
- this._syncNormalsInWorldSpace();
211
- return this._thinSSAORenderingPipeline.isReady();
212
- }
213
- /**
214
- * Gets active scene
215
- */
216
- get scene() {
217
- return this._scene;
218
- }
219
- /**
220
- * Creates the SSAO2 rendering pipeline.
221
- * @param name The rendering pipeline name
222
- * @param scene The scene linked to this pipeline
223
- * @param ratio The size of the postprocesses. Can be a number shared between passes or an object for more precision: { ssaoRatio: 0.5, blurRatio: 1.0 }
224
- * @param cameras The array of cameras that the rendering pipeline will be attached to
225
- * @param forceGeometryBuffer Set to true if you want to use the legacy geometry buffer renderer. You can also pass an existing instance of GeometryBufferRenderer if you want to use your own geometry buffer renderer.
226
- * @param textureType The texture type used by the different post processes created by SSAO (default: 0)
227
- */
228
- constructor(name, scene, ratio, cameras, forceGeometryBuffer = false, textureType = 0) {
229
- RegisterPrePassRendererSceneComponent(PrePassRenderer);
230
- RegisterGeometryBufferRendererSceneComponent(GeometryBufferRenderer);
231
- super(scene.getEngine(), name);
232
- // Members
233
- /**
234
- * @ignore
235
- * The PassPostProcess id in the pipeline that contains the original scene color
236
- */
237
- this.SSAOOriginalSceneColorEffect = "SSAOOriginalSceneColorEffect";
238
- /**
239
- * @ignore
240
- * The SSAO PostProcess id in the pipeline
241
- */
242
- this.SSAORenderEffect = "SSAORenderEffect";
243
- /**
244
- * @ignore
245
- * The horizontal blur PostProcess id in the pipeline
246
- */
247
- this.SSAOBlurHRenderEffect = "SSAOBlurHRenderEffect";
248
- /**
249
- * @ignore
250
- * The vertical blur PostProcess id in the pipeline
251
- */
252
- this.SSAOBlurVRenderEffect = "SSAOBlurVRenderEffect";
253
- /**
254
- * @ignore
255
- * The PostProcess id in the pipeline that combines the SSAO-Blur output with the original scene color (SSAOOriginalSceneColorEffect)
256
- */
257
- this.SSAOCombineRenderEffect = "SSAOCombineRenderEffect";
258
- this._textureSamples = 1;
259
- this._forcedGeometryBuffer = null;
260
- /**
261
- * Force rendering the geometry through geometry buffer.
262
- */
263
- this._forceGeometryBuffer = false;
264
- this._currentCameraMode = -1;
265
- this._thinSSAORenderingPipeline = new ThinSSAO2RenderingPipeline(name, scene);
266
- this._scene = scene;
267
- this._ratio = ratio;
268
- this._textureType = textureType;
269
- if (forceGeometryBuffer instanceof GeometryBufferRenderer) {
270
- this._forceGeometryBuffer = true;
271
- this._forcedGeometryBuffer = forceGeometryBuffer;
272
- }
273
- else {
274
- this._forceGeometryBuffer = forceGeometryBuffer;
275
- }
276
- if (!this.isSupported) {
277
- Logger.Error("The current engine does not support SSAO 2.");
278
- return;
279
- }
280
- const ssaoRatio = this._ratio.ssaoRatio || ratio;
281
- const blurRatio = this._ratio.blurRatio || ratio;
282
- // Set up assets
283
- if (this._forceGeometryBuffer) {
284
- if (!this._forcedGeometryBuffer) {
285
- scene.enableGeometryBufferRenderer();
286
- }
287
- }
288
- else {
289
- scene.enablePrePassRenderer();
290
- }
291
- this._syncNormalsInWorldSpace();
292
- this._originalColorPostProcess = new PassPostProcess("SSAOOriginalSceneColor", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), undefined, this._textureType);
293
- this._originalColorPostProcess.onBeforeRenderObservable.add(() => {
294
- this._syncNormalsInWorldSpace();
295
- const camera = this._scene.activeCamera;
296
- this._thinSSAORenderingPipeline._ssaoPostProcess.camera = camera;
297
- if (camera && this._currentCameraMode !== camera.mode) {
298
- this._currentCameraMode = camera.mode;
299
- this._thinSSAORenderingPipeline._ssaoPostProcess.updateEffect();
300
- }
301
- });
302
- this._originalColorPostProcess.samples = this.textureSamples;
303
- this._createSSAOPostProcess(1.0, textureType);
304
- this._createBlurPostProcess(ssaoRatio, blurRatio, this._textureType);
305
- this._createSSAOCombinePostProcess(blurRatio, this._textureType);
306
- // Set up pipeline
307
- this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOOriginalSceneColorEffect, () => {
308
- return this._originalColorPostProcess;
309
- }, true));
310
- this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAORenderEffect, () => {
311
- return this._ssaoPostProcess;
312
- }, true));
313
- this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOBlurHRenderEffect, () => {
314
- return this._blurHPostProcess;
315
- }, true));
316
- this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOBlurVRenderEffect, () => {
317
- return this._blurVPostProcess;
318
- }, true));
319
- this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOCombineRenderEffect, () => {
320
- return this._ssaoCombinePostProcess;
321
- }, true));
322
- // Finish
323
- scene.postProcessRenderPipelineManager.addPipeline(this);
324
- if (cameras) {
325
- scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(name, cameras);
326
- }
327
- }
328
- // Public Methods
329
- /**
330
- * Get the class name
331
- * @returns "SSAO2RenderingPipeline"
332
- */
333
- getClassName() {
334
- return "SSAO2RenderingPipeline";
335
- }
336
- /**
337
- * Removes the internal pipeline assets and detaches the pipeline from the scene cameras
338
- * @param disableGeometryBufferRenderer Set to true if you want to disable the Geometry Buffer renderer
339
- */
340
- dispose(disableGeometryBufferRenderer = false) {
341
- for (let i = 0; i < this._scene.cameras.length; i++) {
342
- const camera = this._scene.cameras[i];
343
- this._originalColorPostProcess.dispose(camera);
344
- this._ssaoPostProcess.dispose(camera);
345
- this._blurHPostProcess.dispose(camera);
346
- this._blurVPostProcess.dispose(camera);
347
- this._ssaoCombinePostProcess.dispose(camera);
348
- }
349
- if (disableGeometryBufferRenderer && !this._forcedGeometryBuffer) {
350
- this._scene.disableGeometryBufferRenderer();
351
- }
352
- this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras);
353
- this._scene.postProcessRenderPipelineManager.removePipeline(this._name);
354
- this._thinSSAORenderingPipeline.dispose();
355
- super.dispose();
356
- }
357
- // Private Methods
358
- _syncNormalsInWorldSpace() {
359
- const renderer = this._forceGeometryBuffer ? this._geometryBufferRenderer : this._prePassRenderer;
360
- const normalsInWorldSpace = !!renderer?.generateNormalsInWorldSpace;
361
- this._thinSSAORenderingPipeline._ssaoPostProcess.normalsInWorldSpace = normalsInWorldSpace;
362
- }
363
- /** @internal */
364
- _rebuild() {
365
- super._rebuild();
366
- }
367
- _createBlurPostProcess(ssaoRatio, blurRatio, textureType) {
368
- this._blurHPostProcess = this._createBlurFilter("BlurH", ssaoRatio, textureType, true);
369
- this._blurVPostProcess = this._createBlurFilter("BlurV", blurRatio, textureType, false);
370
- }
371
- _createBlurFilter(name, ratio, textureType, horizontal) {
372
- const blurFilter = new PostProcess(name, ThinSSAO2BlurPostProcess.FragmentUrl, {
373
- size: ratio,
374
- samplingMode: 2,
375
- engine: this._scene.getEngine(),
376
- textureType: this._textureType,
377
- effectWrapper: horizontal ? this._thinSSAORenderingPipeline._ssaoBlurXPostProcess : this._thinSSAORenderingPipeline._ssaoBlurYPostProcess,
378
- });
379
- blurFilter.onApply = (effect) => {
380
- const ratio = this._ratio.blurRatio || this._ratio;
381
- const ssaoCombineSize = horizontal ? this._originalColorPostProcess.width * ratio : this._originalColorPostProcess.height * ratio;
382
- const originalColorSize = horizontal ? this._originalColorPostProcess.width : this._originalColorPostProcess.height;
383
- this._thinSSAORenderingPipeline._ssaoBlurXPostProcess.textureSize = ssaoCombineSize > 0 ? ssaoCombineSize : originalColorSize;
384
- this._thinSSAORenderingPipeline._ssaoBlurYPostProcess.textureSize = ssaoCombineSize > 0 ? ssaoCombineSize : originalColorSize;
385
- if (this._geometryBufferRenderer) {
386
- effect.setTexture("depthSampler", this._geometryBufferRenderer.getGBuffer().textures[0]);
387
- }
388
- else if (this._prePassRenderer) {
389
- effect.setTexture("depthSampler", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)]);
390
- }
391
- };
392
- blurFilter.samples = this.textureSamples;
393
- blurFilter.autoClear = false;
394
- return blurFilter;
395
- }
396
- _getTextureSize() {
397
- const engine = this._scene.getEngine();
398
- const prePassRenderer = this._prePassRenderer;
399
- let textureSize = { width: engine.getRenderWidth(), height: engine.getRenderHeight() };
400
- if (prePassRenderer && this._scene.activeCamera?._getFirstPostProcess() === this._ssaoPostProcess) {
401
- const renderTarget = prePassRenderer.getRenderTarget();
402
- if (renderTarget && renderTarget.textures) {
403
- textureSize = renderTarget.textures[prePassRenderer.getIndex(4)].getSize();
404
- }
405
- }
406
- else if (this._ssaoPostProcess.inputTexture) {
407
- textureSize.width = this._ssaoPostProcess.inputTexture.width;
408
- textureSize.height = this._ssaoPostProcess.inputTexture.height;
409
- }
410
- return textureSize;
411
- }
412
- _createSSAOPostProcess(ratio, textureType) {
413
- this._ssaoPostProcess = new PostProcess("ssao", ThinSSAO2PostProcess.FragmentUrl, {
414
- size: ratio,
415
- samplingMode: 2,
416
- engine: this._scene.getEngine(),
417
- textureType,
418
- effectWrapper: this._thinSSAORenderingPipeline._ssaoPostProcess,
419
- });
420
- this._ssaoPostProcess.autoClear = false;
421
- this._ssaoPostProcess.onApply = (effect) => {
422
- if (this._geometryBufferRenderer) {
423
- effect.setTexture("depthSampler", this._geometryBufferRenderer.getGBuffer().textures[0]);
424
- effect.setTexture("normalSampler", this._geometryBufferRenderer.getGBuffer().textures[1]);
425
- }
426
- else if (this._prePassRenderer) {
427
- effect.setTexture("depthSampler", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)]);
428
- effect.setTexture("normalSampler", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(6)]);
429
- }
430
- const textureSize = this._getTextureSize();
431
- this._thinSSAORenderingPipeline._ssaoPostProcess.textureWidth = textureSize.width;
432
- this._thinSSAORenderingPipeline._ssaoPostProcess.textureHeight = textureSize.height;
433
- };
434
- this._ssaoPostProcess.samples = this.textureSamples;
435
- if (!this._forceGeometryBuffer) {
436
- this._ssaoPostProcess._prePassEffectConfiguration = new SSAO2Configuration();
437
- }
438
- }
439
- _createSSAOCombinePostProcess(ratio, textureType) {
440
- this._ssaoCombinePostProcess = new PostProcess("ssaoCombine", ThinSSAO2CombinePostProcess.FragmentUrl, {
441
- size: ratio,
442
- samplingMode: 2,
443
- engine: this._scene.getEngine(),
444
- textureType,
445
- effectWrapper: this._thinSSAORenderingPipeline._ssaoCombinePostProcess,
446
- });
447
- this._ssaoCombinePostProcess.onApply = (effect) => {
448
- this._thinSSAORenderingPipeline._ssaoCombinePostProcess.camera = this._scene.activeCamera;
449
- effect.setTextureFromPostProcessOutput("originalColor", this._originalColorPostProcess);
450
- };
451
- this._ssaoCombinePostProcess.autoClear = false;
452
- this._ssaoCombinePostProcess.samples = this.textureSamples;
453
- }
454
- /**
455
- * Serialize the rendering pipeline (Used when exporting)
456
- * @returns the serialized object
457
- */
458
- serialize() {
459
- const serializationObject = SerializationHelper.Serialize(this);
460
- serializationObject.customType = "SSAO2RenderingPipeline";
461
- return serializationObject;
462
- }
463
- }
464
- __decorate([
465
- serialize()
466
- ], SSAO2RenderingPipeline.prototype, "totalStrength", null);
467
- __decorate([
468
- serialize()
469
- ], SSAO2RenderingPipeline.prototype, "maxZ", null);
470
- __decorate([
471
- serialize()
472
- ], SSAO2RenderingPipeline.prototype, "minZAspect", null);
473
- __decorate([
474
- serialize("epsilon")
475
- ], SSAO2RenderingPipeline.prototype, "epsilon", null);
476
- __decorate([
477
- serialize("samples")
478
- ], SSAO2RenderingPipeline.prototype, "samples", null);
479
- __decorate([
480
- serialize("textureSamples")
481
- ], SSAO2RenderingPipeline.prototype, "_textureSamples", void 0);
482
- __decorate([
483
- serialize()
484
- ], SSAO2RenderingPipeline.prototype, "_forceGeometryBuffer", void 0);
485
- __decorate([
486
- serialize()
487
- ], SSAO2RenderingPipeline.prototype, "_ratio", void 0);
488
- __decorate([
489
- serialize()
490
- ], SSAO2RenderingPipeline.prototype, "_textureType", void 0);
491
- __decorate([
492
- serialize()
493
- ], SSAO2RenderingPipeline.prototype, "radius", null);
494
- __decorate([
495
- serialize()
496
- ], SSAO2RenderingPipeline.prototype, "base", null);
497
- __decorate([
498
- serialize("bypassBlur")
499
- ], SSAO2RenderingPipeline.prototype, "bypassBlur", null);
500
- __decorate([
501
- serialize("expensiveBlur")
502
- ], SSAO2RenderingPipeline.prototype, "expensiveBlur", null);
503
- __decorate([
504
- serialize()
505
- ], SSAO2RenderingPipeline.prototype, "bilateralSamples", null);
506
- __decorate([
507
- serialize()
508
- ], SSAO2RenderingPipeline.prototype, "bilateralSoften", null);
509
- __decorate([
510
- serialize()
511
- ], SSAO2RenderingPipeline.prototype, "bilateralTolerance", null);
29
+ let SSAO2RenderingPipeline = (() => {
30
+ var _a;
31
+ let _classSuper = PostProcessRenderPipeline;
32
+ let _instanceExtraInitializers = [];
33
+ let _get_totalStrength_decorators;
34
+ let _get_maxZ_decorators;
35
+ let _get_minZAspect_decorators;
36
+ let _set_epsilon_decorators;
37
+ let _set_samples_decorators;
38
+ let __textureSamples_decorators;
39
+ let __textureSamples_initializers = [];
40
+ let __textureSamples_extraInitializers = [];
41
+ let __forceGeometryBuffer_decorators;
42
+ let __forceGeometryBuffer_initializers = [];
43
+ let __forceGeometryBuffer_extraInitializers = [];
44
+ let __ratio_decorators;
45
+ let __ratio_initializers = [];
46
+ let __ratio_extraInitializers = [];
47
+ let __textureType_decorators;
48
+ let __textureType_initializers = [];
49
+ let __textureType_extraInitializers = [];
50
+ let _get_radius_decorators;
51
+ let _get_base_decorators;
52
+ let _set_bypassBlur_decorators;
53
+ let _set_expensiveBlur_decorators;
54
+ let _get_bilateralSamples_decorators;
55
+ let _get_bilateralSoften_decorators;
56
+ let _get_bilateralTolerance_decorators;
57
+ return _a = class SSAO2RenderingPipeline extends _classSuper {
58
+ /**
59
+ * The output strength of the SSAO post-process. Default value is 1.0.
60
+ */
61
+ get totalStrength() {
62
+ return this._thinSSAORenderingPipeline.totalStrength;
63
+ }
64
+ set totalStrength(value) {
65
+ this._thinSSAORenderingPipeline.totalStrength = value;
66
+ }
67
+ /**
68
+ * Maximum depth value to still render AO. A smooth falloff makes the dimming more natural, so there will be no abrupt shading change.
69
+ */
70
+ get maxZ() {
71
+ return this._thinSSAORenderingPipeline.maxZ;
72
+ }
73
+ set maxZ(value) {
74
+ this._thinSSAORenderingPipeline.maxZ = value;
75
+ }
76
+ /**
77
+ * In order to save performances, SSAO radius is clamped on close geometry. This ratio changes by how much.
78
+ */
79
+ get minZAspect() {
80
+ return this._thinSSAORenderingPipeline.minZAspect;
81
+ }
82
+ set minZAspect(value) {
83
+ this._thinSSAORenderingPipeline.minZAspect = value;
84
+ }
85
+ /**
86
+ * Used in SSAO calculations to compensate for accuracy issues with depth values. Default 0.02.
87
+ *
88
+ * Normally you do not need to change this value, but you can experiment with it if you get a lot of in false self-occlusion on flat surfaces when using fewer than 16 samples. Useful range is normally [0..0.1] but higher values is allowed.
89
+ */
90
+ set epsilon(n) {
91
+ this._thinSSAORenderingPipeline.epsilon = n;
92
+ }
93
+ get epsilon() {
94
+ return this._thinSSAORenderingPipeline.epsilon;
95
+ }
96
+ /**
97
+ * Number of samples used for the SSAO calculations. Default value is 8.
98
+ */
99
+ set samples(n) {
100
+ this._thinSSAORenderingPipeline.samples = n;
101
+ }
102
+ get samples() {
103
+ return this._thinSSAORenderingPipeline.samples;
104
+ }
105
+ /**
106
+ * Number of samples to use for antialiasing.
107
+ */
108
+ set textureSamples(n) {
109
+ this._textureSamples = n;
110
+ if (this._prePassRenderer) {
111
+ this._prePassRenderer.samples = n;
112
+ }
113
+ else {
114
+ this._originalColorPostProcess.samples = n;
115
+ }
116
+ }
117
+ get textureSamples() {
118
+ return this._textureSamples;
119
+ }
120
+ get _geometryBufferRenderer() {
121
+ if (!this._forceGeometryBuffer) {
122
+ return null;
123
+ }
124
+ return this._forcedGeometryBuffer ?? this._scene.geometryBufferRenderer;
125
+ }
126
+ get _prePassRenderer() {
127
+ if (this._forceGeometryBuffer) {
128
+ return null;
129
+ }
130
+ return this._scene.prePassRenderer;
131
+ }
132
+ /**
133
+ * The radius around the analyzed pixel used by the SSAO post-process. Default value is 2.0
134
+ */
135
+ get radius() {
136
+ return this._thinSSAORenderingPipeline.radius;
137
+ }
138
+ set radius(value) {
139
+ this._thinSSAORenderingPipeline.radius = value;
140
+ }
141
+ /**
142
+ * The base color of the SSAO post-process
143
+ * The final result is "base + ssao" between [0, 1]
144
+ */
145
+ get base() {
146
+ return this._thinSSAORenderingPipeline.base;
147
+ }
148
+ set base(value) {
149
+ this._thinSSAORenderingPipeline.base = value;
150
+ }
151
+ /**
152
+ * Skips the denoising (blur) stage of the SSAO calculations.
153
+ *
154
+ * Useful to temporarily set while experimenting with the other SSAO2 settings.
155
+ */
156
+ set bypassBlur(b) {
157
+ this._thinSSAORenderingPipeline.bypassBlur = b;
158
+ }
159
+ get bypassBlur() {
160
+ return this._thinSSAORenderingPipeline.bypassBlur;
161
+ }
162
+ /**
163
+ * Enables the configurable bilateral denoising (blurring) filter. Default is true.
164
+ * Set to false to instead use a legacy bilateral filter that can't be configured.
165
+ *
166
+ * The denoising filter runs after the SSAO calculations and is a very important step. Both options results in a so called bilateral being used, but the "expensive" one can be
167
+ * configured in several ways to fit your scene.
168
+ */
169
+ set expensiveBlur(b) {
170
+ this._thinSSAORenderingPipeline.expensiveBlur = b;
171
+ }
172
+ get expensiveBlur() {
173
+ return this._thinSSAORenderingPipeline.expensiveBlur;
174
+ }
175
+ /**
176
+ * The number of samples the bilateral filter uses in both dimensions when denoising the SSAO calculations. Default value is 16.
177
+ *
178
+ * A higher value should result in smoother shadows but will use more processing time in the shaders.
179
+ *
180
+ * A high value can cause the shadows to get to blurry or create visible artifacts (bands) near sharp details in the geometry. The artifacts can sometimes be mitigated by increasing the bilateralSoften setting.
181
+ */
182
+ get bilateralSamples() {
183
+ return this._thinSSAORenderingPipeline.bilateralSamples;
184
+ }
185
+ set bilateralSamples(n) {
186
+ this._thinSSAORenderingPipeline.bilateralSamples = n;
187
+ }
188
+ /**
189
+ * Controls the shape of the denoising kernel used by the bilateral filter. Default value is 0.
190
+ *
191
+ * By default the bilateral filter acts like a box-filter, treating all samples on the same depth with equal weights. This is effective to maximize the denoising effect given a limited set of samples. However, it also often results in visible ghosting around sharp shadow regions and can spread out lines over large areas so they are no longer visible.
192
+ *
193
+ * Increasing this setting will make the filter pay less attention to samples further away from the center sample, reducing many artifacts but at the same time increasing noise.
194
+ *
195
+ * Useful value range is [0..1].
196
+ */
197
+ get bilateralSoften() {
198
+ return this._thinSSAORenderingPipeline.bilateralSoften;
199
+ }
200
+ set bilateralSoften(n) {
201
+ this._thinSSAORenderingPipeline.bilateralSoften = n;
202
+ }
203
+ /**
204
+ * How forgiving the bilateral denoiser should be when rejecting samples. Default value is 0.
205
+ *
206
+ * A higher value results in the bilateral filter being more forgiving and thus doing a better job at denoising slanted and curved surfaces, but can lead to shadows spreading out around corners or between objects that are close to each other depth wise.
207
+ *
208
+ * Useful value range is normally [0..1], but higher values are allowed.
209
+ */
210
+ get bilateralTolerance() {
211
+ return this._thinSSAORenderingPipeline.bilateralTolerance;
212
+ }
213
+ set bilateralTolerance(n) {
214
+ this._thinSSAORenderingPipeline.bilateralTolerance = n;
215
+ }
216
+ /**
217
+ * Support test.
218
+ */
219
+ static get IsSupported() {
220
+ const engine = EngineStore.LastCreatedEngine;
221
+ if (!engine) {
222
+ return false;
223
+ }
224
+ return engine._features.supportSSAO2;
225
+ }
226
+ /**
227
+ * Indicates that the combine stage should use the current camera viewport to render the SSAO result on only a portion of the output texture (default: true).
228
+ */
229
+ get useViewportInCombineStage() {
230
+ return this._thinSSAORenderingPipeline.useViewportInCombineStage;
231
+ }
232
+ set useViewportInCombineStage(b) {
233
+ this._thinSSAORenderingPipeline.useViewportInCombineStage = b;
234
+ }
235
+ /**
236
+ * Checks if all the post processes in the pipeline are ready.
237
+ * @returns True if all the post processes in the pipeline are ready
238
+ */
239
+ isReady() {
240
+ this._syncNormalsInWorldSpace();
241
+ return this._thinSSAORenderingPipeline.isReady();
242
+ }
243
+ /**
244
+ * Gets active scene
245
+ */
246
+ get scene() {
247
+ return this._scene;
248
+ }
249
+ /**
250
+ * Creates the SSAO2 rendering pipeline.
251
+ * @param name The rendering pipeline name
252
+ * @param scene The scene linked to this pipeline
253
+ * @param ratio The size of the postprocesses. Can be a number shared between passes or an object for more precision: { ssaoRatio: 0.5, blurRatio: 1.0 }
254
+ * @param cameras The array of cameras that the rendering pipeline will be attached to
255
+ * @param forceGeometryBuffer Set to true if you want to use the legacy geometry buffer renderer. You can also pass an existing instance of GeometryBufferRenderer if you want to use your own geometry buffer renderer.
256
+ * @param textureType The texture type used by the different post processes created by SSAO (default: 0)
257
+ */
258
+ constructor(name, scene, ratio, cameras, forceGeometryBuffer = false, textureType = 0) {
259
+ RegisterPrePassRendererSceneComponent(PrePassRenderer);
260
+ RegisterGeometryBufferRendererSceneComponent(GeometryBufferRenderer);
261
+ super(scene.getEngine(), name);
262
+ // Members
263
+ /**
264
+ * @ignore
265
+ * The PassPostProcess id in the pipeline that contains the original scene color
266
+ */
267
+ this.SSAOOriginalSceneColorEffect = (__runInitializers(this, _instanceExtraInitializers), "SSAOOriginalSceneColorEffect");
268
+ /**
269
+ * @ignore
270
+ * The SSAO PostProcess id in the pipeline
271
+ */
272
+ this.SSAORenderEffect = "SSAORenderEffect";
273
+ /**
274
+ * @ignore
275
+ * The horizontal blur PostProcess id in the pipeline
276
+ */
277
+ this.SSAOBlurHRenderEffect = "SSAOBlurHRenderEffect";
278
+ /**
279
+ * @ignore
280
+ * The vertical blur PostProcess id in the pipeline
281
+ */
282
+ this.SSAOBlurVRenderEffect = "SSAOBlurVRenderEffect";
283
+ /**
284
+ * @ignore
285
+ * The PostProcess id in the pipeline that combines the SSAO-Blur output with the original scene color (SSAOOriginalSceneColorEffect)
286
+ */
287
+ this.SSAOCombineRenderEffect = "SSAOCombineRenderEffect";
288
+ this._textureSamples = __runInitializers(this, __textureSamples_initializers, 1);
289
+ this._forcedGeometryBuffer = (__runInitializers(this, __textureSamples_extraInitializers), null);
290
+ /**
291
+ * Force rendering the geometry through geometry buffer.
292
+ */
293
+ this._forceGeometryBuffer = __runInitializers(this, __forceGeometryBuffer_initializers, false);
294
+ /**
295
+ * Ratio object used for SSAO ratio and blur ratio
296
+ */
297
+ this._ratio = (__runInitializers(this, __forceGeometryBuffer_extraInitializers), __runInitializers(this, __ratio_initializers, void 0));
298
+ /*
299
+ * The texture type used by the different post processes created by SSAO
300
+ */
301
+ this._textureType = (__runInitializers(this, __ratio_extraInitializers), __runInitializers(this, __textureType_initializers, void 0));
302
+ this._scene = __runInitializers(this, __textureType_extraInitializers);
303
+ this._currentCameraMode = -1;
304
+ this._thinSSAORenderingPipeline = new ThinSSAO2RenderingPipeline(name, scene);
305
+ this._scene = scene;
306
+ this._ratio = ratio;
307
+ this._textureType = textureType;
308
+ if (forceGeometryBuffer instanceof GeometryBufferRenderer) {
309
+ this._forceGeometryBuffer = true;
310
+ this._forcedGeometryBuffer = forceGeometryBuffer;
311
+ }
312
+ else {
313
+ this._forceGeometryBuffer = forceGeometryBuffer;
314
+ }
315
+ if (!this.isSupported) {
316
+ Logger.Error("The current engine does not support SSAO 2.");
317
+ return;
318
+ }
319
+ const ssaoRatio = this._ratio.ssaoRatio || ratio;
320
+ const blurRatio = this._ratio.blurRatio || ratio;
321
+ // Set up assets
322
+ if (this._forceGeometryBuffer) {
323
+ if (!this._forcedGeometryBuffer) {
324
+ scene.enableGeometryBufferRenderer();
325
+ }
326
+ }
327
+ else {
328
+ scene.enablePrePassRenderer();
329
+ }
330
+ this._syncNormalsInWorldSpace();
331
+ this._originalColorPostProcess = new PassPostProcess("SSAOOriginalSceneColor", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), undefined, this._textureType);
332
+ this._originalColorPostProcess.onBeforeRenderObservable.add(() => {
333
+ this._syncNormalsInWorldSpace();
334
+ const camera = this._scene.activeCamera;
335
+ this._thinSSAORenderingPipeline._ssaoPostProcess.camera = camera;
336
+ if (camera && this._currentCameraMode !== camera.mode) {
337
+ this._currentCameraMode = camera.mode;
338
+ this._thinSSAORenderingPipeline._ssaoPostProcess.updateEffect();
339
+ }
340
+ });
341
+ this._originalColorPostProcess.samples = this.textureSamples;
342
+ this._createSSAOPostProcess(1.0, textureType);
343
+ this._createBlurPostProcess(ssaoRatio, blurRatio, this._textureType);
344
+ this._createSSAOCombinePostProcess(blurRatio, this._textureType);
345
+ // Set up pipeline
346
+ this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOOriginalSceneColorEffect, () => {
347
+ return this._originalColorPostProcess;
348
+ }, true));
349
+ this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAORenderEffect, () => {
350
+ return this._ssaoPostProcess;
351
+ }, true));
352
+ this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOBlurHRenderEffect, () => {
353
+ return this._blurHPostProcess;
354
+ }, true));
355
+ this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOBlurVRenderEffect, () => {
356
+ return this._blurVPostProcess;
357
+ }, true));
358
+ this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOCombineRenderEffect, () => {
359
+ return this._ssaoCombinePostProcess;
360
+ }, true));
361
+ // Finish
362
+ scene.postProcessRenderPipelineManager.addPipeline(this);
363
+ if (cameras) {
364
+ scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(name, cameras);
365
+ }
366
+ }
367
+ // Public Methods
368
+ /**
369
+ * Get the class name
370
+ * @returns "SSAO2RenderingPipeline"
371
+ */
372
+ getClassName() {
373
+ return "SSAO2RenderingPipeline";
374
+ }
375
+ /**
376
+ * Removes the internal pipeline assets and detaches the pipeline from the scene cameras
377
+ * @param disableGeometryBufferRenderer Set to true if you want to disable the Geometry Buffer renderer
378
+ */
379
+ dispose(disableGeometryBufferRenderer = false) {
380
+ for (let i = 0; i < this._scene.cameras.length; i++) {
381
+ const camera = this._scene.cameras[i];
382
+ this._originalColorPostProcess.dispose(camera);
383
+ this._ssaoPostProcess.dispose(camera);
384
+ this._blurHPostProcess.dispose(camera);
385
+ this._blurVPostProcess.dispose(camera);
386
+ this._ssaoCombinePostProcess.dispose(camera);
387
+ }
388
+ if (disableGeometryBufferRenderer && !this._forcedGeometryBuffer) {
389
+ this._scene.disableGeometryBufferRenderer();
390
+ }
391
+ this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras);
392
+ this._scene.postProcessRenderPipelineManager.removePipeline(this._name);
393
+ this._thinSSAORenderingPipeline.dispose();
394
+ super.dispose();
395
+ }
396
+ // Private Methods
397
+ _syncNormalsInWorldSpace() {
398
+ const renderer = this._forceGeometryBuffer ? this._geometryBufferRenderer : this._prePassRenderer;
399
+ const normalsInWorldSpace = !!renderer?.generateNormalsInWorldSpace;
400
+ this._thinSSAORenderingPipeline._ssaoPostProcess.normalsInWorldSpace = normalsInWorldSpace;
401
+ }
402
+ /** @internal */
403
+ _rebuild() {
404
+ super._rebuild();
405
+ }
406
+ _createBlurPostProcess(ssaoRatio, blurRatio, textureType) {
407
+ this._blurHPostProcess = this._createBlurFilter("BlurH", ssaoRatio, textureType, true);
408
+ this._blurVPostProcess = this._createBlurFilter("BlurV", blurRatio, textureType, false);
409
+ }
410
+ _createBlurFilter(name, ratio, textureType, horizontal) {
411
+ const blurFilter = new PostProcess(name, ThinSSAO2BlurPostProcess.FragmentUrl, {
412
+ size: ratio,
413
+ samplingMode: 2,
414
+ engine: this._scene.getEngine(),
415
+ textureType: this._textureType,
416
+ effectWrapper: horizontal ? this._thinSSAORenderingPipeline._ssaoBlurXPostProcess : this._thinSSAORenderingPipeline._ssaoBlurYPostProcess,
417
+ });
418
+ blurFilter.onApply = (effect) => {
419
+ const ratio = this._ratio.blurRatio || this._ratio;
420
+ const ssaoCombineSize = horizontal ? this._originalColorPostProcess.width * ratio : this._originalColorPostProcess.height * ratio;
421
+ const originalColorSize = horizontal ? this._originalColorPostProcess.width : this._originalColorPostProcess.height;
422
+ this._thinSSAORenderingPipeline._ssaoBlurXPostProcess.textureSize = ssaoCombineSize > 0 ? ssaoCombineSize : originalColorSize;
423
+ this._thinSSAORenderingPipeline._ssaoBlurYPostProcess.textureSize = ssaoCombineSize > 0 ? ssaoCombineSize : originalColorSize;
424
+ if (this._geometryBufferRenderer) {
425
+ effect.setTexture("depthSampler", this._geometryBufferRenderer.getGBuffer().textures[0]);
426
+ }
427
+ else if (this._prePassRenderer) {
428
+ effect.setTexture("depthSampler", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)]);
429
+ }
430
+ };
431
+ blurFilter.samples = this.textureSamples;
432
+ blurFilter.autoClear = false;
433
+ return blurFilter;
434
+ }
435
+ _getTextureSize() {
436
+ const engine = this._scene.getEngine();
437
+ const prePassRenderer = this._prePassRenderer;
438
+ let textureSize = { width: engine.getRenderWidth(), height: engine.getRenderHeight() };
439
+ if (prePassRenderer && this._scene.activeCamera?._getFirstPostProcess() === this._ssaoPostProcess) {
440
+ const renderTarget = prePassRenderer.getRenderTarget();
441
+ if (renderTarget && renderTarget.textures) {
442
+ textureSize = renderTarget.textures[prePassRenderer.getIndex(4)].getSize();
443
+ }
444
+ }
445
+ else if (this._ssaoPostProcess.inputTexture) {
446
+ textureSize.width = this._ssaoPostProcess.inputTexture.width;
447
+ textureSize.height = this._ssaoPostProcess.inputTexture.height;
448
+ }
449
+ return textureSize;
450
+ }
451
+ _createSSAOPostProcess(ratio, textureType) {
452
+ this._ssaoPostProcess = new PostProcess("ssao", ThinSSAO2PostProcess.FragmentUrl, {
453
+ size: ratio,
454
+ samplingMode: 2,
455
+ engine: this._scene.getEngine(),
456
+ textureType,
457
+ effectWrapper: this._thinSSAORenderingPipeline._ssaoPostProcess,
458
+ });
459
+ this._ssaoPostProcess.autoClear = false;
460
+ this._ssaoPostProcess.onApply = (effect) => {
461
+ if (this._geometryBufferRenderer) {
462
+ effect.setTexture("depthSampler", this._geometryBufferRenderer.getGBuffer().textures[0]);
463
+ effect.setTexture("normalSampler", this._geometryBufferRenderer.getGBuffer().textures[1]);
464
+ }
465
+ else if (this._prePassRenderer) {
466
+ effect.setTexture("depthSampler", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)]);
467
+ effect.setTexture("normalSampler", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(6)]);
468
+ }
469
+ const textureSize = this._getTextureSize();
470
+ this._thinSSAORenderingPipeline._ssaoPostProcess.textureWidth = textureSize.width;
471
+ this._thinSSAORenderingPipeline._ssaoPostProcess.textureHeight = textureSize.height;
472
+ };
473
+ this._ssaoPostProcess.samples = this.textureSamples;
474
+ if (!this._forceGeometryBuffer) {
475
+ this._ssaoPostProcess._prePassEffectConfiguration = new SSAO2Configuration();
476
+ }
477
+ }
478
+ _createSSAOCombinePostProcess(ratio, textureType) {
479
+ this._ssaoCombinePostProcess = new PostProcess("ssaoCombine", ThinSSAO2CombinePostProcess.FragmentUrl, {
480
+ size: ratio,
481
+ samplingMode: 2,
482
+ engine: this._scene.getEngine(),
483
+ textureType,
484
+ effectWrapper: this._thinSSAORenderingPipeline._ssaoCombinePostProcess,
485
+ });
486
+ this._ssaoCombinePostProcess.onApply = (effect) => {
487
+ this._thinSSAORenderingPipeline._ssaoCombinePostProcess.camera = this._scene.activeCamera;
488
+ effect.setTextureFromPostProcessOutput("originalColor", this._originalColorPostProcess);
489
+ };
490
+ this._ssaoCombinePostProcess.autoClear = false;
491
+ this._ssaoCombinePostProcess.samples = this.textureSamples;
492
+ }
493
+ /**
494
+ * Serialize the rendering pipeline (Used when exporting)
495
+ * @returns the serialized object
496
+ */
497
+ serialize() {
498
+ const serializationObject = SerializationHelper.Serialize(this);
499
+ serializationObject.customType = "SSAO2RenderingPipeline";
500
+ return serializationObject;
501
+ }
502
+ },
503
+ (() => {
504
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
505
+ _get_totalStrength_decorators = [serialize()];
506
+ _get_maxZ_decorators = [serialize()];
507
+ _get_minZAspect_decorators = [serialize()];
508
+ _set_epsilon_decorators = [serialize("epsilon")];
509
+ _set_samples_decorators = [serialize("samples")];
510
+ __textureSamples_decorators = [serialize("textureSamples")];
511
+ __forceGeometryBuffer_decorators = [serialize()];
512
+ __ratio_decorators = [serialize()];
513
+ __textureType_decorators = [serialize()];
514
+ _get_radius_decorators = [serialize()];
515
+ _get_base_decorators = [serialize()];
516
+ _set_bypassBlur_decorators = [serialize("bypassBlur")];
517
+ _set_expensiveBlur_decorators = [serialize("expensiveBlur")];
518
+ _get_bilateralSamples_decorators = [serialize()];
519
+ _get_bilateralSoften_decorators = [serialize()];
520
+ _get_bilateralTolerance_decorators = [serialize()];
521
+ __esDecorate(_a, null, _get_totalStrength_decorators, { kind: "getter", name: "totalStrength", static: false, private: false, access: { has: obj => "totalStrength" in obj, get: obj => obj.totalStrength }, metadata: _metadata }, null, _instanceExtraInitializers);
522
+ __esDecorate(_a, null, _get_maxZ_decorators, { kind: "getter", name: "maxZ", static: false, private: false, access: { has: obj => "maxZ" in obj, get: obj => obj.maxZ }, metadata: _metadata }, null, _instanceExtraInitializers);
523
+ __esDecorate(_a, null, _get_minZAspect_decorators, { kind: "getter", name: "minZAspect", static: false, private: false, access: { has: obj => "minZAspect" in obj, get: obj => obj.minZAspect }, metadata: _metadata }, null, _instanceExtraInitializers);
524
+ __esDecorate(_a, null, _set_epsilon_decorators, { kind: "setter", name: "epsilon", static: false, private: false, access: { has: obj => "epsilon" in obj, set: (obj, value) => { obj.epsilon = value; } }, metadata: _metadata }, null, _instanceExtraInitializers);
525
+ __esDecorate(_a, null, _set_samples_decorators, { kind: "setter", name: "samples", static: false, private: false, access: { has: obj => "samples" in obj, set: (obj, value) => { obj.samples = value; } }, metadata: _metadata }, null, _instanceExtraInitializers);
526
+ __esDecorate(_a, null, _get_radius_decorators, { kind: "getter", name: "radius", static: false, private: false, access: { has: obj => "radius" in obj, get: obj => obj.radius }, metadata: _metadata }, null, _instanceExtraInitializers);
527
+ __esDecorate(_a, null, _get_base_decorators, { kind: "getter", name: "base", static: false, private: false, access: { has: obj => "base" in obj, get: obj => obj.base }, metadata: _metadata }, null, _instanceExtraInitializers);
528
+ __esDecorate(_a, null, _set_bypassBlur_decorators, { kind: "setter", name: "bypassBlur", static: false, private: false, access: { has: obj => "bypassBlur" in obj, set: (obj, value) => { obj.bypassBlur = value; } }, metadata: _metadata }, null, _instanceExtraInitializers);
529
+ __esDecorate(_a, null, _set_expensiveBlur_decorators, { kind: "setter", name: "expensiveBlur", static: false, private: false, access: { has: obj => "expensiveBlur" in obj, set: (obj, value) => { obj.expensiveBlur = value; } }, metadata: _metadata }, null, _instanceExtraInitializers);
530
+ __esDecorate(_a, null, _get_bilateralSamples_decorators, { kind: "getter", name: "bilateralSamples", static: false, private: false, access: { has: obj => "bilateralSamples" in obj, get: obj => obj.bilateralSamples }, metadata: _metadata }, null, _instanceExtraInitializers);
531
+ __esDecorate(_a, null, _get_bilateralSoften_decorators, { kind: "getter", name: "bilateralSoften", static: false, private: false, access: { has: obj => "bilateralSoften" in obj, get: obj => obj.bilateralSoften }, metadata: _metadata }, null, _instanceExtraInitializers);
532
+ __esDecorate(_a, null, _get_bilateralTolerance_decorators, { kind: "getter", name: "bilateralTolerance", static: false, private: false, access: { has: obj => "bilateralTolerance" in obj, get: obj => obj.bilateralTolerance }, metadata: _metadata }, null, _instanceExtraInitializers);
533
+ __esDecorate(null, null, __textureSamples_decorators, { kind: "field", name: "_textureSamples", static: false, private: false, access: { has: obj => "_textureSamples" in obj, get: obj => obj._textureSamples, set: (obj, value) => { obj._textureSamples = value; } }, metadata: _metadata }, __textureSamples_initializers, __textureSamples_extraInitializers);
534
+ __esDecorate(null, null, __forceGeometryBuffer_decorators, { kind: "field", name: "_forceGeometryBuffer", static: false, private: false, access: { has: obj => "_forceGeometryBuffer" in obj, get: obj => obj._forceGeometryBuffer, set: (obj, value) => { obj._forceGeometryBuffer = value; } }, metadata: _metadata }, __forceGeometryBuffer_initializers, __forceGeometryBuffer_extraInitializers);
535
+ __esDecorate(null, null, __ratio_decorators, { kind: "field", name: "_ratio", static: false, private: false, access: { has: obj => "_ratio" in obj, get: obj => obj._ratio, set: (obj, value) => { obj._ratio = value; } }, metadata: _metadata }, __ratio_initializers, __ratio_extraInitializers);
536
+ __esDecorate(null, null, __textureType_decorators, { kind: "field", name: "_textureType", static: false, private: false, access: { has: obj => "_textureType" in obj, get: obj => obj._textureType, set: (obj, value) => { obj._textureType = value; } }, metadata: _metadata }, __textureType_initializers, __textureType_extraInitializers);
537
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
538
+ })(),
539
+ _a;
540
+ })();
541
+ export { SSAO2RenderingPipeline };
512
542
  let _Registered = false;
513
543
  /**
514
544
  * Parse the serialized pipeline
@@ -529,6 +559,11 @@ export function RegisterSsao2RenderingPipeline() {
529
559
  return;
530
560
  }
531
561
  _Registered = true;
562
+ // Eagerly register the Scene.postProcessRenderPipelineManager getter (and inject its concrete class).
563
+ // The base PostProcessRenderPipeline constructor also registers it, but consumers may access the manager
564
+ // (e.g. to subscribe to its observables) before constructing the SSAO2 pipeline, so register it as soon as
565
+ // the SSAO2 module is imported. Idempotent.
566
+ RegisterPostProcessRenderPipelineManagerSceneComponent(PostProcessRenderPipelineManager);
532
567
  SSAO2RenderingPipeline.Parse = SSAO2RenderingPipelineParse;
533
568
  RegisterClass("BABYLON.SSAO2RenderingPipeline", SSAO2RenderingPipeline);
534
569
  }