@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
@@ -5,7 +5,7 @@ import { PrePassRenderer } from "./prePassRenderer";
5
5
  import type { PrePassRenderTarget } from "../Materials/Textures/prePassRenderTarget";
6
6
  declare module "../abstractScene" {
7
7
  interface AbstractScene {
8
- /** @hidden (Backing field) */
8
+ /** @internal (Backing field) */
9
9
  _prePassRenderer: Nullable<PrePassRenderer>;
10
10
  /**
11
11
  * Gets or Sets the current prepass renderer associated to the scene.
@@ -24,7 +24,7 @@ declare module "../abstractScene" {
24
24
  }
25
25
  declare module "../Materials/Textures/renderTargetTexture" {
26
26
  interface RenderTargetTexture {
27
- /** @hidden */
27
+ /** @internal */
28
28
  _prePassRenderTarget: Nullable<PrePassRenderTarget>;
29
29
  }
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prePassRendererSceneComponent.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/prePassRendererSceneComponent.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport { Scene } from \"../scene\";\r\nimport type { ISceneComponent } from \"../sceneComponent\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport { PrePassRenderer } from \"./prePassRenderer\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport type { AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"../Meshes/subMesh\";\r\nimport type { _InstancesBatch } from \"../Meshes/mesh\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture\";\r\nimport type { PrePassRenderTarget } from \"../Materials/Textures/prePassRenderTarget\";\r\n\r\ndeclare module \"../abstractScene\" {\r\n export interface AbstractScene {\r\n /** @hidden (Backing field) */\r\n _prePassRenderer: Nullable<PrePassRenderer>;\r\n\r\n /**\r\n * Gets or Sets the current prepass renderer associated to the scene.\r\n */\r\n prePassRenderer: Nullable<PrePassRenderer>;\r\n\r\n /**\r\n * Enables the prepass and associates it with the scene\r\n * @returns the PrePassRenderer\r\n */\r\n enablePrePassRenderer(): Nullable<PrePassRenderer>;\r\n\r\n /**\r\n * Disables the prepass associated with the scene\r\n */\r\n disablePrePassRenderer(): void;\r\n }\r\n}\r\n\r\ndeclare module \"../Materials/Textures/renderTargetTexture\" {\r\n export interface RenderTargetTexture {\r\n /** @hidden */\r\n _prePassRenderTarget: Nullable<PrePassRenderTarget>;\r\n }\r\n}\r\n\r\nObject.defineProperty(Scene.prototype, \"prePassRenderer\", {\r\n get: function (this: Scene) {\r\n return this._prePassRenderer;\r\n },\r\n set: function (this: Scene, value: Nullable<PrePassRenderer>) {\r\n if (value && value.isSupported) {\r\n this._prePassRenderer = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nScene.prototype.enablePrePassRenderer = function (): Nullable<PrePassRenderer> {\r\n if (this._prePassRenderer) {\r\n return this._prePassRenderer;\r\n }\r\n\r\n this._prePassRenderer = new PrePassRenderer(this);\r\n\r\n if (!this._prePassRenderer.isSupported) {\r\n this._prePassRenderer = null;\r\n Logger.Error(\"PrePassRenderer needs WebGL 2 support.\\n\" + \"Maybe you tried to use the following features that need the PrePassRenderer :\\n\" + \" + Subsurface Scattering\");\r\n }\r\n\r\n return this._prePassRenderer;\r\n};\r\n\r\nScene.prototype.disablePrePassRenderer = function (): void {\r\n if (!this._prePassRenderer) {\r\n return;\r\n }\r\n\r\n this._prePassRenderer.dispose();\r\n this._prePassRenderer = null;\r\n};\r\n\r\n/**\r\n * Defines the Geometry Buffer scene component responsible to manage a G-Buffer useful\r\n * in several rendering techniques.\r\n */\r\nexport class PrePassRendererSceneComponent implements ISceneComponent {\r\n /**\r\n * The component name helpful to identify the component in the list of scene components.\r\n */\r\n public readonly name = SceneComponentConstants.NAME_PREPASSRENDERER;\r\n\r\n /**\r\n * The scene the component belongs to.\r\n */\r\n public scene: Scene;\r\n\r\n /**\r\n * Creates a new instance of the component for the given scene\r\n * @param scene Defines the scene to register the component in\r\n */\r\n constructor(scene: Scene) {\r\n this.scene = scene;\r\n }\r\n\r\n /**\r\n * Registers the component in a given scene\r\n */\r\n public register(): void {\r\n this.scene._beforeCameraDrawStage.registerStep(SceneComponentConstants.STEP_BEFORECAMERADRAW_PREPASS, this, this._beforeCameraDraw);\r\n this.scene._afterCameraDrawStage.registerStep(SceneComponentConstants.STEP_AFTERCAMERADRAW_PREPASS, this, this._afterCameraDraw);\r\n this.scene._beforeRenderTargetDrawStage.registerStep(SceneComponentConstants.STEP_BEFORERENDERTARGETDRAW_PREPASS, this, this._beforeRenderTargetDraw);\r\n this.scene._afterRenderTargetDrawStage.registerStep(SceneComponentConstants.STEP_AFTERCAMERADRAW_PREPASS, this, this._afterRenderTargetDraw);\r\n\r\n this.scene._beforeClearStage.registerStep(SceneComponentConstants.STEP_BEFORECLEAR_PREPASS, this, this._beforeClearStage);\r\n this.scene._beforeRenderTargetClearStage.registerStep(SceneComponentConstants.STEP_BEFORERENDERTARGETCLEAR_PREPASS, this, this._beforeRenderTargetClearStage);\r\n\r\n this.scene._beforeRenderingMeshStage.registerStep(SceneComponentConstants.STEP_BEFORERENDERINGMESH_PREPASS, this, this._beforeRenderingMeshStage);\r\n this.scene._afterRenderingMeshStage.registerStep(SceneComponentConstants.STEP_AFTERRENDERINGMESH_PREPASS, this, this._afterRenderingMeshStage);\r\n }\r\n\r\n private _beforeRenderTargetDraw(renderTarget: RenderTargetTexture, faceIndex?: number, layer?: number) {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._setRenderTarget(renderTarget._prePassRenderTarget);\r\n this.scene.prePassRenderer._beforeDraw(undefined, faceIndex, layer);\r\n }\r\n }\r\n\r\n private _afterRenderTargetDraw(renderTarget: RenderTargetTexture, faceIndex?: number, layer?: number) {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._afterDraw(faceIndex, layer);\r\n }\r\n }\r\n\r\n private _beforeRenderTargetClearStage(renderTarget: RenderTargetTexture) {\r\n if (this.scene.prePassRenderer) {\r\n if (!renderTarget._prePassRenderTarget) {\r\n renderTarget._prePassRenderTarget = this.scene.prePassRenderer._createRenderTarget(renderTarget.name + \"_prePassRTT\", renderTarget);\r\n }\r\n this.scene.prePassRenderer._setRenderTarget(renderTarget._prePassRenderTarget);\r\n this.scene.prePassRenderer._clear();\r\n }\r\n }\r\n\r\n private _beforeCameraDraw(camera: Camera) {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._setRenderTarget(null);\r\n this.scene.prePassRenderer._beforeDraw(camera);\r\n }\r\n }\r\n\r\n private _afterCameraDraw() {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._afterDraw();\r\n }\r\n }\r\n\r\n private _beforeClearStage() {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._setRenderTarget(null);\r\n this.scene.prePassRenderer._clear();\r\n }\r\n }\r\n\r\n private _beforeRenderingMeshStage(mesh: AbstractMesh, subMesh: SubMesh, batch: _InstancesBatch, effect: Nullable<Effect>) {\r\n if (!effect) {\r\n return;\r\n }\r\n\r\n // Render to MRT\r\n const scene = mesh.getScene();\r\n if (scene.prePassRenderer) {\r\n scene.prePassRenderer.bindAttachmentsForEffect(effect, subMesh);\r\n }\r\n }\r\n\r\n private _afterRenderingMeshStage(mesh: AbstractMesh) {\r\n const scene = mesh.getScene();\r\n\r\n if (scene.prePassRenderer) {\r\n scene.prePassRenderer.restoreAttachments();\r\n }\r\n }\r\n\r\n /**\r\n * Rebuilds the elements related to this component in case of\r\n * context lost for instance.\r\n */\r\n public rebuild(): void {\r\n // Release textures first\r\n this.scene.disablePrePassRenderer();\r\n\r\n // Re-enable\r\n this.scene.enablePrePassRenderer();\r\n }\r\n\r\n /**\r\n * Disposes the component and the associated resources\r\n */\r\n public dispose(): void {\r\n this.scene.disablePrePassRenderer();\r\n }\r\n}\r\n\r\nPrePassRenderer._SceneComponentInitialization = (scene: Scene) => {\r\n // Register the G Buffer component to the scene.\r\n let component = scene._getComponent(SceneComponentConstants.NAME_PREPASSRENDERER) as PrePassRendererSceneComponent;\r\n if (!component) {\r\n component = new PrePassRendererSceneComponent(scene);\r\n scene._addComponent(component);\r\n }\r\n};\r\n"]}
1
+ {"version":3,"file":"prePassRendererSceneComponent.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/prePassRendererSceneComponent.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport { Scene } from \"../scene\";\r\nimport type { ISceneComponent } from \"../sceneComponent\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport { PrePassRenderer } from \"./prePassRenderer\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport type { AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"../Meshes/subMesh\";\r\nimport type { _InstancesBatch } from \"../Meshes/mesh\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\nimport type { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture\";\r\nimport type { PrePassRenderTarget } from \"../Materials/Textures/prePassRenderTarget\";\r\n\r\ndeclare module \"../abstractScene\" {\r\n export interface AbstractScene {\r\n /** @internal (Backing field) */\r\n _prePassRenderer: Nullable<PrePassRenderer>;\r\n\r\n /**\r\n * Gets or Sets the current prepass renderer associated to the scene.\r\n */\r\n prePassRenderer: Nullable<PrePassRenderer>;\r\n\r\n /**\r\n * Enables the prepass and associates it with the scene\r\n * @returns the PrePassRenderer\r\n */\r\n enablePrePassRenderer(): Nullable<PrePassRenderer>;\r\n\r\n /**\r\n * Disables the prepass associated with the scene\r\n */\r\n disablePrePassRenderer(): void;\r\n }\r\n}\r\n\r\ndeclare module \"../Materials/Textures/renderTargetTexture\" {\r\n export interface RenderTargetTexture {\r\n /** @internal */\r\n _prePassRenderTarget: Nullable<PrePassRenderTarget>;\r\n }\r\n}\r\n\r\nObject.defineProperty(Scene.prototype, \"prePassRenderer\", {\r\n get: function (this: Scene) {\r\n return this._prePassRenderer;\r\n },\r\n set: function (this: Scene, value: Nullable<PrePassRenderer>) {\r\n if (value && value.isSupported) {\r\n this._prePassRenderer = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\nScene.prototype.enablePrePassRenderer = function (): Nullable<PrePassRenderer> {\r\n if (this._prePassRenderer) {\r\n return this._prePassRenderer;\r\n }\r\n\r\n this._prePassRenderer = new PrePassRenderer(this);\r\n\r\n if (!this._prePassRenderer.isSupported) {\r\n this._prePassRenderer = null;\r\n Logger.Error(\"PrePassRenderer needs WebGL 2 support.\\n\" + \"Maybe you tried to use the following features that need the PrePassRenderer :\\n\" + \" + Subsurface Scattering\");\r\n }\r\n\r\n return this._prePassRenderer;\r\n};\r\n\r\nScene.prototype.disablePrePassRenderer = function (): void {\r\n if (!this._prePassRenderer) {\r\n return;\r\n }\r\n\r\n this._prePassRenderer.dispose();\r\n this._prePassRenderer = null;\r\n};\r\n\r\n/**\r\n * Defines the Geometry Buffer scene component responsible to manage a G-Buffer useful\r\n * in several rendering techniques.\r\n */\r\nexport class PrePassRendererSceneComponent implements ISceneComponent {\r\n /**\r\n * The component name helpful to identify the component in the list of scene components.\r\n */\r\n public readonly name = SceneComponentConstants.NAME_PREPASSRENDERER;\r\n\r\n /**\r\n * The scene the component belongs to.\r\n */\r\n public scene: Scene;\r\n\r\n /**\r\n * Creates a new instance of the component for the given scene\r\n * @param scene Defines the scene to register the component in\r\n */\r\n constructor(scene: Scene) {\r\n this.scene = scene;\r\n }\r\n\r\n /**\r\n * Registers the component in a given scene\r\n */\r\n public register(): void {\r\n this.scene._beforeCameraDrawStage.registerStep(SceneComponentConstants.STEP_BEFORECAMERADRAW_PREPASS, this, this._beforeCameraDraw);\r\n this.scene._afterCameraDrawStage.registerStep(SceneComponentConstants.STEP_AFTERCAMERADRAW_PREPASS, this, this._afterCameraDraw);\r\n this.scene._beforeRenderTargetDrawStage.registerStep(SceneComponentConstants.STEP_BEFORERENDERTARGETDRAW_PREPASS, this, this._beforeRenderTargetDraw);\r\n this.scene._afterRenderTargetDrawStage.registerStep(SceneComponentConstants.STEP_AFTERCAMERADRAW_PREPASS, this, this._afterRenderTargetDraw);\r\n\r\n this.scene._beforeClearStage.registerStep(SceneComponentConstants.STEP_BEFORECLEAR_PREPASS, this, this._beforeClearStage);\r\n this.scene._beforeRenderTargetClearStage.registerStep(SceneComponentConstants.STEP_BEFORERENDERTARGETCLEAR_PREPASS, this, this._beforeRenderTargetClearStage);\r\n\r\n this.scene._beforeRenderingMeshStage.registerStep(SceneComponentConstants.STEP_BEFORERENDERINGMESH_PREPASS, this, this._beforeRenderingMeshStage);\r\n this.scene._afterRenderingMeshStage.registerStep(SceneComponentConstants.STEP_AFTERRENDERINGMESH_PREPASS, this, this._afterRenderingMeshStage);\r\n }\r\n\r\n private _beforeRenderTargetDraw(renderTarget: RenderTargetTexture, faceIndex?: number, layer?: number) {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._setRenderTarget(renderTarget._prePassRenderTarget);\r\n this.scene.prePassRenderer._beforeDraw(undefined, faceIndex, layer);\r\n }\r\n }\r\n\r\n private _afterRenderTargetDraw(renderTarget: RenderTargetTexture, faceIndex?: number, layer?: number) {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._afterDraw(faceIndex, layer);\r\n }\r\n }\r\n\r\n private _beforeRenderTargetClearStage(renderTarget: RenderTargetTexture) {\r\n if (this.scene.prePassRenderer) {\r\n if (!renderTarget._prePassRenderTarget) {\r\n renderTarget._prePassRenderTarget = this.scene.prePassRenderer._createRenderTarget(renderTarget.name + \"_prePassRTT\", renderTarget);\r\n }\r\n this.scene.prePassRenderer._setRenderTarget(renderTarget._prePassRenderTarget);\r\n this.scene.prePassRenderer._clear();\r\n }\r\n }\r\n\r\n private _beforeCameraDraw(camera: Camera) {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._setRenderTarget(null);\r\n this.scene.prePassRenderer._beforeDraw(camera);\r\n }\r\n }\r\n\r\n private _afterCameraDraw() {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._afterDraw();\r\n }\r\n }\r\n\r\n private _beforeClearStage() {\r\n if (this.scene.prePassRenderer) {\r\n this.scene.prePassRenderer._setRenderTarget(null);\r\n this.scene.prePassRenderer._clear();\r\n }\r\n }\r\n\r\n private _beforeRenderingMeshStage(mesh: AbstractMesh, subMesh: SubMesh, batch: _InstancesBatch, effect: Nullable<Effect>) {\r\n if (!effect) {\r\n return;\r\n }\r\n\r\n // Render to MRT\r\n const scene = mesh.getScene();\r\n if (scene.prePassRenderer) {\r\n scene.prePassRenderer.bindAttachmentsForEffect(effect, subMesh);\r\n }\r\n }\r\n\r\n private _afterRenderingMeshStage(mesh: AbstractMesh) {\r\n const scene = mesh.getScene();\r\n\r\n if (scene.prePassRenderer) {\r\n scene.prePassRenderer.restoreAttachments();\r\n }\r\n }\r\n\r\n /**\r\n * Rebuilds the elements related to this component in case of\r\n * context lost for instance.\r\n */\r\n public rebuild(): void {\r\n // Release textures first\r\n this.scene.disablePrePassRenderer();\r\n\r\n // Re-enable\r\n this.scene.enablePrePassRenderer();\r\n }\r\n\r\n /**\r\n * Disposes the component and the associated resources\r\n */\r\n public dispose(): void {\r\n this.scene.disablePrePassRenderer();\r\n }\r\n}\r\n\r\nPrePassRenderer._SceneComponentInitialization = (scene: Scene) => {\r\n // Register the G Buffer component to the scene.\r\n let component = scene._getComponent(SceneComponentConstants.NAME_PREPASSRENDERER) as PrePassRendererSceneComponent;\r\n if (!component) {\r\n component = new PrePassRendererSceneComponent(scene);\r\n scene._addComponent(component);\r\n }\r\n};\r\n"]}
@@ -11,7 +11,7 @@ import type { Scene } from "../scene";
11
11
  * This represents the object necessary to create a rendering group.
