@babylonjs/core 5.23.0 → 5.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1828) hide show
  1. package/Actions/abstractActionManager.d.ts +6 -6
  2. package/Actions/abstractActionManager.js +1 -1
  3. package/Actions/abstractActionManager.js.map +1 -1
  4. package/Actions/action.d.ts +12 -21
  5. package/Actions/action.js +8 -17
  6. package/Actions/action.js.map +1 -1
  7. package/Actions/actionManager.d.ts +7 -10
  8. package/Actions/actionManager.js +7 -10
  9. package/Actions/actionManager.js.map +1 -1
  10. package/Actions/condition.d.ts +9 -50
  11. package/Actions/condition.js +3 -26
  12. package/Actions/condition.js.map +1 -1
  13. package/Actions/directActions.d.ts +7 -7
  14. package/Actions/directActions.js +7 -7
  15. package/Actions/directActions.js.map +1 -1
  16. package/Actions/directAudioActions.d.ts +2 -2
  17. package/Actions/directAudioActions.js +2 -2
  18. package/Actions/directAudioActions.js.map +1 -1
  19. package/Actions/interpolateValueAction.d.ts +1 -1
  20. package/Actions/interpolateValueAction.js +1 -1
  21. package/Actions/interpolateValueAction.js.map +1 -1
  22. package/Animations/animatable.d.ts +5 -6
  23. package/Animations/animatable.js +1 -2
  24. package/Animations/animatable.js.map +1 -1
  25. package/Animations/animation.d.ts +6 -20
  26. package/Animations/animation.js +6 -20
  27. package/Animations/animation.js.map +1 -1
  28. package/Animations/animationEvent.d.ts +1 -1
  29. package/Animations/animationEvent.js +1 -1
  30. package/Animations/animationEvent.js.map +1 -1
  31. package/Animations/animationGroup.d.ts +4 -4
  32. package/Animations/animationGroup.js +4 -4
  33. package/Animations/animationGroup.js.map +1 -1
  34. package/Animations/easing.d.ts +13 -26
  35. package/Animations/easing.js +13 -26
  36. package/Animations/easing.js.map +1 -1
  37. package/Animations/runtimeAnimation.d.ts +3 -4
  38. package/Animations/runtimeAnimation.js +1 -2
  39. package/Animations/runtimeAnimation.js.map +1 -1
  40. package/Audio/audioSceneComponent.d.ts +2 -2
  41. package/Audio/audioSceneComponent.js.map +1 -1
  42. package/Audio/sound.d.ts +3 -4
  43. package/Audio/sound.js +2 -3
  44. package/Audio/sound.js.map +1 -1
  45. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  46. package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
  47. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  48. package/Behaviors/Cameras/autoRotationBehavior.d.ts +1 -1
  49. package/Behaviors/Cameras/autoRotationBehavior.js +1 -1
  50. package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
  51. package/Behaviors/Cameras/bouncingBehavior.d.ts +1 -1
  52. package/Behaviors/Cameras/bouncingBehavior.js +1 -1
  53. package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
  54. package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
  55. package/Behaviors/Cameras/framingBehavior.js +1 -1
  56. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  57. package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
  58. package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
  59. package/Behaviors/Meshes/baseSixDofDragBehavior.js +5 -5
  60. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  61. package/Behaviors/Meshes/followBehavior.d.ts +1 -1
  62. package/Behaviors/Meshes/followBehavior.js +1 -1
  63. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  64. package/Behaviors/Meshes/pointerDragBehavior.d.ts +1 -1
  65. package/Behaviors/Meshes/pointerDragBehavior.js +1 -1
  66. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  67. package/Bones/bone.d.ts +8 -10
  68. package/Bones/bone.js +8 -10
  69. package/Bones/bone.js.map +1 -1
  70. package/Bones/skeleton.d.ts +8 -10
  71. package/Bones/skeleton.js +8 -10
  72. package/Bones/skeleton.js.map +1 -1
  73. package/Buffers/buffer.d.ts +6 -6
  74. package/Buffers/buffer.js +14 -16
  75. package/Buffers/buffer.js.map +1 -1
  76. package/Buffers/storageBuffer.d.ts +1 -1
  77. package/Buffers/storageBuffer.js +1 -1
  78. package/Buffers/storageBuffer.js.map +1 -1
  79. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.d.ts +1 -2
  80. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +1 -2
  81. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js.map +1 -1
  82. package/Cameras/Inputs/flyCameraKeyboardInput.d.ts +1 -1
  83. package/Cameras/Inputs/flyCameraKeyboardInput.js +1 -1
  84. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  85. package/Cameras/Inputs/freeCameraDeviceOrientationInput.d.ts +2 -2
  86. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +1 -1
  87. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
  88. package/Cameras/Inputs/freeCameraKeyboardMoveInput.d.ts +1 -1
  89. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +1 -1
  90. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  91. package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -1
  92. package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
  93. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  94. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.d.ts +1 -2
  95. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +1 -2
  96. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
  97. package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -2
  98. package/Cameras/RigModes/stereoscopicRigMode.js +1 -2
  99. package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
  100. package/Cameras/RigModes/vrRigMode.d.ts +1 -3
  101. package/Cameras/RigModes/vrRigMode.js +1 -3
  102. package/Cameras/RigModes/vrRigMode.js.map +1 -1
  103. package/Cameras/RigModes/webVRRigMode.d.ts +1 -3
  104. package/Cameras/RigModes/webVRRigMode.js +1 -3
  105. package/Cameras/RigModes/webVRRigMode.js.map +1 -1
  106. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +2 -3
  107. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +2 -3
  108. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  109. package/Cameras/VR/vrCameraMetrics.d.ts +4 -4
  110. package/Cameras/VR/vrCameraMetrics.js +4 -4
  111. package/Cameras/VR/vrCameraMetrics.js.map +1 -1
  112. package/Cameras/VR/vrExperienceHelper.js +19 -24
  113. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  114. package/Cameras/VR/webVRCamera.d.ts +9 -9
  115. package/Cameras/VR/webVRCamera.js +9 -9
  116. package/Cameras/VR/webVRCamera.js.map +1 -1
  117. package/Cameras/arcRotateCamera.d.ts +12 -13
  118. package/Cameras/arcRotateCamera.js +9 -10
  119. package/Cameras/arcRotateCamera.js.map +1 -1
  120. package/Cameras/camera.d.ts +31 -40
  121. package/Cameras/camera.js +29 -38
  122. package/Cameras/camera.js.map +1 -1
  123. package/Cameras/deviceOrientationCamera.d.ts +1 -1
  124. package/Cameras/deviceOrientationCamera.js +1 -1
  125. package/Cameras/deviceOrientationCamera.js.map +1 -1
  126. package/Cameras/flyCamera.d.ts +8 -12
  127. package/Cameras/flyCamera.js +6 -10
  128. package/Cameras/flyCamera.js.map +1 -1
  129. package/Cameras/followCamera.d.ts +2 -2
  130. package/Cameras/followCamera.js +2 -2
  131. package/Cameras/followCamera.js.map +1 -1
  132. package/Cameras/freeCamera.d.ts +7 -8
  133. package/Cameras/freeCamera.js +5 -6
  134. package/Cameras/freeCamera.js.map +1 -1
  135. package/Cameras/freeCameraInputsManager.d.ts +2 -2
  136. package/Cameras/freeCameraInputsManager.js +2 -2
  137. package/Cameras/freeCameraInputsManager.js.map +1 -1
  138. package/Cameras/gamepadCamera.d.ts +1 -1
  139. package/Cameras/gamepadCamera.js +1 -1
  140. package/Cameras/gamepadCamera.js.map +1 -1
  141. package/Cameras/targetCamera.d.ts +22 -25
  142. package/Cameras/targetCamera.js +21 -24
  143. package/Cameras/targetCamera.js.map +1 -1
  144. package/Cameras/touchCamera.d.ts +2 -2
  145. package/Cameras/touchCamera.js +2 -2
  146. package/Cameras/touchCamera.js.map +1 -1
  147. package/Cameras/universalCamera.d.ts +1 -1
  148. package/Cameras/universalCamera.js +1 -1
  149. package/Cameras/universalCamera.js.map +1 -1
  150. package/Cameras/virtualJoysticksCamera.d.ts +1 -1
  151. package/Cameras/virtualJoysticksCamera.js +1 -1
  152. package/Cameras/virtualJoysticksCamera.js.map +1 -1
  153. package/Collisions/collider.d.ts +13 -44
  154. package/Collisions/collider.js +10 -41
  155. package/Collisions/collider.js.map +1 -1
  156. package/Collisions/collisionCoordinator.d.ts +2 -2
  157. package/Collisions/collisionCoordinator.js +1 -1
  158. package/Collisions/collisionCoordinator.js.map +1 -1
  159. package/Collisions/intersectionInfo.d.ts +1 -1
  160. package/Collisions/intersectionInfo.js +1 -1
  161. package/Collisions/intersectionInfo.js.map +1 -1
  162. package/Collisions/meshCollisionData.d.ts +1 -1
  163. package/Collisions/meshCollisionData.js +1 -1
  164. package/Collisions/meshCollisionData.js.map +1 -1
  165. package/Collisions/pickingInfo.d.ts +1 -1
  166. package/Collisions/pickingInfo.js +1 -1
  167. package/Collisions/pickingInfo.js.map +1 -1
  168. package/Compute/IComputeContext.d.ts +1 -1
  169. package/Compute/IComputeContext.js.map +1 -1
  170. package/Compute/IComputePipelineContext.d.ts +2 -2
  171. package/Compute/IComputePipelineContext.js.map +1 -1
  172. package/Compute/computeEffect.d.ts +5 -5
  173. package/Compute/computeEffect.js +5 -5
  174. package/Compute/computeEffect.js.map +1 -1
  175. package/Culling/Octrees/octreeBlock.d.ts +1 -9
  176. package/Culling/Octrees/octreeBlock.js +1 -9
  177. package/Culling/Octrees/octreeBlock.js.map +1 -1
  178. package/Culling/Octrees/octreeSceneComponent.d.ts +2 -2
  179. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  180. package/Culling/boundingBox.d.ts +6 -7
  181. package/Culling/boundingBox.js +5 -6
  182. package/Culling/boundingBox.js.map +1 -1
  183. package/Culling/boundingInfo.d.ts +1 -2
  184. package/Culling/boundingInfo.js +1 -2
  185. package/Culling/boundingInfo.js.map +1 -1
  186. package/Culling/boundingSphere.d.ts +1 -2
  187. package/Culling/boundingSphere.js +1 -2
  188. package/Culling/boundingSphere.js.map +1 -1
  189. package/Culling/ray.d.ts +7 -7
  190. package/Culling/ray.js +1 -1
  191. package/Culling/ray.js.map +1 -1
  192. package/Debug/debugLayer.d.ts +2 -2
  193. package/Debug/debugLayer.js +1 -1
  194. package/Debug/debugLayer.js.map +1 -1
  195. package/Debug/physicsViewer.d.ts +6 -6
  196. package/Debug/physicsViewer.js +4 -4
  197. package/Debug/physicsViewer.js.map +1 -1
  198. package/DeviceInput/InputDevices/deviceEnums.d.ts +1 -1
  199. package/DeviceInput/InputDevices/deviceEnums.js +1 -1
  200. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  201. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -3
  202. package/DeviceInput/InputDevices/deviceSourceManager.js +3 -3
  203. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  204. package/DeviceInput/internalDeviceSourceManager.d.ts +3 -3
  205. package/DeviceInput/internalDeviceSourceManager.js +1 -1
  206. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  207. package/DeviceInput/nativeDeviceInputSystem.d.ts +1 -1
  208. package/DeviceInput/nativeDeviceInputSystem.js +1 -1
  209. package/DeviceInput/nativeDeviceInputSystem.js.map +1 -1
  210. package/DeviceInput/webDeviceInputSystem.d.ts +1 -1
  211. package/DeviceInput/webDeviceInputSystem.js +1 -1
  212. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  213. package/Engines/Extensions/engine.computeShader.d.ts +7 -7
  214. package/Engines/Extensions/engine.computeShader.js +1 -1
  215. package/Engines/Extensions/engine.computeShader.js.map +1 -1
  216. package/Engines/Extensions/engine.cubeTexture.d.ts +6 -6
  217. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  218. package/Engines/Extensions/engine.debugging.d.ts +4 -4
  219. package/Engines/Extensions/engine.debugging.js.map +1 -1
  220. package/Engines/Extensions/engine.multiRender.js +8 -10
  221. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  222. package/Engines/Extensions/engine.multiview.d.ts +9 -9
  223. package/Engines/Extensions/engine.multiview.js.map +1 -1
  224. package/Engines/Extensions/engine.query.d.ts +24 -24
  225. package/Engines/Extensions/engine.query.js +8 -8
  226. package/Engines/Extensions/engine.query.js.map +1 -1
  227. package/Engines/Extensions/engine.rawTexture.js +3 -7
  228. package/Engines/Extensions/engine.rawTexture.js.map +1 -1
  229. package/Engines/Extensions/engine.readTexture.d.ts +2 -2
  230. package/Engines/Extensions/engine.readTexture.js.map +1 -1
  231. package/Engines/Extensions/engine.renderTarget.d.ts +2 -2
  232. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  233. package/Engines/Extensions/engine.textureSelector.d.ts +2 -2
  234. package/Engines/Extensions/engine.textureSelector.js.map +1 -1
  235. package/Engines/Extensions/engine.transformFeedback.d.ts +1 -1
  236. package/Engines/Extensions/engine.transformFeedback.js +1 -1
  237. package/Engines/Extensions/engine.transformFeedback.js.map +1 -1
  238. package/Engines/Extensions/engine.views.d.ts +2 -2
  239. package/Engines/Extensions/engine.views.js.map +1 -1
  240. package/Engines/Extensions/engine.webVR.d.ts +13 -13
  241. package/Engines/Extensions/engine.webVR.js.map +1 -1
  242. package/Engines/ICanvas.d.ts +11 -0
  243. package/Engines/ICanvas.js.map +1 -1
  244. package/Engines/IDrawContext.d.ts +1 -1
  245. package/Engines/IDrawContext.js.map +1 -1
  246. package/Engines/IMaterialContext.d.ts +1 -1
  247. package/Engines/IMaterialContext.js.map +1 -1
  248. package/Engines/IPipelineContext.d.ts +5 -5
  249. package/Engines/IPipelineContext.js.map +1 -1
  250. package/Engines/Native/nativeDataStream.d.ts +2 -2
  251. package/Engines/Native/nativeDataStream.js +1 -1
  252. package/Engines/Native/nativeDataStream.js.map +1 -1
  253. package/Engines/Native/nativeInterfaces.d.ts +10 -10
  254. package/Engines/Native/nativeInterfaces.js.map +1 -1
  255. package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.d.ts +1 -1
  256. package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js +1 -1
  257. package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js.map +1 -1
  258. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.d.ts +1 -1
  259. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js +1 -1
  260. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js.map +1 -1
  261. package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.d.ts +1 -1
  262. package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js +1 -1
  263. package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js.map +1 -1
  264. package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.d.ts +1 -1
  265. package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js +1 -1
  266. package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js.map +1 -1
  267. package/Engines/Processors/Expressions/shaderDefineExpression.d.ts +1 -1
  268. package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
  269. package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
  270. package/Engines/Processors/iShaderProcessor.d.ts +1 -1
  271. package/Engines/Processors/iShaderProcessor.js.map +1 -1
  272. package/Engines/Processors/shaderCodeConditionNode.d.ts +1 -1
  273. package/Engines/Processors/shaderCodeConditionNode.js +1 -1
  274. package/Engines/Processors/shaderCodeConditionNode.js.map +1 -1
  275. package/Engines/Processors/shaderCodeCursor.d.ts +1 -1
  276. package/Engines/Processors/shaderCodeCursor.js +1 -1
  277. package/Engines/Processors/shaderCodeCursor.js.map +1 -1
  278. package/Engines/Processors/shaderCodeNode.d.ts +1 -1
  279. package/Engines/Processors/shaderCodeNode.js +1 -1
  280. package/Engines/Processors/shaderCodeNode.js.map +1 -1
  281. package/Engines/Processors/shaderCodeTestNode.d.ts +1 -1
  282. package/Engines/Processors/shaderCodeTestNode.js +1 -1
  283. package/Engines/Processors/shaderCodeTestNode.js.map +1 -1
  284. package/Engines/Processors/shaderProcessingOptions.d.ts +2 -2
  285. package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
  286. package/Engines/Processors/shaderProcessor.d.ts +2 -2
  287. package/Engines/Processors/shaderProcessor.js +2 -2
  288. package/Engines/Processors/shaderProcessor.js.map +1 -1
  289. package/Engines/WebGL/webGL2ShaderProcessors.d.ts +1 -1
  290. package/Engines/WebGL/webGL2ShaderProcessors.js +1 -1
  291. package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
  292. package/Engines/WebGL/webGLHardwareTexture.d.ts +1 -1
  293. package/Engines/WebGL/webGLHardwareTexture.js +1 -1
  294. package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
  295. package/Engines/WebGL/webGLPipelineContext.d.ts +29 -38
  296. package/Engines/WebGL/webGLPipelineContext.js +95 -326
  297. package/Engines/WebGL/webGLPipelineContext.js.map +1 -1
  298. package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +2 -2
  299. package/Engines/WebGL/webGLRenderTargetWrapper.js +3 -3
  300. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  301. package/Engines/WebGL/webGLShaderProcessors.d.ts +1 -1
  302. package/Engines/WebGL/webGLShaderProcessors.js +1 -1
  303. package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
  304. package/Engines/WebGPU/Extensions/engine.computeShader.d.ts +1 -1
  305. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  306. package/Engines/WebGPU/Extensions/engine.rawTexture.js +1 -5
  307. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  308. package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
  309. package/Engines/WebGPU/webgpuBufferManager.js +1 -1
  310. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  311. package/Engines/WebGPU/webgpuBundleList.d.ts +8 -8
  312. package/Engines/WebGPU/webgpuBundleList.js +7 -7
  313. package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
  314. package/Engines/WebGPU/webgpuCacheBindGroups.d.ts +1 -1
  315. package/Engines/WebGPU/webgpuCacheBindGroups.js +1 -1
  316. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  317. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
  318. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +1 -1
  319. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  320. package/Engines/WebGPU/webgpuCacheRenderPipelineString.d.ts +1 -1
  321. package/Engines/WebGPU/webgpuCacheRenderPipelineString.js +1 -1
  322. package/Engines/WebGPU/webgpuCacheRenderPipelineString.js.map +1 -1
  323. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.d.ts +2 -2
  324. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +2 -2
  325. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
  326. package/Engines/WebGPU/webgpuCacheSampler.d.ts +1 -1
  327. package/Engines/WebGPU/webgpuCacheSampler.js +1 -1
  328. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  329. package/Engines/WebGPU/webgpuClearQuad.d.ts +1 -1
  330. package/Engines/WebGPU/webgpuClearQuad.js +1 -1
  331. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  332. package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
  333. package/Engines/WebGPU/webgpuComputeContext.js +1 -1
  334. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  335. package/Engines/WebGPU/webgpuComputePipelineContext.d.ts +2 -2
  336. package/Engines/WebGPU/webgpuComputePipelineContext.js +1 -1
  337. package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
  338. package/Engines/WebGPU/webgpuConstants.d.ts +38 -38
  339. package/Engines/WebGPU/webgpuConstants.js +38 -38
  340. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  341. package/Engines/WebGPU/webgpuDepthCullingState.d.ts +1 -1
  342. package/Engines/WebGPU/webgpuDepthCullingState.js +1 -1
  343. package/Engines/WebGPU/webgpuDepthCullingState.js.map +1 -1
  344. package/Engines/WebGPU/webgpuDrawContext.d.ts +1 -1
  345. package/Engines/WebGPU/webgpuDrawContext.js +1 -1
  346. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  347. package/Engines/WebGPU/webgpuExternalTexture.d.ts +1 -1
  348. package/Engines/WebGPU/webgpuExternalTexture.js +1 -1
  349. package/Engines/WebGPU/webgpuExternalTexture.js.map +1 -1
  350. package/Engines/WebGPU/webgpuHardwareTexture.d.ts +9 -9
  351. package/Engines/WebGPU/webgpuHardwareTexture.js +1 -1
  352. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  353. package/Engines/WebGPU/webgpuMaterialContext.d.ts +3 -3
  354. package/Engines/WebGPU/webgpuMaterialContext.js +1 -1
  355. package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
  356. package/Engines/WebGPU/webgpuOcclusionQuery.d.ts +1 -1
  357. package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
  358. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  359. package/Engines/WebGPU/webgpuPipelineContext.d.ts +4 -4
  360. package/Engines/WebGPU/webgpuPipelineContext.js +2 -2
  361. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  362. package/Engines/WebGPU/webgpuQuerySet.d.ts +1 -1
  363. package/Engines/WebGPU/webgpuQuerySet.js +1 -1
  364. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  365. package/Engines/WebGPU/webgpuRenderPassWrapper.d.ts +1 -1
  366. package/Engines/WebGPU/webgpuRenderPassWrapper.js +1 -1
  367. package/Engines/WebGPU/webgpuRenderPassWrapper.js.map +1 -1
  368. package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +2 -2
  369. package/Engines/WebGPU/webgpuRenderTargetWrapper.js +1 -1
  370. package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -1
  371. package/Engines/WebGPU/webgpuShaderProcessingContext.d.ts +7 -7
  372. package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -2
  373. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  374. package/Engines/WebGPU/webgpuShaderProcessor.d.ts +1 -1
  375. package/Engines/WebGPU/webgpuShaderProcessor.js +1 -1
  376. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  377. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -1
  378. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +1 -1
  379. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  380. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -1
  381. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +1 -1
  382. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  383. package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +1 -1
  384. package/Engines/WebGPU/webgpuSnapshotRendering.js +1 -1
  385. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
  386. package/Engines/WebGPU/webgpuStencilStateComposer.d.ts +1 -1
  387. package/Engines/WebGPU/webgpuStencilStateComposer.js +1 -1
  388. package/Engines/WebGPU/webgpuStencilStateComposer.js.map +1 -1
  389. package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
  390. package/Engines/WebGPU/webgpuTextureHelper.js +1 -1
  391. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  392. package/Engines/WebGPU/webgpuTimestampQuery.d.ts +2 -2
  393. package/Engines/WebGPU/webgpuTimestampQuery.js +2 -2
  394. package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
  395. package/Engines/WebGPU/webgpuTintWASM.d.ts +1 -1
  396. package/Engines/WebGPU/webgpuTintWASM.js +1 -1
  397. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  398. package/Engines/constants.d.ts +1 -1
  399. package/Engines/constants.js +1 -1
  400. package/Engines/constants.js.map +1 -1
  401. package/Engines/engine.d.ts +18 -37
  402. package/Engines/engine.js +18 -37
  403. package/Engines/engine.js.map +1 -1
  404. package/Engines/engineFeatures.d.ts +2 -2
  405. package/Engines/engineFeatures.js.map +1 -1
  406. package/Engines/engineStore.d.ts +1 -1
  407. package/Engines/engineStore.js +1 -1
  408. package/Engines/engineStore.js.map +1 -1
  409. package/Engines/nativeEngine.d.ts +17 -49
  410. package/Engines/nativeEngine.js +22 -68
  411. package/Engines/nativeEngine.js.map +1 -1
  412. package/Engines/nullEngine.d.ts +12 -40
  413. package/Engines/nullEngine.js +12 -40
  414. package/Engines/nullEngine.js.map +1 -1
  415. package/Engines/performanceConfigurator.d.ts +6 -7
  416. package/Engines/performanceConfigurator.js +6 -7
  417. package/Engines/performanceConfigurator.js.map +1 -1
  418. package/Engines/renderTargetWrapper.d.ts +9 -9
  419. package/Engines/renderTargetWrapper.js +12 -10
  420. package/Engines/renderTargetWrapper.js.map +1 -1
  421. package/Engines/thinEngine.d.ts +96 -192
  422. package/Engines/thinEngine.js +82 -175
  423. package/Engines/thinEngine.js.map +1 -1
  424. package/Engines/webgpuEngine.d.ts +89 -145
  425. package/Engines/webgpuEngine.js +75 -128
  426. package/Engines/webgpuEngine.js.map +1 -1
  427. package/Events/clipboardEvents.d.ts +1 -1
  428. package/Events/clipboardEvents.js +1 -1
  429. package/Events/clipboardEvents.js.map +1 -1
  430. package/Events/pointerEvents.d.ts +4 -0
  431. package/Events/pointerEvents.js +4 -0
  432. package/Events/pointerEvents.js.map +1 -1
  433. package/Gamepads/Controllers/oculusTouchController.d.ts +1 -1
  434. package/Gamepads/Controllers/oculusTouchController.js +1 -1
  435. package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
  436. package/Gamepads/Controllers/poseEnabledController.d.ts +9 -10
  437. package/Gamepads/Controllers/poseEnabledController.js +6 -7
  438. package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
  439. package/Gamepads/Controllers/windowsMotionController.d.ts +2 -2
  440. package/Gamepads/Controllers/windowsMotionController.js +2 -2
  441. package/Gamepads/Controllers/windowsMotionController.js.map +1 -1
  442. package/Gamepads/gamepad.d.ts +1 -1
  443. package/Gamepads/gamepad.js +1 -1
  444. package/Gamepads/gamepad.js.map +1 -1
  445. package/Gamepads/gamepadManager.d.ts +2 -2
  446. package/Gamepads/gamepadManager.js +2 -2
  447. package/Gamepads/gamepadManager.js.map +1 -1
  448. package/Gamepads/gamepadSceneComponent.d.ts +1 -1
  449. package/Gamepads/gamepadSceneComponent.js.map +1 -1
  450. package/Gizmos/axisDragGizmo.d.ts +2 -8
  451. package/Gizmos/axisDragGizmo.js +2 -8
  452. package/Gizmos/axisDragGizmo.js.map +1 -1
  453. package/Gizmos/boundingBoxGizmo.d.ts +4 -0
  454. package/Gizmos/boundingBoxGizmo.js +6 -0
  455. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  456. package/Gizmos/cameraGizmo.d.ts +1 -1
  457. package/Gizmos/cameraGizmo.js +1 -1
  458. package/Gizmos/cameraGizmo.js.map +1 -1
  459. package/Gizmos/lightGizmo.d.ts +1 -1
  460. package/Gizmos/lightGizmo.js +1 -1
  461. package/Gizmos/lightGizmo.js.map +1 -1
  462. package/Gizmos/planeDragGizmo.d.ts +1 -3
  463. package/Gizmos/planeDragGizmo.js +1 -3
  464. package/Gizmos/planeDragGizmo.js.map +1 -1
  465. package/Helpers/sceneHelpers.d.ts +1 -1
  466. package/Helpers/sceneHelpers.js +1 -1
  467. package/Helpers/sceneHelpers.js.map +1 -1
  468. package/Inputs/scene.inputManager.d.ts +3 -3
  469. package/Inputs/scene.inputManager.js +5 -4
  470. package/Inputs/scene.inputManager.js.map +1 -1
  471. package/Instrumentation/timeToken.d.ts +1 -1
  472. package/Instrumentation/timeToken.js +1 -1
  473. package/Instrumentation/timeToken.js.map +1 -1
  474. package/Layers/effectLayer.d.ts +5 -6
  475. package/Layers/effectLayer.js +3 -4
  476. package/Layers/effectLayer.js.map +1 -1
  477. package/Layers/glowLayer.d.ts +4 -4
  478. package/Layers/glowLayer.js +3 -3
  479. package/Layers/glowLayer.js.map +1 -1
  480. package/Layers/highlightLayer.d.ts +4 -4
  481. package/Layers/highlightLayer.js +3 -3
  482. package/Layers/highlightLayer.js.map +1 -1
  483. package/Layers/layer.d.ts +1 -1
  484. package/Layers/layer.js +1 -1
  485. package/Layers/layer.js.map +1 -1
  486. package/LensFlares/lensFlare.d.ts +1 -1
  487. package/LensFlares/lensFlare.js.map +1 -1
  488. package/LensFlares/lensFlareSystem.d.ts +4 -6
  489. package/LensFlares/lensFlareSystem.js +4 -6
  490. package/LensFlares/lensFlareSystem.js.map +1 -1
  491. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -2
  492. package/Lights/Shadows/cascadedShadowGenerator.js +1 -2
  493. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  494. package/Lights/Shadows/shadowGenerator.d.ts +1 -2
  495. package/Lights/Shadows/shadowGenerator.js +1 -2
  496. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  497. package/Lights/directionalLight.d.ts +2 -2
  498. package/Lights/directionalLight.js +2 -2
  499. package/Lights/directionalLight.js.map +1 -1
  500. package/Lights/hemisphericLight.d.ts +3 -3
  501. package/Lights/hemisphericLight.js +3 -3
  502. package/Lights/hemisphericLight.js.map +1 -1
  503. package/Lights/light.d.ts +11 -11
  504. package/Lights/light.js +8 -8
  505. package/Lights/light.js.map +1 -1
  506. package/Lights/lightConstants.d.ts +1 -1
  507. package/Lights/lightConstants.js +1 -1
  508. package/Lights/lightConstants.js.map +1 -1
  509. package/Lights/shadowLight.d.ts +3 -3
  510. package/Lights/shadowLight.js +3 -3
  511. package/Lights/shadowLight.js.map +1 -1
  512. package/Loading/Plugins/babylonFileLoader.d.ts +1 -1
  513. package/Loading/Plugins/babylonFileLoader.js +1 -1
  514. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  515. package/Loading/sceneLoader.d.ts +1 -1
  516. package/Loading/sceneLoader.js.map +1 -1
  517. package/Materials/Background/backgroundMaterial.js +2 -2
  518. package/Materials/Background/backgroundMaterial.js.map +1 -1
  519. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +18 -18
  520. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  521. package/Materials/Node/Blocks/Input/inputBlock.d.ts +4 -11
  522. package/Materials/Node/Blocks/Input/inputBlock.js +4 -11
  523. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  524. package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +2 -2
  525. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  526. package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +9 -9
  527. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  528. package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +12 -12
  529. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  530. package/Materials/Node/nodeMaterial.d.ts +3 -3
  531. package/Materials/Node/nodeMaterial.js +4 -4
  532. package/Materials/Node/nodeMaterial.js.map +1 -1
  533. package/Materials/Node/nodeMaterialBlock.d.ts +8 -14
  534. package/Materials/Node/nodeMaterialBlock.js +6 -12
  535. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  536. package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +8 -8
  537. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +7 -7
  538. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  539. package/Materials/Node/nodeMaterialBuildState.d.ts +22 -58
  540. package/Materials/Node/nodeMaterialBuildState.js +21 -57
  541. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  542. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
  543. package/Materials/PBR/pbrAnisotropicConfiguration.js +2 -2
  544. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  545. package/Materials/PBR/pbrBRDFConfiguration.d.ts +3 -3
  546. package/Materials/PBR/pbrBRDFConfiguration.js +2 -2
  547. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  548. package/Materials/PBR/pbrBaseMaterial.d.ts +65 -65
  549. package/Materials/PBR/pbrBaseMaterial.js +66 -66
  550. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  551. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +4 -4
  552. package/Materials/PBR/pbrClearCoatConfiguration.js +3 -3
  553. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  554. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +6 -6
  555. package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
  556. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  557. package/Materials/PBR/pbrSheenConfiguration.d.ts +3 -3
  558. package/Materials/PBR/pbrSheenConfiguration.js +2 -2
  559. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  560. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +6 -6
  561. package/Materials/PBR/pbrSubSurfaceConfiguration.js +5 -5
  562. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  563. package/Materials/Textures/Filtering/hdrFiltering.d.ts +1 -1
  564. package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
  565. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  566. package/Materials/Textures/Loaders/ddsTextureLoader.d.ts +1 -1
  567. package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
  568. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  569. package/Materials/Textures/Loaders/envTextureLoader.d.ts +1 -1
  570. package/Materials/Textures/Loaders/envTextureLoader.js +1 -1
  571. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  572. package/Materials/Textures/Loaders/hdrTextureLoader.d.ts +1 -1
  573. package/Materials/Textures/Loaders/hdrTextureLoader.js +1 -1
  574. package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
  575. package/Materials/Textures/Loaders/ktxTextureLoader.d.ts +1 -1
  576. package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -1
  577. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  578. package/Materials/Textures/Loaders/tgaTextureLoader.d.ts +1 -1
  579. package/Materials/Textures/Loaders/tgaTextureLoader.js +1 -1
  580. package/Materials/Textures/Loaders/tgaTextureLoader.js.map +1 -1
  581. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
  582. package/Materials/Textures/MultiviewRenderTarget.js +1 -1
  583. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  584. package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -1
  585. package/Materials/Textures/Procedurals/customProceduralTexture.js +9 -3
  586. package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
  587. package/Materials/Textures/Procedurals/proceduralTexture.d.ts +15 -16
  588. package/Materials/Textures/Procedurals/proceduralTexture.js +13 -14
  589. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  590. package/Materials/Textures/baseTexture.d.ts +17 -23
  591. package/Materials/Textures/baseTexture.js +20 -23
  592. package/Materials/Textures/baseTexture.js.map +1 -1
  593. package/Materials/Textures/colorGradingTexture.d.ts +1 -1
  594. package/Materials/Textures/colorGradingTexture.js +1 -1
  595. package/Materials/Textures/colorGradingTexture.js.map +1 -1
  596. package/Materials/Textures/cubeTexture.d.ts +3 -3
  597. package/Materials/Textures/cubeTexture.js +3 -3
  598. package/Materials/Textures/cubeTexture.js.map +1 -1
  599. package/Materials/Textures/dynamicTexture.d.ts +1 -1
  600. package/Materials/Textures/dynamicTexture.js +1 -1
  601. package/Materials/Textures/dynamicTexture.js.map +1 -1
  602. package/Materials/Textures/hardwareTextureWrapper.d.ts +1 -1
  603. package/Materials/Textures/hardwareTextureWrapper.js.map +1 -1
  604. package/Materials/Textures/internalTexture.d.ts +35 -37
  605. package/Materials/Textures/internalTexture.js +34 -36
  606. package/Materials/Textures/internalTexture.js.map +1 -1
  607. package/Materials/Textures/multiRenderTarget.d.ts +1 -3
  608. package/Materials/Textures/multiRenderTarget.js +1 -3
  609. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  610. package/Materials/Textures/prePassRenderTarget.d.ts +9 -9
  611. package/Materials/Textures/prePassRenderTarget.js +6 -6
  612. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  613. package/Materials/Textures/rawCubeTexture.d.ts +1 -1
  614. package/Materials/Textures/rawCubeTexture.js +1 -1
  615. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  616. package/Materials/Textures/renderTargetTexture.d.ts +10 -16
  617. package/Materials/Textures/renderTargetTexture.js +24 -28
  618. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  619. package/Materials/Textures/texture.d.ts +6 -18
  620. package/Materials/Textures/texture.js +13 -23
  621. package/Materials/Textures/texture.js.map +1 -1
  622. package/Materials/Textures/textureSampler.d.ts +5 -5
  623. package/Materials/Textures/textureSampler.js +5 -5
  624. package/Materials/Textures/textureSampler.js.map +1 -1
  625. package/Materials/Textures/thinTexture.d.ts +2 -2
  626. package/Materials/Textures/thinTexture.js +2 -2
  627. package/Materials/Textures/thinTexture.js.map +1 -1
  628. package/Materials/Textures/videoTexture.d.ts +1 -1
  629. package/Materials/Textures/videoTexture.js +1 -1
  630. package/Materials/Textures/videoTexture.js.map +1 -1
  631. package/Materials/colorCurves.d.ts +3 -3
  632. package/Materials/colorCurves.js +3 -3
  633. package/Materials/colorCurves.js.map +1 -1
  634. package/Materials/drawWrapper.d.ts +1 -1
  635. package/Materials/drawWrapper.js +1 -1
  636. package/Materials/drawWrapper.js.map +1 -1
  637. package/Materials/effect.d.ts +44 -44
  638. package/Materials/effect.js +50 -310
  639. package/Materials/effect.js.map +1 -1
  640. package/Materials/effectRenderer.d.ts +1 -1
  641. package/Materials/effectRenderer.js.map +1 -1
  642. package/Materials/fresnelParameters.d.ts +1 -1
  643. package/Materials/fresnelParameters.js +1 -1
  644. package/Materials/fresnelParameters.js.map +1 -1
  645. package/Materials/imageProcessingConfiguration.d.ts +9 -9
  646. package/Materials/imageProcessingConfiguration.js +8 -8
  647. package/Materials/imageProcessingConfiguration.js.map +1 -1
  648. package/Materials/material.d.ts +21 -26
  649. package/Materials/material.detailMapConfiguration.d.ts +3 -3
  650. package/Materials/material.detailMapConfiguration.js +2 -2
  651. package/Materials/material.detailMapConfiguration.js.map +1 -1
  652. package/Materials/material.js +17 -22
  653. package/Materials/material.js.map +1 -1
  654. package/Materials/materialDefines.d.ts +14 -14
  655. package/Materials/materialDefines.js +13 -13
  656. package/Materials/materialDefines.js.map +1 -1
  657. package/Materials/materialHelper.js +1 -1
  658. package/Materials/materialHelper.js.map +1 -1
  659. package/Materials/materialPluginEvent.d.ts +15 -15
  660. package/Materials/materialPluginEvent.js +1 -1
  661. package/Materials/materialPluginEvent.js.map +1 -1
  662. package/Materials/materialPluginManager.d.ts +2 -4
  663. package/Materials/materialPluginManager.js +2 -4
  664. package/Materials/materialPluginManager.js.map +1 -1
  665. package/Materials/multiMaterial.d.ts +1 -1
  666. package/Materials/multiMaterial.js +1 -1
  667. package/Materials/multiMaterial.js.map +1 -1
  668. package/Materials/pushMaterial.d.ts +1 -1
  669. package/Materials/pushMaterial.js +1 -1
  670. package/Materials/pushMaterial.js.map +1 -1
  671. package/Materials/shaderMaterial.d.ts +25 -25
  672. package/Materials/shaderMaterial.js +25 -25
  673. package/Materials/shaderMaterial.js.map +1 -1
  674. package/Materials/standardMaterial.d.ts +3 -3
  675. package/Materials/standardMaterial.js +4 -4
  676. package/Materials/standardMaterial.js.map +1 -1
  677. package/Materials/uniformBuffer.d.ts +4 -4
  678. package/Materials/uniformBuffer.js +4 -4
  679. package/Materials/uniformBuffer.js.map +1 -1
  680. package/Materials/uniformBufferEffectCommonAccessor.d.ts +1 -1
  681. package/Materials/uniformBufferEffectCommonAccessor.js +1 -1
  682. package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
  683. package/Maths/index.d.ts +1 -0
  684. package/Maths/index.js +1 -0
  685. package/Maths/index.js.map +1 -1
  686. package/Maths/math.color.d.ts +1 -1
  687. package/Maths/math.color.js +1 -1
  688. package/Maths/math.color.js.map +1 -1
  689. package/Maths/math.functions.d.ts +2 -2
  690. package/Maths/math.functions.js +2 -2
  691. package/Maths/math.functions.js.map +1 -1
  692. package/Maths/math.isovector.d.ts +1 -1
  693. package/Maths/math.isovector.js +1 -1
  694. package/Maths/math.isovector.js.map +1 -1
  695. package/Maths/math.like.d.ts +8 -8
  696. package/Maths/math.like.js.map +1 -1
  697. package/Maths/math.polar.d.ts +420 -0
  698. package/Maths/math.polar.js +651 -0
  699. package/Maths/math.polar.js.map +1 -0
  700. package/Maths/math.scalar.d.ts +2 -2
  701. package/Maths/math.scalar.js +2 -2
  702. package/Maths/math.scalar.js.map +1 -1
  703. package/Maths/math.vector.d.ts +24 -26
  704. package/Maths/math.vector.js +18 -20
  705. package/Maths/math.vector.js.map +1 -1
  706. package/Meshes/Builders/tubeBuilder.d.ts +2 -2
  707. package/Meshes/Builders/tubeBuilder.js +2 -2
  708. package/Meshes/Builders/tubeBuilder.js.map +1 -1
  709. package/Meshes/WebGL/webGLDataBuffer.d.ts +1 -1
  710. package/Meshes/WebGL/webGLDataBuffer.js +1 -1
  711. package/Meshes/WebGL/webGLDataBuffer.js.map +1 -1
  712. package/Meshes/WebGPU/webgpuDataBuffer.d.ts +1 -1
  713. package/Meshes/WebGPU/webgpuDataBuffer.js +1 -1
  714. package/Meshes/WebGPU/webgpuDataBuffer.js.map +1 -1
  715. package/Meshes/abstractMesh.d.ts +49 -71
  716. package/Meshes/abstractMesh.js +56 -73
  717. package/Meshes/abstractMesh.js.map +1 -1
  718. package/Meshes/buffer.d.ts +1 -1
  719. package/Meshes/buffer.js +1 -1
  720. package/Meshes/buffer.js.map +1 -1
  721. package/Meshes/geodesicMesh.d.ts +15 -28
  722. package/Meshes/geodesicMesh.js +11 -24
  723. package/Meshes/geodesicMesh.js.map +1 -1
  724. package/Meshes/geometry.d.ts +18 -23
  725. package/Meshes/geometry.js +10 -15
  726. package/Meshes/geometry.js.map +1 -1
  727. package/Meshes/groundMesh.d.ts +8 -8
  728. package/Meshes/groundMesh.js.map +1 -1
  729. package/Meshes/instancedMesh.d.ts +13 -17
  730. package/Meshes/instancedMesh.js +11 -15
  731. package/Meshes/instancedMesh.js.map +1 -1
  732. package/Meshes/linesMesh.d.ts +5 -8
  733. package/Meshes/linesMesh.js +5 -8
  734. package/Meshes/linesMesh.js.map +1 -1
  735. package/Meshes/mesh.d.ts +49 -94
  736. package/Meshes/mesh.js +53 -95
  737. package/Meshes/mesh.js.map +1 -1
  738. package/Meshes/mesh.vertexData.d.ts +3 -18
  739. package/Meshes/mesh.vertexData.js +3 -18
  740. package/Meshes/mesh.vertexData.js.map +1 -1
  741. package/Meshes/meshSimplificationSceneComponent.d.ts +1 -1
  742. package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
  743. package/Meshes/subMesh.d.ts +22 -52
  744. package/Meshes/subMesh.js +19 -49
  745. package/Meshes/subMesh.js.map +1 -1
  746. package/Meshes/subMesh.project.d.ts +2 -2
  747. package/Meshes/subMesh.project.js +2 -12
  748. package/Meshes/subMesh.project.js.map +1 -1
  749. package/Meshes/thinInstanceMesh.d.ts +5 -5
  750. package/Meshes/thinInstanceMesh.js.map +1 -1
  751. package/Meshes/transformNode.d.ts +8 -9
  752. package/Meshes/transformNode.js +11 -9
  753. package/Meshes/transformNode.js.map +1 -1
  754. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +2 -2
  755. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
  756. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  757. package/Misc/HighDynamicRange/hdr.d.ts +3 -3
  758. package/Misc/HighDynamicRange/hdr.js +3 -3
  759. package/Misc/HighDynamicRange/hdr.js.map +1 -1
  760. package/Misc/HighDynamicRange/panoramaToCubemap.d.ts +1 -1
  761. package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
  762. package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
  763. package/Misc/arrayTools.d.ts +14 -13
  764. package/Misc/arrayTools.js +70 -39
  765. package/Misc/arrayTools.js.map +1 -1
  766. package/Misc/assetsManager.d.ts +4 -6
  767. package/Misc/assetsManager.js +4 -6
  768. package/Misc/assetsManager.js.map +1 -1
  769. package/Misc/basis.js +2 -2
  770. package/Misc/basis.js.map +1 -1
  771. package/Misc/coroutine.d.ts +11 -25
  772. package/Misc/coroutine.js +7 -21
  773. package/Misc/coroutine.js.map +1 -1
  774. package/Misc/dds.d.ts +1 -10
  775. package/Misc/dds.js +1 -10
  776. package/Misc/dds.js.map +1 -1
  777. package/Misc/decorators.d.ts +5 -15
  778. package/Misc/decorators.js +6 -16
  779. package/Misc/decorators.js.map +1 -1
  780. package/Misc/depthReducer.d.ts +1 -5
  781. package/Misc/depthReducer.js +1 -5
  782. package/Misc/depthReducer.js.map +1 -1
  783. package/Misc/devTools.d.ts +1 -2
  784. package/Misc/devTools.js +1 -2
  785. package/Misc/devTools.js.map +1 -1
  786. package/Misc/environmentTextureTools.d.ts +5 -10
  787. package/Misc/environmentTextureTools.js +6 -11
  788. package/Misc/environmentTextureTools.js.map +1 -1
  789. package/Misc/fileTools.d.ts +15 -27
  790. package/Misc/fileTools.js +33 -38
  791. package/Misc/fileTools.js.map +1 -1
  792. package/Misc/khronosTextureContainer.d.ts +1 -3
  793. package/Misc/khronosTextureContainer.js +1 -3
  794. package/Misc/khronosTextureContainer.js.map +1 -1
  795. package/Misc/khronosTextureContainer2.d.ts +1 -4
  796. package/Misc/khronosTextureContainer2.js +1 -4
  797. package/Misc/khronosTextureContainer2.js.map +1 -1
  798. package/Misc/observable.d.ts +4 -5
  799. package/Misc/observable.js +3 -4
  800. package/Misc/observable.js.map +1 -1
  801. package/Misc/performanceMonitor.d.ts +3 -3
  802. package/Misc/performanceMonitor.js +3 -3
  803. package/Misc/performanceMonitor.js.map +1 -1
  804. package/Misc/pivotTools.d.ts +3 -5
  805. package/Misc/pivotTools.js +3 -5
  806. package/Misc/pivotTools.js.map +1 -1
  807. package/Misc/rgbdTextureTools.d.ts +1 -1
  808. package/Misc/rgbdTextureTools.js +1 -1
  809. package/Misc/rgbdTextureTools.js.map +1 -1
  810. package/Misc/sceneOptimizer.d.ts +7 -7
  811. package/Misc/sceneOptimizer.js +7 -7
  812. package/Misc/sceneOptimizer.js.map +1 -1
  813. package/Misc/screenshotTools.js +1 -1
  814. package/Misc/screenshotTools.js.map +1 -1
  815. package/Misc/stringDictionary.d.ts +6 -6
  816. package/Misc/stringDictionary.js +6 -6
  817. package/Misc/stringDictionary.js.map +1 -1
  818. package/Misc/tags.d.ts +2 -6
  819. package/Misc/tags.js +2 -6
  820. package/Misc/tags.js.map +1 -1
  821. package/Misc/textureTools.d.ts +4 -4
  822. package/Misc/textureTools.js +4 -4
  823. package/Misc/textureTools.js.map +1 -1
  824. package/Misc/tga.d.ts +14 -70
  825. package/Misc/tga.js +14 -70
  826. package/Misc/tga.js.map +1 -1
  827. package/Misc/tools.d.ts +6 -6
  828. package/Misc/tools.js +6 -6
  829. package/Misc/tools.js.map +1 -1
  830. package/Misc/typeStore.d.ts +2 -5
  831. package/Misc/typeStore.js +3 -6
  832. package/Misc/typeStore.js.map +1 -1
  833. package/Misc/videoRecorder.d.ts +1 -1
  834. package/Misc/videoRecorder.js +1 -1
  835. package/Misc/videoRecorder.js.map +1 -1
  836. package/Misc/webRequest.d.ts +2 -2
  837. package/Misc/webRequest.js +1 -1
  838. package/Misc/webRequest.js.map +1 -1
  839. package/Morph/morphTarget.d.ts +1 -1
  840. package/Morph/morphTarget.js +1 -1
  841. package/Morph/morphTarget.js.map +1 -1
  842. package/Morph/morphTargetManager.d.ts +3 -4
  843. package/Morph/morphTargetManager.js +2 -3
  844. package/Morph/morphTargetManager.js.map +1 -1
  845. package/Particles/IGPUParticleSystemPlatform.d.ts +1 -1
  846. package/Particles/IGPUParticleSystemPlatform.js.map +1 -1
  847. package/Particles/IParticleSystem.d.ts +1 -1
  848. package/Particles/IParticleSystem.js.map +1 -1
  849. package/Particles/baseParticleSystem.d.ts +6 -9
  850. package/Particles/baseParticleSystem.js +5 -8
  851. package/Particles/baseParticleSystem.js.map +1 -1
  852. package/Particles/cloudPoint.d.ts +16 -19
  853. package/Particles/cloudPoint.js +21 -29
  854. package/Particles/cloudPoint.js.map +1 -1
  855. package/Particles/computeShaderParticleSystem.d.ts +1 -1
  856. package/Particles/computeShaderParticleSystem.js +1 -1
  857. package/Particles/computeShaderParticleSystem.js.map +1 -1
  858. package/Particles/gpuParticleSystem.d.ts +14 -20
  859. package/Particles/gpuParticleSystem.js +6 -12
  860. package/Particles/gpuParticleSystem.js.map +1 -1
  861. package/Particles/particle.d.ts +30 -31
  862. package/Particles/particle.js +16 -17
  863. package/Particles/particle.js.map +1 -1
  864. package/Particles/particleSystem.d.ts +16 -32
  865. package/Particles/particleSystem.js +14 -30
  866. package/Particles/particleSystem.js.map +1 -1
  867. package/Particles/pointsCloudSystem.d.ts +3 -4
  868. package/Particles/pointsCloudSystem.js +27 -20
  869. package/Particles/pointsCloudSystem.js.map +1 -1
  870. package/Particles/solidParticle.d.ts +21 -31
  871. package/Particles/solidParticle.js +9 -19
  872. package/Particles/solidParticle.js.map +1 -1
  873. package/Particles/solidParticleSystem.d.ts +18 -16
  874. package/Particles/solidParticleSystem.js +39 -19
  875. package/Particles/solidParticleSystem.js.map +1 -1
  876. package/Particles/subEmitter.d.ts +1 -5
  877. package/Particles/subEmitter.js +1 -5
  878. package/Particles/subEmitter.js.map +1 -1
  879. package/Particles/webgl2ParticleSystem.d.ts +1 -1
  880. package/Particles/webgl2ParticleSystem.js +1 -1
  881. package/Particles/webgl2ParticleSystem.js.map +1 -1
  882. package/Physics/IPhysicsEngine.d.ts +1 -1
  883. package/Physics/IPhysicsEngine.js.map +1 -1
  884. package/Physics/Plugins/ammoJSPlugin.d.ts +4 -1
  885. package/Physics/Plugins/ammoJSPlugin.js +22 -3
  886. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  887. package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
  888. package/Physics/Plugins/cannonJSPlugin.js +1 -1
  889. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  890. package/Physics/Plugins/oimoJSPlugin.d.ts +1 -1
  891. package/Physics/Plugins/oimoJSPlugin.js +4 -4
  892. package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
  893. package/Physics/physicsEngineComponent.d.ts +5 -5
  894. package/Physics/physicsEngineComponent.js +2 -3
  895. package/Physics/physicsEngineComponent.js.map +1 -1
  896. package/Physics/physicsImpostor.d.ts +13 -7
  897. package/Physics/physicsImpostor.js +9 -6
  898. package/Physics/physicsImpostor.js.map +1 -1
  899. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  900. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.d.ts +1 -1
  901. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +1 -1
  902. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  903. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +2 -4
  904. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +2 -4
  905. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  906. package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +10 -10
  907. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +5 -5
  908. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  909. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +13 -13
  910. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +7 -14
  911. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  912. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.d.ts +1 -1
  913. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js +1 -1
  914. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js.map +1 -1
  915. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.d.ts +1 -1
  916. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js.map +1 -1
  917. package/PostProcesses/blackAndWhitePostProcess.d.ts +1 -5
  918. package/PostProcesses/blackAndWhitePostProcess.js +1 -5
  919. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  920. package/PostProcesses/bloomEffect.d.ts +4 -4
  921. package/PostProcesses/bloomEffect.js +3 -3
  922. package/PostProcesses/bloomEffect.js.map +1 -1
  923. package/PostProcesses/blurPostProcess.d.ts +4 -8
  924. package/PostProcesses/blurPostProcess.js +4 -8
  925. package/PostProcesses/blurPostProcess.js.map +1 -1
  926. package/PostProcesses/chromaticAberrationPostProcess.d.ts +1 -5
  927. package/PostProcesses/chromaticAberrationPostProcess.js +1 -5
  928. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  929. package/PostProcesses/colorCorrectionPostProcess.d.ts +1 -5
  930. package/PostProcesses/colorCorrectionPostProcess.js +1 -5
  931. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  932. package/PostProcesses/convolutionPostProcess.d.ts +1 -5
  933. package/PostProcesses/convolutionPostProcess.js +1 -5
  934. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  935. package/PostProcesses/depthOfFieldEffect.d.ts +4 -4
  936. package/PostProcesses/depthOfFieldEffect.js +3 -3
  937. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  938. package/PostProcesses/displayPassPostProcess.d.ts +1 -5
  939. package/PostProcesses/displayPassPostProcess.js +1 -5
  940. package/PostProcesses/displayPassPostProcess.js.map +1 -1
  941. package/PostProcesses/extractHighlightsPostProcess.d.ts +2 -2
  942. package/PostProcesses/extractHighlightsPostProcess.js +2 -2
  943. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  944. package/PostProcesses/filterPostProcess.d.ts +1 -5
  945. package/PostProcesses/filterPostProcess.js +1 -5
  946. package/PostProcesses/filterPostProcess.js.map +1 -1
  947. package/PostProcesses/fxaaPostProcess.d.ts +1 -5
  948. package/PostProcesses/fxaaPostProcess.js +1 -5
  949. package/PostProcesses/fxaaPostProcess.js.map +1 -1
  950. package/PostProcesses/grainPostProcess.d.ts +1 -5
  951. package/PostProcesses/grainPostProcess.js +1 -5
  952. package/PostProcesses/grainPostProcess.js.map +1 -1
  953. package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
  954. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  955. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  956. package/PostProcesses/motionBlurPostProcess.d.ts +1 -5
  957. package/PostProcesses/motionBlurPostProcess.js +1 -5
  958. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  959. package/PostProcesses/passPostProcess.d.ts +2 -10
  960. package/PostProcesses/passPostProcess.js +2 -10
  961. package/PostProcesses/passPostProcess.js.map +1 -1
  962. package/PostProcesses/postProcess.d.ts +8 -12
  963. package/PostProcesses/postProcess.js +6 -10
  964. package/PostProcesses/postProcess.js.map +1 -1
  965. package/PostProcesses/postProcessManager.d.ts +3 -3
  966. package/PostProcesses/postProcessManager.js +3 -3
  967. package/PostProcesses/postProcessManager.js.map +1 -1
  968. package/PostProcesses/refractionPostProcess.d.ts +1 -5
  969. package/PostProcesses/refractionPostProcess.js +1 -5
  970. package/PostProcesses/refractionPostProcess.js.map +1 -1
  971. package/PostProcesses/screenSpaceCurvaturePostProcess.d.ts +1 -5
  972. package/PostProcesses/screenSpaceCurvaturePostProcess.js +1 -5
  973. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  974. package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +1 -5
  975. package/PostProcesses/screenSpaceReflectionPostProcess.js +1 -5
  976. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  977. package/PostProcesses/sharpenPostProcess.d.ts +1 -5
  978. package/PostProcesses/sharpenPostProcess.js +1 -5
  979. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  980. package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +4 -4
  981. package/PostProcesses/volumetricLightScatteringPostProcess.js +4 -4
  982. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  983. package/Probes/reflectionProbe.d.ts +1 -1
  984. package/Probes/reflectionProbe.js +1 -1
  985. package/Probes/reflectionProbe.js.map +1 -1
  986. package/Rendering/boundingBoxRenderer.d.ts +5 -5
  987. package/Rendering/boundingBoxRenderer.js +2 -2
  988. package/Rendering/boundingBoxRenderer.js.map +1 -1
  989. package/Rendering/depthPeelingRenderer.d.ts +1 -0
  990. package/Rendering/depthPeelingRenderer.js +32 -5
  991. package/Rendering/depthPeelingRenderer.js.map +1 -1
  992. package/Rendering/depthPeelingSceneComponent.d.ts +2 -2
  993. package/Rendering/depthPeelingSceneComponent.js.map +1 -1
  994. package/Rendering/depthRenderer.d.ts +1 -2
  995. package/Rendering/depthRenderer.js +1 -2
  996. package/Rendering/depthRenderer.js.map +1 -1
  997. package/Rendering/depthRendererSceneComponent.d.ts +1 -1
  998. package/Rendering/depthRendererSceneComponent.js.map +1 -1
  999. package/Rendering/edgesRenderer.d.ts +4 -4
  1000. package/Rendering/edgesRenderer.js +2 -2
  1001. package/Rendering/edgesRenderer.js.map +1 -1
  1002. package/Rendering/geometryBufferRenderer.d.ts +14 -18
  1003. package/Rendering/geometryBufferRenderer.js +14 -18
  1004. package/Rendering/geometryBufferRenderer.js.map +1 -1
  1005. package/Rendering/geometryBufferRendererSceneComponent.d.ts +3 -2
  1006. package/Rendering/geometryBufferRendererSceneComponent.js +3 -2
  1007. package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
  1008. package/Rendering/outlineRenderer.d.ts +3 -3
  1009. package/Rendering/outlineRenderer.js.map +1 -1
  1010. package/Rendering/prePassRenderer.d.ts +18 -17
  1011. package/Rendering/prePassRenderer.js +26 -18
  1012. package/Rendering/prePassRenderer.js.map +1 -1
  1013. package/Rendering/prePassRendererSceneComponent.d.ts +2 -2
  1014. package/Rendering/prePassRendererSceneComponent.js.map +1 -1
  1015. package/Rendering/renderingGroup.d.ts +3 -3
  1016. package/Rendering/renderingGroup.js +3 -3
  1017. package/Rendering/renderingGroup.js.map +1 -1
  1018. package/Rendering/renderingManager.d.ts +4 -8
  1019. package/Rendering/renderingManager.js +4 -8
  1020. package/Rendering/renderingManager.js.map +1 -1
  1021. package/Rendering/subSurfaceConfiguration.d.ts +4 -6
  1022. package/Rendering/subSurfaceConfiguration.js +4 -6
  1023. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  1024. package/Rendering/subSurfaceSceneComponent.d.ts +1 -1
  1025. package/Rendering/subSurfaceSceneComponent.js.map +1 -1
  1026. package/Rendering/utilityLayerRenderer.d.ts +4 -4
  1027. package/Rendering/utilityLayerRenderer.js +15 -10
  1028. package/Rendering/utilityLayerRenderer.js.map +1 -1
  1029. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.d.ts +1 -1
  1030. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +1 -1
  1031. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js.map +1 -1
  1032. package/Shaders/ShadersInclude/backgroundUboDeclaration.d.ts +1 -1
  1033. package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
  1034. package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  1035. package/Shaders/ShadersInclude/backgroundVertexDeclaration.d.ts +1 -1
  1036. package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +1 -1
  1037. package/Shaders/ShadersInclude/backgroundVertexDeclaration.js.map +1 -1
  1038. package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
  1039. package/Shaders/ShadersInclude/bakedVertexAnimation.js +1 -1
  1040. package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  1041. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
  1042. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
  1043. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
  1044. package/Shaders/ShadersInclude/bayerDitherFunctions.d.ts +1 -1
  1045. package/Shaders/ShadersInclude/bayerDitherFunctions.js +1 -1
  1046. package/Shaders/ShadersInclude/bayerDitherFunctions.js.map +1 -1
  1047. package/Shaders/ShadersInclude/bonesDeclaration.d.ts +1 -1
  1048. package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
  1049. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  1050. package/Shaders/ShadersInclude/bonesVertex.d.ts +1 -1
  1051. package/Shaders/ShadersInclude/bonesVertex.js +1 -1
  1052. package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
  1053. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.d.ts +1 -1
  1054. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +1 -1
  1055. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -1
  1056. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.d.ts +1 -1
  1057. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +1 -1
  1058. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
  1059. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.d.ts +1 -1
  1060. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +1 -1
  1061. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -1
  1062. package/Shaders/ShadersInclude/bumpFragment.d.ts +1 -1
  1063. package/Shaders/ShadersInclude/bumpFragment.js +1 -1
  1064. package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
  1065. package/Shaders/ShadersInclude/bumpFragmentFunctions.d.ts +1 -1
  1066. package/Shaders/ShadersInclude/bumpFragmentFunctions.js +1 -1
  1067. package/Shaders/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
  1068. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.d.ts +1 -1
  1069. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +1 -1
  1070. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  1071. package/Shaders/ShadersInclude/bumpVertex.d.ts +1 -1
  1072. package/Shaders/ShadersInclude/bumpVertex.js +1 -1
  1073. package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
  1074. package/Shaders/ShadersInclude/bumpVertexDeclaration.d.ts +1 -1
  1075. package/Shaders/ShadersInclude/bumpVertexDeclaration.js +1 -1
  1076. package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
  1077. package/Shaders/ShadersInclude/clipPlaneFragment.d.ts +1 -1
  1078. package/Shaders/ShadersInclude/clipPlaneFragment.js +1 -1
  1079. package/Shaders/ShadersInclude/clipPlaneFragment.js.map +1 -1
  1080. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
  1081. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
  1082. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
  1083. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.d.ts +1 -1
  1084. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +1 -1
  1085. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js.map +1 -1
  1086. package/Shaders/ShadersInclude/clipPlaneVertex.d.ts +1 -1
  1087. package/Shaders/ShadersInclude/clipPlaneVertex.js +1 -1
  1088. package/Shaders/ShadersInclude/clipPlaneVertex.js.map +1 -1
  1089. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
  1090. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
  1091. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
  1092. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.d.ts +1 -1
  1093. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +1 -1
  1094. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js.map +1 -1
  1095. package/Shaders/ShadersInclude/defaultFragmentDeclaration.d.ts +1 -1
  1096. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
  1097. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
  1098. package/Shaders/ShadersInclude/defaultUboDeclaration.d.ts +1 -1
  1099. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  1100. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  1101. package/Shaders/ShadersInclude/defaultVertexDeclaration.d.ts +1 -1
  1102. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
  1103. package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
  1104. package/Shaders/ShadersInclude/depthPrePass.d.ts +1 -1
  1105. package/Shaders/ShadersInclude/depthPrePass.js +1 -1
  1106. package/Shaders/ShadersInclude/depthPrePass.js.map +1 -1
  1107. package/Shaders/ShadersInclude/diffusionProfile.d.ts +1 -1
  1108. package/Shaders/ShadersInclude/diffusionProfile.js +1 -1
  1109. package/Shaders/ShadersInclude/diffusionProfile.js.map +1 -1
  1110. package/Shaders/ShadersInclude/fibonacci.d.ts +1 -1
  1111. package/Shaders/ShadersInclude/fibonacci.js +1 -1
  1112. package/Shaders/ShadersInclude/fibonacci.js.map +1 -1
  1113. package/Shaders/ShadersInclude/fogFragment.d.ts +1 -1
  1114. package/Shaders/ShadersInclude/fogFragment.js +1 -1
  1115. package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
  1116. package/Shaders/ShadersInclude/fogFragmentDeclaration.d.ts +1 -1
  1117. package/Shaders/ShadersInclude/fogFragmentDeclaration.js +1 -1
  1118. package/Shaders/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
  1119. package/Shaders/ShadersInclude/fogVertex.d.ts +1 -1
  1120. package/Shaders/ShadersInclude/fogVertex.js +1 -1
  1121. package/Shaders/ShadersInclude/fogVertex.js.map +1 -1
  1122. package/Shaders/ShadersInclude/fogVertexDeclaration.d.ts +1 -1
  1123. package/Shaders/ShadersInclude/fogVertexDeclaration.js +1 -1
  1124. package/Shaders/ShadersInclude/fogVertexDeclaration.js.map +1 -1
  1125. package/Shaders/ShadersInclude/fresnelFunction.d.ts +1 -1
  1126. package/Shaders/ShadersInclude/fresnelFunction.js +1 -1
  1127. package/Shaders/ShadersInclude/fresnelFunction.js.map +1 -1
  1128. package/Shaders/ShadersInclude/geometryUboDeclaration.d.ts +1 -1
  1129. package/Shaders/ShadersInclude/geometryUboDeclaration.js +1 -1
  1130. package/Shaders/ShadersInclude/geometryUboDeclaration.js.map +1 -1
  1131. package/Shaders/ShadersInclude/geometryVertexDeclaration.d.ts +1 -1
  1132. package/Shaders/ShadersInclude/geometryVertexDeclaration.js +1 -1
  1133. package/Shaders/ShadersInclude/geometryVertexDeclaration.js.map +1 -1
  1134. package/Shaders/ShadersInclude/harmonicsFunctions.d.ts +1 -1
  1135. package/Shaders/ShadersInclude/harmonicsFunctions.js +1 -1
  1136. package/Shaders/ShadersInclude/harmonicsFunctions.js.map +1 -1
  1137. package/Shaders/ShadersInclude/hdrFilteringFunctions.d.ts +1 -1
  1138. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +1 -1
  1139. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  1140. package/Shaders/ShadersInclude/helperFunctions.d.ts +1 -1
  1141. package/Shaders/ShadersInclude/helperFunctions.js +1 -1
  1142. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  1143. package/Shaders/ShadersInclude/imageProcessingCompatibility.d.ts +1 -1
  1144. package/Shaders/ShadersInclude/imageProcessingCompatibility.js +1 -1
  1145. package/Shaders/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
  1146. package/Shaders/ShadersInclude/imageProcessingDeclaration.d.ts +1 -1
  1147. package/Shaders/ShadersInclude/imageProcessingDeclaration.js +1 -1
  1148. package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
  1149. package/Shaders/ShadersInclude/imageProcessingFunctions.d.ts +1 -1
  1150. package/Shaders/ShadersInclude/imageProcessingFunctions.js +1 -1
  1151. package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  1152. package/Shaders/ShadersInclude/importanceSampling.d.ts +1 -1
  1153. package/Shaders/ShadersInclude/importanceSampling.js +1 -1
  1154. package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
  1155. package/Shaders/ShadersInclude/instancesDeclaration.d.ts +1 -1
  1156. package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
  1157. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  1158. package/Shaders/ShadersInclude/instancesVertex.d.ts +1 -1
  1159. package/Shaders/ShadersInclude/instancesVertex.js +1 -1
  1160. package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
  1161. package/Shaders/ShadersInclude/kernelBlurFragment.d.ts +1 -1
  1162. package/Shaders/ShadersInclude/kernelBlurFragment.js +1 -1
  1163. package/Shaders/ShadersInclude/kernelBlurFragment.js.map +1 -1
  1164. package/Shaders/ShadersInclude/kernelBlurFragment2.d.ts +1 -1
  1165. package/Shaders/ShadersInclude/kernelBlurFragment2.js +1 -1
  1166. package/Shaders/ShadersInclude/kernelBlurFragment2.js.map +1 -1
  1167. package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.d.ts +1 -1
  1168. package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js +1 -1
  1169. package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -1
  1170. package/Shaders/ShadersInclude/kernelBlurVertex.d.ts +1 -1
  1171. package/Shaders/ShadersInclude/kernelBlurVertex.js +1 -1
  1172. package/Shaders/ShadersInclude/kernelBlurVertex.js.map +1 -1
  1173. package/Shaders/ShadersInclude/lightFragment.d.ts +1 -1
  1174. package/Shaders/ShadersInclude/lightFragment.js +1 -1
  1175. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  1176. package/Shaders/ShadersInclude/lightFragmentDeclaration.d.ts +1 -1
  1177. package/Shaders/ShadersInclude/lightFragmentDeclaration.js +1 -1
  1178. package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
  1179. package/Shaders/ShadersInclude/lightUboDeclaration.d.ts +1 -1
  1180. package/Shaders/ShadersInclude/lightUboDeclaration.js +1 -1
  1181. package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
  1182. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.d.ts +1 -1
  1183. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +1 -1
  1184. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
  1185. package/Shaders/ShadersInclude/lightVxUboDeclaration.d.ts +1 -1
  1186. package/Shaders/ShadersInclude/lightVxUboDeclaration.js +1 -1
  1187. package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
  1188. package/Shaders/ShadersInclude/lightsFragmentFunctions.d.ts +1 -1
  1189. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -1
  1190. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  1191. package/Shaders/ShadersInclude/logDepthDeclaration.d.ts +1 -1
  1192. package/Shaders/ShadersInclude/logDepthDeclaration.js +1 -1
  1193. package/Shaders/ShadersInclude/logDepthDeclaration.js.map +1 -1
  1194. package/Shaders/ShadersInclude/logDepthFragment.d.ts +1 -1
  1195. package/Shaders/ShadersInclude/logDepthFragment.js +1 -1
  1196. package/Shaders/ShadersInclude/logDepthFragment.js.map +1 -1
  1197. package/Shaders/ShadersInclude/logDepthVertex.d.ts +1 -1
  1198. package/Shaders/ShadersInclude/logDepthVertex.js +1 -1
  1199. package/Shaders/ShadersInclude/logDepthVertex.js.map +1 -1
  1200. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.d.ts +1 -1
  1201. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +1 -1
  1202. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
  1203. package/Shaders/ShadersInclude/meshFragmentDeclaration.d.ts +1 -1
  1204. package/Shaders/ShadersInclude/meshFragmentDeclaration.js +1 -1
  1205. package/Shaders/ShadersInclude/meshFragmentDeclaration.js.map +1 -1
  1206. package/Shaders/ShadersInclude/meshUboDeclaration.d.ts +1 -1
  1207. package/Shaders/ShadersInclude/meshUboDeclaration.js +1 -1
  1208. package/Shaders/ShadersInclude/meshUboDeclaration.js.map +1 -1
  1209. package/Shaders/ShadersInclude/meshVertexDeclaration.d.ts +1 -1
  1210. package/Shaders/ShadersInclude/meshVertexDeclaration.js +1 -1
  1211. package/Shaders/ShadersInclude/meshVertexDeclaration.js.map +1 -1
  1212. package/Shaders/ShadersInclude/morphTargetsVertex.d.ts +1 -1
  1213. package/Shaders/ShadersInclude/morphTargetsVertex.js +1 -1
  1214. package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
  1215. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
  1216. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
  1217. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  1218. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
  1219. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
  1220. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
  1221. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
  1222. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
  1223. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  1224. package/Shaders/ShadersInclude/mrtFragmentDeclaration.d.ts +1 -1
  1225. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +1 -1
  1226. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
  1227. package/Shaders/ShadersInclude/oitDeclaration.d.ts +1 -1
  1228. package/Shaders/ShadersInclude/oitDeclaration.js +1 -1
  1229. package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
  1230. package/Shaders/ShadersInclude/oitFragment.d.ts +1 -1
  1231. package/Shaders/ShadersInclude/oitFragment.js +1 -1
  1232. package/Shaders/ShadersInclude/oitFragment.js.map +1 -1
  1233. package/Shaders/ShadersInclude/packingFunctions.d.ts +1 -1
  1234. package/Shaders/ShadersInclude/packingFunctions.js +1 -1
  1235. package/Shaders/ShadersInclude/packingFunctions.js.map +1 -1
  1236. package/Shaders/ShadersInclude/pbrBRDFFunctions.d.ts +1 -1
  1237. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
  1238. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  1239. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +1 -1
  1240. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +1 -1
  1241. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  1242. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.d.ts +1 -1
  1243. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +1 -1
  1244. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
  1245. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.d.ts +1 -1
  1246. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +1 -1
  1247. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
  1248. package/Shaders/ShadersInclude/pbrBlockAnisotropic.d.ts +1 -1
  1249. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +1 -1
  1250. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
  1251. package/Shaders/ShadersInclude/pbrBlockClearcoat.d.ts +1 -1
  1252. package/Shaders/ShadersInclude/pbrBlockClearcoat.js +1 -1
  1253. package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
  1254. package/Shaders/ShadersInclude/pbrBlockDirectLighting.d.ts +1 -1
  1255. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +1 -1
  1256. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
  1257. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.d.ts +1 -1
  1258. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +1 -1
  1259. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
  1260. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.d.ts +1 -1
  1261. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +1 -1
  1262. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
  1263. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.d.ts +1 -1
  1264. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +1 -1
  1265. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  1266. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.d.ts +1 -1
  1267. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +1 -1
  1268. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
  1269. package/Shaders/ShadersInclude/pbrBlockImageProcessing.d.ts +1 -1
  1270. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
  1271. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  1272. package/Shaders/ShadersInclude/pbrBlockIridescence.d.ts +1 -1
  1273. package/Shaders/ShadersInclude/pbrBlockIridescence.js +1 -1
  1274. package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
  1275. package/Shaders/ShadersInclude/pbrBlockLightmapInit.d.ts +1 -1
  1276. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +1 -1
  1277. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
  1278. package/Shaders/ShadersInclude/pbrBlockNormalFinal.d.ts +1 -1
  1279. package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +1 -1
  1280. package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
  1281. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.d.ts +1 -1
  1282. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +1 -1
  1283. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
  1284. package/Shaders/ShadersInclude/pbrBlockReflectance.d.ts +1 -1
  1285. package/Shaders/ShadersInclude/pbrBlockReflectance.js +1 -1
  1286. package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
  1287. package/Shaders/ShadersInclude/pbrBlockReflectance0.d.ts +1 -1
  1288. package/Shaders/ShadersInclude/pbrBlockReflectance0.js +1 -1
  1289. package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
  1290. package/Shaders/ShadersInclude/pbrBlockReflection.d.ts +1 -1
  1291. package/Shaders/ShadersInclude/pbrBlockReflection.js +1 -1
  1292. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  1293. package/Shaders/ShadersInclude/pbrBlockReflectivity.d.ts +1 -1
  1294. package/Shaders/ShadersInclude/pbrBlockReflectivity.js +1 -1
  1295. package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  1296. package/Shaders/ShadersInclude/pbrBlockSheen.d.ts +1 -1
  1297. package/Shaders/ShadersInclude/pbrBlockSheen.js +1 -1
  1298. package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
  1299. package/Shaders/ShadersInclude/pbrBlockSubSurface.d.ts +1 -1
  1300. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
  1301. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  1302. package/Shaders/ShadersInclude/pbrDebug.d.ts +1 -1
  1303. package/Shaders/ShadersInclude/pbrDebug.js +1 -1
  1304. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  1305. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.d.ts +1 -1
  1306. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +1 -1
  1307. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
  1308. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.d.ts +1 -1
  1309. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  1310. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  1311. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.d.ts +1 -1
  1312. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
  1313. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
  1314. package/Shaders/ShadersInclude/pbrFragmentDeclaration.d.ts +1 -1
  1315. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
  1316. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
  1317. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.d.ts +1 -1
  1318. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +1 -1
  1319. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  1320. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +1 -1
  1321. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -1
  1322. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  1323. package/Shaders/ShadersInclude/pbrHelperFunctions.d.ts +1 -1
  1324. package/Shaders/ShadersInclude/pbrHelperFunctions.js +1 -1
  1325. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  1326. package/Shaders/ShadersInclude/pbrIBLFunctions.d.ts +1 -1
  1327. package/Shaders/ShadersInclude/pbrIBLFunctions.js +1 -1
  1328. package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
  1329. package/Shaders/ShadersInclude/pbrUboDeclaration.d.ts +1 -1
  1330. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  1331. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  1332. package/Shaders/ShadersInclude/pbrVertexDeclaration.d.ts +1 -1
  1333. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
  1334. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  1335. package/Shaders/ShadersInclude/pointCloudVertex.d.ts +1 -1
  1336. package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
  1337. package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
  1338. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.d.ts +1 -1
  1339. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +1 -1
  1340. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
  1341. package/Shaders/ShadersInclude/prePassDeclaration.d.ts +1 -1
  1342. package/Shaders/ShadersInclude/prePassDeclaration.js +1 -1
  1343. package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
  1344. package/Shaders/ShadersInclude/prePassVertex.d.ts +1 -1
  1345. package/Shaders/ShadersInclude/prePassVertex.js +1 -1
  1346. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  1347. package/Shaders/ShadersInclude/prePassVertexDeclaration.d.ts +1 -1
  1348. package/Shaders/ShadersInclude/prePassVertexDeclaration.js +1 -1
  1349. package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
  1350. package/Shaders/ShadersInclude/reflectionFunction.d.ts +1 -1
  1351. package/Shaders/ShadersInclude/reflectionFunction.js +1 -1
  1352. package/Shaders/ShadersInclude/reflectionFunction.js.map +1 -1
  1353. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.d.ts +1 -1
  1354. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +1 -1
  1355. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
  1356. package/Shaders/ShadersInclude/samplerFragmentDeclaration.d.ts +1 -1
  1357. package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +1 -1
  1358. package/Shaders/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
  1359. package/Shaders/ShadersInclude/samplerVertexDeclaration.d.ts +1 -1
  1360. package/Shaders/ShadersInclude/samplerVertexDeclaration.js +1 -1
  1361. package/Shaders/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
  1362. package/Shaders/ShadersInclude/samplerVertexImplementation.d.ts +1 -1
  1363. package/Shaders/ShadersInclude/samplerVertexImplementation.js +1 -1
  1364. package/Shaders/ShadersInclude/samplerVertexImplementation.js.map +1 -1
  1365. package/Shaders/ShadersInclude/sceneFragmentDeclaration.d.ts +1 -1
  1366. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +1 -1
  1367. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
  1368. package/Shaders/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
  1369. package/Shaders/ShadersInclude/sceneUboDeclaration.js +1 -1
  1370. package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  1371. package/Shaders/ShadersInclude/sceneVertexDeclaration.d.ts +1 -1
  1372. package/Shaders/ShadersInclude/sceneVertexDeclaration.js +1 -1
  1373. package/Shaders/ShadersInclude/sceneVertexDeclaration.js.map +1 -1
  1374. package/Shaders/ShadersInclude/shadowMapFragment.d.ts +1 -1
  1375. package/Shaders/ShadersInclude/shadowMapFragment.js +1 -1
  1376. package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
  1377. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.d.ts +1 -1
  1378. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +1 -1
  1379. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
  1380. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.d.ts +1 -1
  1381. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +1 -1
  1382. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
  1383. package/Shaders/ShadersInclude/shadowMapUboDeclaration.d.ts +1 -1
  1384. package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +1 -1
  1385. package/Shaders/ShadersInclude/shadowMapUboDeclaration.js.map +1 -1
  1386. package/Shaders/ShadersInclude/shadowMapVertexDeclaration.d.ts +1 -1
  1387. package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js +1 -1
  1388. package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js.map +1 -1
  1389. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.d.ts +1 -1
  1390. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +1 -1
  1391. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
  1392. package/Shaders/ShadersInclude/shadowMapVertexMetric.d.ts +1 -1
  1393. package/Shaders/ShadersInclude/shadowMapVertexMetric.js +1 -1
  1394. package/Shaders/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
  1395. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.d.ts +1 -1
  1396. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +1 -1
  1397. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
  1398. package/Shaders/ShadersInclude/shadowsFragmentFunctions.d.ts +1 -1
  1399. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +1 -1
  1400. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  1401. package/Shaders/ShadersInclude/shadowsVertex.d.ts +1 -1
  1402. package/Shaders/ShadersInclude/shadowsVertex.js +1 -1
  1403. package/Shaders/ShadersInclude/shadowsVertex.js.map +1 -1
  1404. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.d.ts +1 -1
  1405. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +1 -1
  1406. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
  1407. package/Shaders/ShadersInclude/uvAttributeDeclaration.d.ts +1 -1
  1408. package/Shaders/ShadersInclude/uvAttributeDeclaration.js +1 -1
  1409. package/Shaders/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
  1410. package/Shaders/ShadersInclude/uvVariableDeclaration.d.ts +1 -1
  1411. package/Shaders/ShadersInclude/uvVariableDeclaration.js +1 -1
  1412. package/Shaders/ShadersInclude/uvVariableDeclaration.js.map +1 -1
  1413. package/Shaders/ShadersInclude/vertexColorMixing.d.ts +1 -1
  1414. package/Shaders/ShadersInclude/vertexColorMixing.js +1 -1
  1415. package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
  1416. package/Shaders/anaglyph.fragment.d.ts +1 -1
  1417. package/Shaders/anaglyph.fragment.js +1 -1
  1418. package/Shaders/anaglyph.fragment.js.map +1 -1
  1419. package/Shaders/background.fragment.d.ts +1 -1
  1420. package/Shaders/background.fragment.js +1 -1
  1421. package/Shaders/background.fragment.js.map +1 -1
  1422. package/Shaders/background.vertex.d.ts +1 -1
  1423. package/Shaders/background.vertex.js +1 -1
  1424. package/Shaders/background.vertex.js.map +1 -1
  1425. package/Shaders/blackAndWhite.fragment.d.ts +1 -1
  1426. package/Shaders/blackAndWhite.fragment.js +1 -1
  1427. package/Shaders/blackAndWhite.fragment.js.map +1 -1
  1428. package/Shaders/bloomMerge.fragment.d.ts +1 -1
  1429. package/Shaders/bloomMerge.fragment.js +1 -1
  1430. package/Shaders/bloomMerge.fragment.js.map +1 -1
  1431. package/Shaders/blur.fragment.d.ts +1 -1
  1432. package/Shaders/blur.fragment.js +1 -1
  1433. package/Shaders/blur.fragment.js.map +1 -1
  1434. package/Shaders/boundingBoxRenderer.fragment.d.ts +1 -1
  1435. package/Shaders/boundingBoxRenderer.fragment.js +1 -1
  1436. package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
  1437. package/Shaders/boundingBoxRenderer.vertex.d.ts +1 -1
  1438. package/Shaders/boundingBoxRenderer.vertex.js +1 -1
  1439. package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
  1440. package/Shaders/chromaticAberration.fragment.d.ts +1 -1
  1441. package/Shaders/chromaticAberration.fragment.js +2 -1
  1442. package/Shaders/chromaticAberration.fragment.js.map +1 -1
  1443. package/Shaders/circleOfConfusion.fragment.d.ts +1 -1
  1444. package/Shaders/circleOfConfusion.fragment.js +1 -1
  1445. package/Shaders/circleOfConfusion.fragment.js.map +1 -1
  1446. package/Shaders/clearQuad.fragment.d.ts +1 -1
  1447. package/Shaders/clearQuad.fragment.js +1 -1
  1448. package/Shaders/clearQuad.fragment.js.map +1 -1
  1449. package/Shaders/clearQuad.vertex.d.ts +1 -1
  1450. package/Shaders/clearQuad.vertex.js +1 -1
  1451. package/Shaders/clearQuad.vertex.js.map +1 -1
  1452. package/Shaders/color.fragment.d.ts +1 -1
  1453. package/Shaders/color.fragment.js +1 -1
  1454. package/Shaders/color.fragment.js.map +1 -1
  1455. package/Shaders/color.vertex.d.ts +1 -1
  1456. package/Shaders/color.vertex.js +1 -1
  1457. package/Shaders/color.vertex.js.map +1 -1
  1458. package/Shaders/colorCorrection.fragment.d.ts +1 -1
  1459. package/Shaders/colorCorrection.fragment.js +1 -1
  1460. package/Shaders/colorCorrection.fragment.js.map +1 -1
  1461. package/Shaders/convolution.fragment.d.ts +1 -1
  1462. package/Shaders/convolution.fragment.js +1 -1
  1463. package/Shaders/convolution.fragment.js.map +1 -1
  1464. package/Shaders/default.fragment.d.ts +1 -1
  1465. package/Shaders/default.fragment.js +1 -1
  1466. package/Shaders/default.fragment.js.map +1 -1
  1467. package/Shaders/default.vertex.d.ts +1 -1
  1468. package/Shaders/default.vertex.js +1 -1
  1469. package/Shaders/default.vertex.js.map +1 -1
  1470. package/Shaders/depth.fragment.d.ts +1 -1
  1471. package/Shaders/depth.fragment.js +1 -1
  1472. package/Shaders/depth.fragment.js.map +1 -1
  1473. package/Shaders/depth.vertex.d.ts +1 -1
  1474. package/Shaders/depth.vertex.js +1 -1
  1475. package/Shaders/depth.vertex.js.map +1 -1
  1476. package/Shaders/depthBoxBlur.fragment.d.ts +1 -1
  1477. package/Shaders/depthBoxBlur.fragment.js +1 -1
  1478. package/Shaders/depthBoxBlur.fragment.js.map +1 -1
  1479. package/Shaders/depthOfField.fragment.d.ts +1 -1
  1480. package/Shaders/depthOfField.fragment.js +1 -1
  1481. package/Shaders/depthOfField.fragment.js.map +1 -1
  1482. package/Shaders/depthOfFieldMerge.fragment.d.ts +1 -1
  1483. package/Shaders/depthOfFieldMerge.fragment.js +1 -1
  1484. package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
  1485. package/Shaders/displayPass.fragment.d.ts +1 -1
  1486. package/Shaders/displayPass.fragment.js +1 -1
  1487. package/Shaders/displayPass.fragment.js.map +1 -1
  1488. package/Shaders/extractHighlights.fragment.d.ts +1 -1
  1489. package/Shaders/extractHighlights.fragment.js +1 -1
  1490. package/Shaders/extractHighlights.fragment.js.map +1 -1
  1491. package/Shaders/filter.fragment.d.ts +1 -1
  1492. package/Shaders/filter.fragment.js +1 -1
  1493. package/Shaders/filter.fragment.js.map +1 -1
  1494. package/Shaders/fxaa.fragment.d.ts +1 -1
  1495. package/Shaders/fxaa.fragment.js +1 -1
  1496. package/Shaders/fxaa.fragment.js.map +1 -1
  1497. package/Shaders/fxaa.vertex.d.ts +1 -1
  1498. package/Shaders/fxaa.vertex.js +1 -1
  1499. package/Shaders/fxaa.vertex.js.map +1 -1
  1500. package/Shaders/geometry.fragment.d.ts +1 -1
  1501. package/Shaders/geometry.fragment.js +14 -2
  1502. package/Shaders/geometry.fragment.js.map +1 -1
  1503. package/Shaders/geometry.vertex.d.ts +1 -1
  1504. package/Shaders/geometry.vertex.js +1 -1
  1505. package/Shaders/geometry.vertex.js.map +1 -1
  1506. package/Shaders/glowBlurPostProcess.fragment.d.ts +1 -1
  1507. package/Shaders/glowBlurPostProcess.fragment.js +1 -1
  1508. package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
  1509. package/Shaders/glowMapGeneration.fragment.d.ts +1 -1
  1510. package/Shaders/glowMapGeneration.fragment.js +1 -1
  1511. package/Shaders/glowMapGeneration.fragment.js.map +1 -1
  1512. package/Shaders/glowMapGeneration.vertex.d.ts +1 -1
  1513. package/Shaders/glowMapGeneration.vertex.js +1 -1
  1514. package/Shaders/glowMapGeneration.vertex.js.map +1 -1
  1515. package/Shaders/glowMapMerge.fragment.d.ts +1 -1
  1516. package/Shaders/glowMapMerge.fragment.js +1 -1
  1517. package/Shaders/glowMapMerge.fragment.js.map +1 -1
  1518. package/Shaders/glowMapMerge.vertex.d.ts +1 -1
  1519. package/Shaders/glowMapMerge.vertex.js +1 -1
  1520. package/Shaders/glowMapMerge.vertex.js.map +1 -1
  1521. package/Shaders/gpuRenderParticles.fragment.d.ts +1 -1
  1522. package/Shaders/gpuRenderParticles.fragment.js +1 -1
  1523. package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
  1524. package/Shaders/gpuRenderParticles.vertex.d.ts +1 -1
  1525. package/Shaders/gpuRenderParticles.vertex.js +1 -1
  1526. package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
  1527. package/Shaders/gpuUpdateParticles.fragment.d.ts +1 -1
  1528. package/Shaders/gpuUpdateParticles.fragment.js +1 -1
  1529. package/Shaders/gpuUpdateParticles.fragment.js.map +1 -1
  1530. package/Shaders/gpuUpdateParticles.vertex.d.ts +1 -1
  1531. package/Shaders/gpuUpdateParticles.vertex.js +1 -1
  1532. package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
  1533. package/Shaders/grain.fragment.d.ts +1 -1
  1534. package/Shaders/grain.fragment.js +1 -1
  1535. package/Shaders/grain.fragment.js.map +1 -1
  1536. package/Shaders/hdrFiltering.fragment.d.ts +1 -1
  1537. package/Shaders/hdrFiltering.fragment.js +1 -1
  1538. package/Shaders/hdrFiltering.fragment.js.map +1 -1
  1539. package/Shaders/hdrFiltering.vertex.d.ts +1 -1
  1540. package/Shaders/hdrFiltering.vertex.js +1 -1
  1541. package/Shaders/hdrFiltering.vertex.js.map +1 -1
  1542. package/Shaders/highlights.fragment.d.ts +1 -1
  1543. package/Shaders/highlights.fragment.js +1 -1
  1544. package/Shaders/highlights.fragment.js.map +1 -1
  1545. package/Shaders/imageProcessing.fragment.d.ts +1 -1
  1546. package/Shaders/imageProcessing.fragment.js +1 -1
  1547. package/Shaders/imageProcessing.fragment.js.map +1 -1
  1548. package/Shaders/kernelBlur.fragment.d.ts +1 -1
  1549. package/Shaders/kernelBlur.fragment.js +1 -1
  1550. package/Shaders/kernelBlur.fragment.js.map +1 -1
  1551. package/Shaders/kernelBlur.vertex.d.ts +1 -1
  1552. package/Shaders/kernelBlur.vertex.js +1 -1
  1553. package/Shaders/kernelBlur.vertex.js.map +1 -1
  1554. package/Shaders/layer.fragment.d.ts +1 -1
  1555. package/Shaders/layer.fragment.js +1 -1
  1556. package/Shaders/layer.fragment.js.map +1 -1
  1557. package/Shaders/layer.vertex.d.ts +1 -1
  1558. package/Shaders/layer.vertex.js +1 -1
  1559. package/Shaders/layer.vertex.js.map +1 -1
  1560. package/Shaders/lensFlare.fragment.d.ts +1 -1
  1561. package/Shaders/lensFlare.fragment.js +1 -1
  1562. package/Shaders/lensFlare.fragment.js.map +1 -1
  1563. package/Shaders/lensFlare.vertex.d.ts +1 -1
  1564. package/Shaders/lensFlare.vertex.js +1 -1
  1565. package/Shaders/lensFlare.vertex.js.map +1 -1
  1566. package/Shaders/lensHighlights.fragment.d.ts +1 -1
  1567. package/Shaders/lensHighlights.fragment.js +1 -1
  1568. package/Shaders/lensHighlights.fragment.js.map +1 -1
  1569. package/Shaders/line.fragment.d.ts +1 -1
  1570. package/Shaders/line.fragment.js +1 -1
  1571. package/Shaders/line.fragment.js.map +1 -1
  1572. package/Shaders/line.vertex.d.ts +1 -1
  1573. package/Shaders/line.vertex.js +1 -1
  1574. package/Shaders/line.vertex.js.map +1 -1
  1575. package/Shaders/minmaxRedux.fragment.d.ts +1 -1
  1576. package/Shaders/minmaxRedux.fragment.js +1 -1
  1577. package/Shaders/minmaxRedux.fragment.js.map +1 -1
  1578. package/Shaders/motionBlur.fragment.d.ts +1 -1
  1579. package/Shaders/motionBlur.fragment.js +1 -1
  1580. package/Shaders/motionBlur.fragment.js.map +1 -1
  1581. package/Shaders/noise.fragment.d.ts +1 -1
  1582. package/Shaders/noise.fragment.js +1 -1
  1583. package/Shaders/noise.fragment.js.map +1 -1
  1584. package/Shaders/oitBackBlend.fragment.d.ts +1 -1
  1585. package/Shaders/oitBackBlend.fragment.js +1 -1
  1586. package/Shaders/oitBackBlend.fragment.js.map +1 -1
  1587. package/Shaders/oitFinal.fragment.d.ts +1 -1
  1588. package/Shaders/oitFinal.fragment.js +1 -1
  1589. package/Shaders/oitFinal.fragment.js.map +1 -1
  1590. package/Shaders/outline.fragment.d.ts +1 -1
  1591. package/Shaders/outline.fragment.js +1 -1
  1592. package/Shaders/outline.fragment.js.map +1 -1
  1593. package/Shaders/outline.vertex.d.ts +1 -1
  1594. package/Shaders/outline.vertex.js +1 -1
  1595. package/Shaders/outline.vertex.js.map +1 -1
  1596. package/Shaders/particles.fragment.d.ts +1 -1
  1597. package/Shaders/particles.fragment.js +1 -1
  1598. package/Shaders/particles.fragment.js.map +1 -1
  1599. package/Shaders/particles.vertex.d.ts +1 -1
  1600. package/Shaders/particles.vertex.js +1 -1
  1601. package/Shaders/particles.vertex.js.map +1 -1
  1602. package/Shaders/pass.fragment.d.ts +1 -1
  1603. package/Shaders/pass.fragment.js +1 -1
  1604. package/Shaders/pass.fragment.js.map +1 -1
  1605. package/Shaders/passCube.fragment.d.ts +1 -1
  1606. package/Shaders/passCube.fragment.js +1 -1
  1607. package/Shaders/passCube.fragment.js.map +1 -1
  1608. package/Shaders/pbr.fragment.d.ts +1 -1
  1609. package/Shaders/pbr.fragment.js +1 -1
  1610. package/Shaders/pbr.fragment.js.map +1 -1
  1611. package/Shaders/pbr.vertex.d.ts +1 -1
  1612. package/Shaders/pbr.vertex.js +1 -1
  1613. package/Shaders/pbr.vertex.js.map +1 -1
  1614. package/Shaders/postprocess.vertex.d.ts +1 -1
  1615. package/Shaders/postprocess.vertex.js +1 -1
  1616. package/Shaders/postprocess.vertex.js.map +1 -1
  1617. package/Shaders/procedural.vertex.d.ts +1 -1
  1618. package/Shaders/procedural.vertex.js +1 -1
  1619. package/Shaders/procedural.vertex.js.map +1 -1
  1620. package/Shaders/refraction.fragment.d.ts +1 -1
  1621. package/Shaders/refraction.fragment.js +1 -1
  1622. package/Shaders/refraction.fragment.js.map +1 -1
  1623. package/Shaders/rgbdDecode.fragment.d.ts +1 -1
  1624. package/Shaders/rgbdDecode.fragment.js +1 -1
  1625. package/Shaders/rgbdDecode.fragment.js.map +1 -1
  1626. package/Shaders/rgbdEncode.fragment.d.ts +1 -1
  1627. package/Shaders/rgbdEncode.fragment.js +1 -1
  1628. package/Shaders/rgbdEncode.fragment.js.map +1 -1
  1629. package/Shaders/screenSpaceCurvature.fragment.d.ts +1 -1
  1630. package/Shaders/screenSpaceCurvature.fragment.js +1 -1
  1631. package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
  1632. package/Shaders/screenSpaceReflection.fragment.d.ts +1 -1
  1633. package/Shaders/screenSpaceReflection.fragment.js +1 -1
  1634. package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
  1635. package/Shaders/shadowMap.fragment.d.ts +1 -1
  1636. package/Shaders/shadowMap.fragment.js +1 -1
  1637. package/Shaders/shadowMap.fragment.js.map +1 -1
  1638. package/Shaders/shadowMap.vertex.d.ts +1 -1
  1639. package/Shaders/shadowMap.vertex.js +1 -1
  1640. package/Shaders/shadowMap.vertex.js.map +1 -1
  1641. package/Shaders/sharpen.fragment.d.ts +1 -1
  1642. package/Shaders/sharpen.fragment.js +1 -1
  1643. package/Shaders/sharpen.fragment.js.map +1 -1
  1644. package/Shaders/spriteMap.fragment.d.ts +1 -1
  1645. package/Shaders/spriteMap.fragment.js +1 -1
  1646. package/Shaders/spriteMap.fragment.js.map +1 -1
  1647. package/Shaders/spriteMap.vertex.d.ts +1 -1
  1648. package/Shaders/spriteMap.vertex.js +1 -1
  1649. package/Shaders/spriteMap.vertex.js.map +1 -1
  1650. package/Shaders/sprites.fragment.d.ts +1 -1
  1651. package/Shaders/sprites.fragment.js +1 -1
  1652. package/Shaders/sprites.fragment.js.map +1 -1
  1653. package/Shaders/sprites.vertex.d.ts +1 -1
  1654. package/Shaders/sprites.vertex.js +1 -1
  1655. package/Shaders/sprites.vertex.js.map +1 -1
  1656. package/Shaders/ssao.fragment.d.ts +1 -1
  1657. package/Shaders/ssao.fragment.js +1 -1
  1658. package/Shaders/ssao.fragment.js.map +1 -1
  1659. package/Shaders/ssao2.fragment.d.ts +1 -1
  1660. package/Shaders/ssao2.fragment.js +1 -1
  1661. package/Shaders/ssao2.fragment.js.map +1 -1
  1662. package/Shaders/ssaoCombine.fragment.d.ts +1 -1
  1663. package/Shaders/ssaoCombine.fragment.js +1 -1
  1664. package/Shaders/ssaoCombine.fragment.js.map +1 -1
  1665. package/Shaders/standard.fragment.d.ts +1 -1
  1666. package/Shaders/standard.fragment.js +1 -1
  1667. package/Shaders/standard.fragment.js.map +1 -1
  1668. package/Shaders/stereoscopicInterlace.fragment.d.ts +1 -1
  1669. package/Shaders/stereoscopicInterlace.fragment.js +1 -1
  1670. package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
  1671. package/Shaders/subSurfaceScattering.fragment.d.ts +1 -1
  1672. package/Shaders/subSurfaceScattering.fragment.js +1 -1
  1673. package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
  1674. package/Shaders/tonemap.fragment.d.ts +1 -1
  1675. package/Shaders/tonemap.fragment.js +1 -1
  1676. package/Shaders/tonemap.fragment.js.map +1 -1
  1677. package/Shaders/volumetricLightScattering.fragment.d.ts +1 -1
  1678. package/Shaders/volumetricLightScattering.fragment.js +1 -1
  1679. package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
  1680. package/Shaders/volumetricLightScatteringPass.fragment.d.ts +1 -1
  1681. package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
  1682. package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
  1683. package/Shaders/volumetricLightScatteringPass.vertex.d.ts +1 -1
  1684. package/Shaders/volumetricLightScatteringPass.vertex.js +1 -1
  1685. package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
  1686. package/Shaders/vrDistortionCorrection.fragment.d.ts +1 -1
  1687. package/Shaders/vrDistortionCorrection.fragment.js +1 -1
  1688. package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
  1689. package/Shaders/vrMultiviewToSingleview.fragment.d.ts +1 -1
  1690. package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
  1691. package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
  1692. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
  1693. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +1 -1
  1694. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  1695. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
  1696. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
  1697. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
  1698. package/ShadersWGSL/ShadersInclude/bonesDeclaration.d.ts +1 -1
  1699. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
  1700. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
  1701. package/ShadersWGSL/ShadersInclude/bonesVertex.d.ts +1 -1
  1702. package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
  1703. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  1704. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +1 -1
  1705. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +1 -1
  1706. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
  1707. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
  1708. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
  1709. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
  1710. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +1 -1
  1711. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +1 -1
  1712. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
  1713. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
  1714. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
  1715. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
  1716. package/ShadersWGSL/ShadersInclude/instancesDeclaration.d.ts +1 -1
  1717. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
  1718. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  1719. package/ShadersWGSL/ShadersInclude/instancesVertex.d.ts +1 -1
  1720. package/ShadersWGSL/ShadersInclude/instancesVertex.js +1 -1
  1721. package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
  1722. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.d.ts +1 -1
  1723. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
  1724. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
  1725. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.d.ts +1 -1
  1726. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +1 -1
  1727. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
  1728. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
  1729. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
  1730. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  1731. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
  1732. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
  1733. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
  1734. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
  1735. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
  1736. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  1737. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
  1738. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
  1739. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  1740. package/ShadersWGSL/gpuUpdateParticles.compute.d.ts +1 -1
  1741. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  1742. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  1743. package/Sprites/spriteSceneComponent.d.ts +6 -6
  1744. package/Sprites/spriteSceneComponent.js.map +1 -1
  1745. package/Sprites/thinSprite.d.ts +5 -6
  1746. package/Sprites/thinSprite.js +1 -2
  1747. package/Sprites/thinSprite.js.map +1 -1
  1748. package/States/IStencilState.d.ts +1 -1
  1749. package/States/IStencilState.js.map +1 -1
  1750. package/States/alphaCullingState.d.ts +1 -1
  1751. package/States/alphaCullingState.js +1 -1
  1752. package/States/alphaCullingState.js.map +1 -1
  1753. package/States/depthCullingState.d.ts +1 -1
  1754. package/States/depthCullingState.js +1 -1
  1755. package/States/depthCullingState.js.map +1 -1
  1756. package/States/stencilState.d.ts +1 -1
  1757. package/States/stencilState.js +1 -1
  1758. package/States/stencilState.js.map +1 -1
  1759. package/States/stencilStateComposer.d.ts +1 -1
  1760. package/States/stencilStateComposer.js +1 -1
  1761. package/States/stencilStateComposer.js.map +1 -1
  1762. package/XR/features/WebXRControllerPhysics.d.ts +1 -1
  1763. package/XR/features/WebXRControllerPhysics.js +1 -1
  1764. package/XR/features/WebXRControllerPhysics.js.map +1 -1
  1765. package/XR/features/WebXRControllerPointerSelection.d.ts +3 -6
  1766. package/XR/features/WebXRControllerPointerSelection.js +3 -6
  1767. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  1768. package/XR/features/WebXRControllerTeleportation.d.ts +4 -0
  1769. package/XR/features/WebXRControllerTeleportation.js +24 -19
  1770. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  1771. package/XR/features/WebXRLayers.d.ts +2 -2
  1772. package/XR/features/WebXRLayers.js +4 -4
  1773. package/XR/features/WebXRLayers.js.map +1 -1
  1774. package/XR/features/WebXRNearInteraction.js +2 -2
  1775. package/XR/features/WebXRNearInteraction.js.map +1 -1
  1776. package/XR/motionController/webXRAbstractMotionController.d.ts +5 -6
  1777. package/XR/motionController/webXRAbstractMotionController.js +4 -5
  1778. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  1779. package/XR/motionController/webXRControllerComponent.d.ts +1 -1
  1780. package/XR/motionController/webXRControllerComponent.js +1 -1
  1781. package/XR/motionController/webXRControllerComponent.js.map +1 -1
  1782. package/XR/motionController/webXRMotionControllerManager.d.ts +3 -3
  1783. package/XR/motionController/webXRMotionControllerManager.js +3 -3
  1784. package/XR/motionController/webXRMotionControllerManager.js.map +1 -1
  1785. package/XR/native/nativeXRFrame.d.ts +2 -2
  1786. package/XR/native/nativeXRFrame.js +1 -1
  1787. package/XR/native/nativeXRFrame.js.map +1 -1
  1788. package/XR/native/nativeXRRenderTarget.d.ts +3 -3
  1789. package/XR/native/nativeXRRenderTarget.js +3 -3
  1790. package/XR/native/nativeXRRenderTarget.js.map +1 -1
  1791. package/XR/webXRCamera.d.ts +2 -2
  1792. package/XR/webXRCamera.js +1 -1
  1793. package/XR/webXRCamera.js.map +1 -1
  1794. package/XR/webXRDefaultExperience.d.ts +6 -6
  1795. package/XR/webXRDefaultExperience.js.map +1 -1
  1796. package/XR/webXRExperienceHelper.d.ts +21 -1
  1797. package/XR/webXRExperienceHelper.js +37 -7
  1798. package/XR/webXRExperienceHelper.js.map +1 -1
  1799. package/XR/webXRInputSource.d.ts +1 -1
  1800. package/XR/webXRInputSource.js.map +1 -1
  1801. package/XR/webXRLayerWrapper.d.ts +1 -1
  1802. package/XR/webXRLayerWrapper.js +1 -1
  1803. package/XR/webXRLayerWrapper.js.map +1 -1
  1804. package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
  1805. package/XR/webXRRenderTargetTextureProvider.js +1 -1
  1806. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  1807. package/XR/webXRSessionManager.d.ts +1 -2
  1808. package/XR/webXRSessionManager.js +1 -2
  1809. package/XR/webXRSessionManager.js.map +1 -1
  1810. package/XR/webXRWebGLLayer.d.ts +2 -2
  1811. package/XR/webXRWebGLLayer.js +2 -2
  1812. package/XR/webXRWebGLLayer.js.map +1 -1
  1813. package/abstractScene.d.ts +1 -1
  1814. package/abstractScene.js +1 -1
  1815. package/abstractScene.js.map +1 -1
  1816. package/node.d.ts +44 -56
  1817. package/node.js +43 -58
  1818. package/node.js.map +1 -1
  1819. package/package.json +1 -1
  1820. package/scene.d.ts +130 -168
  1821. package/scene.js +115 -142
  1822. package/scene.js.map +1 -1
  1823. package/sceneComponent.d.ts +2 -2
  1824. package/sceneComponent.js +2 -2
  1825. package/sceneComponent.js.map +1 -1
  1826. package/types.d.ts +2 -2
  1827. package/types.js +1 -1
  1828. package/types.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"defaultRenderingPipeline.js","sourceRoot":"","sources":["../../../../../../../lts/core/generated/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"../../../types\";\r\nimport { serialize, SerializationHelper } from \"../../../Misc/decorators\";\r\nimport type { Observer } from \"../../../Misc/observable\";\r\nimport { Observable } from \"../../../Misc/observable\";\r\nimport type { IAnimatable } from \"../../../Animations/animatable.interface\";\r\nimport { Logger } from \"../../../Misc/logger\";\r\nimport type { Camera } from \"../../../Cameras/camera\";\r\nimport type { ImageProcessingConfiguration } from \"../../../Materials/imageProcessingConfiguration\";\r\nimport { Texture } from \"../../../Materials/Textures/texture\";\r\nimport type { Engine } from \"../../../Engines/engine\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\nimport type { IDisposable, Scene } from \"../../../scene\";\r\nimport { GlowLayer } from \"../../../Layers/glowLayer\";\r\n\r\nimport type { PostProcess } from \"../../../PostProcesses/postProcess\";\r\nimport { SharpenPostProcess } from \"../../../PostProcesses/sharpenPostProcess\";\r\nimport { ImageProcessingPostProcess } from \"../../../PostProcesses/imageProcessingPostProcess\";\r\nimport { ChromaticAberrationPostProcess } from \"../../../PostProcesses/chromaticAberrationPostProcess\";\r\nimport { GrainPostProcess } from \"../../../PostProcesses/grainPostProcess\";\r\nimport { FxaaPostProcess } from \"../../../PostProcesses/fxaaPostProcess\";\r\nimport { PostProcessRenderPipeline } from \"../../../PostProcesses/RenderPipeline/postProcessRenderPipeline\";\r\nimport { PostProcessRenderEffect } from \"../../../PostProcesses/RenderPipeline/postProcessRenderEffect\";\r\nimport { DepthOfFieldEffect, DepthOfFieldEffectBlurLevel } from \"../../../PostProcesses/depthOfFieldEffect\";\r\nimport { BloomEffect } from \"../../../PostProcesses/bloomEffect\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { EngineStore } from \"../../../Engines/engineStore\";\r\n\r\nimport \"../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\nimport type { INotifyArrayChangeType } from \"core/Misc/arrayTools\";\r\n\r\ndeclare type Animation = import(\"../../../Animations/animation\").Animation;\r\n\r\n/**\r\n * The default rendering pipeline can be added to a scene to apply common post processing effects such as anti-aliasing or depth of field.\r\n * See https://doc.babylonjs.com/how_to/using_default_rendering_pipeline\r\n */\r\nexport class DefaultRenderingPipeline extends PostProcessRenderPipeline implements IDisposable, IAnimatable {\r\n private _scene: Scene;\r\n private _camerasToBeAttached: Array<Camera> = [];\r\n /**\r\n * ID of the sharpen post process,\r\n */\r\n private readonly SharpenPostProcessId: string = \"SharpenPostProcessEffect\";\r\n /**\r\n * @ignore\r\n * ID of the image processing post process;\r\n */\r\n readonly ImageProcessingPostProcessId: string = \"ImageProcessingPostProcessEffect\";\r\n /**\r\n * @ignore\r\n * ID of the Fast Approximate Anti-Aliasing post process;\r\n */\r\n readonly FxaaPostProcessId: string = \"FxaaPostProcessEffect\";\r\n /**\r\n * ID of the chromatic aberration post process,\r\n */\r\n private readonly ChromaticAberrationPostProcessId: string = \"ChromaticAberrationPostProcessEffect\";\r\n /**\r\n * ID of the grain post process\r\n */\r\n private readonly GrainPostProcessId: string = \"GrainPostProcessEffect\";\r\n\r\n // Post-processes\r\n /**\r\n * Sharpen post process which will apply a sharpen convolution to enhance edges\r\n */\r\n public sharpen: SharpenPostProcess;\r\n private _sharpenEffect: PostProcessRenderEffect;\r\n private bloom: BloomEffect;\r\n /**\r\n * Depth of field effect, applies a blur based on how far away objects are from the focus distance.\r\n */\r\n public depthOfField: DepthOfFieldEffect;\r\n /**\r\n * The Fast Approximate Anti-Aliasing post process which attempts to remove aliasing from an image.\r\n */\r\n public fxaa: FxaaPostProcess;\r\n /**\r\n * Image post processing pass used to perform operations such as tone mapping or color grading.\r\n */\r\n public imageProcessing: ImageProcessingPostProcess;\r\n /**\r\n * Chromatic aberration post process which will shift rgb colors in the image\r\n */\r\n public chromaticAberration: ChromaticAberrationPostProcess;\r\n private _chromaticAberrationEffect: PostProcessRenderEffect;\r\n /**\r\n * Grain post process which add noise to the image\r\n */\r\n public grain: GrainPostProcess;\r\n private _grainEffect: PostProcessRenderEffect;\r\n /**\r\n * Glow post process which adds a glow to emissive areas of the image\r\n */\r\n private _glowLayer: Nullable<GlowLayer> = null;\r\n\r\n /**\r\n * Animations which can be used to tweak settings over a period of time\r\n */\r\n public animations: Animation[] = [];\r\n\r\n private _imageProcessingConfigurationObserver: Nullable<Observer<ImageProcessingConfiguration>> = null;\r\n // Values\r\n private _sharpenEnabled: boolean = false;\r\n private _bloomEnabled: boolean = false;\r\n private _depthOfFieldEnabled: boolean = false;\r\n private _depthOfFieldBlurLevel = DepthOfFieldEffectBlurLevel.Low;\r\n private _fxaaEnabled: boolean = false;\r\n private _imageProcessingEnabled: boolean = true;\r\n private _defaultPipelineTextureType: number;\r\n private _bloomScale: number = 0.5;\r\n private _chromaticAberrationEnabled: boolean = false;\r\n private _grainEnabled: boolean = false;\r\n\r\n private _buildAllowed = true;\r\n\r\n /**\r\n * This is triggered each time the pipeline has been built.\r\n */\r\n public onBuildObservable = new Observable<DefaultRenderingPipeline>();\r\n\r\n /**\r\n * Gets active scene\r\n */\r\n public get scene(): Scene {\r\n return this._scene;\r\n }\r\n\r\n /**\r\n * Enable or disable the sharpen process from the pipeline\r\n */\r\n public set sharpenEnabled(enabled: boolean) {\r\n if (this._sharpenEnabled === enabled) {\r\n return;\r\n }\r\n this._sharpenEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get sharpenEnabled(): boolean {\r\n return this._sharpenEnabled;\r\n }\r\n\r\n private _resizeObserver: Nullable<Observer<Engine>> = null;\r\n private _hardwareScaleLevel = 1.0;\r\n private _bloomKernel: number = 64;\r\n /**\r\n * Specifies the size of the bloom blur kernel, relative to the final output size\r\n */\r\n @serialize()\r\n public get bloomKernel(): number {\r\n return this._bloomKernel;\r\n }\r\n public set bloomKernel(value: number) {\r\n this._bloomKernel = value;\r\n this.bloom.kernel = value / this._hardwareScaleLevel;\r\n }\r\n\r\n /**\r\n * Specifies the weight of the bloom in the final rendering\r\n */\r\n @serialize()\r\n private _bloomWeight: number = 0.15;\r\n /**\r\n * Specifies the luma threshold for the area that will be blurred by the bloom\r\n */\r\n @serialize()\r\n private _bloomThreshold: number = 0.9;\r\n\r\n @serialize()\r\n private _hdr: boolean;\r\n\r\n /**\r\n * The strength of the bloom.\r\n */\r\n public set bloomWeight(value: number) {\r\n if (this._bloomWeight === value) {\r\n return;\r\n }\r\n this.bloom.weight = value;\r\n\r\n this._bloomWeight = value;\r\n }\r\n\r\n @serialize()\r\n public get bloomWeight(): number {\r\n return this._bloomWeight;\r\n }\r\n\r\n /**\r\n * The luminance threshold to find bright areas of the image to bloom.\r\n */\r\n public set bloomThreshold(value: number) {\r\n if (this._bloomThreshold === value) {\r\n return;\r\n }\r\n this.bloom.threshold = value;\r\n this._bloomThreshold = value;\r\n }\r\n\r\n @serialize()\r\n public get bloomThreshold(): number {\r\n return this._bloomThreshold;\r\n }\r\n\r\n /**\r\n * The scale of the bloom, lower value will provide better performance.\r\n */\r\n public set bloomScale(value: number) {\r\n if (this._bloomScale === value) {\r\n return;\r\n }\r\n this._bloomScale = value;\r\n\r\n // recreate bloom and dispose old as this setting is not dynamic\r\n this._rebuildBloom();\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get bloomScale(): number {\r\n return this._bloomScale;\r\n }\r\n\r\n /**\r\n * Enable or disable the bloom from the pipeline\r\n */\r\n public set bloomEnabled(enabled: boolean) {\r\n if (this._bloomEnabled === enabled) {\r\n return;\r\n }\r\n this._bloomEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get bloomEnabled(): boolean {\r\n return this._bloomEnabled;\r\n }\r\n\r\n private _rebuildBloom() {\r\n // recreate bloom and dispose old as this setting is not dynamic\r\n const oldBloom = this.bloom;\r\n this.bloom = new BloomEffect(this._scene, this.bloomScale, this._bloomWeight, this.bloomKernel, this._defaultPipelineTextureType, false);\r\n this.bloom.threshold = oldBloom.threshold;\r\n for (let i = 0; i < this._cameras.length; i++) {\r\n oldBloom.disposeEffects(this._cameras[i]);\r\n }\r\n }\r\n\r\n /**\r\n * If the depth of field is enabled.\r\n */\r\n @serialize()\r\n public get depthOfFieldEnabled(): boolean {\r\n return this._depthOfFieldEnabled;\r\n }\r\n\r\n public set depthOfFieldEnabled(enabled: boolean) {\r\n if (this._depthOfFieldEnabled === enabled) {\r\n return;\r\n }\r\n this._depthOfFieldEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * Blur level of the depth of field effect. (Higher blur will effect performance)\r\n */\r\n @serialize()\r\n public get depthOfFieldBlurLevel(): DepthOfFieldEffectBlurLevel {\r\n return this._depthOfFieldBlurLevel;\r\n }\r\n\r\n public set depthOfFieldBlurLevel(value: DepthOfFieldEffectBlurLevel) {\r\n if (this._depthOfFieldBlurLevel === value) {\r\n return;\r\n }\r\n this._depthOfFieldBlurLevel = value;\r\n\r\n // recreate dof and dispose old as this setting is not dynamic\r\n const oldDof = this.depthOfField;\r\n\r\n this.depthOfField = new DepthOfFieldEffect(this._scene, null, this._depthOfFieldBlurLevel, this._defaultPipelineTextureType, false);\r\n this.depthOfField.focalLength = oldDof.focalLength;\r\n this.depthOfField.focusDistance = oldDof.focusDistance;\r\n this.depthOfField.fStop = oldDof.fStop;\r\n this.depthOfField.lensSize = oldDof.lensSize;\r\n\r\n for (let i = 0; i < this._cameras.length; i++) {\r\n oldDof.disposeEffects(this._cameras[i]);\r\n }\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * If the anti aliasing is enabled.\r\n */\r\n public set fxaaEnabled(enabled: boolean) {\r\n if (this._fxaaEnabled === enabled) {\r\n return;\r\n }\r\n this._fxaaEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get fxaaEnabled(): boolean {\r\n return this._fxaaEnabled;\r\n }\r\n\r\n private _samples = 1;\r\n /**\r\n * MSAA sample count, setting this to 4 will provide 4x anti aliasing. (default: 1)\r\n */\r\n public set samples(sampleCount: number) {\r\n if (this._samples === sampleCount) {\r\n return;\r\n }\r\n this._samples = sampleCount;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get samples(): number {\r\n return this._samples;\r\n }\r\n\r\n /**\r\n * If image processing is enabled.\r\n */\r\n public set imageProcessingEnabled(enabled: boolean) {\r\n if (this._imageProcessingEnabled === enabled) {\r\n return;\r\n }\r\n\r\n this._scene.imageProcessingConfiguration.isEnabled = enabled;\r\n }\r\n\r\n @serialize()\r\n public get imageProcessingEnabled(): boolean {\r\n return this._imageProcessingEnabled;\r\n }\r\n\r\n /**\r\n * If glow layer is enabled. (Adds a glow effect to emmissive materials)\r\n */\r\n public set glowLayerEnabled(enabled: boolean) {\r\n if (enabled && !this._glowLayer) {\r\n this._glowLayer = new GlowLayer(\"\", this._scene);\r\n } else if (!enabled && this._glowLayer) {\r\n this._glowLayer.dispose();\r\n this._glowLayer = null;\r\n }\r\n }\r\n\r\n @serialize()\r\n public get glowLayerEnabled(): boolean {\r\n return this._glowLayer != null;\r\n }\r\n\r\n /**\r\n * Gets the glow layer (or null if not defined)\r\n */\r\n public get glowLayer() {\r\n return this._glowLayer;\r\n }\r\n\r\n /**\r\n * Enable or disable the chromaticAberration process from the pipeline\r\n */\r\n public set chromaticAberrationEnabled(enabled: boolean) {\r\n if (this._chromaticAberrationEnabled === enabled) {\r\n return;\r\n }\r\n this._chromaticAberrationEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get chromaticAberrationEnabled(): boolean {\r\n return this._chromaticAberrationEnabled;\r\n }\r\n /**\r\n * Enable or disable the grain process from the pipeline\r\n */\r\n public set grainEnabled(enabled: boolean) {\r\n if (this._grainEnabled === enabled) {\r\n return;\r\n }\r\n this._grainEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get grainEnabled(): boolean {\r\n return this._grainEnabled;\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @param name - The rendering pipeline name (default: \"\")\r\n * @param hdr - If high dynamic range textures should be used (default: true)\r\n * @param scene - The scene linked to this pipeline (default: the last created scene)\r\n * @param cameras - The array of cameras that the rendering pipeline will be attached to (default: scene.cameras)\r\n * @param automaticBuild - if false, you will have to manually call prepare() to update the pipeline (default: true)\r\n */\r\n constructor(name: string = \"\", hdr: boolean = true, scene: Scene = EngineStore.LastCreatedScene!, cameras?: Camera[], automaticBuild = true) {\r\n super(scene.getEngine(), name);\r\n this._cameras = cameras || scene.cameras;\r\n this._cameras = this._cameras.slice();\r\n this._camerasToBeAttached = this._cameras.slice();\r\n\r\n this._buildAllowed = automaticBuild;\r\n\r\n // Initialize\r\n this._scene = scene;\r\n const caps = this._scene.getEngine().getCaps();\r\n this._hdr = hdr && (caps.textureHalfFloatRender || caps.textureFloatRender);\r\n\r\n // Misc\r\n if (this._hdr) {\r\n if (caps.textureHalfFloatRender) {\r\n this._defaultPipelineTextureType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n } else if (caps.textureFloatRender) {\r\n this._defaultPipelineTextureType = Constants.TEXTURETYPE_FLOAT;\r\n }\r\n } else {\r\n this._defaultPipelineTextureType = Constants.TEXTURETYPE_UNSIGNED_INT;\r\n }\r\n\r\n // Attach\r\n scene.postProcessRenderPipelineManager.addPipeline(this);\r\n\r\n const engine = this._scene.getEngine();\r\n // Create post processes before hand so they can be modified before enabled.\r\n // Block compilation flag is set to true to avoid compilation prior to use, these will be updated on first use in build pipeline.\r\n this.sharpen = new SharpenPostProcess(\"sharpen\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, engine, false, this._defaultPipelineTextureType, true);\r\n this._sharpenEffect = new PostProcessRenderEffect(\r\n engine,\r\n this.SharpenPostProcessId,\r\n () => {\r\n return this.sharpen;\r\n },\r\n true\r\n );\r\n\r\n this.depthOfField = new DepthOfFieldEffect(this._scene, null, this._depthOfFieldBlurLevel, this._defaultPipelineTextureType, true);\r\n\r\n this.bloom = new BloomEffect(this._scene, this._bloomScale, this._bloomWeight, this.bloomKernel, this._defaultPipelineTextureType, true);\r\n\r\n this.chromaticAberration = new ChromaticAberrationPostProcess(\r\n \"ChromaticAberration\",\r\n engine.getRenderWidth(),\r\n engine.getRenderHeight(),\r\n 1.0,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n engine,\r\n false,\r\n this._defaultPipelineTextureType,\r\n true\r\n );\r\n this._chromaticAberrationEffect = new PostProcessRenderEffect(\r\n engine,\r\n this.ChromaticAberrationPostProcessId,\r\n () => {\r\n return this.chromaticAberration;\r\n },\r\n true\r\n );\r\n\r\n this.grain = new GrainPostProcess(\"Grain\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, engine, false, this._defaultPipelineTextureType, true);\r\n this._grainEffect = new PostProcessRenderEffect(\r\n engine,\r\n this.GrainPostProcessId,\r\n () => {\r\n return this.grain;\r\n },\r\n true\r\n );\r\n\r\n this._resizeObserver = engine.onResizeObservable.add(() => {\r\n this._hardwareScaleLevel = engine.getHardwareScalingLevel();\r\n this.bloomKernel = this._bloomKernel;\r\n });\r\n\r\n this._imageProcessingConfigurationObserver = this._scene.imageProcessingConfiguration.onUpdateParameters.add(() => {\r\n this.bloom._downscale._exposure = this._scene.imageProcessingConfiguration.exposure;\r\n\r\n if (this.imageProcessingEnabled !== this._scene.imageProcessingConfiguration.isEnabled) {\r\n this._imageProcessingEnabled = this._scene.imageProcessingConfiguration.isEnabled;\r\n this._buildPipeline();\r\n }\r\n });\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * Get the class name\r\n * @returns \"DefaultRenderingPipeline\"\r\n */\r\n public getClassName(): string {\r\n return \"DefaultRenderingPipeline\";\r\n }\r\n\r\n /**\r\n * Force the compilation of the entire pipeline.\r\n */\r\n public prepare(): void {\r\n const previousState = this._buildAllowed;\r\n this._buildAllowed = true;\r\n this._buildPipeline();\r\n this._buildAllowed = previousState;\r\n }\r\n\r\n private _hasCleared = false;\r\n private _prevPostProcess: Nullable<PostProcess> = null;\r\n private _prevPrevPostProcess: Nullable<PostProcess> = null;\r\n\r\n private _setAutoClearAndTextureSharing(postProcess: PostProcess, skipTextureSharing = false) {\r\n if (this._hasCleared) {\r\n postProcess.autoClear = false;\r\n } else {\r\n postProcess.autoClear = true;\r\n this._scene.autoClear = false;\r\n this._hasCleared = true;\r\n }\r\n\r\n if (!skipTextureSharing) {\r\n if (this._prevPrevPostProcess) {\r\n postProcess.shareOutputWith(this._prevPrevPostProcess);\r\n } else {\r\n postProcess.useOwnOutput();\r\n }\r\n\r\n if (this._prevPostProcess) {\r\n this._prevPrevPostProcess = this._prevPostProcess;\r\n }\r\n this._prevPostProcess = postProcess;\r\n }\r\n }\r\n\r\n private _depthOfFieldSceneObserver: Nullable<Observer<Scene>> = null;\r\n private _activeCameraChangedObserver: Nullable<Observer<Scene>> = null;\r\n private _activeCamerasChangedObserver: Nullable<Observer<INotifyArrayChangeType<Camera>>> = null;\r\n\r\n private _buildPipeline() {\r\n if (!this._buildAllowed) {\r\n return;\r\n }\r\n this._scene.autoClear = true;\r\n\r\n const engine = this._scene.getEngine();\r\n\r\n this._disposePostProcesses();\r\n if (this._cameras !== null) {\r\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\r\n // get back cameras to be used to reattach pipeline\r\n this._cameras = this._camerasToBeAttached.slice();\r\n }\r\n this._reset();\r\n this._prevPostProcess = null;\r\n this._prevPrevPostProcess = null;\r\n this._hasCleared = false;\r\n\r\n if (this.depthOfFieldEnabled) {\r\n // Multi camera suport\r\n if (this._cameras.length > 1) {\r\n for (const camera of this._cameras) {\r\n const depthRenderer = this._scene.enableDepthRenderer(camera);\r\n depthRenderer.useOnlyInActiveCamera = true;\r\n }\r\n\r\n this._depthOfFieldSceneObserver = this._scene.onAfterRenderTargetsRenderObservable.add((scene) => {\r\n if (this._cameras.indexOf(scene.activeCamera!) > -1) {\r\n this.depthOfField.depthTexture = scene.enableDepthRenderer(scene.activeCamera).getDepthMap();\r\n }\r\n });\r\n } else {\r\n this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);\r\n const depthRenderer = this._scene.enableDepthRenderer(this._cameras[0]);\r\n this.depthOfField.depthTexture = depthRenderer.getDepthMap();\r\n }\r\n\r\n if (!this.depthOfField._isReady()) {\r\n this.depthOfField._updateEffects();\r\n }\r\n this.addEffect(this.depthOfField);\r\n this._setAutoClearAndTextureSharing(this.depthOfField._effects[0], true);\r\n } else {\r\n this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);\r\n }\r\n\r\n if (this.bloomEnabled) {\r\n if (!this.bloom._isReady()) {\r\n this.bloom._updateEffects();\r\n }\r\n this.addEffect(this.bloom);\r\n this._setAutoClearAndTextureSharing(this.bloom._effects[0], true);\r\n }\r\n\r\n if (this._imageProcessingEnabled) {\r\n this.imageProcessing = new ImageProcessingPostProcess(\r\n \"imageProcessing\",\r\n 1.0,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n engine,\r\n false,\r\n this._defaultPipelineTextureType,\r\n this.scene.imageProcessingConfiguration\r\n );\r\n if (this._hdr) {\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n engine,\r\n this.ImageProcessingPostProcessId,\r\n () => {\r\n return this.imageProcessing;\r\n },\r\n true\r\n )\r\n );\r\n this._setAutoClearAndTextureSharing(this.imageProcessing);\r\n } else {\r\n this._scene.imageProcessingConfiguration.applyByPostProcess = false;\r\n }\r\n\r\n if (!this._cameras || this._cameras.length === 0) {\r\n this._scene.imageProcessingConfiguration.applyByPostProcess = false;\r\n }\r\n\r\n if (!this.imageProcessing.getEffect()) {\r\n this.imageProcessing._updateParameters();\r\n }\r\n }\r\n\r\n if (this.sharpenEnabled) {\r\n if (!this.sharpen.isReady()) {\r\n this.sharpen.updateEffect();\r\n }\r\n this.addEffect(this._sharpenEffect);\r\n this._setAutoClearAndTextureSharing(this.sharpen);\r\n }\r\n\r\n if (this.grainEnabled) {\r\n if (!this.grain.isReady()) {\r\n this.grain.updateEffect();\r\n }\r\n this.addEffect(this._grainEffect);\r\n this._setAutoClearAndTextureSharing(this.grain);\r\n }\r\n\r\n if (this.chromaticAberrationEnabled) {\r\n if (!this.chromaticAberration.isReady()) {\r\n this.chromaticAberration.updateEffect();\r\n }\r\n this.addEffect(this._chromaticAberrationEffect);\r\n this._setAutoClearAndTextureSharing(this.chromaticAberration);\r\n }\r\n\r\n if (this.fxaaEnabled) {\r\n this.fxaa = new FxaaPostProcess(\"fxaa\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, engine, false, this._defaultPipelineTextureType);\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n engine,\r\n this.FxaaPostProcessId,\r\n () => {\r\n return this.fxaa;\r\n },\r\n true\r\n )\r\n );\r\n this._setAutoClearAndTextureSharing(this.fxaa, true);\r\n }\r\n\r\n if (this._cameras !== null) {\r\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\r\n }\r\n\r\n // In multicamera mode, the scene needs to autoclear in between cameras.\r\n if ((this._scene.activeCameras && this._scene.activeCameras.length > 1) || (this._scene.activeCamera && this._cameras.indexOf(this._scene.activeCamera) === -1)) {\r\n this._scene.autoClear = true;\r\n }\r\n // The active camera on the scene can be changed anytime\r\n if (!this._activeCameraChangedObserver) {\r\n this._activeCameraChangedObserver = this._scene.onActiveCameraChanged.add(() => {\r\n if (this._scene.activeCamera && this._cameras.indexOf(this._scene.activeCamera) === -1) {\r\n this._scene.autoClear = true;\r\n }\r\n });\r\n }\r\n if (!this._activeCamerasChangedObserver) {\r\n this._activeCamerasChangedObserver = this._scene.onActiveCamerasChanged.add(() => {\r\n if (this._scene.activeCameras && this._scene.activeCameras.length > 1) {\r\n this._scene.autoClear = true;\r\n }\r\n });\r\n }\r\n\r\n if (!this._enableMSAAOnFirstPostProcess(this.samples) && this.samples > 1) {\r\n Logger.Warn(\"MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0\");\r\n }\r\n\r\n this.onBuildObservable.notifyObservers(this);\r\n }\r\n\r\n private _disposePostProcesses(disposeNonRecreated = false): void {\r\n for (let i = 0; i < this._cameras.length; i++) {\r\n const camera = this._cameras[i];\r\n\r\n if (this.imageProcessing) {\r\n this.imageProcessing.dispose(camera);\r\n }\r\n\r\n if (this.fxaa) {\r\n this.fxaa.dispose(camera);\r\n }\r\n\r\n // These are created in the constructor and should not be disposed on every pipeline change\r\n if (disposeNonRecreated) {\r\n if (this.sharpen) {\r\n this.sharpen.dispose(camera);\r\n }\r\n\r\n if (this.depthOfField) {\r\n this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);\r\n this.depthOfField.disposeEffects(camera);\r\n }\r\n\r\n if (this.bloom) {\r\n this.bloom.disposeEffects(camera);\r\n }\r\n\r\n if (this.chromaticAberration) {\r\n this.chromaticAberration.dispose(camera);\r\n }\r\n\r\n if (this.grain) {\r\n this.grain.dispose(camera);\r\n }\r\n if (this._glowLayer) {\r\n this._glowLayer.dispose();\r\n }\r\n }\r\n }\r\n\r\n (<any>this.imageProcessing) = null;\r\n (<any>this.fxaa) = null;\r\n\r\n if (disposeNonRecreated) {\r\n (<any>this.sharpen) = null;\r\n (<any>this._sharpenEffect) = null;\r\n (<any>this.depthOfField) = null;\r\n (<any>this.bloom) = null;\r\n (<any>this.chromaticAberration) = null;\r\n (<any>this._chromaticAberrationEffect) = null;\r\n (<any>this.grain) = null;\r\n (<any>this._grainEffect) = null;\r\n this._glowLayer = null;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a camera to the pipeline\r\n * @param camera the camera to be added\r\n */\r\n public addCamera(camera: Camera): void {\r\n this._camerasToBeAttached.push(camera);\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * Removes a camera from the pipeline\r\n * @param camera the camera to remove\r\n */\r\n public removeCamera(camera: Camera): void {\r\n const index = this._camerasToBeAttached.indexOf(camera);\r\n this._camerasToBeAttached.splice(index, 1);\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * Dispose of the pipeline and stop all post processes\r\n */\r\n public dispose(): void {\r\n this.onBuildObservable.clear();\r\n this._disposePostProcesses(true);\r\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\r\n this._scene.autoClear = true;\r\n if (this._resizeObserver) {\r\n this._scene.getEngine().onResizeObservable.remove(this._resizeObserver);\r\n this._resizeObserver = null;\r\n }\r\n\r\n this._scene.onActiveCameraChanged.remove(this._activeCameraChangedObserver);\r\n this._scene.onActiveCamerasChanged.remove(this._activeCamerasChangedObserver);\r\n\r\n this._scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigurationObserver);\r\n super.dispose();\r\n }\r\n\r\n /**\r\n * Serialize the rendering pipeline (Used when exporting)\r\n * @returns the serialized object\r\n */\r\n public serialize(): any {\r\n const serializationObject = SerializationHelper.Serialize(this);\r\n serializationObject.customType = \"DefaultRenderingPipeline\";\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Parse the serialized pipeline\r\n * @param source Source pipeline.\r\n * @param scene The scene to load the pipeline to.\r\n * @param rootUrl The URL of the serialized pipeline.\r\n * @returns An instantiated pipeline from the serialized object.\r\n */\r\n public static Parse(source: any, scene: Scene, rootUrl: string): DefaultRenderingPipeline {\r\n return SerializationHelper.Parse(() => new DefaultRenderingPipeline(source._name, source._name._hdr, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.DefaultRenderingPipeline\", DefaultRenderingPipeline);\r\n"]}
1
+ {"version":3,"file":"defaultRenderingPipeline.js","sourceRoot":"","sources":["../../../../../../../lts/core/generated/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"../../../types\";\r\nimport { serialize, SerializationHelper } from \"../../../Misc/decorators\";\r\nimport type { Observer } from \"../../../Misc/observable\";\r\nimport { Observable } from \"../../../Misc/observable\";\r\nimport type { IAnimatable } from \"../../../Animations/animatable.interface\";\r\nimport { Logger } from \"../../../Misc/logger\";\r\nimport type { Camera } from \"../../../Cameras/camera\";\r\nimport type { ImageProcessingConfiguration } from \"../../../Materials/imageProcessingConfiguration\";\r\nimport { Texture } from \"../../../Materials/Textures/texture\";\r\nimport type { Engine } from \"../../../Engines/engine\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\nimport type { IDisposable, Scene } from \"../../../scene\";\r\nimport { GlowLayer } from \"../../../Layers/glowLayer\";\r\n\r\nimport type { PostProcess } from \"../../../PostProcesses/postProcess\";\r\nimport { SharpenPostProcess } from \"../../../PostProcesses/sharpenPostProcess\";\r\nimport { ImageProcessingPostProcess } from \"../../../PostProcesses/imageProcessingPostProcess\";\r\nimport { ChromaticAberrationPostProcess } from \"../../../PostProcesses/chromaticAberrationPostProcess\";\r\nimport { GrainPostProcess } from \"../../../PostProcesses/grainPostProcess\";\r\nimport { FxaaPostProcess } from \"../../../PostProcesses/fxaaPostProcess\";\r\nimport { PostProcessRenderPipeline } from \"../../../PostProcesses/RenderPipeline/postProcessRenderPipeline\";\r\nimport { PostProcessRenderEffect } from \"../../../PostProcesses/RenderPipeline/postProcessRenderEffect\";\r\nimport { DepthOfFieldEffect, DepthOfFieldEffectBlurLevel } from \"../../../PostProcesses/depthOfFieldEffect\";\r\nimport { BloomEffect } from \"../../../PostProcesses/bloomEffect\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { EngineStore } from \"../../../Engines/engineStore\";\r\n\r\nimport \"../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\n\r\ndeclare type Animation = import(\"../../../Animations/animation\").Animation;\r\n\r\n/**\r\n * The default rendering pipeline can be added to a scene to apply common post processing effects such as anti-aliasing or depth of field.\r\n * See https://doc.babylonjs.com/how_to/using_default_rendering_pipeline\r\n */\r\nexport class DefaultRenderingPipeline extends PostProcessRenderPipeline implements IDisposable, IAnimatable {\r\n private _scene: Scene;\r\n private _camerasToBeAttached: Array<Camera> = [];\r\n /**\r\n * ID of the sharpen post process,\r\n */\r\n private readonly SharpenPostProcessId: string = \"SharpenPostProcessEffect\";\r\n /**\r\n * @ignore\r\n * ID of the image processing post process;\r\n */\r\n readonly ImageProcessingPostProcessId: string = \"ImageProcessingPostProcessEffect\";\r\n /**\r\n * @ignore\r\n * ID of the Fast Approximate Anti-Aliasing post process;\r\n */\r\n readonly FxaaPostProcessId: string = \"FxaaPostProcessEffect\";\r\n /**\r\n * ID of the chromatic aberration post process,\r\n */\r\n private readonly ChromaticAberrationPostProcessId: string = \"ChromaticAberrationPostProcessEffect\";\r\n /**\r\n * ID of the grain post process\r\n */\r\n private readonly GrainPostProcessId: string = \"GrainPostProcessEffect\";\r\n\r\n // Post-processes\r\n /**\r\n * Sharpen post process which will apply a sharpen convolution to enhance edges\r\n */\r\n public sharpen: SharpenPostProcess;\r\n private _sharpenEffect: PostProcessRenderEffect;\r\n private bloom: BloomEffect;\r\n /**\r\n * Depth of field effect, applies a blur based on how far away objects are from the focus distance.\r\n */\r\n public depthOfField: DepthOfFieldEffect;\r\n /**\r\n * The Fast Approximate Anti-Aliasing post process which attempts to remove aliasing from an image.\r\n */\r\n public fxaa: FxaaPostProcess;\r\n /**\r\n * Image post processing pass used to perform operations such as tone mapping or color grading.\r\n */\r\n public imageProcessing: ImageProcessingPostProcess;\r\n /**\r\n * Chromatic aberration post process which will shift rgb colors in the image\r\n */\r\n public chromaticAberration: ChromaticAberrationPostProcess;\r\n private _chromaticAberrationEffect: PostProcessRenderEffect;\r\n /**\r\n * Grain post process which add noise to the image\r\n */\r\n public grain: GrainPostProcess;\r\n private _grainEffect: PostProcessRenderEffect;\r\n /**\r\n * Glow post process which adds a glow to emissive areas of the image\r\n */\r\n private _glowLayer: Nullable<GlowLayer> = null;\r\n\r\n /**\r\n * Animations which can be used to tweak settings over a period of time\r\n */\r\n public animations: Animation[] = [];\r\n\r\n private _imageProcessingConfigurationObserver: Nullable<Observer<ImageProcessingConfiguration>> = null;\r\n // Values\r\n private _sharpenEnabled: boolean = false;\r\n private _bloomEnabled: boolean = false;\r\n private _depthOfFieldEnabled: boolean = false;\r\n private _depthOfFieldBlurLevel = DepthOfFieldEffectBlurLevel.Low;\r\n private _fxaaEnabled: boolean = false;\r\n private _imageProcessingEnabled: boolean = true;\r\n private _defaultPipelineTextureType: number;\r\n private _bloomScale: number = 0.5;\r\n private _chromaticAberrationEnabled: boolean = false;\r\n private _grainEnabled: boolean = false;\r\n\r\n private _buildAllowed = true;\r\n\r\n /**\r\n * This is triggered each time the pipeline has been built.\r\n */\r\n public onBuildObservable = new Observable<DefaultRenderingPipeline>();\r\n\r\n /**\r\n * Gets active scene\r\n */\r\n public get scene(): Scene {\r\n return this._scene;\r\n }\r\n\r\n /**\r\n * Enable or disable the sharpen process from the pipeline\r\n */\r\n public set sharpenEnabled(enabled: boolean) {\r\n if (this._sharpenEnabled === enabled) {\r\n return;\r\n }\r\n this._sharpenEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get sharpenEnabled(): boolean {\r\n return this._sharpenEnabled;\r\n }\r\n\r\n private _resizeObserver: Nullable<Observer<Engine>> = null;\r\n private _hardwareScaleLevel = 1.0;\r\n private _bloomKernel: number = 64;\r\n /**\r\n * Specifies the size of the bloom blur kernel, relative to the final output size\r\n */\r\n @serialize()\r\n public get bloomKernel(): number {\r\n return this._bloomKernel;\r\n }\r\n public set bloomKernel(value: number) {\r\n this._bloomKernel = value;\r\n this.bloom.kernel = value / this._hardwareScaleLevel;\r\n }\r\n\r\n /**\r\n * Specifies the weight of the bloom in the final rendering\r\n */\r\n @serialize()\r\n private _bloomWeight: number = 0.15;\r\n /**\r\n * Specifies the luma threshold for the area that will be blurred by the bloom\r\n */\r\n @serialize()\r\n private _bloomThreshold: number = 0.9;\r\n\r\n @serialize()\r\n private _hdr: boolean;\r\n\r\n /**\r\n * The strength of the bloom.\r\n */\r\n public set bloomWeight(value: number) {\r\n if (this._bloomWeight === value) {\r\n return;\r\n }\r\n this.bloom.weight = value;\r\n\r\n this._bloomWeight = value;\r\n }\r\n\r\n @serialize()\r\n public get bloomWeight(): number {\r\n return this._bloomWeight;\r\n }\r\n\r\n /**\r\n * The luminance threshold to find bright areas of the image to bloom.\r\n */\r\n public set bloomThreshold(value: number) {\r\n if (this._bloomThreshold === value) {\r\n return;\r\n }\r\n this.bloom.threshold = value;\r\n this._bloomThreshold = value;\r\n }\r\n\r\n @serialize()\r\n public get bloomThreshold(): number {\r\n return this._bloomThreshold;\r\n }\r\n\r\n /**\r\n * The scale of the bloom, lower value will provide better performance.\r\n */\r\n public set bloomScale(value: number) {\r\n if (this._bloomScale === value) {\r\n return;\r\n }\r\n this._bloomScale = value;\r\n\r\n // recreate bloom and dispose old as this setting is not dynamic\r\n this._rebuildBloom();\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get bloomScale(): number {\r\n return this._bloomScale;\r\n }\r\n\r\n /**\r\n * Enable or disable the bloom from the pipeline\r\n */\r\n public set bloomEnabled(enabled: boolean) {\r\n if (this._bloomEnabled === enabled) {\r\n return;\r\n }\r\n this._bloomEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get bloomEnabled(): boolean {\r\n return this._bloomEnabled;\r\n }\r\n\r\n private _rebuildBloom() {\r\n // recreate bloom and dispose old as this setting is not dynamic\r\n const oldBloom = this.bloom;\r\n this.bloom = new BloomEffect(this._scene, this.bloomScale, this._bloomWeight, this.bloomKernel, this._defaultPipelineTextureType, false);\r\n this.bloom.threshold = oldBloom.threshold;\r\n for (let i = 0; i < this._cameras.length; i++) {\r\n oldBloom.disposeEffects(this._cameras[i]);\r\n }\r\n }\r\n\r\n /**\r\n * If the depth of field is enabled.\r\n */\r\n @serialize()\r\n public get depthOfFieldEnabled(): boolean {\r\n return this._depthOfFieldEnabled;\r\n }\r\n\r\n public set depthOfFieldEnabled(enabled: boolean) {\r\n if (this._depthOfFieldEnabled === enabled) {\r\n return;\r\n }\r\n this._depthOfFieldEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * Blur level of the depth of field effect. (Higher blur will effect performance)\r\n */\r\n @serialize()\r\n public get depthOfFieldBlurLevel(): DepthOfFieldEffectBlurLevel {\r\n return this._depthOfFieldBlurLevel;\r\n }\r\n\r\n public set depthOfFieldBlurLevel(value: DepthOfFieldEffectBlurLevel) {\r\n if (this._depthOfFieldBlurLevel === value) {\r\n return;\r\n }\r\n this._depthOfFieldBlurLevel = value;\r\n\r\n // recreate dof and dispose old as this setting is not dynamic\r\n const oldDof = this.depthOfField;\r\n\r\n this.depthOfField = new DepthOfFieldEffect(this._scene, null, this._depthOfFieldBlurLevel, this._defaultPipelineTextureType, false);\r\n this.depthOfField.focalLength = oldDof.focalLength;\r\n this.depthOfField.focusDistance = oldDof.focusDistance;\r\n this.depthOfField.fStop = oldDof.fStop;\r\n this.depthOfField.lensSize = oldDof.lensSize;\r\n\r\n for (let i = 0; i < this._cameras.length; i++) {\r\n oldDof.disposeEffects(this._cameras[i]);\r\n }\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * If the anti aliasing is enabled.\r\n */\r\n public set fxaaEnabled(enabled: boolean) {\r\n if (this._fxaaEnabled === enabled) {\r\n return;\r\n }\r\n this._fxaaEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get fxaaEnabled(): boolean {\r\n return this._fxaaEnabled;\r\n }\r\n\r\n private _samples = 1;\r\n /**\r\n * MSAA sample count, setting this to 4 will provide 4x anti aliasing. (default: 1)\r\n */\r\n public set samples(sampleCount: number) {\r\n if (this._samples === sampleCount) {\r\n return;\r\n }\r\n this._samples = sampleCount;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get samples(): number {\r\n return this._samples;\r\n }\r\n\r\n /**\r\n * If image processing is enabled.\r\n */\r\n public set imageProcessingEnabled(enabled: boolean) {\r\n if (this._imageProcessingEnabled === enabled) {\r\n return;\r\n }\r\n\r\n this._scene.imageProcessingConfiguration.isEnabled = enabled;\r\n }\r\n\r\n @serialize()\r\n public get imageProcessingEnabled(): boolean {\r\n return this._imageProcessingEnabled;\r\n }\r\n\r\n /**\r\n * If glow layer is enabled. (Adds a glow effect to emmissive materials)\r\n */\r\n public set glowLayerEnabled(enabled: boolean) {\r\n if (enabled && !this._glowLayer) {\r\n this._glowLayer = new GlowLayer(\"\", this._scene);\r\n } else if (!enabled && this._glowLayer) {\r\n this._glowLayer.dispose();\r\n this._glowLayer = null;\r\n }\r\n }\r\n\r\n @serialize()\r\n public get glowLayerEnabled(): boolean {\r\n return this._glowLayer != null;\r\n }\r\n\r\n /**\r\n * Gets the glow layer (or null if not defined)\r\n */\r\n public get glowLayer() {\r\n return this._glowLayer;\r\n }\r\n\r\n /**\r\n * Enable or disable the chromaticAberration process from the pipeline\r\n */\r\n public set chromaticAberrationEnabled(enabled: boolean) {\r\n if (this._chromaticAberrationEnabled === enabled) {\r\n return;\r\n }\r\n this._chromaticAberrationEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get chromaticAberrationEnabled(): boolean {\r\n return this._chromaticAberrationEnabled;\r\n }\r\n /**\r\n * Enable or disable the grain process from the pipeline\r\n */\r\n public set grainEnabled(enabled: boolean) {\r\n if (this._grainEnabled === enabled) {\r\n return;\r\n }\r\n this._grainEnabled = enabled;\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n @serialize()\r\n public get grainEnabled(): boolean {\r\n return this._grainEnabled;\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @param name - The rendering pipeline name (default: \"\")\r\n * @param hdr - If high dynamic range textures should be used (default: true)\r\n * @param scene - The scene linked to this pipeline (default: the last created scene)\r\n * @param cameras - The array of cameras that the rendering pipeline will be attached to (default: scene.cameras)\r\n * @param automaticBuild - if false, you will have to manually call prepare() to update the pipeline (default: true)\r\n */\r\n constructor(name: string = \"\", hdr: boolean = true, scene: Scene = EngineStore.LastCreatedScene!, cameras?: Camera[], automaticBuild = true) {\r\n super(scene.getEngine(), name);\r\n this._cameras = cameras || scene.cameras;\r\n this._cameras = this._cameras.slice();\r\n this._camerasToBeAttached = this._cameras.slice();\r\n\r\n this._buildAllowed = automaticBuild;\r\n\r\n // Initialize\r\n this._scene = scene;\r\n const caps = this._scene.getEngine().getCaps();\r\n this._hdr = hdr && (caps.textureHalfFloatRender || caps.textureFloatRender);\r\n\r\n // Misc\r\n if (this._hdr) {\r\n if (caps.textureHalfFloatRender) {\r\n this._defaultPipelineTextureType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n } else if (caps.textureFloatRender) {\r\n this._defaultPipelineTextureType = Constants.TEXTURETYPE_FLOAT;\r\n }\r\n } else {\r\n this._defaultPipelineTextureType = Constants.TEXTURETYPE_UNSIGNED_INT;\r\n }\r\n\r\n // Attach\r\n scene.postProcessRenderPipelineManager.addPipeline(this);\r\n\r\n const engine = this._scene.getEngine();\r\n // Create post processes before hand so they can be modified before enabled.\r\n // Block compilation flag is set to true to avoid compilation prior to use, these will be updated on first use in build pipeline.\r\n this.sharpen = new SharpenPostProcess(\"sharpen\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, engine, false, this._defaultPipelineTextureType, true);\r\n this._sharpenEffect = new PostProcessRenderEffect(\r\n engine,\r\n this.SharpenPostProcessId,\r\n () => {\r\n return this.sharpen;\r\n },\r\n true\r\n );\r\n\r\n this.depthOfField = new DepthOfFieldEffect(this._scene, null, this._depthOfFieldBlurLevel, this._defaultPipelineTextureType, true);\r\n\r\n this.bloom = new BloomEffect(this._scene, this._bloomScale, this._bloomWeight, this.bloomKernel, this._defaultPipelineTextureType, true);\r\n\r\n this.chromaticAberration = new ChromaticAberrationPostProcess(\r\n \"ChromaticAberration\",\r\n engine.getRenderWidth(),\r\n engine.getRenderHeight(),\r\n 1.0,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n engine,\r\n false,\r\n this._defaultPipelineTextureType,\r\n true\r\n );\r\n this._chromaticAberrationEffect = new PostProcessRenderEffect(\r\n engine,\r\n this.ChromaticAberrationPostProcessId,\r\n () => {\r\n return this.chromaticAberration;\r\n },\r\n true\r\n );\r\n\r\n this.grain = new GrainPostProcess(\"Grain\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, engine, false, this._defaultPipelineTextureType, true);\r\n this._grainEffect = new PostProcessRenderEffect(\r\n engine,\r\n this.GrainPostProcessId,\r\n () => {\r\n return this.grain;\r\n },\r\n true\r\n );\r\n\r\n this._resizeObserver = engine.onResizeObservable.add(() => {\r\n this._hardwareScaleLevel = engine.getHardwareScalingLevel();\r\n this.bloomKernel = this._bloomKernel;\r\n });\r\n\r\n this._imageProcessingConfigurationObserver = this._scene.imageProcessingConfiguration.onUpdateParameters.add(() => {\r\n this.bloom._downscale._exposure = this._scene.imageProcessingConfiguration.exposure;\r\n\r\n if (this.imageProcessingEnabled !== this._scene.imageProcessingConfiguration.isEnabled) {\r\n this._imageProcessingEnabled = this._scene.imageProcessingConfiguration.isEnabled;\r\n this._buildPipeline();\r\n }\r\n });\r\n\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * Get the class name\r\n * @returns \"DefaultRenderingPipeline\"\r\n */\r\n public getClassName(): string {\r\n return \"DefaultRenderingPipeline\";\r\n }\r\n\r\n /**\r\n * Force the compilation of the entire pipeline.\r\n */\r\n public prepare(): void {\r\n const previousState = this._buildAllowed;\r\n this._buildAllowed = true;\r\n this._buildPipeline();\r\n this._buildAllowed = previousState;\r\n }\r\n\r\n private _hasCleared = false;\r\n private _prevPostProcess: Nullable<PostProcess> = null;\r\n private _prevPrevPostProcess: Nullable<PostProcess> = null;\r\n\r\n private _setAutoClearAndTextureSharing(postProcess: PostProcess, skipTextureSharing = false) {\r\n if (this._hasCleared) {\r\n postProcess.autoClear = false;\r\n } else {\r\n postProcess.autoClear = true;\r\n this._scene.autoClear = false;\r\n this._hasCleared = true;\r\n }\r\n\r\n if (!skipTextureSharing) {\r\n if (this._prevPrevPostProcess) {\r\n postProcess.shareOutputWith(this._prevPrevPostProcess);\r\n } else {\r\n postProcess.useOwnOutput();\r\n }\r\n\r\n if (this._prevPostProcess) {\r\n this._prevPrevPostProcess = this._prevPostProcess;\r\n }\r\n this._prevPostProcess = postProcess;\r\n }\r\n }\r\n\r\n private _depthOfFieldSceneObserver: Nullable<Observer<Scene>> = null;\r\n private _activeCameraChangedObserver: Nullable<Observer<Scene>> = null;\r\n private _activeCamerasChangedObserver: Nullable<Observer<Scene>> = null;\r\n\r\n private _buildPipeline() {\r\n if (!this._buildAllowed) {\r\n return;\r\n }\r\n this._scene.autoClear = true;\r\n\r\n const engine = this._scene.getEngine();\r\n\r\n this._disposePostProcesses();\r\n if (this._cameras !== null) {\r\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\r\n // get back cameras to be used to reattach pipeline\r\n this._cameras = this._camerasToBeAttached.slice();\r\n }\r\n this._reset();\r\n this._prevPostProcess = null;\r\n this._prevPrevPostProcess = null;\r\n this._hasCleared = false;\r\n\r\n if (this.depthOfFieldEnabled) {\r\n // Multi camera suport\r\n if (this._cameras.length > 1) {\r\n for (const camera of this._cameras) {\r\n const depthRenderer = this._scene.enableDepthRenderer(camera);\r\n depthRenderer.useOnlyInActiveCamera = true;\r\n }\r\n\r\n this._depthOfFieldSceneObserver = this._scene.onAfterRenderTargetsRenderObservable.add((scene) => {\r\n if (this._cameras.indexOf(scene.activeCamera!) > -1) {\r\n this.depthOfField.depthTexture = scene.enableDepthRenderer(scene.activeCamera).getDepthMap();\r\n }\r\n });\r\n } else {\r\n this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);\r\n const depthRenderer = this._scene.enableDepthRenderer(this._cameras[0]);\r\n this.depthOfField.depthTexture = depthRenderer.getDepthMap();\r\n }\r\n\r\n if (!this.depthOfField._isReady()) {\r\n this.depthOfField._updateEffects();\r\n }\r\n this.addEffect(this.depthOfField);\r\n this._setAutoClearAndTextureSharing(this.depthOfField._effects[0], true);\r\n } else {\r\n this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);\r\n }\r\n\r\n if (this.bloomEnabled) {\r\n if (!this.bloom._isReady()) {\r\n this.bloom._updateEffects();\r\n }\r\n this.addEffect(this.bloom);\r\n this._setAutoClearAndTextureSharing(this.bloom._effects[0], true);\r\n }\r\n\r\n if (this._imageProcessingEnabled) {\r\n this.imageProcessing = new ImageProcessingPostProcess(\r\n \"imageProcessing\",\r\n 1.0,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n engine,\r\n false,\r\n this._defaultPipelineTextureType,\r\n this.scene.imageProcessingConfiguration\r\n );\r\n if (this._hdr) {\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n engine,\r\n this.ImageProcessingPostProcessId,\r\n () => {\r\n return this.imageProcessing;\r\n },\r\n true\r\n )\r\n );\r\n this._setAutoClearAndTextureSharing(this.imageProcessing);\r\n } else {\r\n this._scene.imageProcessingConfiguration.applyByPostProcess = false;\r\n }\r\n\r\n if (!this._cameras || this._cameras.length === 0) {\r\n this._scene.imageProcessingConfiguration.applyByPostProcess = false;\r\n }\r\n\r\n if (!this.imageProcessing.getEffect()) {\r\n this.imageProcessing._updateParameters();\r\n }\r\n }\r\n\r\n if (this.sharpenEnabled) {\r\n if (!this.sharpen.isReady()) {\r\n this.sharpen.updateEffect();\r\n }\r\n this.addEffect(this._sharpenEffect);\r\n this._setAutoClearAndTextureSharing(this.sharpen);\r\n }\r\n\r\n if (this.grainEnabled) {\r\n if (!this.grain.isReady()) {\r\n this.grain.updateEffect();\r\n }\r\n this.addEffect(this._grainEffect);\r\n this._setAutoClearAndTextureSharing(this.grain);\r\n }\r\n\r\n if (this.chromaticAberrationEnabled) {\r\n if (!this.chromaticAberration.isReady()) {\r\n this.chromaticAberration.updateEffect();\r\n }\r\n this.addEffect(this._chromaticAberrationEffect);\r\n this._setAutoClearAndTextureSharing(this.chromaticAberration);\r\n }\r\n\r\n if (this.fxaaEnabled) {\r\n this.fxaa = new FxaaPostProcess(\"fxaa\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, engine, false, this._defaultPipelineTextureType);\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n engine,\r\n this.FxaaPostProcessId,\r\n () => {\r\n return this.fxaa;\r\n },\r\n true\r\n )\r\n );\r\n this._setAutoClearAndTextureSharing(this.fxaa, true);\r\n }\r\n\r\n if (this._cameras !== null) {\r\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\r\n }\r\n\r\n // In multicamera mode, the scene needs to autoclear in between cameras.\r\n if ((this._scene.activeCameras && this._scene.activeCameras.length > 1) || (this._scene.activeCamera && this._cameras.indexOf(this._scene.activeCamera) === -1)) {\r\n this._scene.autoClear = true;\r\n }\r\n // The active camera on the scene can be changed anytime\r\n if (!this._activeCameraChangedObserver) {\r\n this._activeCameraChangedObserver = this._scene.onActiveCameraChanged.add(() => {\r\n if (this._scene.activeCamera && this._cameras.indexOf(this._scene.activeCamera) === -1) {\r\n this._scene.autoClear = true;\r\n }\r\n });\r\n }\r\n if (!this._activeCamerasChangedObserver) {\r\n this._activeCamerasChangedObserver = this._scene.onActiveCamerasChanged.add(() => {\r\n if (this._scene.activeCameras && this._scene.activeCameras.length > 1) {\r\n this._scene.autoClear = true;\r\n }\r\n });\r\n }\r\n\r\n if (!this._enableMSAAOnFirstPostProcess(this.samples) && this.samples > 1) {\r\n Logger.Warn(\"MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0\");\r\n }\r\n\r\n this.onBuildObservable.notifyObservers(this);\r\n }\r\n\r\n private _disposePostProcesses(disposeNonRecreated = false): void {\r\n for (let i = 0; i < this._cameras.length; i++) {\r\n const camera = this._cameras[i];\r\n\r\n if (this.imageProcessing) {\r\n this.imageProcessing.dispose(camera);\r\n }\r\n\r\n if (this.fxaa) {\r\n this.fxaa.dispose(camera);\r\n }\r\n\r\n // These are created in the constructor and should not be disposed on every pipeline change\r\n if (disposeNonRecreated) {\r\n if (this.sharpen) {\r\n this.sharpen.dispose(camera);\r\n }\r\n\r\n if (this.depthOfField) {\r\n this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);\r\n this.depthOfField.disposeEffects(camera);\r\n }\r\n\r\n if (this.bloom) {\r\n this.bloom.disposeEffects(camera);\r\n }\r\n\r\n if (this.chromaticAberration) {\r\n this.chromaticAberration.dispose(camera);\r\n }\r\n\r\n if (this.grain) {\r\n this.grain.dispose(camera);\r\n }\r\n if (this._glowLayer) {\r\n this._glowLayer.dispose();\r\n }\r\n }\r\n }\r\n\r\n (<any>this.imageProcessing) = null;\r\n (<any>this.fxaa) = null;\r\n\r\n if (disposeNonRecreated) {\r\n (<any>this.sharpen) = null;\r\n (<any>this._sharpenEffect) = null;\r\n (<any>this.depthOfField) = null;\r\n (<any>this.bloom) = null;\r\n (<any>this.chromaticAberration) = null;\r\n (<any>this._chromaticAberrationEffect) = null;\r\n (<any>this.grain) = null;\r\n (<any>this._grainEffect) = null;\r\n this._glowLayer = null;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a camera to the pipeline\r\n * @param camera the camera to be added\r\n */\r\n public addCamera(camera: Camera): void {\r\n this._camerasToBeAttached.push(camera);\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * Removes a camera from the pipeline\r\n * @param camera the camera to remove\r\n */\r\n public removeCamera(camera: Camera): void {\r\n const index = this._camerasToBeAttached.indexOf(camera);\r\n this._camerasToBeAttached.splice(index, 1);\r\n this._buildPipeline();\r\n }\r\n\r\n /**\r\n * Dispose of the pipeline and stop all post processes\r\n */\r\n public dispose(): void {\r\n this.onBuildObservable.clear();\r\n this._disposePostProcesses(true);\r\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\r\n this._scene.autoClear = true;\r\n if (this._resizeObserver) {\r\n this._scene.getEngine().onResizeObservable.remove(this._resizeObserver);\r\n this._resizeObserver = null;\r\n }\r\n\r\n this._scene.onActiveCameraChanged.remove(this._activeCameraChangedObserver);\r\n this._scene.onActiveCamerasChanged.remove(this._activeCamerasChangedObserver);\r\n\r\n this._scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigurationObserver);\r\n super.dispose();\r\n }\r\n\r\n /**\r\n * Serialize the rendering pipeline (Used when exporting)\r\n * @returns the serialized object\r\n */\r\n public serialize(): any {\r\n const serializationObject = SerializationHelper.Serialize(this);\r\n serializationObject.customType = \"DefaultRenderingPipeline\";\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Parse the serialized pipeline\r\n * @param source Source pipeline.\r\n * @param scene The scene to load the pipeline to.\r\n * @param rootUrl The URL of the serialized pipeline.\r\n * @returns An instantiated pipeline from the serialized object.\r\n */\r\n public static Parse(source: any, scene: Scene, rootUrl: string): DefaultRenderingPipeline {\r\n return SerializationHelper.Parse(() => new DefaultRenderingPipeline(source._name, source._name._hdr, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.DefaultRenderingPipeline\", DefaultRenderingPipeline);\r\n"]}
@@ -126,7 +126,7 @@ export declare class SSAO2RenderingPipeline extends PostProcessRenderPipeline {
126
126
  */
127
127
  dispose(disableGeometryBufferRenderer?: boolean): void;
128
128
  private _createBlurPostProcess;
129
- /** @hidden */
129
+ /** @internal */
130
130
  _rebuild(): void;
131
131
  private _bits;
132
132
  private _radicalInverse_VdC;
@@ -271,7 +271,7 @@ export class SSAO2RenderingPipeline extends PostProcessRenderPipeline {
271
271
  this._blurHPostProcess.samples = this.textureSamples;
272
272
  this._blurVPostProcess.samples = this.textureSamples;
273
273
  }
274
- /** @hidden */
274
+ /** @internal */
275
275
  _rebuild() {
276
276
  super._rebuild();
277
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ssao2RenderingPipeline.js","sourceRoot":"","sources":["../../../../../../../lts/core/generated/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Logger } from \"../../../Misc/logger\";\r\nimport { serialize, SerializationHelper } from \"../../../Misc/decorators\";\r\nimport { Vector3, TmpVectors } from \"../../../Maths/math.vector\";\r\nimport { Camera } from \"../../../Cameras/camera\";\r\nimport type { Effect } from \"../../../Materials/effect\";\r\nimport { Texture } from \"../../../Materials/Textures/texture\";\r\nimport { DynamicTexture } from \"../../../Materials/Textures/dynamicTexture\";\r\nimport { PostProcess } from \"../../../PostProcesses/postProcess\";\r\nimport { PostProcessRenderPipeline } from \"../../../PostProcesses/RenderPipeline/postProcessRenderPipeline\";\r\nimport { PostProcessRenderEffect } from \"../../../PostProcesses/RenderPipeline/postProcessRenderEffect\";\r\nimport { PassPostProcess } from \"../../../PostProcesses/passPostProcess\";\r\nimport type { Scene } from \"../../../scene\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { EngineStore } from \"../../../Engines/engineStore\";\r\nimport { SSAO2Configuration } from \"../../../Rendering/ssao2Configuration\";\r\nimport type { PrePassRenderer } from \"../../../Rendering/prePassRenderer\";\r\nimport type { GeometryBufferRenderer } from \"../../../Rendering/geometryBufferRenderer\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\nimport type { Nullable } from \"../../../types\";\r\n\r\nimport \"../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\n\r\nimport \"../../../Shaders/ssao2.fragment\";\r\nimport \"../../../Shaders/ssaoCombine.fragment\";\r\n\r\n/**\r\n * Render pipeline to produce ssao effect\r\n */\r\nexport class SSAO2RenderingPipeline extends PostProcessRenderPipeline {\r\n // Members\r\n\r\n /**\r\n * @ignore\r\n * The PassPostProcess id in the pipeline that contains the original scene color\r\n */\r\n public SSAOOriginalSceneColorEffect: string = \"SSAOOriginalSceneColorEffect\";\r\n /**\r\n * @ignore\r\n * The SSAO PostProcess id in the pipeline\r\n */\r\n public SSAORenderEffect: string = \"SSAORenderEffect\";\r\n /**\r\n * @ignore\r\n * The horizontal blur PostProcess id in the pipeline\r\n */\r\n public SSAOBlurHRenderEffect: string = \"SSAOBlurHRenderEffect\";\r\n /**\r\n * @ignore\r\n * The vertical blur PostProcess id in the pipeline\r\n */\r\n public SSAOBlurVRenderEffect: string = \"SSAOBlurVRenderEffect\";\r\n /**\r\n * @ignore\r\n * The PostProcess id in the pipeline that combines the SSAO-Blur output with the original scene color (SSAOOriginalSceneColorEffect)\r\n */\r\n public SSAOCombineRenderEffect: string = \"SSAOCombineRenderEffect\";\r\n\r\n /**\r\n * The output strength of the SSAO post-process. Default value is 1.0.\r\n */\r\n @serialize()\r\n public totalStrength: number = 1.0;\r\n\r\n /**\r\n * Maximum depth value to still render AO. A smooth falloff makes the dimming more natural, so there will be no abrupt shading change.\r\n */\r\n @serialize()\r\n public maxZ: number = 100.0;\r\n\r\n /**\r\n * In order to save performances, SSAO radius is clamped on close geometry. This ratio changes by how much\r\n */\r\n @serialize()\r\n public minZAspect: number = 0.2;\r\n\r\n @serialize(\"samples\")\r\n private _samples: number = 8;\r\n /**\r\n * Number of samples used for the SSAO calculations. Default value is 8\r\n */\r\n public set samples(n: number) {\r\n this._samples = n;\r\n this._ssaoPostProcess.updateEffect(this._getDefinesForSSAO());\r\n this._sampleSphere = this._generateHemisphere();\r\n }\r\n public get samples(): number {\r\n return this._samples;\r\n }\r\n\r\n @serialize(\"textureSamples\")\r\n private _textureSamples: number = 1;\r\n /**\r\n * Number of samples to use for antialiasing\r\n */\r\n public set textureSamples(n: number) {\r\n this._textureSamples = n;\r\n\r\n if (this._prePassRenderer) {\r\n this._prePassRenderer.samples = n;\r\n } else {\r\n this._originalColorPostProcess.samples = n;\r\n }\r\n }\r\n public get textureSamples(): number {\r\n return this._textureSamples;\r\n }\r\n\r\n /**\r\n * Force rendering the geometry through geometry buffer\r\n */\r\n private _forceGeometryBuffer: boolean = false;\r\n private get _geometryBufferRenderer(): Nullable<GeometryBufferRenderer> {\r\n if (!this._forceGeometryBuffer) {\r\n return null;\r\n }\r\n return this._scene.geometryBufferRenderer;\r\n }\r\n private get _prePassRenderer(): Nullable<PrePassRenderer> {\r\n if (this._forceGeometryBuffer) {\r\n return null;\r\n }\r\n return this._scene.prePassRenderer;\r\n }\r\n /**\r\n * Ratio object used for SSAO ratio and blur ratio\r\n */\r\n @serialize()\r\n private _ratio: any;\r\n\r\n /**\r\n * Dynamically generated sphere sampler.\r\n */\r\n private _sampleSphere: number[];\r\n\r\n /**\r\n * Blur filter offsets\r\n */\r\n private _samplerOffsets: number[];\r\n\r\n @serialize(\"expensiveBlur\")\r\n private _expensiveBlur: boolean = true;\r\n /**\r\n * If bilateral blur should be used\r\n */\r\n public set expensiveBlur(b: boolean) {\r\n this._blurHPostProcess.updateEffect(\"#define BILATERAL_BLUR\\n#define BILATERAL_BLUR_H\\n#define SAMPLES 16\\n#define EXPENSIVE \" + (b ? \"1\" : \"0\") + \"\\n\", null, [\r\n \"textureSampler\",\r\n \"depthSampler\",\r\n ]);\r\n this._blurVPostProcess.updateEffect(\"#define BILATERAL_BLUR\\n#define SAMPLES 16\\n#define EXPENSIVE \" + (b ? \"1\" : \"0\") + \"\\n\", null, [\"textureSampler\", \"depthSampler\"]);\r\n this._expensiveBlur = b;\r\n }\r\n\r\n public get expensiveBlur(): boolean {\r\n return this._expensiveBlur;\r\n }\r\n\r\n /**\r\n * The radius around the analyzed pixel used by the SSAO post-process. Default value is 2.0\r\n */\r\n @serialize()\r\n public radius: number = 2.0;\r\n\r\n /**\r\n * The base color of the SSAO post-process\r\n * The final result is \"base + ssao\" between [0, 1]\r\n */\r\n @serialize()\r\n public base: number = 0;\r\n\r\n /**\r\n * Support test.\r\n */\r\n public static get IsSupported(): boolean {\r\n const engine = EngineStore.LastCreatedEngine;\r\n if (!engine) {\r\n return false;\r\n }\r\n return engine._features.supportSSAO2;\r\n }\r\n\r\n private _scene: Scene;\r\n private _randomTexture: DynamicTexture;\r\n private _originalColorPostProcess: PassPostProcess;\r\n private _ssaoPostProcess: PostProcess;\r\n private _blurHPostProcess: PostProcess;\r\n private _blurVPostProcess: PostProcess;\r\n private _ssaoCombinePostProcess: PostProcess;\r\n\r\n /**\r\n * Gets active scene\r\n */\r\n public get scene(): Scene {\r\n return this._scene;\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @param name The rendering pipeline name\r\n * @param scene The scene linked to this pipeline\r\n * @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 }\r\n * @param cameras The array of cameras that the rendering pipeline will be attached to\r\n * @param forceGeometryBuffer Set to true if you want to use the legacy geometry buffer renderer\r\n * @param textureType The texture type used by the different post processes created by SSAO (default: Constants.TEXTURETYPE_UNSIGNED_INT)\r\n */\r\n constructor(name: string, scene: Scene, ratio: any, cameras?: Camera[], forceGeometryBuffer = false, textureType = Constants.TEXTURETYPE_UNSIGNED_INT) {\r\n super(scene.getEngine(), name);\r\n\r\n this._scene = scene;\r\n this._ratio = ratio;\r\n this._forceGeometryBuffer = forceGeometryBuffer;\r\n\r\n if (!this.isSupported) {\r\n Logger.Error(\"The current engine does not support SSAO 2.\");\r\n return;\r\n }\r\n\r\n const ssaoRatio = this._ratio.ssaoRatio || ratio;\r\n const blurRatio = this._ratio.blurRatio || ratio;\r\n\r\n // Set up assets\r\n if (this._forceGeometryBuffer) {\r\n scene.enableGeometryBufferRenderer();\r\n } else {\r\n scene.enablePrePassRenderer();\r\n }\r\n\r\n this._createRandomTexture();\r\n\r\n this._originalColorPostProcess = new PassPostProcess(\"SSAOOriginalSceneColor\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), undefined, textureType);\r\n this._originalColorPostProcess.samples = this.textureSamples;\r\n this._createSSAOPostProcess(1.0, textureType);\r\n this._createBlurPostProcess(ssaoRatio, blurRatio, textureType);\r\n this._createSSAOCombinePostProcess(blurRatio, textureType);\r\n\r\n // Set up pipeline\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOOriginalSceneColorEffect,\r\n () => {\r\n return this._originalColorPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAORenderEffect,\r\n () => {\r\n return this._ssaoPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOBlurHRenderEffect,\r\n () => {\r\n return this._blurHPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOBlurVRenderEffect,\r\n () => {\r\n return this._blurVPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOCombineRenderEffect,\r\n () => {\r\n return this._ssaoCombinePostProcess;\r\n },\r\n true\r\n )\r\n );\r\n\r\n // Finish\r\n scene.postProcessRenderPipelineManager.addPipeline(this);\r\n if (cameras) {\r\n scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(name, cameras);\r\n }\r\n }\r\n\r\n // Public Methods\r\n\r\n /**\r\n * Get the class name\r\n * @returns \"SSAO2RenderingPipeline\"\r\n */\r\n public getClassName(): string {\r\n return \"SSAO2RenderingPipeline\";\r\n }\r\n\r\n /**\r\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\r\n * @param disableGeometryBufferRenderer\r\n */\r\n public dispose(disableGeometryBufferRenderer: boolean = false): void {\r\n for (let i = 0; i < this._scene.cameras.length; i++) {\r\n const camera = this._scene.cameras[i];\r\n\r\n this._originalColorPostProcess.dispose(camera);\r\n this._ssaoPostProcess.dispose(camera);\r\n this._blurHPostProcess.dispose(camera);\r\n this._blurVPostProcess.dispose(camera);\r\n this._ssaoCombinePostProcess.dispose(camera);\r\n }\r\n\r\n this._randomTexture.dispose();\r\n\r\n if (disableGeometryBufferRenderer) {\r\n this._scene.disableGeometryBufferRenderer();\r\n }\r\n\r\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras);\r\n\r\n super.dispose();\r\n }\r\n\r\n // Private Methods\r\n private _createBlurPostProcess(ssaoRatio: number, blurRatio: number, textureType: number): void {\r\n this._samplerOffsets = [];\r\n const expensive = this.expensiveBlur;\r\n\r\n for (let i = -8; i < 8; i++) {\r\n this._samplerOffsets.push(i * 2 + 0.5);\r\n }\r\n\r\n this._blurHPostProcess = new PostProcess(\r\n \"BlurH\",\r\n \"ssao2\",\r\n [\"outSize\", \"samplerOffsets\", \"near\", \"far\", \"radius\"],\r\n [\"depthSampler\"],\r\n ssaoRatio,\r\n null,\r\n Texture.TRILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n \"#define BILATERAL_BLUR\\n#define BILATERAL_BLUR_H\\n#define SAMPLES 16\\n#define EXPENSIVE \" + (expensive ? \"1\" : \"0\") + \"\\n\",\r\n textureType\r\n );\r\n this._blurHPostProcess.onApply = (effect: Effect) => {\r\n if (!this._scene.activeCamera) {\r\n return;\r\n }\r\n\r\n effect.setFloat(\"outSize\", this._ssaoCombinePostProcess.width > 0 ? this._ssaoCombinePostProcess.width : this._originalColorPostProcess.width);\r\n effect.setFloat(\"near\", this._scene.activeCamera.minZ);\r\n effect.setFloat(\"far\", this._scene.activeCamera.maxZ);\r\n effect.setFloat(\"radius\", this.radius);\r\n if (this._geometryBufferRenderer) {\r\n effect.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]);\r\n } else if (this._prePassRenderer) {\r\n effect.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(Constants.PREPASS_DEPTH_TEXTURE_TYPE)]);\r\n }\r\n effect.setArray(\"samplerOffsets\", this._samplerOffsets);\r\n };\r\n\r\n this._blurVPostProcess = new PostProcess(\r\n \"BlurV\",\r\n \"ssao2\",\r\n [\"outSize\", \"samplerOffsets\", \"near\", \"far\", \"radius\"],\r\n [\"depthSampler\"],\r\n blurRatio,\r\n null,\r\n Texture.TRILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n \"#define BILATERAL_BLUR\\n#define BILATERAL_BLUR_V\\n#define SAMPLES 16\\n#define EXPENSIVE \" + (expensive ? \"1\" : \"0\") + \"\\n\",\r\n textureType\r\n );\r\n this._blurVPostProcess.onApply = (effect: Effect) => {\r\n if (!this._scene.activeCamera) {\r\n return;\r\n }\r\n\r\n effect.setFloat(\"outSize\", this._ssaoCombinePostProcess.height > 0 ? this._ssaoCombinePostProcess.height : this._originalColorPostProcess.height);\r\n effect.setFloat(\"near\", this._scene.activeCamera.minZ);\r\n effect.setFloat(\"far\", this._scene.activeCamera.maxZ);\r\n effect.setFloat(\"radius\", this.radius);\r\n if (this._geometryBufferRenderer) {\r\n effect.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]);\r\n } else if (this._prePassRenderer) {\r\n effect.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(Constants.PREPASS_DEPTH_TEXTURE_TYPE)]);\r\n }\r\n effect.setArray(\"samplerOffsets\", this._samplerOffsets);\r\n };\r\n\r\n this._blurHPostProcess.samples = this.textureSamples;\r\n this._blurVPostProcess.samples = this.textureSamples;\r\n }\r\n\r\n /** @hidden */\r\n public _rebuild() {\r\n super._rebuild();\r\n }\r\n\r\n private _bits = new Uint32Array(1);\r\n\r\n //Van der Corput radical inverse\r\n private _radicalInverse_VdC(i: number) {\r\n this._bits[0] = i;\r\n this._bits[0] = ((this._bits[0] << 16) | (this._bits[0] >> 16)) >>> 0;\r\n this._bits[0] = ((this._bits[0] & 0x55555555) << 1) | (((this._bits[0] & 0xaaaaaaaa) >>> 1) >>> 0);\r\n this._bits[0] = ((this._bits[0] & 0x33333333) << 2) | (((this._bits[0] & 0xcccccccc) >>> 2) >>> 0);\r\n this._bits[0] = ((this._bits[0] & 0x0f0f0f0f) << 4) | (((this._bits[0] & 0xf0f0f0f0) >>> 4) >>> 0);\r\n this._bits[0] = ((this._bits[0] & 0x00ff00ff) << 8) | (((this._bits[0] & 0xff00ff00) >>> 8) >>> 0);\r\n return this._bits[0] * 2.3283064365386963e-10; // / 0x100000000 or / 4294967296\r\n }\r\n\r\n private _hammersley(i: number, n: number) {\r\n return [i / n, this._radicalInverse_VdC(i)];\r\n }\r\n\r\n private _hemisphereSample_uniform(u: number, v: number): Vector3 {\r\n const phi = v * 2.0 * Math.PI;\r\n // rejecting samples that are close to tangent plane to avoid z-fighting artifacts\r\n const cosTheta = 1.0 - (u * 0.85 + 0.15);\r\n const sinTheta = Math.sqrt(1.0 - cosTheta * cosTheta);\r\n return new Vector3(Math.cos(phi) * sinTheta, Math.sin(phi) * sinTheta, cosTheta);\r\n }\r\n\r\n private _generateHemisphere(): number[] {\r\n const numSamples = this.samples;\r\n const result = [];\r\n let vector;\r\n\r\n let i = 0;\r\n while (i < numSamples) {\r\n if (numSamples < 16) {\r\n vector = this._hemisphereSample_uniform(Math.random(), Math.random());\r\n } else {\r\n const rand = this._hammersley(i, numSamples);\r\n vector = this._hemisphereSample_uniform(rand[0], rand[1]);\r\n }\r\n\r\n result.push(vector.x, vector.y, vector.z);\r\n i++;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _getDefinesForSSAO() {\r\n const defines = \"#define SAMPLES \" + this.samples + \"\\n#define SSAO\";\r\n\r\n return defines;\r\n }\r\n\r\n private static readonly ORTHO_DEPTH_PROJECTION = [1, 0, 0, 0, 1, 0, 0, 0, 1];\r\n\r\n private static readonly PERSPECTIVE_DEPTH_PROJECTION = [0, 0, 0, 0, 0, 0, 1, 1, 1];\r\n\r\n private _createSSAOPostProcess(ratio: number, textureType: number): void {\r\n this._sampleSphere = this._generateHemisphere();\r\n\r\n const defines = this._getDefinesForSSAO();\r\n const samplers = [\"randomSampler\", \"depthSampler\", \"normalSampler\"];\r\n\r\n this._ssaoPostProcess = new PostProcess(\r\n \"ssao2\",\r\n \"ssao2\",\r\n [\r\n \"sampleSphere\",\r\n \"samplesFactor\",\r\n \"randTextureTiles\",\r\n \"totalStrength\",\r\n \"radius\",\r\n \"base\",\r\n \"range\",\r\n \"projection\",\r\n \"near\",\r\n \"far\",\r\n \"texelSize\",\r\n \"xViewport\",\r\n \"yViewport\",\r\n \"maxZ\",\r\n \"minZAspect\",\r\n \"depthProjection\",\r\n ],\r\n samplers,\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n defines,\r\n textureType\r\n );\r\n\r\n this._ssaoPostProcess.onApply = (effect: Effect) => {\r\n if (!this._scene.activeCamera) {\r\n return;\r\n }\r\n\r\n effect.setArray3(\"sampleSphere\", this._sampleSphere);\r\n effect.setFloat(\"randTextureTiles\", 32.0);\r\n effect.setFloat(\"samplesFactor\", 1 / this.samples);\r\n effect.setFloat(\"totalStrength\", this.totalStrength);\r\n effect.setFloat2(\"texelSize\", 1 / this._ssaoPostProcess.width, 1 / this._ssaoPostProcess.height);\r\n effect.setFloat(\"radius\", this.radius);\r\n effect.setFloat(\"maxZ\", this.maxZ);\r\n effect.setFloat(\"minZAspect\", this.minZAspect);\r\n effect.setFloat(\"base\", this.base);\r\n effect.setFloat(\"near\", this._scene.activeCamera.minZ);\r\n effect.setFloat(\"far\", this._scene.activeCamera.maxZ);\r\n if (this._scene.activeCamera.mode === Camera.PERSPECTIVE_CAMERA) {\r\n effect.setMatrix3x3(\"depthProjection\", SSAO2RenderingPipeline.PERSPECTIVE_DEPTH_PROJECTION);\r\n effect.setFloat(\"xViewport\", Math.tan(this._scene.activeCamera.fov / 2) * this._scene.getEngine().getAspectRatio(this._scene.activeCamera, true));\r\n effect.setFloat(\"yViewport\", Math.tan(this._scene.activeCamera.fov / 2));\r\n } else {\r\n const halfWidth = this._scene.getEngine().getRenderWidth() / 2.0;\r\n const halfHeight = this._scene.getEngine().getRenderHeight() / 2.0;\r\n const orthoLeft = this._scene.activeCamera.orthoLeft ?? -halfWidth;\r\n const orthoRight = this._scene.activeCamera.orthoRight ?? halfWidth;\r\n const orthoBottom = this._scene.activeCamera.orthoBottom ?? -halfHeight;\r\n const orthoTop = this._scene.activeCamera.orthoTop ?? halfHeight;\r\n effect.setMatrix3x3(\"depthProjection\", SSAO2RenderingPipeline.ORTHO_DEPTH_PROJECTION);\r\n effect.setFloat(\"xViewport\", (orthoRight - orthoLeft) * 0.5);\r\n effect.setFloat(\"yViewport\", (orthoTop - orthoBottom) * 0.5);\r\n }\r\n effect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\r\n\r\n if (this._geometryBufferRenderer) {\r\n effect.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]);\r\n effect.setTexture(\"normalSampler\", this._geometryBufferRenderer.getGBuffer().textures[1]);\r\n } else if (this._prePassRenderer) {\r\n effect.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(Constants.PREPASS_DEPTH_TEXTURE_TYPE)]);\r\n effect.setTexture(\"normalSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(Constants.PREPASS_NORMAL_TEXTURE_TYPE)]);\r\n }\r\n effect.setTexture(\"randomSampler\", this._randomTexture);\r\n };\r\n this._ssaoPostProcess.samples = this.textureSamples;\r\n\r\n if (!this._forceGeometryBuffer) {\r\n this._ssaoPostProcess._prePassEffectConfiguration = new SSAO2Configuration();\r\n }\r\n }\r\n\r\n private _createSSAOCombinePostProcess(ratio: number, textureType: number): void {\r\n this._ssaoCombinePostProcess = new PostProcess(\r\n \"ssaoCombine\",\r\n \"ssaoCombine\",\r\n [],\r\n [\"originalColor\", \"viewport\"],\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n undefined,\r\n textureType\r\n );\r\n\r\n this._ssaoCombinePostProcess.onApply = (effect: Effect) => {\r\n const viewport = this._scene.activeCamera!.viewport;\r\n effect.setVector4(\"viewport\", TmpVectors.Vector4[0].copyFromFloats(viewport.x, viewport.y, viewport.width, viewport.height));\r\n effect.setTextureFromPostProcessOutput(\"originalColor\", this._originalColorPostProcess);\r\n };\r\n this._ssaoCombinePostProcess.samples = this.textureSamples;\r\n }\r\n\r\n private _createRandomTexture(): void {\r\n const size = 128;\r\n\r\n this._randomTexture = new DynamicTexture(\"SSAORandomTexture\", size, this._scene, false, Texture.TRILINEAR_SAMPLINGMODE);\r\n this._randomTexture.wrapU = Texture.WRAP_ADDRESSMODE;\r\n this._randomTexture.wrapV = Texture.WRAP_ADDRESSMODE;\r\n\r\n const context = this._randomTexture.getContext();\r\n\r\n const rand = (min: number, max: number) => {\r\n return Math.random() * (max - min) + min;\r\n };\r\n\r\n const randVector = Vector3.Zero();\r\n\r\n for (let x = 0; x < size; x++) {\r\n for (let y = 0; y < size; y++) {\r\n randVector.x = rand(0.0, 1.0);\r\n randVector.y = rand(0.0, 1.0);\r\n randVector.z = 0.0;\r\n\r\n randVector.normalize();\r\n\r\n randVector.scaleInPlace(255);\r\n randVector.x = Math.floor(randVector.x);\r\n randVector.y = Math.floor(randVector.y);\r\n\r\n context.fillStyle = \"rgb(\" + randVector.x + \", \" + randVector.y + \", \" + randVector.z + \")\";\r\n context.fillRect(x, y, 1, 1);\r\n }\r\n }\r\n\r\n this._randomTexture.update(false);\r\n }\r\n\r\n /**\r\n * Serialize the rendering pipeline (Used when exporting)\r\n * @returns the serialized object\r\n */\r\n public serialize(): any {\r\n const serializationObject = SerializationHelper.Serialize(this);\r\n serializationObject.customType = \"SSAO2RenderingPipeline\";\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Parse the serialized pipeline\r\n * @param source Source pipeline.\r\n * @param scene The scene to load the pipeline to.\r\n * @param rootUrl The URL of the serialized pipeline.\r\n * @returns An instantiated pipeline from the serialized object.\r\n */\r\n public static Parse(source: any, scene: Scene, rootUrl: string): SSAO2RenderingPipeline {\r\n return SerializationHelper.Parse(() => new SSAO2RenderingPipeline(source._name, scene, source._ratio), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.SSAO2RenderingPipeline\", SSAO2RenderingPipeline);\r\n"]}
1
+ {"version":3,"file":"ssao2RenderingPipeline.js","sourceRoot":"","sources":["../../../../../../../lts/core/generated/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Logger } from \"../../../Misc/logger\";\r\nimport { serialize, SerializationHelper } from \"../../../Misc/decorators\";\r\nimport { Vector3, TmpVectors } from \"../../../Maths/math.vector\";\r\nimport { Camera } from \"../../../Cameras/camera\";\r\nimport type { Effect } from \"../../../Materials/effect\";\r\nimport { Texture } from \"../../../Materials/Textures/texture\";\r\nimport { DynamicTexture } from \"../../../Materials/Textures/dynamicTexture\";\r\nimport { PostProcess } from \"../../../PostProcesses/postProcess\";\r\nimport { PostProcessRenderPipeline } from \"../../../PostProcesses/RenderPipeline/postProcessRenderPipeline\";\r\nimport { PostProcessRenderEffect } from \"../../../PostProcesses/RenderPipeline/postProcessRenderEffect\";\r\nimport { PassPostProcess } from \"../../../PostProcesses/passPostProcess\";\r\nimport type { Scene } from \"../../../scene\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { EngineStore } from \"../../../Engines/engineStore\";\r\nimport { SSAO2Configuration } from \"../../../Rendering/ssao2Configuration\";\r\nimport type { PrePassRenderer } from \"../../../Rendering/prePassRenderer\";\r\nimport type { GeometryBufferRenderer } from \"../../../Rendering/geometryBufferRenderer\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\nimport type { Nullable } from \"../../../types\";\r\n\r\nimport \"../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\n\r\nimport \"../../../Shaders/ssao2.fragment\";\r\nimport \"../../../Shaders/ssaoCombine.fragment\";\r\n\r\n/**\r\n * Render pipeline to produce ssao effect\r\n */\r\nexport class SSAO2RenderingPipeline extends PostProcessRenderPipeline {\r\n // Members\r\n\r\n /**\r\n * @ignore\r\n * The PassPostProcess id in the pipeline that contains the original scene color\r\n */\r\n public SSAOOriginalSceneColorEffect: string = \"SSAOOriginalSceneColorEffect\";\r\n /**\r\n * @ignore\r\n * The SSAO PostProcess id in the pipeline\r\n */\r\n public SSAORenderEffect: string = \"SSAORenderEffect\";\r\n /**\r\n * @ignore\r\n * The horizontal blur PostProcess id in the pipeline\r\n */\r\n public SSAOBlurHRenderEffect: string = \"SSAOBlurHRenderEffect\";\r\n /**\r\n * @ignore\r\n * The vertical blur PostProcess id in the pipeline\r\n */\r\n public SSAOBlurVRenderEffect: string = \"SSAOBlurVRenderEffect\";\r\n /**\r\n * @ignore\r\n * The PostProcess id in the pipeline that combines the SSAO-Blur output with the original scene color (SSAOOriginalSceneColorEffect)\r\n */\r\n public SSAOCombineRenderEffect: string = \"SSAOCombineRenderEffect\";\r\n\r\n /**\r\n * The output strength of the SSAO post-process. Default value is 1.0.\r\n */\r\n @serialize()\r\n public totalStrength: number = 1.0;\r\n\r\n /**\r\n * Maximum depth value to still render AO. A smooth falloff makes the dimming more natural, so there will be no abrupt shading change.\r\n */\r\n @serialize()\r\n public maxZ: number = 100.0;\r\n\r\n /**\r\n * In order to save performances, SSAO radius is clamped on close geometry. This ratio changes by how much\r\n */\r\n @serialize()\r\n public minZAspect: number = 0.2;\r\n\r\n @serialize(\"samples\")\r\n private _samples: number = 8;\r\n /**\r\n * Number of samples used for the SSAO calculations. Default value is 8\r\n */\r\n public set samples(n: number) {\r\n this._samples = n;\r\n this._ssaoPostProcess.updateEffect(this._getDefinesForSSAO());\r\n this._sampleSphere = this._generateHemisphere();\r\n }\r\n public get samples(): number {\r\n return this._samples;\r\n }\r\n\r\n @serialize(\"textureSamples\")\r\n private _textureSamples: number = 1;\r\n /**\r\n * Number of samples to use for antialiasing\r\n */\r\n public set textureSamples(n: number) {\r\n this._textureSamples = n;\r\n\r\n if (this._prePassRenderer) {\r\n this._prePassRenderer.samples = n;\r\n } else {\r\n this._originalColorPostProcess.samples = n;\r\n }\r\n }\r\n public get textureSamples(): number {\r\n return this._textureSamples;\r\n }\r\n\r\n /**\r\n * Force rendering the geometry through geometry buffer\r\n */\r\n private _forceGeometryBuffer: boolean = false;\r\n private get _geometryBufferRenderer(): Nullable<GeometryBufferRenderer> {\r\n if (!this._forceGeometryBuffer) {\r\n return null;\r\n }\r\n return this._scene.geometryBufferRenderer;\r\n }\r\n private get _prePassRenderer(): Nullable<PrePassRenderer> {\r\n if (this._forceGeometryBuffer) {\r\n return null;\r\n }\r\n return this._scene.prePassRenderer;\r\n }\r\n /**\r\n * Ratio object used for SSAO ratio and blur ratio\r\n */\r\n @serialize()\r\n private _ratio: any;\r\n\r\n /**\r\n * Dynamically generated sphere sampler.\r\n */\r\n private _sampleSphere: number[];\r\n\r\n /**\r\n * Blur filter offsets\r\n */\r\n private _samplerOffsets: number[];\r\n\r\n @serialize(\"expensiveBlur\")\r\n private _expensiveBlur: boolean = true;\r\n /**\r\n * If bilateral blur should be used\r\n */\r\n public set expensiveBlur(b: boolean) {\r\n this._blurHPostProcess.updateEffect(\"#define BILATERAL_BLUR\\n#define BILATERAL_BLUR_H\\n#define SAMPLES 16\\n#define EXPENSIVE \" + (b ? \"1\" : \"0\") + \"\\n\", null, [\r\n \"textureSampler\",\r\n \"depthSampler\",\r\n ]);\r\n this._blurVPostProcess.updateEffect(\"#define BILATERAL_BLUR\\n#define SAMPLES 16\\n#define EXPENSIVE \" + (b ? \"1\" : \"0\") + \"\\n\", null, [\"textureSampler\", \"depthSampler\"]);\r\n this._expensiveBlur = b;\r\n }\r\n\r\n public get expensiveBlur(): boolean {\r\n return this._expensiveBlur;\r\n }\r\n\r\n /**\r\n * The radius around the analyzed pixel used by the SSAO post-process. Default value is 2.0\r\n */\r\n @serialize()\r\n public radius: number = 2.0;\r\n\r\n /**\r\n * The base color of the SSAO post-process\r\n * The final result is \"base + ssao\" between [0, 1]\r\n */\r\n @serialize()\r\n public base: number = 0;\r\n\r\n /**\r\n * Support test.\r\n */\r\n public static get IsSupported(): boolean {\r\n const engine = EngineStore.LastCreatedEngine;\r\n if (!engine) {\r\n return false;\r\n }\r\n return engine._features.supportSSAO2;\r\n }\r\n\r\n private _scene: Scene;\r\n private _randomTexture: DynamicTexture;\r\n private _originalColorPostProcess: PassPostProcess;\r\n private _ssaoPostProcess: PostProcess;\r\n private _blurHPostProcess: PostProcess;\r\n private _blurVPostProcess: PostProcess;\r\n private _ssaoCombinePostProcess: PostProcess;\r\n\r\n /**\r\n * Gets active scene\r\n */\r\n public get scene(): Scene {\r\n return this._scene;\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @param name The rendering pipeline name\r\n * @param scene The scene linked to this pipeline\r\n * @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 }\r\n * @param cameras The array of cameras that the rendering pipeline will be attached to\r\n * @param forceGeometryBuffer Set to true if you want to use the legacy geometry buffer renderer\r\n * @param textureType The texture type used by the different post processes created by SSAO (default: Constants.TEXTURETYPE_UNSIGNED_INT)\r\n */\r\n constructor(name: string, scene: Scene, ratio: any, cameras?: Camera[], forceGeometryBuffer = false, textureType = Constants.TEXTURETYPE_UNSIGNED_INT) {\r\n super(scene.getEngine(), name);\r\n\r\n this._scene = scene;\r\n this._ratio = ratio;\r\n this._forceGeometryBuffer = forceGeometryBuffer;\r\n\r\n if (!this.isSupported) {\r\n Logger.Error(\"The current engine does not support SSAO 2.\");\r\n return;\r\n }\r\n\r\n const ssaoRatio = this._ratio.ssaoRatio || ratio;\r\n const blurRatio = this._ratio.blurRatio || ratio;\r\n\r\n // Set up assets\r\n if (this._forceGeometryBuffer) {\r\n scene.enableGeometryBufferRenderer();\r\n } else {\r\n scene.enablePrePassRenderer();\r\n }\r\n\r\n this._createRandomTexture();\r\n\r\n this._originalColorPostProcess = new PassPostProcess(\"SSAOOriginalSceneColor\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), undefined, textureType);\r\n this._originalColorPostProcess.samples = this.textureSamples;\r\n this._createSSAOPostProcess(1.0, textureType);\r\n this._createBlurPostProcess(ssaoRatio, blurRatio, textureType);\r\n this._createSSAOCombinePostProcess(blurRatio, textureType);\r\n\r\n // Set up pipeline\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOOriginalSceneColorEffect,\r\n () => {\r\n return this._originalColorPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAORenderEffect,\r\n () => {\r\n return this._ssaoPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOBlurHRenderEffect,\r\n () => {\r\n return this._blurHPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOBlurVRenderEffect,\r\n () => {\r\n return this._blurVPostProcess;\r\n },\r\n true\r\n )\r\n );\r\n this.addEffect(\r\n new PostProcessRenderEffect(\r\n scene.getEngine(),\r\n this.SSAOCombineRenderEffect,\r\n () => {\r\n return this._ssaoCombinePostProcess;\r\n },\r\n true\r\n )\r\n );\r\n\r\n // Finish\r\n scene.postProcessRenderPipelineManager.addPipeline(this);\r\n if (cameras) {\r\n scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(name, cameras);\r\n }\r\n }\r\n\r\n // Public Methods\r\n\r\n /**\r\n * Get the class name\r\n * @returns \"SSAO2RenderingPipeline\"\r\n */\r\n public getClassName(): string {\r\n return \"SSAO2RenderingPipeline\";\r\n }\r\n\r\n /**\r\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\r\n * @param disableGeometryBufferRenderer\r\n */\r\n public dispose(disableGeometryBufferRenderer: boolean = false): void {\r\n for (let i = 0; i < this._scene.cameras.length; i++) {\r\n const camera = this._scene.cameras[i];\r\n\r\n this._originalColorPostProcess.dispose(camera);\r\n this._ssaoPostProcess.dispose(camera);\r\n this._blurHPostProcess.dispose(camera);\r\n this._blurVPostProcess.dispose(camera);\r\n this._ssaoCombinePostProcess.dispose(camera);\r\n }\r\n\r\n this._randomTexture.dispose();\r\n\r\n if (disableGeometryBufferRenderer) {\r\n this._scene.disableGeometryBufferRenderer();\r\n }\r\n\r\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras);\r\n\r\n super.dispose();\r\n }\r\n\r\n // Private Methods\r\n private _createBlurPostProcess(ssaoRatio: number, blurRatio: number, textureType: number): void {\r\n this._samplerOffsets = [];\r\n const expensive = this.expensiveBlur;\r\n\r\n for (let i = -8; i < 8; i++) {\r\n this._samplerOffsets.push(i * 2 + 0.5);\r\n }\r\n\r\n this._blurHPostProcess = new PostProcess(\r\n \"BlurH\",\r\n \"ssao2\",\r\n [\"outSize\", \"samplerOffsets\", \"near\", \"far\", \"radius\"],\r\n [\"depthSampler\"],\r\n ssaoRatio,\r\n null,\r\n Texture.TRILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n \"#define BILATERAL_BLUR\\n#define BILATERAL_BLUR_H\\n#define SAMPLES 16\\n#define EXPENSIVE \" + (expensive ? \"1\" : \"0\") + \"\\n\",\r\n textureType\r\n );\r\n this._blurHPostProcess.onApply = (effect: Effect) => {\r\n if (!this._scene.activeCamera) {\r\n return;\r\n }\r\n\r\n effect.setFloat(\"outSize\", this._ssaoCombinePostProcess.width > 0 ? this._ssaoCombinePostProcess.width : this._originalColorPostProcess.width);\r\n effect.setFloat(\"near\", this._scene.activeCamera.minZ);\r\n effect.setFloat(\"far\", this._scene.activeCamera.maxZ);\r\n effect.setFloat(\"radius\", this.radius);\r\n if (this._geometryBufferRenderer) {\r\n effect.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]);\r\n } else if (this._prePassRenderer) {\r\n effect.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(Constants.PREPASS_DEPTH_TEXTURE_TYPE)]);\r\n }\r\n effect.setArray(\"samplerOffsets\", this._samplerOffsets);\r\n };\r\n\r\n this._blurVPostProcess = new PostProcess(\r\n \"BlurV\",\r\n \"ssao2\",\r\n [\"outSize\", \"samplerOffsets\", \"near\", \"far\", \"radius\"],\r\n [\"depthSampler\"],\r\n blurRatio,\r\n null,\r\n Texture.TRILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n \"#define BILATERAL_BLUR\\n#define BILATERAL_BLUR_V\\n#define SAMPLES 16\\n#define EXPENSIVE \" + (expensive ? \"1\" : \"0\") + \"\\n\",\r\n textureType\r\n );\r\n this._blurVPostProcess.onApply = (effect: Effect) => {\r\n if (!this._scene.activeCamera) {\r\n return;\r\n }\r\n\r\n effect.setFloat(\"outSize\", this._ssaoCombinePostProcess.height > 0 ? this._ssaoCombinePostProcess.height : this._originalColorPostProcess.height);\r\n effect.setFloat(\"near\", this._scene.activeCamera.minZ);\r\n effect.setFloat(\"far\", this._scene.activeCamera.maxZ);\r\n effect.setFloat(\"radius\", this.radius);\r\n if (this._geometryBufferRenderer) {\r\n effect.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]);\r\n } else if (this._prePassRenderer) {\r\n effect.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(Constants.PREPASS_DEPTH_TEXTURE_TYPE)]);\r\n }\r\n effect.setArray(\"samplerOffsets\", this._samplerOffsets);\r\n };\r\n\r\n this._blurHPostProcess.samples = this.textureSamples;\r\n this._blurVPostProcess.samples = this.textureSamples;\r\n }\r\n\r\n /** @internal */\r\n public _rebuild() {\r\n super._rebuild();\r\n }\r\n\r\n private _bits = new Uint32Array(1);\r\n\r\n //Van der Corput radical inverse\r\n private _radicalInverse_VdC(i: number) {\r\n this._bits[0] = i;\r\n this._bits[0] = ((this._bits[0] << 16) | (this._bits[0] >> 16)) >>> 0;\r\n this._bits[0] = ((this._bits[0] & 0x55555555) << 1) | (((this._bits[0] & 0xaaaaaaaa) >>> 1) >>> 0);\r\n this._bits[0] = ((this._bits[0] & 0x33333333) << 2) | (((this._bits[0] & 0xcccccccc) >>> 2) >>> 0);\r\n this._bits[0] = ((this._bits[0] & 0x0f0f0f0f) << 4) | (((this._bits[0] & 0xf0f0f0f0) >>> 4) >>> 0);\r\n this._bits[0] = ((this._bits[0] & 0x00ff00ff) << 8) | (((this._bits[0] & 0xff00ff00) >>> 8) >>> 0);\r\n return this._bits[0] * 2.3283064365386963e-10; // / 0x100000000 or / 4294967296\r\n }\r\n\r\n private _hammersley(i: number, n: number) {\r\n return [i / n, this._radicalInverse_VdC(i)];\r\n }\r\n\r\n private _hemisphereSample_uniform(u: number, v: number): Vector3 {\r\n const phi = v * 2.0 * Math.PI;\r\n // rejecting samples that are close to tangent plane to avoid z-fighting artifacts\r\n const cosTheta = 1.0 - (u * 0.85 + 0.15);\r\n const sinTheta = Math.sqrt(1.0 - cosTheta * cosTheta);\r\n return new Vector3(Math.cos(phi) * sinTheta, Math.sin(phi) * sinTheta, cosTheta);\r\n }\r\n\r\n private _generateHemisphere(): number[] {\r\n const numSamples = this.samples;\r\n const result = [];\r\n let vector;\r\n\r\n let i = 0;\r\n while (i < numSamples) {\r\n if (numSamples < 16) {\r\n vector = this._hemisphereSample_uniform(Math.random(), Math.random());\r\n } else {\r\n const rand = this._hammersley(i, numSamples);\r\n vector = this._hemisphereSample_uniform(rand[0], rand[1]);\r\n }\r\n\r\n result.push(vector.x, vector.y, vector.z);\r\n i++;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _getDefinesForSSAO() {\r\n const defines = \"#define SAMPLES \" + this.samples + \"\\n#define SSAO\";\r\n\r\n return defines;\r\n }\r\n\r\n private static readonly ORTHO_DEPTH_PROJECTION = [1, 0, 0, 0, 1, 0, 0, 0, 1];\r\n\r\n private static readonly PERSPECTIVE_DEPTH_PROJECTION = [0, 0, 0, 0, 0, 0, 1, 1, 1];\r\n\r\n private _createSSAOPostProcess(ratio: number, textureType: number): void {\r\n this._sampleSphere = this._generateHemisphere();\r\n\r\n const defines = this._getDefinesForSSAO();\r\n const samplers = [\"randomSampler\", \"depthSampler\", \"normalSampler\"];\r\n\r\n this._ssaoPostProcess = new PostProcess(\r\n \"ssao2\",\r\n \"ssao2\",\r\n [\r\n \"sampleSphere\",\r\n \"samplesFactor\",\r\n \"randTextureTiles\",\r\n \"totalStrength\",\r\n \"radius\",\r\n \"base\",\r\n \"range\",\r\n \"projection\",\r\n \"near\",\r\n \"far\",\r\n \"texelSize\",\r\n \"xViewport\",\r\n \"yViewport\",\r\n \"maxZ\",\r\n \"minZAspect\",\r\n \"depthProjection\",\r\n ],\r\n samplers,\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n defines,\r\n textureType\r\n );\r\n\r\n this._ssaoPostProcess.onApply = (effect: Effect) => {\r\n if (!this._scene.activeCamera) {\r\n return;\r\n }\r\n\r\n effect.setArray3(\"sampleSphere\", this._sampleSphere);\r\n effect.setFloat(\"randTextureTiles\", 32.0);\r\n effect.setFloat(\"samplesFactor\", 1 / this.samples);\r\n effect.setFloat(\"totalStrength\", this.totalStrength);\r\n effect.setFloat2(\"texelSize\", 1 / this._ssaoPostProcess.width, 1 / this._ssaoPostProcess.height);\r\n effect.setFloat(\"radius\", this.radius);\r\n effect.setFloat(\"maxZ\", this.maxZ);\r\n effect.setFloat(\"minZAspect\", this.minZAspect);\r\n effect.setFloat(\"base\", this.base);\r\n effect.setFloat(\"near\", this._scene.activeCamera.minZ);\r\n effect.setFloat(\"far\", this._scene.activeCamera.maxZ);\r\n if (this._scene.activeCamera.mode === Camera.PERSPECTIVE_CAMERA) {\r\n effect.setMatrix3x3(\"depthProjection\", SSAO2RenderingPipeline.PERSPECTIVE_DEPTH_PROJECTION);\r\n effect.setFloat(\"xViewport\", Math.tan(this._scene.activeCamera.fov / 2) * this._scene.getEngine().getAspectRatio(this._scene.activeCamera, true));\r\n effect.setFloat(\"yViewport\", Math.tan(this._scene.activeCamera.fov / 2));\r\n } else {\r\n const halfWidth = this._scene.getEngine().getRenderWidth() / 2.0;\r\n const halfHeight = this._scene.getEngine().getRenderHeight() / 2.0;\r\n const orthoLeft = this._scene.activeCamera.orthoLeft ?? -halfWidth;\r\n const orthoRight = this._scene.activeCamera.orthoRight ?? halfWidth;\r\n const orthoBottom = this._scene.activeCamera.orthoBottom ?? -halfHeight;\r\n const orthoTop = this._scene.activeCamera.orthoTop ?? halfHeight;\r\n effect.setMatrix3x3(\"depthProjection\", SSAO2RenderingPipeline.ORTHO_DEPTH_PROJECTION);\r\n effect.setFloat(\"xViewport\", (orthoRight - orthoLeft) * 0.5);\r\n effect.setFloat(\"yViewport\", (orthoTop - orthoBottom) * 0.5);\r\n }\r\n effect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\r\n\r\n if (this._geometryBufferRenderer) {\r\n effect.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]);\r\n effect.setTexture(\"normalSampler\", this._geometryBufferRenderer.getGBuffer().textures[1]);\r\n } else if (this._prePassRenderer) {\r\n effect.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(Constants.PREPASS_DEPTH_TEXTURE_TYPE)]);\r\n effect.setTexture(\"normalSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(Constants.PREPASS_NORMAL_TEXTURE_TYPE)]);\r\n }\r\n effect.setTexture(\"randomSampler\", this._randomTexture);\r\n };\r\n this._ssaoPostProcess.samples = this.textureSamples;\r\n\r\n if (!this._forceGeometryBuffer) {\r\n this._ssaoPostProcess._prePassEffectConfiguration = new SSAO2Configuration();\r\n }\r\n }\r\n\r\n private _createSSAOCombinePostProcess(ratio: number, textureType: number): void {\r\n this._ssaoCombinePostProcess = new PostProcess(\r\n \"ssaoCombine\",\r\n \"ssaoCombine\",\r\n [],\r\n [\"originalColor\", \"viewport\"],\r\n ratio,\r\n null,\r\n Texture.BILINEAR_SAMPLINGMODE,\r\n this._scene.getEngine(),\r\n false,\r\n undefined,\r\n textureType\r\n );\r\n\r\n this._ssaoCombinePostProcess.onApply = (effect: Effect) => {\r\n const viewport = this._scene.activeCamera!.viewport;\r\n effect.setVector4(\"viewport\", TmpVectors.Vector4[0].copyFromFloats(viewport.x, viewport.y, viewport.width, viewport.height));\r\n effect.setTextureFromPostProcessOutput(\"originalColor\", this._originalColorPostProcess);\r\n };\r\n this._ssaoCombinePostProcess.samples = this.textureSamples;\r\n }\r\n\r\n private _createRandomTexture(): void {\r\n const size = 128;\r\n\r\n this._randomTexture = new DynamicTexture(\"SSAORandomTexture\", size, this._scene, false, Texture.TRILINEAR_SAMPLINGMODE);\r\n this._randomTexture.wrapU = Texture.WRAP_ADDRESSMODE;\r\n this._randomTexture.wrapV = Texture.WRAP_ADDRESSMODE;\r\n\r\n const context = this._randomTexture.getContext();\r\n\r\n const rand = (min: number, max: number) => {\r\n return Math.random() * (max - min) + min;\r\n };\r\n\r\n const randVector = Vector3.Zero();\r\n\r\n for (let x = 0; x < size; x++) {\r\n for (let y = 0; y < size; y++) {\r\n randVector.x = rand(0.0, 1.0);\r\n randVector.y = rand(0.0, 1.0);\r\n randVector.z = 0.0;\r\n\r\n randVector.normalize();\r\n\r\n randVector.scaleInPlace(255);\r\n randVector.x = Math.floor(randVector.x);\r\n randVector.y = Math.floor(randVector.y);\r\n\r\n context.fillStyle = \"rgb(\" + randVector.x + \", \" + randVector.y + \", \" + randVector.z + \")\";\r\n context.fillRect(x, y, 1, 1);\r\n }\r\n }\r\n\r\n this._randomTexture.update(false);\r\n }\r\n\r\n /**\r\n * Serialize the rendering pipeline (Used when exporting)\r\n * @returns the serialized object\r\n */\r\n public serialize(): any {\r\n const serializationObject = SerializationHelper.Serialize(this);\r\n serializationObject.customType = \"SSAO2RenderingPipeline\";\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Parse the serialized pipeline\r\n * @param source Source pipeline.\r\n * @param scene The scene to load the pipeline to.\r\n * @param rootUrl The URL of the serialized pipeline.\r\n * @returns An instantiated pipeline from the serialized object.\r\n */\r\n public static Parse(source: any, scene: Scene, rootUrl: string): SSAO2RenderingPipeline {\r\n return SerializationHelper.Parse(() => new SSAO2RenderingPipeline(source._name, scene, source._ratio), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.SSAO2RenderingPipeline\", SSAO2RenderingPipeline);\r\n"]}
@@ -79,9 +79,7 @@ export declare class SSAORenderingPipeline extends PostProcessRenderPipeline {
79
79
  */
80
80
  constructor(name: string, scene: Scene, ratio: any, cameras?: Camera[]);
81
81
  /**
82
- * @param cameras
83
- * @param unique
84
- * @hidden
82
+ * @internal
85
83
  */
86
84
  _attachCameras(cameras: any, unique: boolean): void;
87
85
  /**
@@ -95,7 +93,7 @@ export declare class SSAORenderingPipeline extends PostProcessRenderPipeline {
95
93
  */
96
94
  dispose(disableDepthRender?: boolean): void;
97
95
  private _createBlurPostProcess;
98
- /** @hidden */
96
+ /** @internal */
99
97
  _rebuild(): void;
100
98
  private _createSSAOPostProcess;
101
99
  private _createSSAOCombinePostProcess;
@@ -116,9 +116,7 @@ export class SSAORenderingPipeline extends PostProcessRenderPipeline {
116
116
  return this._scene;
117
117
  }
118
118
  /**
119
- * @param cameras
120
- * @param unique
121
- * @hidden
119
+ * @internal
122
120
  */
123
121
  _attachCameras(cameras, unique) {
124
122
  super._attachCameras(cameras, unique);
@@ -168,7 +166,7 @@ export class SSAORenderingPipeline extends PostProcessRenderPipeline {
168
166
  this._blurVPostProcess.kernel = size * dw;
169
167
  });
170
168
  }
171
- /** @hidden */
169
+ /** @internal */
172
170
  _rebuild() {
173
171
  this._firstUpdate = true;
174
172
  super._rebuild();