12
12
  * This is exclusively used and created by the rendering manager.
13
13
  * To modify the behavior, you use the available helpers in your scene or meshes.
14
- * @hidden
14
+ * @internal
15
15
  */
16
16
  export declare class RenderingGroup {
17
17
  index: number;
@@ -29,9 +29,9 @@ export declare class RenderingGroup {
29
29
  private _renderOpaque;
30
30
  private _renderAlphaTest;
31
31
  private _renderTransparent;
32
- /** @hidden */
32
+ /** @internal */
33
33
  _empty: boolean;
34
- /** @hidden */
34
+ /** @internal */
35
35
  _edgesRenderers: SmartArrayNoDuplicate<IEdgesRenderer>;
36
36
  onBeforeTransparentRendering: () => void;
37
37
  /**
@@ -5,7 +5,7 @@ import { Vector3 } from "../Maths/math.vector.js";
5
5
  * This represents the object necessary to create a rendering group.
6
6
  * This is exclusively used and created by the rendering manager.
7
7
  * To modify the behavior, you use the available helpers in your scene or meshes.
8
- * @hidden
8
+ * @internal
9
9
  */
10
10
  export class RenderingGroup {
11
11
  /**
@@ -24,9 +24,9 @@ export class RenderingGroup {
24
24
  this._depthOnlySubMeshes = new SmartArray(256);
25
25
  this._particleSystems = new SmartArray(256);
26
26
  this._spriteManagers = new SmartArray(256);
27
- /** @hidden */
27
+ /** @internal */
28
28
  this._empty = true;
29
- /** @hidden */
29
+ /** @internal */
30
30
  this._edgesRenderers = new SmartArrayNoDuplicate(16);
31
31
  this._scene = scene;
32
32
  this.opaqueSortCompareFn = opaqueSortCompareFn;
@@ -1 +1 @@
1
- {"version":3,"file":"renderingGroup.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/renderingGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { SmartArray, SmartArrayNoDuplicate } from \"../Misc/smartArray\";\r\nimport type { SubMesh } from \"../Meshes/subMesh\";\r\nimport type { AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport type { Nullable, DeepImmutable } from \"../types\";\r\nimport { Vector3 } from \"../Maths/math.vector\";\r\nimport type { IParticleSystem } from \"../Particles/IParticleSystem\";\r\nimport type { IEdgesRenderer } from \"./edgesRenderer\";\r\nimport type { ISpriteManager } from \"../Sprites/spriteManager\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport type { Material } from \"../Materials/material\";\r\nimport type { Scene } from \"../scene\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\n\r\n/**\r\n * This represents the object necessary to create a rendering group.\r\n * This is exclusively used and created by the rendering manager.\r\n * To modify the behavior, you use the available helpers in your scene or meshes.\r\n * @hidden\r\n */\r\nexport class RenderingGroup {\r\n private static _ZeroVector: DeepImmutable<Vector3> = Vector3.Zero();\r\n private _scene: Scene;\r\n private _opaqueSubMeshes = new SmartArray<SubMesh>(256);\r\n private _transparentSubMeshes = new SmartArray<SubMesh>(256);\r\n private _alphaTestSubMeshes = new SmartArray<SubMesh>(256);\r\n private _depthOnlySubMeshes = new SmartArray<SubMesh>(256);\r\n private _particleSystems = new SmartArray<IParticleSystem>(256);\r\n private _spriteManagers = new SmartArray<ISpriteManager>(256);\r\n\r\n private _opaqueSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number>;\r\n private _alphaTestSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number>;\r\n private _transparentSortCompareFn: (a: SubMesh, b: SubMesh) => number;\r\n\r\n private _renderOpaque: (subMeshes: SmartArray<SubMesh>) => void;\r\n private _renderAlphaTest: (subMeshes: SmartArray<SubMesh>) => void;\r\n private _renderTransparent: (subMeshes: SmartArray<SubMesh>) => void;\r\n\r\n /** @hidden */\r\n public _empty = true;\r\n\r\n /** @hidden */\r\n public _edgesRenderers = new SmartArrayNoDuplicate<IEdgesRenderer>(16);\r\n\r\n public onBeforeTransparentRendering: () => void;\r\n\r\n /**\r\n * Set the opaque sort comparison function.\r\n * If null the sub meshes will be render in the order they were created\r\n */\r\n public set opaqueSortCompareFn(value: Nullable<(a: SubMesh, b: SubMesh) => number>) {\r\n if (value) {\r\n this._opaqueSortCompareFn = value;\r\n } else {\r\n this._opaqueSortCompareFn = RenderingGroup.PainterSortCompare;\r\n }\r\n this._renderOpaque = this._renderOpaqueSorted;\r\n }\r\n\r\n /**\r\n * Set the alpha test sort comparison function.\r\n * If null the sub meshes will be render in the order they were created\r\n */\r\n public set alphaTestSortCompareFn(value: Nullable<(a: SubMesh, b: SubMesh) => number>) {\r\n if (value) {\r\n this._alphaTestSortCompareFn = value;\r\n } else {\r\n this._alphaTestSortCompareFn = RenderingGroup.PainterSortCompare;\r\n }\r\n this._renderAlphaTest = this._renderAlphaTestSorted;\r\n }\r\n\r\n /**\r\n * Set the transparent sort comparison function.\r\n * If null the sub meshes will be render in the order they were created\r\n */\r\n public set transparentSortCompareFn(value: Nullable<(a: SubMesh, b: SubMesh) => number>) {\r\n if (value) {\r\n this._transparentSortCompareFn = value;\r\n } else {\r\n this._transparentSortCompareFn = RenderingGroup.defaultTransparentSortCompare;\r\n }\r\n this._renderTransparent = this._renderTransparentSorted;\r\n }\r\n\r\n /**\r\n * Creates a new rendering group.\r\n * @param index The rendering group index\r\n * @param scene\r\n * @param opaqueSortCompareFn The opaque sort comparison function. If null no order is applied\r\n * @param alphaTestSortCompareFn The alpha test sort comparison function. If null no order is applied\r\n * @param transparentSortCompareFn The transparent sort comparison function. If null back to front + alpha index sort is applied\r\n */\r\n constructor(\r\n public index: number,\r\n scene: Scene,\r\n opaqueSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null,\r\n alphaTestSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null,\r\n transparentSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null\r\n ) {\r\n this._scene = scene;\r\n\r\n this.opaqueSortCompareFn = opaqueSortCompareFn;\r\n this.alphaTestSortCompareFn = alphaTestSortCompareFn;\r\n this.transparentSortCompareFn = transparentSortCompareFn;\r\n }\r\n\r\n /**\r\n * Render all the sub meshes contained in the group.\r\n * @param customRenderFunction Used to override the default render behaviour of the group.\r\n * @param renderSprites\r\n * @param renderParticles\r\n * @param activeMeshes\r\n * @returns true if rendered some submeshes.\r\n */\r\n public render(\r\n customRenderFunction: Nullable<\r\n (\r\n opaqueSubMeshes: SmartArray<SubMesh>,\r\n transparentSubMeshes: SmartArray<SubMesh>,\r\n alphaTestSubMeshes: SmartArray<SubMesh>,\r\n depthOnlySubMeshes: SmartArray<SubMesh>\r\n ) => void\r\n >,\r\n renderSprites: boolean,\r\n renderParticles: boolean,\r\n activeMeshes: Nullable<AbstractMesh[]>\r\n ): void {\r\n if (customRenderFunction) {\r\n customRenderFunction(this._opaqueSubMeshes, this._alphaTestSubMeshes, this._transparentSubMeshes, this._depthOnlySubMeshes);\r\n return;\r\n }\r\n\r\n const engine = this._scene.getEngine();\r\n\r\n // Depth only\r\n if (this._depthOnlySubMeshes.length !== 0) {\r\n engine.setColorWrite(false);\r\n this._renderAlphaTest(this._depthOnlySubMeshes);\r\n engine.setColorWrite(true);\r\n }\r\n\r\n // Opaque\r\n if (this._opaqueSubMeshes.length !== 0) {\r\n this._renderOpaque(this._opaqueSubMeshes);\r\n }\r\n\r\n // Alpha test\r\n if (this._alphaTestSubMeshes.length !== 0) {\r\n this._renderAlphaTest(this._alphaTestSubMeshes);\r\n }\r\n\r\n const stencilState = engine.getStencilBuffer();\r\n engine.setStencilBuffer(false);\r\n\r\n // Sprites\r\n if (renderSprites) {\r\n this._renderSprites();\r\n }\r\n\r\n // Particles\r\n if (renderParticles) {\r\n this._renderParticles(activeMeshes);\r\n }\r\n\r\n if (this.onBeforeTransparentRendering) {\r\n this.onBeforeTransparentRendering();\r\n }\r\n\r\n // Transparent\r\n if (this._transparentSubMeshes.length !== 0 || this._scene.useOrderIndependentTransparency) {\r\n engine.setStencilBuffer(stencilState);\r\n if (this._scene.useOrderIndependentTransparency) {\r\n const excludedMeshes = this._scene.depthPeelingRenderer!.render(this._transparentSubMeshes);\r\n if (excludedMeshes.length) {\r\n // Render leftover meshes that could not be processed by depth peeling\r\n this._renderTransparent(excludedMeshes);\r\n }\r\n } else {\r\n this._renderTransparent(this._transparentSubMeshes);\r\n }\r\n engine.setAlphaMode(Constants.ALPHA_DISABLE);\r\n }\r\n\r\n // Set back stencil to false in case it changes before the edge renderer.\r\n engine.setStencilBuffer(false);\r\n\r\n // Edges\r\n if (this._edgesRenderers.length) {\r\n for (let edgesRendererIndex = 0; edgesRendererIndex < this._edgesRenderers.length; edgesRendererIndex++) {\r\n this._edgesRenderers.data[edgesRendererIndex].render();\r\n }\r\n\r\n engine.setAlphaMode(Constants.ALPHA_DISABLE);\r\n }\r\n\r\n // Restore Stencil state.\r\n engine.setStencilBuffer(stencilState);\r\n }\r\n\r\n /**\r\n * Renders the opaque submeshes in the order from the opaqueSortCompareFn.\r\n * @param subMeshes The submeshes to render\r\n */\r\n private _renderOpaqueSorted(subMeshes: SmartArray<SubMesh>): void {\r\n return RenderingGroup._RenderSorted(subMeshes, this._opaqueSortCompareFn, this._scene.activeCamera, false);\r\n }\r\n\r\n /**\r\n * Renders the opaque submeshes in the order from the alphatestSortCompareFn.\r\n * @param subMeshes The submeshes to render\r\n */\r\n private _renderAlphaTestSorted(subMeshes: SmartArray<SubMesh>): void {\r\n return RenderingGroup._RenderSorted(subMeshes, this._alphaTestSortCompareFn, this._scene.activeCamera, false);\r\n }\r\n\r\n /**\r\n * Renders the opaque submeshes in the order from the transparentSortCompareFn.\r\n * @param subMeshes The submeshes to render\r\n */\r\n private _renderTransparentSorted(subMeshes: SmartArray<SubMesh>): void {\r\n return RenderingGroup._RenderSorted(subMeshes, this._transparentSortCompareFn, this._scene.activeCamera, true);\r\n }\r\n\r\n /**\r\n * Renders the submeshes in a specified order.\r\n * @param subMeshes The submeshes to sort before render\r\n * @param sortCompareFn The comparison function use to sort\r\n * @param camera The camera position use to preprocess the submeshes to help sorting\r\n * @param transparent Specifies to activate blending if true\r\n */\r\n private static _RenderSorted(\r\n subMeshes: SmartArray<SubMesh>,\r\n sortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number>,\r\n camera: Nullable<Camera>,\r\n transparent: boolean\r\n ): void {\r\n let subIndex = 0;\r\n let subMesh: SubMesh;\r\n const cameraPosition = camera ? camera.globalPosition : RenderingGroup._ZeroVector;\r\n\r\n if (transparent) {\r\n for (; subIndex < subMeshes.length; subIndex++) {\r\n subMesh = subMeshes.data[subIndex];\r\n subMesh._alphaIndex = subMesh.getMesh().alphaIndex;\r\n subMesh._distanceToCamera = Vector3.Distance(subMesh.getBoundingInfo().boundingSphere.centerWorld, cameraPosition);\r\n }\r\n }\r\n\r\n const sortedArray = subMeshes.length === subMeshes.data.length ? subMeshes.data : subMeshes.data.slice(0, subMeshes.length);\r\n\r\n if (sortCompareFn) {\r\n sortedArray.sort(sortCompareFn);\r\n }\r\n\r\n const scene = sortedArray[0].getMesh().getScene();\r\n for (subIndex = 0; subIndex < sortedArray.length; subIndex++) {\r\n subMesh = sortedArray[subIndex];\r\n\r\n if (scene._activeMeshesFrozenButKeepClipping && !subMesh.isInFrustum(scene._frustumPlanes)) {\r\n continue;\r\n }\r\n\r\n if (transparent) {\r\n const material = subMesh.getMaterial();\r\n\r\n if (material && material.needDepthPrePass) {\r\n const engine = material.getScene().getEngine();\r\n engine.setColorWrite(false);\r\n engine.setAlphaMode(Constants.ALPHA_DISABLE);\r\n subMesh.render(false);\r\n engine.setColorWrite(true);\r\n }\r\n }\r\n\r\n subMesh.render(transparent);\r\n }\r\n }\r\n\r\n /**\r\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\r\n * are rendered back to front if in the same alpha index.\r\n *\r\n * @param a The first submesh\r\n * @param b The second submesh\r\n * @returns The result of the comparison\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static defaultTransparentSortCompare(a: SubMesh, b: SubMesh): number {\r\n // Alpha index first\r\n if (a._alphaIndex > b._alphaIndex) {\r\n return 1;\r\n }\r\n if (a._alphaIndex < b._alphaIndex) {\r\n return -1;\r\n }\r\n\r\n // Then distance to camera\r\n return RenderingGroup.backToFrontSortCompare(a, b);\r\n }\r\n\r\n /**\r\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\r\n * are rendered back to front.\r\n *\r\n * @param a The first submesh\r\n * @param b The second submesh\r\n * @returns The result of the comparison\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static backToFrontSortCompare(a: SubMesh, b: SubMesh): number {\r\n // Then distance to camera\r\n if (a._distanceToCamera < b._distanceToCamera) {\r\n return 1;\r\n }\r\n if (a._distanceToCamera > b._distanceToCamera) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n /**\r\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\r\n * are rendered front to back (prevent overdraw).\r\n *\r\n * @param a The first submesh\r\n * @param b The second submesh\r\n * @returns The result of the comparison\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static frontToBackSortCompare(a: SubMesh, b: SubMesh): number {\r\n // Then distance to camera\r\n if (a._distanceToCamera < b._distanceToCamera) {\r\n return -1;\r\n }\r\n if (a._distanceToCamera > b._distanceToCamera) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n /**\r\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\r\n * are grouped by material then geometry.\r\n *\r\n * @param a The first submesh\r\n * @param b The second submesh\r\n * @returns The result of the comparison\r\n */\r\n public static PainterSortCompare(a: SubMesh, b: SubMesh): number {\r\n const meshA = a.getMesh();\r\n const meshB = b.getMesh();\r\n\r\n if (meshA.material && meshB.material) {\r\n return meshA.material.uniqueId - meshB.material.uniqueId;\r\n }\r\n\r\n return meshA.uniqueId - meshB.uniqueId;\r\n }\r\n\r\n /**\r\n * Resets the different lists of submeshes to prepare a new frame.\r\n */\r\n public prepare(): void {\r\n this._opaqueSubMeshes.reset();\r\n this._transparentSubMeshes.reset();\r\n this._alphaTestSubMeshes.reset();\r\n this._depthOnlySubMeshes.reset();\r\n this._particleSystems.reset();\r\n this._spriteManagers.reset();\r\n this._edgesRenderers.reset();\r\n this._empty = true;\r\n }\r\n\r\n public dispose(): void {\r\n this._opaqueSubMeshes.dispose();\r\n this._transparentSubMeshes.dispose();\r\n this._alphaTestSubMeshes.dispose();\r\n this._depthOnlySubMeshes.dispose();\r\n this._particleSystems.dispose();\r\n this._spriteManagers.dispose();\r\n this._edgesRenderers.dispose();\r\n }\r\n\r\n /**\r\n * Inserts the submesh in its correct queue depending on its material.\r\n * @param subMesh The submesh to dispatch\r\n * @param [mesh] Optional reference to the submeshes's mesh. Provide if you have an exiting reference to improve performance.\r\n * @param [material] Optional reference to the submeshes's material. Provide if you have an exiting reference to improve performance.\r\n */\r\n public dispatch(subMesh: SubMesh, mesh?: AbstractMesh, material?: Nullable<Material>): void {\r\n // Get mesh and materials if not provided\r\n if (mesh === undefined) {\r\n mesh = subMesh.getMesh();\r\n }\r\n if (material === undefined) {\r\n material = subMesh.getMaterial();\r\n }\r\n\r\n if (material === null || material === undefined) {\r\n return;\r\n }\r\n\r\n if (material.needAlphaBlendingForMesh(mesh)) {\r\n // Transparent\r\n this._transparentSubMeshes.push(subMesh);\r\n } else if (material.needAlphaTesting()) {\r\n // Alpha test\r\n if (material.needDepthPrePass) {\r\n this._depthOnlySubMeshes.push(subMesh);\r\n }\r\n\r\n this._alphaTestSubMeshes.push(subMesh);\r\n } else {\r\n if (material.needDepthPrePass) {\r\n this._depthOnlySubMeshes.push(subMesh);\r\n }\r\n\r\n this._opaqueSubMeshes.push(subMesh); // Opaque\r\n }\r\n\r\n mesh._renderingGroup = this;\r\n\r\n if (mesh._edgesRenderer && mesh._edgesRenderer.isEnabled) {\r\n this._edgesRenderers.pushNoDuplicate(mesh._edgesRenderer);\r\n }\r\n\r\n this._empty = false;\r\n }\r\n\r\n public dispatchSprites(spriteManager: ISpriteManager) {\r\n this._spriteManagers.push(spriteManager);\r\n this._empty = false;\r\n }\r\n\r\n public dispatchParticles(particleSystem: IParticleSystem) {\r\n this._particleSystems.push(particleSystem);\r\n this._empty = false;\r\n }\r\n\r\n private _renderParticles(activeMeshes: Nullable<AbstractMesh[]>): void {\r\n if (this._particleSystems.length === 0) {\r\n return;\r\n }\r\n\r\n // Particles\r\n const activeCamera = this._scene.activeCamera;\r\n this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene);\r\n for (let particleIndex = 0; particleIndex < this._particleSystems.length; particleIndex++) {\r\n const particleSystem = this._particleSystems.data[particleIndex];\r\n\r\n if ((activeCamera && activeCamera.layerMask & particleSystem.layerMask) === 0) {\r\n continue;\r\n }\r\n\r\n const emitter: any = particleSystem.emitter;\r\n if (!emitter.position || !activeMeshes || activeMeshes.indexOf(emitter) !== -1) {\r\n this._scene._activeParticles.addCount(particleSystem.render(), false);\r\n }\r\n }\r\n this._scene.onAfterParticlesRenderingObservable.notifyObservers(this._scene);\r\n }\r\n\r\n private _renderSprites(): void {\r\n if (!this._scene.spritesEnabled || this._spriteManagers.length === 0) {\r\n return;\r\n }\r\n\r\n // Sprites\r\n const activeCamera = this._scene.activeCamera;\r\n this._scene.onBeforeSpritesRenderingObservable.notifyObservers(this._scene);\r\n for (let id = 0; id < this._spriteManagers.length; id++) {\r\n const spriteManager = this._spriteManagers.data[id];\r\n\r\n if ((activeCamera && activeCamera.layerMask & spriteManager.layerMask) !== 0) {\r\n spriteManager.render();\r\n }\r\n }\r\n this._scene.onAfterSpritesRenderingObservable.notifyObservers(this._scene);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"renderingGroup.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/renderingGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { SmartArray, SmartArrayNoDuplicate } from \"../Misc/smartArray\";\r\nimport type { SubMesh } from \"../Meshes/subMesh\";\r\nimport type { AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport type { Nullable, DeepImmutable } from \"../types\";\r\nimport { Vector3 } from \"../Maths/math.vector\";\r\nimport type { IParticleSystem } from \"../Particles/IParticleSystem\";\r\nimport type { IEdgesRenderer } from \"./edgesRenderer\";\r\nimport type { ISpriteManager } from \"../Sprites/spriteManager\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport type { Material } from \"../Materials/material\";\r\nimport type { Scene } from \"../scene\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\n\r\n/**\r\n * This represents the object necessary to create a rendering group.\r\n * This is exclusively used and created by the rendering manager.\r\n * To modify the behavior, you use the available helpers in your scene or meshes.\r\n * @internal\r\n */\r\nexport class RenderingGroup {\r\n private static _ZeroVector: DeepImmutable<Vector3> = Vector3.Zero();\r\n private _scene: Scene;\r\n private _opaqueSubMeshes = new SmartArray<SubMesh>(256);\r\n private _transparentSubMeshes = new SmartArray<SubMesh>(256);\r\n private _alphaTestSubMeshes = new SmartArray<SubMesh>(256);\r\n private _depthOnlySubMeshes = new SmartArray<SubMesh>(256);\r\n private _particleSystems = new SmartArray<IParticleSystem>(256);\r\n private _spriteManagers = new SmartArray<ISpriteManager>(256);\r\n\r\n private _opaqueSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number>;\r\n private _alphaTestSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number>;\r\n private _transparentSortCompareFn: (a: SubMesh, b: SubMesh) => number;\r\n\r\n private _renderOpaque: (subMeshes: SmartArray<SubMesh>) => void;\r\n private _renderAlphaTest: (subMeshes: SmartArray<SubMesh>) => void;\r\n private _renderTransparent: (subMeshes: SmartArray<SubMesh>) => void;\r\n\r\n /** @internal */\r\n public _empty = true;\r\n\r\n /** @internal */\r\n public _edgesRenderers = new SmartArrayNoDuplicate<IEdgesRenderer>(16);\r\n\r\n public onBeforeTransparentRendering: () => void;\r\n\r\n /**\r\n * Set the opaque sort comparison function.\r\n * If null the sub meshes will be render in the order they were created\r\n */\r\n public set opaqueSortCompareFn(value: Nullable<(a: SubMesh, b: SubMesh) => number>) {\r\n if (value) {\r\n this._opaqueSortCompareFn = value;\r\n } else {\r\n this._opaqueSortCompareFn = RenderingGroup.PainterSortCompare;\r\n }\r\n this._renderOpaque = this._renderOpaqueSorted;\r\n }\r\n\r\n /**\r\n * Set the alpha test sort comparison function.\r\n * If null the sub meshes will be render in the order they were created\r\n */\r\n public set alphaTestSortCompareFn(value: Nullable<(a: SubMesh, b: SubMesh) => number>) {\r\n if (value) {\r\n this._alphaTestSortCompareFn = value;\r\n } else {\r\n this._alphaTestSortCompareFn = RenderingGroup.PainterSortCompare;\r\n }\r\n this._renderAlphaTest = this._renderAlphaTestSorted;\r\n }\r\n\r\n /**\r\n * Set the transparent sort comparison function.\r\n * If null the sub meshes will be render in the order they were created\r\n */\r\n public set transparentSortCompareFn(value: Nullable<(a: SubMesh, b: SubMesh) => number>) {\r\n if (value) {\r\n this._transparentSortCompareFn = value;\r\n } else {\r\n this._transparentSortCompareFn = RenderingGroup.defaultTransparentSortCompare;\r\n }\r\n this._renderTransparent = this._renderTransparentSorted;\r\n }\r\n\r\n /**\r\n * Creates a new rendering group.\r\n * @param index The rendering group index\r\n * @param scene\r\n * @param opaqueSortCompareFn The opaque sort comparison function. If null no order is applied\r\n * @param alphaTestSortCompareFn The alpha test sort comparison function. If null no order is applied\r\n * @param transparentSortCompareFn The transparent sort comparison function. If null back to front + alpha index sort is applied\r\n */\r\n constructor(\r\n public index: number,\r\n scene: Scene,\r\n opaqueSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null,\r\n alphaTestSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null,\r\n transparentSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null\r\n ) {\r\n this._scene = scene;\r\n\r\n this.opaqueSortCompareFn = opaqueSortCompareFn;\r\n this.alphaTestSortCompareFn = alphaTestSortCompareFn;\r\n this.transparentSortCompareFn = transparentSortCompareFn;\r\n }\r\n\r\n /**\r\n * Render all the sub meshes contained in the group.\r\n * @param customRenderFunction Used to override the default render behaviour of the group.\r\n * @param renderSprites\r\n * @param renderParticles\r\n * @param activeMeshes\r\n * @returns true if rendered some submeshes.\r\n */\r\n public render(\r\n customRenderFunction: Nullable<\r\n (\r\n opaqueSubMeshes: SmartArray<SubMesh>,\r\n transparentSubMeshes: SmartArray<SubMesh>,\r\n alphaTestSubMeshes: SmartArray<SubMesh>,\r\n depthOnlySubMeshes: SmartArray<SubMesh>\r\n ) => void\r\n >,\r\n renderSprites: boolean,\r\n renderParticles: boolean,\r\n activeMeshes: Nullable<AbstractMesh[]>\r\n ): void {\r\n if (customRenderFunction) {\r\n customRenderFunction(this._opaqueSubMeshes, this._alphaTestSubMeshes, this._transparentSubMeshes, this._depthOnlySubMeshes);\r\n return;\r\n }\r\n\r\n const engine = this._scene.getEngine();\r\n\r\n // Depth only\r\n if (this._depthOnlySubMeshes.length !== 0) {\r\n engine.setColorWrite(false);\r\n this._renderAlphaTest(this._depthOnlySubMeshes);\r\n engine.setColorWrite(true);\r\n }\r\n\r\n // Opaque\r\n if (this._opaqueSubMeshes.length !== 0) {\r\n this._renderOpaque(this._opaqueSubMeshes);\r\n }\r\n\r\n // Alpha test\r\n if (this._alphaTestSubMeshes.length !== 0) {\r\n this._renderAlphaTest(this._alphaTestSubMeshes);\r\n }\r\n\r\n const stencilState = engine.getStencilBuffer();\r\n engine.setStencilBuffer(false);\r\n\r\n // Sprites\r\n if (renderSprites) {\r\n this._renderSprites();\r\n }\r\n\r\n // Particles\r\n if (renderParticles) {\r\n this._renderParticles(activeMeshes);\r\n }\r\n\r\n if (this.onBeforeTransparentRendering) {\r\n this.onBeforeTransparentRendering();\r\n }\r\n\r\n // Transparent\r\n if (this._transparentSubMeshes.length !== 0 || this._scene.useOrderIndependentTransparency) {\r\n engine.setStencilBuffer(stencilState);\r\n if (this._scene.useOrderIndependentTransparency) {\r\n const excludedMeshes = this._scene.depthPeelingRenderer!.render(this._transparentSubMeshes);\r\n if (excludedMeshes.length) {\r\n // Render leftover meshes that could not be processed by depth peeling\r\n this._renderTransparent(excludedMeshes);\r\n }\r\n } else {\r\n this._renderTransparent(this._transparentSubMeshes);\r\n }\r\n engine.setAlphaMode(Constants.ALPHA_DISABLE);\r\n }\r\n\r\n // Set back stencil to false in case it changes before the edge renderer.\r\n engine.setStencilBuffer(false);\r\n\r\n // Edges\r\n if (this._edgesRenderers.length) {\r\n for (let edgesRendererIndex = 0; edgesRendererIndex < this._edgesRenderers.length; edgesRendererIndex++) {\r\n this._edgesRenderers.data[edgesRendererIndex].render();\r\n }\r\n\r\n engine.setAlphaMode(Constants.ALPHA_DISABLE);\r\n }\r\n\r\n // Restore Stencil state.\r\n engine.setStencilBuffer(stencilState);\r\n }\r\n\r\n /**\r\n * Renders the opaque submeshes in the order from the opaqueSortCompareFn.\r\n * @param subMeshes The submeshes to render\r\n */\r\n private _renderOpaqueSorted(subMeshes: SmartArray<SubMesh>): void {\r\n return RenderingGroup._RenderSorted(subMeshes, this._opaqueSortCompareFn, this._scene.activeCamera, false);\r\n }\r\n\r\n /**\r\n * Renders the opaque submeshes in the order from the alphatestSortCompareFn.\r\n * @param subMeshes The submeshes to render\r\n */\r\n private _renderAlphaTestSorted(subMeshes: SmartArray<SubMesh>): void {\r\n return RenderingGroup._RenderSorted(subMeshes, this._alphaTestSortCompareFn, this._scene.activeCamera, false);\r\n }\r\n\r\n /**\r\n * Renders the opaque submeshes in the order from the transparentSortCompareFn.\r\n * @param subMeshes The submeshes to render\r\n */\r\n private _renderTransparentSorted(subMeshes: SmartArray<SubMesh>): void {\r\n return RenderingGroup._RenderSorted(subMeshes, this._transparentSortCompareFn, this._scene.activeCamera, true);\r\n }\r\n\r\n /**\r\n * Renders the submeshes in a specified order.\r\n * @param subMeshes The submeshes to sort before render\r\n * @param sortCompareFn The comparison function use to sort\r\n * @param camera The camera position use to preprocess the submeshes to help sorting\r\n * @param transparent Specifies to activate blending if true\r\n */\r\n private static _RenderSorted(\r\n subMeshes: SmartArray<SubMesh>,\r\n sortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number>,\r\n camera: Nullable<Camera>,\r\n transparent: boolean\r\n ): void {\r\n let subIndex = 0;\r\n let subMesh: SubMesh;\r\n const cameraPosition = camera ? camera.globalPosition : RenderingGroup._ZeroVector;\r\n\r\n if (transparent) {\r\n for (; subIndex < subMeshes.length; subIndex++) {\r\n subMesh = subMeshes.data[subIndex];\r\n subMesh._alphaIndex = subMesh.getMesh().alphaIndex;\r\n subMesh._distanceToCamera = Vector3.Distance(subMesh.getBoundingInfo().boundingSphere.centerWorld, cameraPosition);\r\n }\r\n }\r\n\r\n const sortedArray = subMeshes.length === subMeshes.data.length ? subMeshes.data : subMeshes.data.slice(0, subMeshes.length);\r\n\r\n if (sortCompareFn) {\r\n sortedArray.sort(sortCompareFn);\r\n }\r\n\r\n const scene = sortedArray[0].getMesh().getScene();\r\n for (subIndex = 0; subIndex < sortedArray.length; subIndex++) {\r\n subMesh = sortedArray[subIndex];\r\n\r\n if (scene._activeMeshesFrozenButKeepClipping && !subMesh.isInFrustum(scene._frustumPlanes)) {\r\n continue;\r\n }\r\n\r\n if (transparent) {\r\n const material = subMesh.getMaterial();\r\n\r\n if (material && material.needDepthPrePass) {\r\n const engine = material.getScene().getEngine();\r\n engine.setColorWrite(false);\r\n engine.setAlphaMode(Constants.ALPHA_DISABLE);\r\n subMesh.render(false);\r\n engine.setColorWrite(true);\r\n }\r\n }\r\n\r\n subMesh.render(transparent);\r\n }\r\n }\r\n\r\n /**\r\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\r\n * are rendered back to front if in the same alpha index.\r\n *\r\n * @param a The first submesh\r\n * @param b The second submesh\r\n * @returns The result of the comparison\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static defaultTransparentSortCompare(a: SubMesh, b: SubMesh): number {\r\n // Alpha index first\r\n if (a._alphaIndex > b._alphaIndex) {\r\n return 1;\r\n }\r\n if (a._alphaIndex < b._alphaIndex) {\r\n return -1;\r\n }\r\n\r\n // Then distance to camera\r\n return RenderingGroup.backToFrontSortCompare(a, b);\r\n }\r\n\r\n /**\r\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\r\n * are rendered back to front.\r\n *\r\n * @param a The first submesh\r\n * @param b The second submesh\r\n * @returns The result of the comparison\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static backToFrontSortCompare(a: SubMesh, b: SubMesh): number {\r\n // Then distance to camera\r\n if (a._distanceToCamera < b._distanceToCamera) {\r\n return 1;\r\n }\r\n if (a._distanceToCamera > b._distanceToCamera) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n /**\r\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\r\n * are rendered front to back (prevent overdraw).\r\n *\r\n * @param a The first submesh\r\n * @param b The second submesh\r\n * @returns The result of the comparison\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static frontToBackSortCompare(a: SubMesh, b: SubMesh): number {\r\n // Then distance to camera\r\n if (a._distanceToCamera < b._distanceToCamera) {\r\n return -1;\r\n }\r\n if (a._distanceToCamera > b._distanceToCamera) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n /**\r\n * Build in function which can be applied to ensure meshes of a special queue (opaque, alpha test, transparent)\r\n * are grouped by material then geometry.\r\n *\r\n * @param a The first submesh\r\n * @param b The second submesh\r\n * @returns The result of the comparison\r\n */\r\n public static PainterSortCompare(a: SubMesh, b: SubMesh): number {\r\n const meshA = a.getMesh();\r\n const meshB = b.getMesh();\r\n\r\n if (meshA.material && meshB.material) {\r\n return meshA.material.uniqueId - meshB.material.uniqueId;\r\n }\r\n\r\n return meshA.uniqueId - meshB.uniqueId;\r\n }\r\n\r\n /**\r\n * Resets the different lists of submeshes to prepare a new frame.\r\n */\r\n public prepare(): void {\r\n this._opaqueSubMeshes.reset();\r\n this._transparentSubMeshes.reset();\r\n this._alphaTestSubMeshes.reset();\r\n this._depthOnlySubMeshes.reset();\r\n this._particleSystems.reset();\r\n this._spriteManagers.reset();\r\n this._edgesRenderers.reset();\r\n this._empty = true;\r\n }\r\n\r\n public dispose(): void {\r\n this._opaqueSubMeshes.dispose();\r\n this._transparentSubMeshes.dispose();\r\n this._alphaTestSubMeshes.dispose();\r\n this._depthOnlySubMeshes.dispose();\r\n this._particleSystems.dispose();\r\n this._spriteManagers.dispose();\r\n this._edgesRenderers.dispose();\r\n }\r\n\r\n /**\r\n * Inserts the submesh in its correct queue depending on its material.\r\n * @param subMesh The submesh to dispatch\r\n * @param [mesh] Optional reference to the submeshes's mesh. Provide if you have an exiting reference to improve performance.\r\n * @param [material] Optional reference to the submeshes's material. Provide if you have an exiting reference to improve performance.\r\n */\r\n public dispatch(subMesh: SubMesh, mesh?: AbstractMesh, material?: Nullable<Material>): void {\r\n // Get mesh and materials if not provided\r\n if (mesh === undefined) {\r\n mesh = subMesh.getMesh();\r\n }\r\n if (material === undefined) {\r\n material = subMesh.getMaterial();\r\n }\r\n\r\n if (material === null || material === undefined) {\r\n return;\r\n }\r\n\r\n if (material.needAlphaBlendingForMesh(mesh)) {\r\n // Transparent\r\n this._transparentSubMeshes.push(subMesh);\r\n } else if (material.needAlphaTesting()) {\r\n // Alpha test\r\n if (material.needDepthPrePass) {\r\n this._depthOnlySubMeshes.push(subMesh);\r\n }\r\n\r\n this._alphaTestSubMeshes.push(subMesh);\r\n } else {\r\n if (material.needDepthPrePass) {\r\n this._depthOnlySubMeshes.push(subMesh);\r\n }\r\n\r\n this._opaqueSubMeshes.push(subMesh); // Opaque\r\n }\r\n\r\n mesh._renderingGroup = this;\r\n\r\n if (mesh._edgesRenderer && mesh._edgesRenderer.isEnabled) {\r\n this._edgesRenderers.pushNoDuplicate(mesh._edgesRenderer);\r\n }\r\n\r\n this._empty = false;\r\n }\r\n\r\n public dispatchSprites(spriteManager: ISpriteManager) {\r\n this._spriteManagers.push(spriteManager);\r\n this._empty = false;\r\n }\r\n\r\n public dispatchParticles(particleSystem: IParticleSystem) {\r\n this._particleSystems.push(particleSystem);\r\n this._empty = false;\r\n }\r\n\r\n private _renderParticles(activeMeshes: Nullable<AbstractMesh[]>): void {\r\n if (this._particleSystems.length === 0) {\r\n return;\r\n }\r\n\r\n // Particles\r\n const activeCamera = this._scene.activeCamera;\r\n this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene);\r\n for (let particleIndex = 0; particleIndex < this._particleSystems.length; particleIndex++) {\r\n const particleSystem = this._particleSystems.data[particleIndex];\r\n\r\n if ((activeCamera && activeCamera.layerMask & particleSystem.layerMask) === 0) {\r\n continue;\r\n }\r\n\r\n const emitter: any = particleSystem.emitter;\r\n if (!emitter.position || !activeMeshes || activeMeshes.indexOf(emitter) !== -1) {\r\n this._scene._activeParticles.addCount(particleSystem.render(), false);\r\n }\r\n }\r\n this._scene.onAfterParticlesRenderingObservable.notifyObservers(this._scene);\r\n }\r\n\r\n private _renderSprites(): void {\r\n if (!this._scene.spritesEnabled || this._spriteManagers.length === 0) {\r\n return;\r\n }\r\n\r\n // Sprites\r\n const activeCamera = this._scene.activeCamera;\r\n this._scene.onBeforeSpritesRenderingObservable.notifyObservers(this._scene);\r\n for (let id = 0; id < this._spriteManagers.length; id++) {\r\n const spriteManager = this._spriteManagers.data[id];\r\n\r\n if ((activeCamera && activeCamera.layerMask & spriteManager.layerMask) !== 0) {\r\n spriteManager.render();\r\n }\r\n }\r\n this._scene.onAfterSpritesRenderingObservable.notifyObservers(this._scene);\r\n }\r\n}\r\n"]}
@@ -61,7 +61,7 @@ export declare class RenderingManager {
61
61
  */
62
62
  static AUTOCLEAR: boolean;
63
63
  /**
64
- * @hidden
64
+ * @internal
65
65
  */
66
66
  _useSceneAutoClearSetup: boolean;
67
67
  private _scene;
@@ -80,21 +80,17 @@ export declare class RenderingManager {
80
80
  private _clearDepthStencilBuffer;
81
81
  /**
82
82
  * Renders the entire managed groups. This is used by the scene or the different render targets.
83
- * @param customRenderFunction
84
- * @param activeMeshes
85
- * @param renderParticles
86
- * @param renderSprites
87
- * @hidden
83
+ * @internal
88
84
  */
89
85
  render(customRenderFunction: Nullable<(opaqueSubMeshes: SmartArray<SubMesh>, transparentSubMeshes: SmartArray<SubMesh>, alphaTestSubMeshes: SmartArray<SubMesh>, depthOnlySubMeshes: SmartArray<SubMesh>) => void>, activeMeshes: Nullable<AbstractMesh[]>, renderParticles: boolean, renderSprites: boolean): void;
90
86
  /**
91
87
  * Resets the different information of the group to prepare a new frame
92
- * @hidden
88
+ * @internal
93
89
  */
94
90
  reset(): void;
95
91
  /**
96
92
  * Dispose and release the group and its associated resources.
97
- * @hidden
93
+ * @internal
98
94
  */
99
95
  dispose(): void;
100
96
  /**
@@ -16,7 +16,7 @@ export class RenderingManager {
16
16
  */
17
17
  constructor(scene) {
18
18
  /**
19
- * @hidden
19
+ * @internal
20
20
  */
21
21
  this._useSceneAutoClearSetup = false;
22
22
  this._renderingGroups = new Array();
@@ -39,11 +39,7 @@ export class RenderingManager {
39
39
  }
40
40
  /**
41
41
  * Renders the entire managed groups. This is used by the scene or the different render targets.
42
- * @param customRenderFunction
43
- * @param activeMeshes
44
- * @param renderParticles
45
- * @param renderSprites
46
- * @hidden
42
+ * @internal
47
43
  */
48
44
  render(customRenderFunction, activeMeshes, renderParticles, renderSprites) {
49
45
  // Update the observable context (not null as it only goes away on dispose)
@@ -89,7 +85,7 @@ export class RenderingManager {
89
85
  }
90
86
  /**
91
87
  * Resets the different information of the group to prepare a new frame
92
- * @hidden
88
+ * @internal
93
89
  */
94
90
  reset() {
95
91
  for (let index = RenderingManager.MIN_RENDERINGGROUPS; index < RenderingManager.MAX_RENDERINGGROUPS; index++) {
@@ -101,7 +97,7 @@ export class RenderingManager {
101
97
  }
102
98
  /**
103
99
  * Dispose and release the group and its associated resources.
104
- * @hidden
100
+ * @internal
105
101
  */
106
102
  dispose() {
107
103
  this.freeRenderingGroups();
@@ -1 +1 @@
1
- {"version":3,"file":"renderingManager.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/renderingManager.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport type { SmartArray } from \"../Misc/smartArray\";\r\nimport type { ISpriteManager } from \"../Sprites/spriteManager\";\r\nimport type { IParticleSystem } from \"../Particles/IParticleSystem\";\r\nimport { RenderingGroup } from \"./renderingGroup\";\r\n\r\ndeclare type Scene = import(\"../scene\").Scene;\r\ndeclare type Camera = import(\"../Cameras/camera\").Camera;\r\ndeclare type Material = import(\"../Materials/material\").Material;\r\ndeclare type SubMesh = import(\"../Meshes/subMesh\").SubMesh;\r\ndeclare type AbstractMesh = import(\"../Meshes/abstractMesh\").AbstractMesh;\r\n\r\n/**\r\n * Interface describing the different options available in the rendering manager\r\n * regarding Auto Clear between groups.\r\n */\r\nexport interface IRenderingManagerAutoClearSetup {\r\n /**\r\n * Defines whether or not autoclear is enable.\r\n */\r\n autoClear: boolean;\r\n /**\r\n * Defines whether or not to autoclear the depth buffer.\r\n */\r\n depth: boolean;\r\n /**\r\n * Defines whether or not to autoclear the stencil buffer.\r\n */\r\n stencil: boolean;\r\n}\r\n\r\n/**\r\n * This class is used by the onRenderingGroupObservable\r\n */\r\nexport class RenderingGroupInfo {\r\n /**\r\n * The Scene that being rendered\r\n */\r\n scene: Scene;\r\n\r\n /**\r\n * The camera currently used for the rendering pass\r\n */\r\n camera: Nullable<Camera>;\r\n\r\n /**\r\n * The ID of the renderingGroup being processed\r\n */\r\n renderingGroupId: number;\r\n}\r\n\r\n/**\r\n * This is the manager responsible of all the rendering for meshes sprites and particles.\r\n * It is enable to manage the different groups as well as the different necessary sort functions.\r\n * This should not be used directly aside of the few static configurations\r\n */\r\nexport class RenderingManager {\r\n /**\r\n * The max id used for rendering groups (not included)\r\n */\r\n public static MAX_RENDERINGGROUPS = 4;\r\n\r\n /**\r\n * The min id used for rendering groups (included)\r\n */\r\n public static MIN_RENDERINGGROUPS = 0;\r\n\r\n /**\r\n * Used to globally prevent autoclearing scenes.\r\n */\r\n public static AUTOCLEAR = true;\r\n\r\n /**\r\n * @hidden\r\n */\r\n public _useSceneAutoClearSetup = false;\r\n\r\n private _scene: Scene;\r\n private _renderingGroups = new Array<RenderingGroup>();\r\n private _depthStencilBufferAlreadyCleaned: boolean;\r\n\r\n private _autoClearDepthStencil: { [id: number]: IRenderingManagerAutoClearSetup } = {};\r\n private _customOpaqueSortCompareFn: { [id: number]: Nullable<(a: SubMesh, b: SubMesh) => number> } = {};\r\n private _customAlphaTestSortCompareFn: { [id: number]: Nullable<(a: SubMesh, b: SubMesh) => number> } = {};\r\n private _customTransparentSortCompareFn: { [id: number]: Nullable<(a: SubMesh, b: SubMesh) => number> } = {};\r\n private _renderingGroupInfo: Nullable<RenderingGroupInfo> = new RenderingGroupInfo();\r\n\r\n /**\r\n * Instantiates a new rendering group for a particular scene\r\n * @param scene Defines the scene the groups belongs to\r\n */\r\n constructor(scene: Scene) {\r\n this._scene = scene;\r\n\r\n for (let i = RenderingManager.MIN_RENDERINGGROUPS; i < RenderingManager.MAX_RENDERINGGROUPS; i++) {\r\n this._autoClearDepthStencil[i] = { autoClear: true, depth: true, stencil: true };\r\n }\r\n }\r\n\r\n private _clearDepthStencilBuffer(depth = true, stencil = true): void {\r\n if (this._depthStencilBufferAlreadyCleaned) {\r\n return;\r\n }\r\n\r\n this._scene.getEngine().clear(null, false, depth, stencil);\r\n this._depthStencilBufferAlreadyCleaned = true;\r\n }\r\n\r\n /**\r\n * Renders the entire managed groups. This is used by the scene or the different render targets.\r\n * @param customRenderFunction\r\n * @param activeMeshes\r\n * @param renderParticles\r\n * @param renderSprites\r\n * @hidden\r\n */\r\n public render(\r\n customRenderFunction: Nullable<\r\n (\r\n opaqueSubMeshes: SmartArray<SubMesh>,\r\n transparentSubMeshes: SmartArray<SubMesh>,\r\n alphaTestSubMeshes: SmartArray<SubMesh>,\r\n depthOnlySubMeshes: SmartArray<SubMesh>\r\n ) => void\r\n >,\r\n activeMeshes: Nullable<AbstractMesh[]>,\r\n renderParticles: boolean,\r\n renderSprites: boolean\r\n ): void {\r\n // Update the observable context (not null as it only goes away on dispose)\r\n const info = this._renderingGroupInfo!;\r\n info.scene = this._scene;\r\n info.camera = this._scene.activeCamera;\r\n\r\n // Dispatch sprites\r\n if (this._scene.spriteManagers && renderSprites) {\r\n for (let index = 0; index < this._scene.spriteManagers.length; index++) {\r\n const manager = this._scene.spriteManagers[index];\r\n this.dispatchSprites(manager);\r\n }\r\n }\r\n\r\n // Render\r\n for (let index = RenderingManager.MIN_RENDERINGGROUPS; index < RenderingManager.MAX_RENDERINGGROUPS; index++) {\r\n this._depthStencilBufferAlreadyCleaned = index === RenderingManager.MIN_RENDERINGGROUPS;\r\n const renderingGroup = this._renderingGroups[index];\r\n if (!renderingGroup || renderingGroup._empty) {\r\n continue;\r\n }\r\n\r\n const renderingGroupMask = Math.pow(2, index);\r\n info.renderingGroupId = index;\r\n\r\n // Before Observable\r\n this._scene.onBeforeRenderingGroupObservable.notifyObservers(info, renderingGroupMask);\r\n\r\n // Clear depth/stencil if needed\r\n if (RenderingManager.AUTOCLEAR) {\r\n const autoClear = this._useSceneAutoClearSetup ? this._scene.getAutoClearDepthStencilSetup(index) : this._autoClearDepthStencil[index];\r\n\r\n if (autoClear && autoClear.autoClear) {\r\n this._clearDepthStencilBuffer(autoClear.depth, autoClear.stencil);\r\n }\r\n }\r\n\r\n // Render\r\n for (const step of this._scene._beforeRenderingGroupDrawStage) {\r\n step.action(index);\r\n }\r\n renderingGroup.render(customRenderFunction, renderSprites, renderParticles, activeMeshes);\r\n for (const step of this._scene._afterRenderingGroupDrawStage) {\r\n step.action(index);\r\n }\r\n\r\n // After Observable\r\n this._scene.onAfterRenderingGroupObservable.notifyObservers(info, renderingGroupMask);\r\n }\r\n }\r\n\r\n /**\r\n * Resets the different information of the group to prepare a new frame\r\n * @hidden\r\n */\r\n public reset(): void {\r\n for (let index = RenderingManager.MIN_RENDERINGGROUPS; index < RenderingManager.MAX_RENDERINGGROUPS; index++) {\r\n const renderingGroup = this._renderingGroups[index];\r\n if (renderingGroup) {\r\n renderingGroup.prepare();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Dispose and release the group and its associated resources.\r\n * @hidden\r\n */\r\n public dispose(): void {\r\n this.freeRenderingGroups();\r\n this._renderingGroups.length = 0;\r\n this._renderingGroupInfo = null;\r\n }\r\n\r\n /**\r\n * Clear the info related to rendering groups preventing retention points during dispose.\r\n */\r\n public freeRenderingGroups(): void {\r\n for (let index = RenderingManager.MIN_RENDERINGGROUPS; index < RenderingManager.MAX_RENDERINGGROUPS; index++) {\r\n const renderingGroup = this._renderingGroups[index];\r\n if (renderingGroup) {\r\n renderingGroup.dispose();\r\n }\r\n }\r\n }\r\n\r\n private _prepareRenderingGroup(renderingGroupId: number): void {\r\n if (this._renderingGroups[renderingGroupId] === undefined) {\r\n this._renderingGroups[renderingGroupId] = new RenderingGroup(\r\n renderingGroupId,\r\n this._scene,\r\n this._customOpaqueSortCompareFn[renderingGroupId],\r\n this._customAlphaTestSortCompareFn[renderingGroupId],\r\n this._customTransparentSortCompareFn[renderingGroupId]\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Add a sprite manager to the rendering manager in order to render it this frame.\r\n * @param spriteManager Define the sprite manager to render\r\n */\r\n public dispatchSprites(spriteManager: ISpriteManager) {\r\n const renderingGroupId = spriteManager.renderingGroupId || 0;\r\n\r\n this._prepareRenderingGroup(renderingGroupId);\r\n\r\n this._renderingGroups[renderingGroupId].dispatchSprites(spriteManager);\r\n }\r\n\r\n /**\r\n * Add a particle system to the rendering manager in order to render it this frame.\r\n * @param particleSystem Define the particle system to render\r\n */\r\n public dispatchParticles(particleSystem: IParticleSystem) {\r\n const renderingGroupId = particleSystem.renderingGroupId || 0;\r\n\r\n this._prepareRenderingGroup(renderingGroupId);\r\n\r\n this._renderingGroups[renderingGroupId].dispatchParticles(particleSystem);\r\n }\r\n\r\n /**\r\n * Add a submesh to the manager in order to render it this frame\r\n * @param subMesh The submesh to dispatch\r\n * @param mesh Optional reference to the submeshes's mesh. Provide if you have an exiting reference to improve performance.\r\n * @param material Optional reference to the submeshes's material. Provide if you have an exiting reference to improve performance.\r\n */\r\n public dispatch(subMesh: SubMesh, mesh?: AbstractMesh, material?: Nullable<Material>): void {\r\n if (mesh === undefined) {\r\n mesh = subMesh.getMesh();\r\n }\r\n const renderingGroupId = mesh.renderingGroupId || 0;\r\n\r\n this._prepareRenderingGroup(renderingGroupId);\r\n\r\n this._renderingGroups[renderingGroupId].dispatch(subMesh, mesh, material);\r\n }\r\n\r\n /**\r\n * Overrides the default sort function applied in the rendering group to prepare the meshes.\r\n * This allowed control for front to back rendering or reversely depending of the special needs.\r\n *\r\n * @param renderingGroupId The rendering group id corresponding to its index\r\n * @param opaqueSortCompareFn The opaque queue comparison function use to sort.\r\n * @param alphaTestSortCompareFn The alpha test queue comparison function use to sort.\r\n * @param transparentSortCompareFn The transparent queue comparison function use to sort.\r\n */\r\n public setRenderingOrder(\r\n renderingGroupId: number,\r\n opaqueSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null,\r\n alphaTestSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null,\r\n transparentSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null\r\n ) {\r\n this._customOpaqueSortCompareFn[renderingGroupId] = opaqueSortCompareFn;\r\n this._customAlphaTestSortCompareFn[renderingGroupId] = alphaTestSortCompareFn;\r\n this._customTransparentSortCompareFn[renderingGroupId] = transparentSortCompareFn;\r\n\r\n if (this._renderingGroups[renderingGroupId]) {\r\n const group = this._renderingGroups[renderingGroupId];\r\n group.opaqueSortCompareFn = this._customOpaqueSortCompareFn[renderingGroupId];\r\n group.alphaTestSortCompareFn = this._customAlphaTestSortCompareFn[renderingGroupId];\r\n group.transparentSortCompareFn = this._customTransparentSortCompareFn[renderingGroupId];\r\n }\r\n }\r\n\r\n /**\r\n * Specifies whether or not the stencil and depth buffer are cleared between two rendering groups.\r\n *\r\n * @param renderingGroupId The rendering group id corresponding to its index\r\n * @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.\r\n * @param depth Automatically clears depth between groups if true and autoClear is true.\r\n * @param stencil Automatically clears stencil between groups if true and autoClear is true.\r\n */\r\n public setRenderingAutoClearDepthStencil(renderingGroupId: number, autoClearDepthStencil: boolean, depth = true, stencil = true): void {\r\n this._autoClearDepthStencil[renderingGroupId] = {\r\n autoClear: autoClearDepthStencil,\r\n depth: depth,\r\n stencil: stencil,\r\n };\r\n }\r\n\r\n /**\r\n * Gets the current auto clear configuration for one rendering group of the rendering\r\n * manager.\r\n * @param index the rendering group index to get the information for\r\n * @returns The auto clear setup for the requested rendering group\r\n */\r\n public getAutoClearDepthStencilSetup(index: number): IRenderingManagerAutoClearSetup {\r\n return this._autoClearDepthStencil[index];\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"renderingManager.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/renderingManager.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport type { SmartArray } from \"../Misc/smartArray\";\r\nimport type { ISpriteManager } from \"../Sprites/spriteManager\";\r\nimport type { IParticleSystem } from \"../Particles/IParticleSystem\";\r\nimport { RenderingGroup } from \"./renderingGroup\";\r\n\r\ndeclare type Scene = import(\"../scene\").Scene;\r\ndeclare type Camera = import(\"../Cameras/camera\").Camera;\r\ndeclare type Material = import(\"../Materials/material\").Material;\r\ndeclare type SubMesh = import(\"../Meshes/subMesh\").SubMesh;\r\ndeclare type AbstractMesh = import(\"../Meshes/abstractMesh\").AbstractMesh;\r\n\r\n/**\r\n * Interface describing the different options available in the rendering manager\r\n * regarding Auto Clear between groups.\r\n */\r\nexport interface IRenderingManagerAutoClearSetup {\r\n /**\r\n * Defines whether or not autoclear is enable.\r\n */\r\n autoClear: boolean;\r\n /**\r\n * Defines whether or not to autoclear the depth buffer.\r\n */\r\n depth: boolean;\r\n /**\r\n * Defines whether or not to autoclear the stencil buffer.\r\n */\r\n stencil: boolean;\r\n}\r\n\r\n/**\r\n * This class is used by the onRenderingGroupObservable\r\n */\r\nexport class RenderingGroupInfo {\r\n /**\r\n * The Scene that being rendered\r\n */\r\n scene: Scene;\r\n\r\n /**\r\n * The camera currently used for the rendering pass\r\n */\r\n camera: Nullable<Camera>;\r\n\r\n /**\r\n * The ID of the renderingGroup being processed\r\n */\r\n renderingGroupId: number;\r\n}\r\n\r\n/**\r\n * This is the manager responsible of all the rendering for meshes sprites and particles.\r\n * It is enable to manage the different groups as well as the different necessary sort functions.\r\n * This should not be used directly aside of the few static configurations\r\n */\r\nexport class RenderingManager {\r\n /**\r\n * The max id used for rendering groups (not included)\r\n */\r\n public static MAX_RENDERINGGROUPS = 4;\r\n\r\n /**\r\n * The min id used for rendering groups (included)\r\n */\r\n public static MIN_RENDERINGGROUPS = 0;\r\n\r\n /**\r\n * Used to globally prevent autoclearing scenes.\r\n */\r\n public static AUTOCLEAR = true;\r\n\r\n /**\r\n * @internal\r\n */\r\n public _useSceneAutoClearSetup = false;\r\n\r\n private _scene: Scene;\r\n private _renderingGroups = new Array<RenderingGroup>();\r\n private _depthStencilBufferAlreadyCleaned: boolean;\r\n\r\n private _autoClearDepthStencil: { [id: number]: IRenderingManagerAutoClearSetup } = {};\r\n private _customOpaqueSortCompareFn: { [id: number]: Nullable<(a: SubMesh, b: SubMesh) => number> } = {};\r\n private _customAlphaTestSortCompareFn: { [id: number]: Nullable<(a: SubMesh, b: SubMesh) => number> } = {};\r\n private _customTransparentSortCompareFn: { [id: number]: Nullable<(a: SubMesh, b: SubMesh) => number> } = {};\r\n private _renderingGroupInfo: Nullable<RenderingGroupInfo> = new RenderingGroupInfo();\r\n\r\n /**\r\n * Instantiates a new rendering group for a particular scene\r\n * @param scene Defines the scene the groups belongs to\r\n */\r\n constructor(scene: Scene) {\r\n this._scene = scene;\r\n\r\n for (let i = RenderingManager.MIN_RENDERINGGROUPS; i < RenderingManager.MAX_RENDERINGGROUPS; i++) {\r\n this._autoClearDepthStencil[i] = { autoClear: true, depth: true, stencil: true };\r\n }\r\n }\r\n\r\n private _clearDepthStencilBuffer(depth = true, stencil = true): void {\r\n if (this._depthStencilBufferAlreadyCleaned) {\r\n return;\r\n }\r\n\r\n this._scene.getEngine().clear(null, false, depth, stencil);\r\n this._depthStencilBufferAlreadyCleaned = true;\r\n }\r\n\r\n /**\r\n * Renders the entire managed groups. This is used by the scene or the different render targets.\r\n * @internal\r\n */\r\n public render(\r\n customRenderFunction: Nullable<\r\n (\r\n opaqueSubMeshes: SmartArray<SubMesh>,\r\n transparentSubMeshes: SmartArray<SubMesh>,\r\n alphaTestSubMeshes: SmartArray<SubMesh>,\r\n depthOnlySubMeshes: SmartArray<SubMesh>\r\n ) => void\r\n >,\r\n activeMeshes: Nullable<AbstractMesh[]>,\r\n renderParticles: boolean,\r\n renderSprites: boolean\r\n ): void {\r\n // Update the observable context (not null as it only goes away on dispose)\r\n const info = this._renderingGroupInfo!;\r\n info.scene = this._scene;\r\n info.camera = this._scene.activeCamera;\r\n\r\n // Dispatch sprites\r\n if (this._scene.spriteManagers && renderSprites) {\r\n for (let index = 0; index < this._scene.spriteManagers.length; index++) {\r\n const manager = this._scene.spriteManagers[index];\r\n this.dispatchSprites(manager);\r\n }\r\n }\r\n\r\n // Render\r\n for (let index = RenderingManager.MIN_RENDERINGGROUPS; index < RenderingManager.MAX_RENDERINGGROUPS; index++) {\r\n this._depthStencilBufferAlreadyCleaned = index === RenderingManager.MIN_RENDERINGGROUPS;\r\n const renderingGroup = this._renderingGroups[index];\r\n if (!renderingGroup || renderingGroup._empty) {\r\n continue;\r\n }\r\n\r\n const renderingGroupMask = Math.pow(2, index);\r\n info.renderingGroupId = index;\r\n\r\n // Before Observable\r\n this._scene.onBeforeRenderingGroupObservable.notifyObservers(info, renderingGroupMask);\r\n\r\n // Clear depth/stencil if needed\r\n if (RenderingManager.AUTOCLEAR) {\r\n const autoClear = this._useSceneAutoClearSetup ? this._scene.getAutoClearDepthStencilSetup(index) : this._autoClearDepthStencil[index];\r\n\r\n if (autoClear && autoClear.autoClear) {\r\n this._clearDepthStencilBuffer(autoClear.depth, autoClear.stencil);\r\n }\r\n }\r\n\r\n // Render\r\n for (const step of this._scene._beforeRenderingGroupDrawStage) {\r\n step.action(index);\r\n }\r\n renderingGroup.render(customRenderFunction, renderSprites, renderParticles, activeMeshes);\r\n for (const step of this._scene._afterRenderingGroupDrawStage) {\r\n step.action(index);\r\n }\r\n\r\n // After Observable\r\n this._scene.onAfterRenderingGroupObservable.notifyObservers(info, renderingGroupMask);\r\n }\r\n }\r\n\r\n /**\r\n * Resets the different information of the group to prepare a new frame\r\n * @internal\r\n */\r\n public reset(): void {\r\n for (let index = RenderingManager.MIN_RENDERINGGROUPS; index < RenderingManager.MAX_RENDERINGGROUPS; index++) {\r\n const renderingGroup = this._renderingGroups[index];\r\n if (renderingGroup) {\r\n renderingGroup.prepare();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Dispose and release the group and its associated resources.\r\n * @internal\r\n */\r\n public dispose(): void {\r\n this.freeRenderingGroups();\r\n this._renderingGroups.length = 0;\r\n this._renderingGroupInfo = null;\r\n }\r\n\r\n /**\r\n * Clear the info related to rendering groups preventing retention points during dispose.\r\n */\r\n public freeRenderingGroups(): void {\r\n for (let index = RenderingManager.MIN_RENDERINGGROUPS; index < RenderingManager.MAX_RENDERINGGROUPS; index++) {\r\n const renderingGroup = this._renderingGroups[index];\r\n if (renderingGroup) {\r\n renderingGroup.dispose();\r\n }\r\n }\r\n }\r\n\r\n private _prepareRenderingGroup(renderingGroupId: number): void {\r\n if (this._renderingGroups[renderingGroupId] === undefined) {\r\n this._renderingGroups[renderingGroupId] = new RenderingGroup(\r\n renderingGroupId,\r\n this._scene,\r\n this._customOpaqueSortCompareFn[renderingGroupId],\r\n this._customAlphaTestSortCompareFn[renderingGroupId],\r\n this._customTransparentSortCompareFn[renderingGroupId]\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Add a sprite manager to the rendering manager in order to render it this frame.\r\n * @param spriteManager Define the sprite manager to render\r\n */\r\n public dispatchSprites(spriteManager: ISpriteManager) {\r\n const renderingGroupId = spriteManager.renderingGroupId || 0;\r\n\r\n this._prepareRenderingGroup(renderingGroupId);\r\n\r\n this._renderingGroups[renderingGroupId].dispatchSprites(spriteManager);\r\n }\r\n\r\n /**\r\n * Add a particle system to the rendering manager in order to render it this frame.\r\n * @param particleSystem Define the particle system to render\r\n */\r\n public dispatchParticles(particleSystem: IParticleSystem) {\r\n const renderingGroupId = particleSystem.renderingGroupId || 0;\r\n\r\n this._prepareRenderingGroup(renderingGroupId);\r\n\r\n this._renderingGroups[renderingGroupId].dispatchParticles(particleSystem);\r\n }\r\n\r\n /**\r\n * Add a submesh to the manager in order to render it this frame\r\n * @param subMesh The submesh to dispatch\r\n * @param mesh Optional reference to the submeshes's mesh. Provide if you have an exiting reference to improve performance.\r\n * @param material Optional reference to the submeshes's material. Provide if you have an exiting reference to improve performance.\r\n */\r\n public dispatch(subMesh: SubMesh, mesh?: AbstractMesh, material?: Nullable<Material>): void {\r\n if (mesh === undefined) {\r\n mesh = subMesh.getMesh();\r\n }\r\n const renderingGroupId = mesh.renderingGroupId || 0;\r\n\r\n this._prepareRenderingGroup(renderingGroupId);\r\n\r\n this._renderingGroups[renderingGroupId].dispatch(subMesh, mesh, material);\r\n }\r\n\r\n /**\r\n * Overrides the default sort function applied in the rendering group to prepare the meshes.\r\n * This allowed control for front to back rendering or reversely depending of the special needs.\r\n *\r\n * @param renderingGroupId The rendering group id corresponding to its index\r\n * @param opaqueSortCompareFn The opaque queue comparison function use to sort.\r\n * @param alphaTestSortCompareFn The alpha test queue comparison function use to sort.\r\n * @param transparentSortCompareFn The transparent queue comparison function use to sort.\r\n */\r\n public setRenderingOrder(\r\n renderingGroupId: number,\r\n opaqueSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null,\r\n alphaTestSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null,\r\n transparentSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number> = null\r\n ) {\r\n this._customOpaqueSortCompareFn[renderingGroupId] = opaqueSortCompareFn;\r\n this._customAlphaTestSortCompareFn[renderingGroupId] = alphaTestSortCompareFn;\r\n this._customTransparentSortCompareFn[renderingGroupId] = transparentSortCompareFn;\r\n\r\n if (this._renderingGroups[renderingGroupId]) {\r\n const group = this._renderingGroups[renderingGroupId];\r\n group.opaqueSortCompareFn = this._customOpaqueSortCompareFn[renderingGroupId];\r\n group.alphaTestSortCompareFn = this._customAlphaTestSortCompareFn[renderingGroupId];\r\n group.transparentSortCompareFn = this._customTransparentSortCompareFn[renderingGroupId];\r\n }\r\n }\r\n\r\n /**\r\n * Specifies whether or not the stencil and depth buffer are cleared between two rendering groups.\r\n *\r\n * @param renderingGroupId The rendering group id corresponding to its index\r\n * @param autoClearDepthStencil Automatically clears depth and stencil between groups if true.\r\n * @param depth Automatically clears depth between groups if true and autoClear is true.\r\n * @param stencil Automatically clears stencil between groups if true and autoClear is true.\r\n */\r\n public setRenderingAutoClearDepthStencil(renderingGroupId: number, autoClearDepthStencil: boolean, depth = true, stencil = true): void {\r\n this._autoClearDepthStencil[renderingGroupId] = {\r\n autoClear: autoClearDepthStencil,\r\n depth: depth,\r\n stencil: stencil,\r\n };\r\n }\r\n\r\n /**\r\n * Gets the current auto clear configuration for one rendering group of the rendering\r\n * manager.\r\n * @param index the rendering group index to get the information for\r\n * @returns The auto clear setup for the requested rendering group\r\n */\r\n public getAutoClearDepthStencilSetup(index: number): IRenderingManagerAutoClearSetup {\r\n return this._autoClearDepthStencil[index];\r\n }\r\n}\r\n"]}
@@ -8,8 +8,7 @@ import type { PrePassEffectConfiguration } from "./prePassEffectConfiguration";
8
8
  */
9
9
  export declare class SubSurfaceConfiguration implements PrePassEffectConfiguration {
10
10
  /**
11
- * @param _
12
- * @hidden
11
+ * @internal
13
12
  */
14
13
  static _SceneComponentInitialization: (scene: Scene) => void;
15
14
  private _ssDiffusionS;
@@ -69,12 +68,12 @@ export declare class SubSurfaceConfiguration implements PrePassEffectConfigurati
69
68
  * Adds a new diffusion profile.
70
69
  * Useful for more realistic subsurface scattering on diverse materials.
71
70
  * @param color The color of the diffusion profile. Should be the average color of the material.
72
- * @return The index of the diffusion profile for the material subsurface configuration
71
+ * @returns The index of the diffusion profile for the material subsurface configuration
73
72
  */
74
73
  addDiffusionProfile(color: Color3): number;
75
74
  /**
76
75
  * Creates the sss post process
77
- * @return The created post process
76
+ * @returns The created post process
78
77
  */
79
78
  createPostProcess(): SubSurfaceScatteringPostProcess;
80
79
  /**
@@ -87,8 +86,7 @@ export declare class SubSurfaceConfiguration implements PrePassEffectConfigurati
87
86
  */
88
87
  dispose(): void;
89
88
  /**
90
- * @param color
91
- * @hidden
89
+ * @internal
92
90
  * https://zero-radiance.github.io/post/sampling-diffusion/
93
91
  *
94
92
  * Importance sample the normalized diffuse reflectance profile for the computed value of 's'.
@@ -77,7 +77,7 @@ export class SubSurfaceConfiguration {
77
77
  * Adds a new diffusion profile.
78
78
  * Useful for more realistic subsurface scattering on diverse materials.
79
79
  * @param color The color of the diffusion profile. Should be the average color of the material.
80
- * @return The index of the diffusion profile for the material subsurface configuration
80
+ * @returns The index of the diffusion profile for the material subsurface configuration
81
81
  */
82
82
  addDiffusionProfile(color) {
83
83
  if (this.ssDiffusionD.length >= 5) {
@@ -99,7 +99,7 @@ export class SubSurfaceConfiguration {
99
99
  }
100
100
  /**
101
101
  * Creates the sss post process
102
- * @return The created post process
102
+ * @returns The created post process
103
103
  */
104
104
  createPostProcess() {
105
105
  this.postProcess = new SubSurfaceScatteringPostProcess("subSurfaceScattering", this._scene, 1, null, undefined, this._scene.getEngine());
@@ -126,8 +126,7 @@ export class SubSurfaceConfiguration {
126
126
  }
127
127
  }
128
128
  /**
129
- * @param color
130
- * @hidden
129
+ * @internal
131
130
  * https://zero-radiance.github.io/post/sampling-diffusion/
132
131
  *
133
132
  * Importance sample the normalized diffuse reflectance profile for the computed value of 's'.
@@ -162,8 +161,7 @@ export class SubSurfaceConfiguration {
162
161
  }
163
162
  }
164
163
  /**
165
- * @param _
166
- * @hidden
164
+ * @internal
167
165
  */
168
166
  SubSurfaceConfiguration._SceneComponentInitialization = (_) => {
169
167
  throw _WarnImport("SubSurfaceSceneComponent");
@@ -1 +1 @@
1
- {"version":3,"file":"subSurfaceConfiguration.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/subSurfaceConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["import { Logger } from \"../Misc/logger\";\r\nimport type { Scene } from \"../scene\";\r\nimport { Color3 } from \"../Maths/math.color\";\r\nimport { SubSurfaceScatteringPostProcess } from \"../PostProcesses/subSurfaceScatteringPostProcess\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport type { PrePassEffectConfiguration } from \"./prePassEffectConfiguration\";\r\nimport { _WarnImport } from \"../Misc/devTools\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\n/**\r\n * Contains all parameters needed for the prepass to perform\r\n * screen space subsurface scattering\r\n */\r\nexport class SubSurfaceConfiguration implements PrePassEffectConfiguration {\r\n /**\r\n * @param _\r\n * @hidden\r\n */\r\n public static _SceneComponentInitialization: (scene: Scene) => void = (_) => {\r\n throw _WarnImport(\"SubSurfaceSceneComponent\");\r\n };\r\n\r\n private _ssDiffusionS: number[] = [];\r\n private _ssFilterRadii: number[] = [];\r\n private _ssDiffusionD: number[] = [];\r\n\r\n /**\r\n * Post process to attach for screen space subsurface scattering\r\n */\r\n public postProcess: SubSurfaceScatteringPostProcess;\r\n\r\n /**\r\n * Diffusion profile color for subsurface scattering\r\n */\r\n public get ssDiffusionS() {\r\n return this._ssDiffusionS;\r\n }\r\n\r\n /**\r\n * Diffusion profile max color channel value for subsurface scattering\r\n */\r\n public get ssDiffusionD() {\r\n return this._ssDiffusionD;\r\n }\r\n\r\n /**\r\n * Diffusion profile filter radius for subsurface scattering\r\n */\r\n public get ssFilterRadii() {\r\n return this._ssFilterRadii;\r\n }\r\n\r\n /**\r\n * Is subsurface enabled\r\n */\r\n public enabled = false;\r\n\r\n /**\r\n * Does the output of this prepass need to go through imageprocessing\r\n */\r\n public needsImageProcessing = true;\r\n\r\n /**\r\n * Name of the configuration\r\n */\r\n public name = SceneComponentConstants.NAME_SUBSURFACE;\r\n\r\n /**\r\n * Diffusion profile colors for subsurface scattering\r\n * You can add one diffusion color using `addDiffusionProfile` on `scene.prePassRenderer`\r\n * See ...\r\n * Note that you can only store up to 5 of them\r\n */\r\n public ssDiffusionProfileColors: Color3[] = [];\r\n\r\n /**\r\n * Defines the ratio real world => scene units.\r\n * Used for subsurface scattering\r\n */\r\n public metersPerUnit: number = 1;\r\n\r\n /**\r\n * Textures that should be present in the MRT for this effect to work\r\n */\r\n public readonly texturesRequired: number[] = [\r\n Constants.PREPASS_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_ALBEDO_SQRT_TEXTURE_TYPE,\r\n Constants.PREPASS_COLOR_TEXTURE_TYPE,\r\n Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE,\r\n ];\r\n\r\n private _scene: Scene;\r\n\r\n /**\r\n * Builds a subsurface configuration object\r\n * @param scene The scene\r\n */\r\n constructor(scene: Scene) {\r\n // Adding default diffusion profile\r\n this.addDiffusionProfile(new Color3(1, 1, 1));\r\n this._scene = scene;\r\n\r\n SubSurfaceConfiguration._SceneComponentInitialization(this._scene);\r\n }\r\n\r\n /**\r\n * Adds a new diffusion profile.\r\n * Useful for more realistic subsurface scattering on diverse materials.\r\n * @param color The color of the diffusion profile. Should be the average color of the material.\r\n * @return The index of the diffusion profile for the material subsurface configuration\r\n */\r\n public addDiffusionProfile(color: Color3): number {\r\n if (this.ssDiffusionD.length >= 5) {\r\n // We only suppport 5 diffusion profiles\r\n Logger.Error(\"You already reached the maximum number of diffusion profiles.\");\r\n return 0; // default profile\r\n }\r\n\r\n // Do not add doubles\r\n for (let i = 0; i < this._ssDiffusionS.length / 3; i++) {\r\n if (this._ssDiffusionS[i * 3] === color.r && this._ssDiffusionS[i * 3 + 1] === color.g && this._ssDiffusionS[i * 3 + 2] === color.b) {\r\n return i;\r\n }\r\n }\r\n\r\n this._ssDiffusionS.push(color.r, color.b, color.g);\r\n this._ssDiffusionD.push(Math.max(Math.max(color.r, color.b), color.g));\r\n this._ssFilterRadii.push(this.getDiffusionProfileParameters(color));\r\n this.ssDiffusionProfileColors.push(color);\r\n\r\n return this._ssDiffusionD.length - 1;\r\n }\r\n\r\n /**\r\n * Creates the sss post process\r\n * @return The created post process\r\n */\r\n public createPostProcess(): SubSurfaceScatteringPostProcess {\r\n this.postProcess = new SubSurfaceScatteringPostProcess(\"subSurfaceScattering\", this._scene, 1, null, undefined, this._scene.getEngine());\r\n this.postProcess.autoClear = false;\r\n\r\n return this.postProcess;\r\n }\r\n\r\n /**\r\n * Deletes all diffusion profiles.\r\n * Note that in order to render subsurface scattering, you should have at least 1 diffusion profile.\r\n */\r\n public clearAllDiffusionProfiles() {\r\n this._ssDiffusionD = [];\r\n this._ssDiffusionS = [];\r\n this._ssFilterRadii = [];\r\n this.ssDiffusionProfileColors = [];\r\n }\r\n\r\n /**\r\n * Disposes this object\r\n */\r\n public dispose() {\r\n this.clearAllDiffusionProfiles();\r\n if (this.postProcess) {\r\n this.postProcess.dispose();\r\n }\r\n }\r\n\r\n /**\r\n * @param color\r\n * @hidden\r\n * https://zero-radiance.github.io/post/sampling-diffusion/\r\n *\r\n * Importance sample the normalized diffuse reflectance profile for the computed value of 's'.\r\n * ------------------------------------------------------------------------------------\r\n * R[r, phi, s] = s * (Exp[-r * s] + Exp[-r * s / 3]) / (8 * Pi * r)\r\n * PDF[r, phi, s] = r * R[r, phi, s]\r\n * CDF[r, s] = 1 - 1/4 * Exp[-r * s] - 3/4 * Exp[-r * s / 3]\r\n * ------------------------------------------------------------------------------------\r\n * We importance sample the color channel with the widest scattering distance.\r\n */\r\n public getDiffusionProfileParameters(color: Color3) {\r\n const cdf = 0.997;\r\n const maxScatteringDistance = Math.max(color.r, color.g, color.b);\r\n\r\n return this._sampleBurleyDiffusionProfile(cdf, maxScatteringDistance);\r\n }\r\n\r\n /**\r\n * Performs sampling of a Normalized Burley diffusion profile in polar coordinates.\r\n * 'u' is the random number (the value of the CDF): [0, 1).\r\n * rcp(s) = 1 / ShapeParam = ScatteringDistance.\r\n * Returns the sampled radial distance, s.t. (u = 0 -> r = 0) and (u = 1 -> r = Inf).\r\n * @param u\r\n * @param rcpS\r\n */\r\n private _sampleBurleyDiffusionProfile(u: number, rcpS: number) {\r\n u = 1 - u; // Convert CDF to CCDF\r\n\r\n const g = 1 + 4 * u * (2 * u + Math.sqrt(1 + 4 * u * u));\r\n const n = Math.pow(g, -1.0 / 3.0); // g^(-1/3)\r\n const p = g * n * n; // g^(+1/3)\r\n const c = 1 + p + n; // 1 + g^(+1/3) + g^(-1/3)\r\n const x = 3 * Math.log(c / (4 * u));\r\n\r\n return x * rcpS;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"subSurfaceConfiguration.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Rendering/subSurfaceConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["import { Logger } from \"../Misc/logger\";\r\nimport type { Scene } from \"../scene\";\r\nimport { Color3 } from \"../Maths/math.color\";\r\nimport { SubSurfaceScatteringPostProcess } from \"../PostProcesses/subSurfaceScatteringPostProcess\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport type { PrePassEffectConfiguration } from \"./prePassEffectConfiguration\";\r\nimport { _WarnImport } from \"../Misc/devTools\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\n/**\r\n * Contains all parameters needed for the prepass to perform\r\n * screen space subsurface scattering\r\n */\r\nexport class SubSurfaceConfiguration implements PrePassEffectConfiguration {\r\n /**\r\n * @internal\r\n */\r\n public static _SceneComponentInitialization: (scene: Scene) => void = (_) => {\r\n throw _WarnImport(\"SubSurfaceSceneComponent\");\r\n };\r\n\r\n private _ssDiffusionS: number[] = [];\r\n private _ssFilterRadii: number[] = [];\r\n private _ssDiffusionD: number[] = [];\r\n\r\n /**\r\n * Post process to attach for screen space subsurface scattering\r\n */\r\n public postProcess: SubSurfaceScatteringPostProcess;\r\n\r\n /**\r\n * Diffusion profile color for subsurface scattering\r\n */\r\n public get ssDiffusionS() {\r\n return this._ssDiffusionS;\r\n }\r\n\r\n /**\r\n * Diffusion profile max color channel value for subsurface scattering\r\n */\r\n public get ssDiffusionD() {\r\n return this._ssDiffusionD;\r\n }\r\n\r\n /**\r\n * Diffusion profile filter radius for subsurface scattering\r\n */\r\n public get ssFilterRadii() {\r\n return this._ssFilterRadii;\r\n }\r\n\r\n /**\r\n * Is subsurface enabled\r\n */\r\n public enabled = false;\r\n\r\n /**\r\n * Does the output of this prepass need to go through imageprocessing\r\n */\r\n public needsImageProcessing = true;\r\n\r\n /**\r\n * Name of the configuration\r\n */\r\n public name = SceneComponentConstants.NAME_SUBSURFACE;\r\n\r\n /**\r\n * Diffusion profile colors for subsurface scattering\r\n * You can add one diffusion color using `addDiffusionProfile` on `scene.prePassRenderer`\r\n * See ...\r\n * Note that you can only store up to 5 of them\r\n */\r\n public ssDiffusionProfileColors: Color3[] = [];\r\n\r\n /**\r\n * Defines the ratio real world => scene units.\r\n * Used for subsurface scattering\r\n */\r\n public metersPerUnit: number = 1;\r\n\r\n /**\r\n * Textures that should be present in the MRT for this effect to work\r\n */\r\n public readonly texturesRequired: number[] = [\r\n Constants.PREPASS_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_ALBEDO_SQRT_TEXTURE_TYPE,\r\n Constants.PREPASS_COLOR_TEXTURE_TYPE,\r\n Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE,\r\n ];\r\n\r\n private _scene: Scene;\r\n\r\n /**\r\n * Builds a subsurface configuration object\r\n * @param scene The scene\r\n */\r\n constructor(scene: Scene) {\r\n // Adding default diffusion profile\r\n this.addDiffusionProfile(new Color3(1, 1, 1));\r\n this._scene = scene;\r\n\r\n SubSurfaceConfiguration._SceneComponentInitialization(this._scene);\r\n }\r\n\r\n /**\r\n * Adds a new diffusion profile.\r\n * Useful for more realistic subsurface scattering on diverse materials.\r\n * @param color The color of the diffusion profile. Should be the average color of the material.\r\n * @returns The index of the diffusion profile for the material subsurface configuration\r\n */\r\n public addDiffusionProfile(color: Color3): number {\r\n if (this.ssDiffusionD.length >= 5) {\r\n // We only suppport 5 diffusion profiles\r\n Logger.Error(\"You already reached the maximum number of diffusion profiles.\");\r\n return 0; // default profile\r\n }\r\n\r\n // Do not add doubles\r\n for (let i = 0; i < this._ssDiffusionS.length / 3; i++) {\r\n if (this._ssDiffusionS[i * 3] === color.r && this._ssDiffusionS[i * 3 + 1] === color.g && this._ssDiffusionS[i * 3 + 2] === color.b) {\r\n return i;\r\n }\r\n }\r\n\r\n this._ssDiffusionS.push(color.r, color.b, color.g);\r\n this._ssDiffusionD.push(Math.max(Math.max(color.r, color.b), color.g));\r\n this._ssFilterRadii.push(this.getDiffusionProfileParameters(color));\r\n this.ssDiffusionProfileColors.push(color);\r\n\r\n return this._ssDiffusionD.length - 1;\r\n }\r\n\r\n /**\r\n * Creates the sss post process\r\n * @returns The created post process\r\n */\r\n public createPostProcess(): SubSurfaceScatteringPostProcess {\r\n this.postProcess = new SubSurfaceScatteringPostProcess(\"subSurfaceScattering\", this._scene, 1, null, undefined, this._scene.getEngine());\r\n this.postProcess.autoClear = false;\r\n\r\n return this.postProcess;\r\n }\r\n\r\n /**\r\n * Deletes all diffusion profiles.\r\n * Note that in order to render subsurface scattering, you should have at least 1 diffusion profile.\r\n */\r\n public clearAllDiffusionProfiles() {\r\n this._ssDiffusionD = [];\r\n this._ssDiffusionS = [];\r\n this._ssFilterRadii = [];\r\n this.ssDiffusionProfileColors = [];\r\n }\r\n\r\n /**\r\n * Disposes this object\r\n */\r\n public dispose() {\r\n this.clearAllDiffusionProfiles();\r\n if (this.postProcess) {\r\n this.postProcess.dispose();\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n * https://zero-radiance.github.io/post/sampling-diffusion/\r\n *\r\n * Importance sample the normalized diffuse reflectance profile for the computed value of 's'.\r\n * ------------------------------------------------------------------------------------\r\n * R[r, phi, s] = s * (Exp[-r * s] + Exp[-r * s / 3]) / (8 * Pi * r)\r\n * PDF[r, phi, s] = r * R[r, phi, s]\r\n * CDF[r, s] = 1 - 1/4 * Exp[-r * s] - 3/4 * Exp[-r * s / 3]\r\n * ------------------------------------------------------------------------------------\r\n * We importance sample the color channel with the widest scattering distance.\r\n */\r\n public getDiffusionProfileParameters(color: Color3) {\r\n const cdf = 0.997;\r\n const maxScatteringDistance = Math.max(color.r, color.g, color.b);\r\n\r\n return this._sampleBurleyDiffusionProfile(cdf, maxScatteringDistance);\r\n }\r\n\r\n /**\r\n * Performs sampling of a Normalized Burley diffusion profile in polar coordinates.\r\n * 'u' is the random number (the value of the CDF): [0, 1).\r\n * rcp(s) = 1 / ShapeParam = ScatteringDistance.\r\n * Returns the sampled radial distance, s.t. (u = 0 -> r = 0) and (u = 1 -> r = Inf).\r\n * @param u\r\n * @param rcpS\r\n */\r\n private _sampleBurleyDiffusionProfile(u: number, rcpS: number) {\r\n u = 1 - u; // Convert CDF to CCDF\r\n\r\n const g = 1 + 4 * u * (2 * u + Math.sqrt(1 + 4 * u * u));\r\n const n = Math.pow(g, -1.0 / 3.0); // g^(-1/3)\r\n const p = g * n * n; // g^(+1/3)\r\n const c = 1 + p + n; // 1 + g^(+1/3) + g^(-1/3)\r\n const x = 3 * Math.log(c / (4 * u));\r\n\r\n return x * rcpS;\r\n }\r\n}\r\n"]}
@@ -4,7 +4,7 @@ import type { ISceneSerializableComponent } from "../sceneComponent";
4
4
  import { SubSurfaceConfiguration } from "./subSurfaceConfiguration";
5
5
  declare module "../abstractScene" {
6
6
  interface AbstractScene {
7
- /** @hidden (Backing field) */
7
+ /** @internal (Backing field) */
8
8
  _subSurfaceConfiguration: Nullable<SubSurfaceConfiguration>;
9
9
  /**
10
10
  * Gets or Sets the current prepass renderer associated to the scene.