@babylonjs/core 5.24.0 → 5.26.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 (1729) hide show
  1. package/Actions/action.d.ts +12 -21
  2. package/Actions/action.js +8 -17
  3. package/Actions/action.js.map +1 -1
  4. package/Actions/actionManager.d.ts +2 -5
  5. package/Actions/actionManager.js +2 -5
  6. package/Actions/actionManager.js.map +1 -1
  7. package/Actions/condition.d.ts +9 -50
  8. package/Actions/condition.js +3 -26
  9. package/Actions/condition.js.map +1 -1
  10. package/Actions/directActions.d.ts +7 -7
  11. package/Actions/directActions.js +7 -7
  12. package/Actions/directActions.js.map +1 -1
  13. package/Actions/directAudioActions.d.ts +2 -2
  14. package/Actions/directAudioActions.js +2 -2
  15. package/Actions/directAudioActions.js.map +1 -1
  16. package/Actions/interpolateValueAction.d.ts +1 -1
  17. package/Actions/interpolateValueAction.js +1 -1
  18. package/Actions/interpolateValueAction.js.map +1 -1
  19. package/Animations/animatable.d.ts +5 -6
  20. package/Animations/animatable.js +1 -2
  21. package/Animations/animatable.js.map +1 -1
  22. package/Animations/animation.d.ts +6 -20
  23. package/Animations/animation.js +6 -20
  24. package/Animations/animation.js.map +1 -1
  25. package/Animations/animationEvent.d.ts +1 -1
  26. package/Animations/animationEvent.js +1 -1
  27. package/Animations/animationEvent.js.map +1 -1
  28. package/Animations/animationGroup.d.ts +1 -1
  29. package/Animations/animationGroup.js +1 -1
  30. package/Animations/animationGroup.js.map +1 -1
  31. package/Animations/easing.d.ts +13 -26
  32. package/Animations/easing.js +13 -26
  33. package/Animations/easing.js.map +1 -1
  34. package/Animations/runtimeAnimation.d.ts +3 -4
  35. package/Animations/runtimeAnimation.js +1 -2
  36. package/Animations/runtimeAnimation.js.map +1 -1
  37. package/Audio/audioEngine.js +1 -2
  38. package/Audio/audioEngine.js.map +1 -1
  39. package/Audio/audioSceneComponent.d.ts +1 -1
  40. package/Audio/audioSceneComponent.js.map +1 -1
  41. package/Audio/sound.d.ts +3 -4
  42. package/Audio/sound.js +2 -3
  43. package/Audio/sound.js.map +1 -1
  44. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  45. package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
  46. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  47. package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
  48. package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
  49. package/Behaviors/Meshes/baseSixDofDragBehavior.js +5 -5
  50. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  51. package/Behaviors/Meshes/followBehavior.d.ts +1 -1
  52. package/Behaviors/Meshes/followBehavior.js +1 -1
  53. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  54. package/Behaviors/Meshes/pointerDragBehavior.d.ts +1 -1
  55. package/Behaviors/Meshes/pointerDragBehavior.js +1 -1
  56. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  57. package/Bones/bone.d.ts +7 -9
  58. package/Bones/bone.js +7 -9
  59. package/Bones/bone.js.map +1 -1
  60. package/Bones/skeleton.d.ts +6 -8
  61. package/Bones/skeleton.js +6 -8
  62. package/Bones/skeleton.js.map +1 -1
  63. package/Buffers/buffer.d.ts +6 -6
  64. package/Buffers/buffer.js +14 -16
  65. package/Buffers/buffer.js.map +1 -1
  66. package/Buffers/storageBuffer.d.ts +1 -1
  67. package/Buffers/storageBuffer.js +1 -1
  68. package/Buffers/storageBuffer.js.map +1 -1
  69. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.d.ts +1 -2
  70. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +1 -2
  71. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js.map +1 -1
  72. package/Cameras/Inputs/flyCameraKeyboardInput.d.ts +1 -1
  73. package/Cameras/Inputs/flyCameraKeyboardInput.js +1 -1
  74. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  75. package/Cameras/Inputs/freeCameraDeviceOrientationInput.d.ts +6 -3
  76. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +18 -5
  77. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
  78. package/Cameras/Inputs/freeCameraKeyboardMoveInput.d.ts +1 -1
  79. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +1 -1
  80. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  81. package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -1
  82. package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
  83. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  84. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.d.ts +1 -2
  85. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +1 -2
  86. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
  87. package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -2
  88. package/Cameras/RigModes/stereoscopicRigMode.js +1 -2
  89. package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
  90. package/Cameras/RigModes/vrRigMode.d.ts +1 -3
  91. package/Cameras/RigModes/vrRigMode.js +1 -3
  92. package/Cameras/RigModes/vrRigMode.js.map +1 -1
  93. package/Cameras/RigModes/webVRRigMode.d.ts +1 -3
  94. package/Cameras/RigModes/webVRRigMode.js +1 -3
  95. package/Cameras/RigModes/webVRRigMode.js.map +1 -1
  96. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +2 -3
  97. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +2 -3
  98. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  99. package/Cameras/VR/vrCameraMetrics.d.ts +4 -4
  100. package/Cameras/VR/vrCameraMetrics.js +4 -4
  101. package/Cameras/VR/vrCameraMetrics.js.map +1 -1
  102. package/Cameras/VR/vrExperienceHelper.js +20 -48
  103. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  104. package/Cameras/VR/webVRCamera.d.ts +9 -9
  105. package/Cameras/VR/webVRCamera.js +9 -9
  106. package/Cameras/VR/webVRCamera.js.map +1 -1
  107. package/Cameras/arcRotateCamera.d.ts +11 -12
  108. package/Cameras/arcRotateCamera.js +8 -9
  109. package/Cameras/arcRotateCamera.js.map +1 -1
  110. package/Cameras/camera.d.ts +29 -38
  111. package/Cameras/camera.js +27 -36
  112. package/Cameras/camera.js.map +1 -1
  113. package/Cameras/deviceOrientationCamera.d.ts +1 -1
  114. package/Cameras/deviceOrientationCamera.js +1 -1
  115. package/Cameras/deviceOrientationCamera.js.map +1 -1
  116. package/Cameras/flyCamera.d.ts +8 -12
  117. package/Cameras/flyCamera.js +6 -10
  118. package/Cameras/flyCamera.js.map +1 -1
  119. package/Cameras/followCamera.d.ts +2 -2
  120. package/Cameras/followCamera.js +2 -2
  121. package/Cameras/followCamera.js.map +1 -1
  122. package/Cameras/freeCamera.d.ts +6 -7
  123. package/Cameras/freeCamera.js +4 -5
  124. package/Cameras/freeCamera.js.map +1 -1
  125. package/Cameras/freeCameraInputsManager.d.ts +2 -2
  126. package/Cameras/freeCameraInputsManager.js +2 -2
  127. package/Cameras/freeCameraInputsManager.js.map +1 -1
  128. package/Cameras/targetCamera.d.ts +21 -24
  129. package/Cameras/targetCamera.js +20 -23
  130. package/Cameras/targetCamera.js.map +1 -1
  131. package/Cameras/touchCamera.d.ts +1 -1
  132. package/Cameras/touchCamera.js +1 -1
  133. package/Cameras/touchCamera.js.map +1 -1
  134. package/Collisions/collider.d.ts +13 -44
  135. package/Collisions/collider.js +10 -41
  136. package/Collisions/collider.js.map +1 -1
  137. package/Collisions/collisionCoordinator.d.ts +2 -2
  138. package/Collisions/collisionCoordinator.js +1 -1
  139. package/Collisions/collisionCoordinator.js.map +1 -1
  140. package/Collisions/intersectionInfo.d.ts +1 -1
  141. package/Collisions/intersectionInfo.js +1 -1
  142. package/Collisions/intersectionInfo.js.map +1 -1
  143. package/Collisions/meshCollisionData.d.ts +1 -1
  144. package/Collisions/meshCollisionData.js +1 -1
  145. package/Collisions/meshCollisionData.js.map +1 -1
  146. package/Collisions/pickingInfo.d.ts +1 -1
  147. package/Collisions/pickingInfo.js +1 -1
  148. package/Collisions/pickingInfo.js.map +1 -1
  149. package/Compute/IComputeContext.d.ts +1 -1
  150. package/Compute/IComputeContext.js.map +1 -1
  151. package/Compute/IComputePipelineContext.d.ts +2 -2
  152. package/Compute/IComputePipelineContext.js.map +1 -1
  153. package/Compute/computeEffect.d.ts +5 -5
  154. package/Compute/computeEffect.js +5 -5
  155. package/Compute/computeEffect.js.map +1 -1
  156. package/Culling/Octrees/octreeBlock.d.ts +1 -9
  157. package/Culling/Octrees/octreeBlock.js +1 -9
  158. package/Culling/Octrees/octreeBlock.js.map +1 -1
  159. package/Culling/Octrees/octreeSceneComponent.d.ts +2 -2
  160. package/Culling/Octrees/octreeSceneComponent.js +1 -5
  161. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  162. package/Culling/boundingBox.d.ts +4 -5
  163. package/Culling/boundingBox.js +3 -4
  164. package/Culling/boundingBox.js.map +1 -1
  165. package/Culling/boundingInfo.d.ts +1 -2
  166. package/Culling/boundingInfo.js +1 -2
  167. package/Culling/boundingInfo.js.map +1 -1
  168. package/Culling/boundingSphere.d.ts +1 -2
  169. package/Culling/boundingSphere.js +1 -2
  170. package/Culling/boundingSphere.js.map +1 -1
  171. package/Culling/ray.d.ts +6 -6
  172. package/Culling/ray.js.map +1 -1
  173. package/Debug/debugLayer.d.ts +1 -1
  174. package/Debug/debugLayer.js.map +1 -1
  175. package/Debug/physicsViewer.d.ts +6 -6
  176. package/Debug/physicsViewer.js +4 -4
  177. package/Debug/physicsViewer.js.map +1 -1
  178. package/DeviceInput/InputDevices/deviceEnums.d.ts +1 -1
  179. package/DeviceInput/InputDevices/deviceEnums.js +1 -1
  180. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  181. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -3
  182. package/DeviceInput/InputDevices/deviceSourceManager.js +3 -3
  183. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  184. package/DeviceInput/internalDeviceSourceManager.d.ts +3 -3
  185. package/DeviceInput/internalDeviceSourceManager.js +1 -1
  186. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  187. package/DeviceInput/nativeDeviceInputSystem.d.ts +1 -1
  188. package/DeviceInput/nativeDeviceInputSystem.js +1 -1
  189. package/DeviceInput/nativeDeviceInputSystem.js.map +1 -1
  190. package/DeviceInput/webDeviceInputSystem.d.ts +1 -1
  191. package/DeviceInput/webDeviceInputSystem.js +1 -19
  192. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  193. package/Engines/Extensions/engine.computeShader.d.ts +7 -7
  194. package/Engines/Extensions/engine.computeShader.js +1 -1
  195. package/Engines/Extensions/engine.computeShader.js.map +1 -1
  196. package/Engines/Extensions/engine.cubeTexture.d.ts +6 -6
  197. package/Engines/Extensions/engine.cubeTexture.js +3 -2
  198. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  199. package/Engines/Extensions/engine.debugging.d.ts +4 -4
  200. package/Engines/Extensions/engine.debugging.js.map +1 -1
  201. package/Engines/Extensions/engine.multiview.d.ts +9 -9
  202. package/Engines/Extensions/engine.multiview.js.map +1 -1
  203. package/Engines/Extensions/engine.query.d.ts +22 -22
  204. package/Engines/Extensions/engine.query.js +8 -8
  205. package/Engines/Extensions/engine.query.js.map +1 -1
  206. package/Engines/Extensions/engine.rawTexture.js +3 -7
  207. package/Engines/Extensions/engine.rawTexture.js.map +1 -1
  208. package/Engines/Extensions/engine.readTexture.d.ts +2 -2
  209. package/Engines/Extensions/engine.readTexture.js.map +1 -1
  210. package/Engines/Extensions/engine.renderTarget.d.ts +2 -2
  211. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  212. package/Engines/Extensions/engine.textureSelector.d.ts +2 -2
  213. package/Engines/Extensions/engine.textureSelector.js.map +1 -1
  214. package/Engines/Extensions/engine.transformFeedback.d.ts +1 -1
  215. package/Engines/Extensions/engine.transformFeedback.js +1 -1
  216. package/Engines/Extensions/engine.transformFeedback.js.map +1 -1
  217. package/Engines/Extensions/engine.views.d.ts +2 -2
  218. package/Engines/Extensions/engine.views.js.map +1 -1
  219. package/Engines/Extensions/engine.webVR.d.ts +13 -13
  220. package/Engines/Extensions/engine.webVR.js.map +1 -1
  221. package/Engines/IDrawContext.d.ts +1 -1
  222. package/Engines/IDrawContext.js.map +1 -1
  223. package/Engines/IMaterialContext.d.ts +1 -1
  224. package/Engines/IMaterialContext.js.map +1 -1
  225. package/Engines/IPipelineContext.d.ts +5 -5
  226. package/Engines/IPipelineContext.js.map +1 -1
  227. package/Engines/Native/nativeDataStream.d.ts +2 -2
  228. package/Engines/Native/nativeDataStream.js +1 -1
  229. package/Engines/Native/nativeDataStream.js.map +1 -1
  230. package/Engines/Native/nativeInterfaces.d.ts +10 -10
  231. package/Engines/Native/nativeInterfaces.js.map +1 -1
  232. package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.d.ts +1 -1
  233. package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js +1 -1
  234. package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js.map +1 -1
  235. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.d.ts +1 -1
  236. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js +1 -1
  237. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js.map +1 -1
  238. package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.d.ts +1 -1
  239. package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js +1 -1
  240. package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js.map +1 -1
  241. package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.d.ts +1 -1
  242. package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js +1 -1
  243. package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js.map +1 -1
  244. package/Engines/Processors/Expressions/shaderDefineExpression.d.ts +1 -1
  245. package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
  246. package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
  247. package/Engines/Processors/iShaderProcessor.d.ts +1 -1
  248. package/Engines/Processors/iShaderProcessor.js.map +1 -1
  249. package/Engines/Processors/shaderCodeConditionNode.d.ts +1 -1
  250. package/Engines/Processors/shaderCodeConditionNode.js +1 -1
  251. package/Engines/Processors/shaderCodeConditionNode.js.map +1 -1
  252. package/Engines/Processors/shaderCodeCursor.d.ts +1 -1
  253. package/Engines/Processors/shaderCodeCursor.js +1 -1
  254. package/Engines/Processors/shaderCodeCursor.js.map +1 -1
  255. package/Engines/Processors/shaderCodeNode.d.ts +1 -1
  256. package/Engines/Processors/shaderCodeNode.js +1 -1
  257. package/Engines/Processors/shaderCodeNode.js.map +1 -1
  258. package/Engines/Processors/shaderCodeTestNode.d.ts +1 -1
  259. package/Engines/Processors/shaderCodeTestNode.js +1 -1
  260. package/Engines/Processors/shaderCodeTestNode.js.map +1 -1
  261. package/Engines/Processors/shaderProcessingOptions.d.ts +2 -2
  262. package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
  263. package/Engines/Processors/shaderProcessor.d.ts +2 -2
  264. package/Engines/Processors/shaderProcessor.js +2 -2
  265. package/Engines/Processors/shaderProcessor.js.map +1 -1
  266. package/Engines/WebGL/webGL2ShaderProcessors.d.ts +1 -1
  267. package/Engines/WebGL/webGL2ShaderProcessors.js +1 -1
  268. package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
  269. package/Engines/WebGL/webGLHardwareTexture.d.ts +1 -1
  270. package/Engines/WebGL/webGLHardwareTexture.js +1 -1
  271. package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
  272. package/Engines/WebGL/webGLPipelineContext.d.ts +6 -25
  273. package/Engines/WebGL/webGLPipelineContext.js +6 -25
  274. package/Engines/WebGL/webGLPipelineContext.js.map +1 -1
  275. package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +2 -2
  276. package/Engines/WebGL/webGLRenderTargetWrapper.js +2 -2
  277. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  278. package/Engines/WebGL/webGLShaderProcessors.d.ts +1 -1
  279. package/Engines/WebGL/webGLShaderProcessors.js +1 -1
  280. package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
  281. package/Engines/WebGPU/Extensions/engine.computeShader.d.ts +1 -1
  282. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  283. package/Engines/WebGPU/Extensions/engine.rawTexture.js +1 -5
  284. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  285. package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
  286. package/Engines/WebGPU/webgpuBufferManager.js +1 -1
  287. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  288. package/Engines/WebGPU/webgpuBundleList.d.ts +8 -8
  289. package/Engines/WebGPU/webgpuBundleList.js +7 -7
  290. package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
  291. package/Engines/WebGPU/webgpuCacheBindGroups.d.ts +1 -1
  292. package/Engines/WebGPU/webgpuCacheBindGroups.js +1 -1
  293. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  294. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
  295. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +1 -1
  296. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  297. package/Engines/WebGPU/webgpuCacheRenderPipelineString.d.ts +1 -1
  298. package/Engines/WebGPU/webgpuCacheRenderPipelineString.js +1 -1
  299. package/Engines/WebGPU/webgpuCacheRenderPipelineString.js.map +1 -1
  300. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.d.ts +2 -2
  301. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +2 -2
  302. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
  303. package/Engines/WebGPU/webgpuCacheSampler.d.ts +1 -1
  304. package/Engines/WebGPU/webgpuCacheSampler.js +1 -1
  305. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  306. package/Engines/WebGPU/webgpuClearQuad.d.ts +1 -1
  307. package/Engines/WebGPU/webgpuClearQuad.js +1 -1
  308. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  309. package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
  310. package/Engines/WebGPU/webgpuComputeContext.js +1 -1
  311. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  312. package/Engines/WebGPU/webgpuComputePipelineContext.d.ts +2 -2
  313. package/Engines/WebGPU/webgpuComputePipelineContext.js +1 -1
  314. package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
  315. package/Engines/WebGPU/webgpuConstants.d.ts +38 -38
  316. package/Engines/WebGPU/webgpuConstants.js +38 -38
  317. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  318. package/Engines/WebGPU/webgpuDepthCullingState.d.ts +1 -1
  319. package/Engines/WebGPU/webgpuDepthCullingState.js +1 -1
  320. package/Engines/WebGPU/webgpuDepthCullingState.js.map +1 -1
  321. package/Engines/WebGPU/webgpuDrawContext.d.ts +1 -1
  322. package/Engines/WebGPU/webgpuDrawContext.js +1 -1
  323. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  324. package/Engines/WebGPU/webgpuExternalTexture.d.ts +1 -1
  325. package/Engines/WebGPU/webgpuExternalTexture.js +1 -1
  326. package/Engines/WebGPU/webgpuExternalTexture.js.map +1 -1
  327. package/Engines/WebGPU/webgpuHardwareTexture.d.ts +9 -9
  328. package/Engines/WebGPU/webgpuHardwareTexture.js +1 -1
  329. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  330. package/Engines/WebGPU/webgpuMaterialContext.d.ts +3 -3
  331. package/Engines/WebGPU/webgpuMaterialContext.js +1 -1
  332. package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
  333. package/Engines/WebGPU/webgpuOcclusionQuery.d.ts +1 -1
  334. package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
  335. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  336. package/Engines/WebGPU/webgpuPipelineContext.d.ts +4 -4
  337. package/Engines/WebGPU/webgpuPipelineContext.js +2 -2
  338. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  339. package/Engines/WebGPU/webgpuQuerySet.d.ts +1 -1
  340. package/Engines/WebGPU/webgpuQuerySet.js +1 -1
  341. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  342. package/Engines/WebGPU/webgpuRenderPassWrapper.d.ts +1 -1
  343. package/Engines/WebGPU/webgpuRenderPassWrapper.js +1 -1
  344. package/Engines/WebGPU/webgpuRenderPassWrapper.js.map +1 -1
  345. package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +2 -2
  346. package/Engines/WebGPU/webgpuRenderTargetWrapper.js +1 -1
  347. package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -1
  348. package/Engines/WebGPU/webgpuShaderProcessingContext.d.ts +7 -7
  349. package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -2
  350. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  351. package/Engines/WebGPU/webgpuShaderProcessor.d.ts +1 -1
  352. package/Engines/WebGPU/webgpuShaderProcessor.js +1 -1
  353. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  354. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -1
  355. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +1 -1
  356. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  357. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -1
  358. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +1 -1
  359. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  360. package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +1 -1
  361. package/Engines/WebGPU/webgpuSnapshotRendering.js +1 -1
  362. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
  363. package/Engines/WebGPU/webgpuStencilStateComposer.d.ts +1 -1
  364. package/Engines/WebGPU/webgpuStencilStateComposer.js +1 -1
  365. package/Engines/WebGPU/webgpuStencilStateComposer.js.map +1 -1
  366. package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
  367. package/Engines/WebGPU/webgpuTextureHelper.js +1 -1
  368. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  369. package/Engines/WebGPU/webgpuTimestampQuery.d.ts +2 -2
  370. package/Engines/WebGPU/webgpuTimestampQuery.js +2 -2
  371. package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
  372. package/Engines/WebGPU/webgpuTintWASM.d.ts +1 -1
  373. package/Engines/WebGPU/webgpuTintWASM.js +1 -1
  374. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  375. package/Engines/constants.d.ts +1 -1
  376. package/Engines/constants.js +1 -1
  377. package/Engines/constants.js.map +1 -1
  378. package/Engines/engine.d.ts +16 -35
  379. package/Engines/engine.js +19 -69
  380. package/Engines/engine.js.map +1 -1
  381. package/Engines/engineFeatures.d.ts +2 -2
  382. package/Engines/engineFeatures.js.map +1 -1
  383. package/Engines/engineStore.d.ts +1 -1
  384. package/Engines/engineStore.js +1 -1
  385. package/Engines/engineStore.js.map +1 -1
  386. package/Engines/nativeEngine.d.ts +15 -47
  387. package/Engines/nativeEngine.js +20 -66
  388. package/Engines/nativeEngine.js.map +1 -1
  389. package/Engines/nullEngine.d.ts +12 -40
  390. package/Engines/nullEngine.js +12 -40
  391. package/Engines/nullEngine.js.map +1 -1
  392. package/Engines/performanceConfigurator.d.ts +6 -7
  393. package/Engines/performanceConfigurator.js +6 -7
  394. package/Engines/performanceConfigurator.js.map +1 -1
  395. package/Engines/renderTargetWrapper.d.ts +8 -9
  396. package/Engines/renderTargetWrapper.js +7 -8
  397. package/Engines/renderTargetWrapper.js.map +1 -1
  398. package/Engines/thinEngine.d.ts +90 -187
  399. package/Engines/thinEngine.js +73 -182
  400. package/Engines/thinEngine.js.map +1 -1
  401. package/Engines/webgpuEngine.d.ts +89 -145
  402. package/Engines/webgpuEngine.js +71 -127
  403. package/Engines/webgpuEngine.js.map +1 -1
  404. package/Events/pointerEvents.d.ts +4 -0
  405. package/Events/pointerEvents.js +4 -0
  406. package/Events/pointerEvents.js.map +1 -1
  407. package/Gamepads/Controllers/oculusTouchController.d.ts +1 -1
  408. package/Gamepads/Controllers/oculusTouchController.js +1 -1
  409. package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
  410. package/Gamepads/Controllers/poseEnabledController.d.ts +9 -10
  411. package/Gamepads/Controllers/poseEnabledController.js +6 -7
  412. package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
  413. package/Gamepads/Controllers/windowsMotionController.d.ts +1 -1
  414. package/Gamepads/Controllers/windowsMotionController.js +1 -1
  415. package/Gamepads/Controllers/windowsMotionController.js.map +1 -1
  416. package/Gamepads/gamepad.d.ts +1 -1
  417. package/Gamepads/gamepad.js +1 -1
  418. package/Gamepads/gamepad.js.map +1 -1
  419. package/Gamepads/gamepadManager.d.ts +2 -2
  420. package/Gamepads/gamepadManager.js +4 -4
  421. package/Gamepads/gamepadManager.js.map +1 -1
  422. package/Gamepads/gamepadSceneComponent.d.ts +1 -1
  423. package/Gamepads/gamepadSceneComponent.js.map +1 -1
  424. package/Gizmos/axisDragGizmo.d.ts +2 -8
  425. package/Gizmos/axisDragGizmo.js +2 -8
  426. package/Gizmos/axisDragGizmo.js.map +1 -1
  427. package/Gizmos/cameraGizmo.d.ts +1 -1
  428. package/Gizmos/cameraGizmo.js +1 -1
  429. package/Gizmos/cameraGizmo.js.map +1 -1
  430. package/Gizmos/lightGizmo.d.ts +1 -1
  431. package/Gizmos/lightGizmo.js +1 -1
  432. package/Gizmos/lightGizmo.js.map +1 -1
  433. package/Gizmos/planeDragGizmo.d.ts +1 -3
  434. package/Gizmos/planeDragGizmo.js +1 -3
  435. package/Gizmos/planeDragGizmo.js.map +1 -1
  436. package/Helpers/sceneHelpers.d.ts +1 -1
  437. package/Helpers/sceneHelpers.js +1 -1
  438. package/Helpers/sceneHelpers.js.map +1 -1
  439. package/Inputs/scene.inputManager.d.ts +3 -3
  440. package/Inputs/scene.inputManager.js +5 -4
  441. package/Inputs/scene.inputManager.js.map +1 -1
  442. package/Instrumentation/timeToken.d.ts +1 -1
  443. package/Instrumentation/timeToken.js +1 -1
  444. package/Instrumentation/timeToken.js.map +1 -1
  445. package/Layers/effectLayer.d.ts +2 -3
  446. package/Layers/effectLayer.js +2 -3
  447. package/Layers/effectLayer.js.map +1 -1
  448. package/Layers/glowLayer.d.ts +1 -1
  449. package/Layers/glowLayer.js +1 -1
  450. package/Layers/glowLayer.js.map +1 -1
  451. package/Layers/highlightLayer.d.ts +1 -1
  452. package/Layers/highlightLayer.js +1 -1
  453. package/Layers/highlightLayer.js.map +1 -1
  454. package/Layers/layer.d.ts +8 -1
  455. package/Layers/layer.js +12 -1
  456. package/Layers/layer.js.map +1 -1
  457. package/Layers/layerSceneComponent.d.ts +4 -2
  458. package/Layers/layerSceneComponent.js +27 -11
  459. package/Layers/layerSceneComponent.js.map +1 -1
  460. package/LensFlares/lensFlare.d.ts +1 -1
  461. package/LensFlares/lensFlare.js.map +1 -1
  462. package/LensFlares/lensFlareSystem.d.ts +4 -6
  463. package/LensFlares/lensFlareSystem.js +4 -6
  464. package/LensFlares/lensFlareSystem.js.map +1 -1
  465. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -2
  466. package/Lights/Shadows/cascadedShadowGenerator.js +1 -2
  467. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  468. package/Lights/Shadows/shadowGenerator.d.ts +1 -2
  469. package/Lights/Shadows/shadowGenerator.js +1 -2
  470. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  471. package/Lights/light.d.ts +9 -9
  472. package/Lights/light.js +6 -6
  473. package/Lights/light.js.map +1 -1
  474. package/Lights/shadowLight.d.ts +3 -3
  475. package/Lights/shadowLight.js +3 -3
  476. package/Lights/shadowLight.js.map +1 -1
  477. package/Loading/Plugins/babylonFileLoader.d.ts +1 -1
  478. package/Loading/Plugins/babylonFileLoader.js +1 -1
  479. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  480. package/Loading/loadingScreen.js +6 -6
  481. package/Loading/loadingScreen.js.map +1 -1
  482. package/Materials/Background/backgroundMaterial.js +1 -1
  483. package/Materials/Background/backgroundMaterial.js.map +1 -1
  484. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +18 -18
  485. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  486. package/Materials/Node/Blocks/Input/inputBlock.d.ts +4 -11
  487. package/Materials/Node/Blocks/Input/inputBlock.js +4 -11
  488. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  489. package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +2 -2
  490. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  491. package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +9 -9
  492. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  493. package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +12 -12
  494. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  495. package/Materials/Node/nodeMaterial.d.ts +2 -2
  496. package/Materials/Node/nodeMaterial.js +2 -2
  497. package/Materials/Node/nodeMaterial.js.map +1 -1
  498. package/Materials/Node/nodeMaterialBlock.d.ts +8 -14
  499. package/Materials/Node/nodeMaterialBlock.js +6 -12
  500. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  501. package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +8 -8
  502. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +7 -7
  503. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  504. package/Materials/Node/nodeMaterialBuildState.d.ts +22 -58
  505. package/Materials/Node/nodeMaterialBuildState.js +21 -57
  506. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  507. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
  508. package/Materials/PBR/pbrAnisotropicConfiguration.js +2 -2
  509. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  510. package/Materials/PBR/pbrBRDFConfiguration.d.ts +3 -3
  511. package/Materials/PBR/pbrBRDFConfiguration.js +2 -2
  512. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  513. package/Materials/PBR/pbrBaseMaterial.d.ts +65 -65
  514. package/Materials/PBR/pbrBaseMaterial.js +65 -65
  515. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  516. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +4 -4
  517. package/Materials/PBR/pbrClearCoatConfiguration.js +3 -3
  518. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  519. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +6 -6
  520. package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
  521. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  522. package/Materials/PBR/pbrSheenConfiguration.d.ts +3 -3
  523. package/Materials/PBR/pbrSheenConfiguration.js +2 -2
  524. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  525. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +6 -6
  526. package/Materials/PBR/pbrSubSurfaceConfiguration.js +5 -5
  527. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  528. package/Materials/Textures/Loaders/ddsTextureLoader.d.ts +1 -1
  529. package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
  530. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  531. package/Materials/Textures/Loaders/envTextureLoader.d.ts +1 -1
  532. package/Materials/Textures/Loaders/envTextureLoader.js +1 -1
  533. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  534. package/Materials/Textures/Loaders/hdrTextureLoader.d.ts +1 -1
  535. package/Materials/Textures/Loaders/hdrTextureLoader.js +1 -1
  536. package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
  537. package/Materials/Textures/Loaders/ktxTextureLoader.d.ts +1 -1
  538. package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -1
  539. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  540. package/Materials/Textures/Loaders/tgaTextureLoader.d.ts +1 -1
  541. package/Materials/Textures/Loaders/tgaTextureLoader.js +1 -1
  542. package/Materials/Textures/Loaders/tgaTextureLoader.js.map +1 -1
  543. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
  544. package/Materials/Textures/MultiviewRenderTarget.js +1 -1
  545. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  546. package/Materials/Textures/Procedurals/proceduralTexture.d.ts +6 -7
  547. package/Materials/Textures/Procedurals/proceduralTexture.js +4 -5
  548. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  549. package/Materials/Textures/baseTexture.d.ts +17 -23
  550. package/Materials/Textures/baseTexture.js +20 -23
  551. package/Materials/Textures/baseTexture.js.map +1 -1
  552. package/Materials/Textures/cubeTexture.d.ts +1 -1
  553. package/Materials/Textures/cubeTexture.js +1 -1
  554. package/Materials/Textures/cubeTexture.js.map +1 -1
  555. package/Materials/Textures/dynamicTexture.d.ts +1 -1
  556. package/Materials/Textures/dynamicTexture.js +1 -1
  557. package/Materials/Textures/dynamicTexture.js.map +1 -1
  558. package/Materials/Textures/hardwareTextureWrapper.d.ts +1 -1
  559. package/Materials/Textures/hardwareTextureWrapper.js.map +1 -1
  560. package/Materials/Textures/internalTexture.d.ts +35 -37
  561. package/Materials/Textures/internalTexture.js +34 -36
  562. package/Materials/Textures/internalTexture.js.map +1 -1
  563. package/Materials/Textures/multiRenderTarget.d.ts +1 -3
  564. package/Materials/Textures/multiRenderTarget.js +1 -3
  565. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  566. package/Materials/Textures/prePassRenderTarget.d.ts +9 -9
  567. package/Materials/Textures/prePassRenderTarget.js +6 -6
  568. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  569. package/Materials/Textures/renderTargetTexture.d.ts +7 -11
  570. package/Materials/Textures/renderTargetTexture.js +8 -9
  571. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  572. package/Materials/Textures/texture.d.ts +6 -18
  573. package/Materials/Textures/texture.js +13 -23
  574. package/Materials/Textures/texture.js.map +1 -1
  575. package/Materials/Textures/textureSampler.d.ts +5 -5
  576. package/Materials/Textures/textureSampler.js +5 -5
  577. package/Materials/Textures/textureSampler.js.map +1 -1
  578. package/Materials/Textures/thinRenderTargetTexture.js +1 -1
  579. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  580. package/Materials/Textures/thinTexture.d.ts +2 -2
  581. package/Materials/Textures/thinTexture.js +2 -2
  582. package/Materials/Textures/thinTexture.js.map +1 -1
  583. package/Materials/Textures/videoTexture.d.ts +1 -1
  584. package/Materials/Textures/videoTexture.js +3 -3
  585. package/Materials/Textures/videoTexture.js.map +1 -1
  586. package/Materials/drawWrapper.d.ts +1 -1
  587. package/Materials/drawWrapper.js +1 -1
  588. package/Materials/drawWrapper.js.map +1 -1
  589. package/Materials/effect.d.ts +17 -17
  590. package/Materials/effect.js +28 -22
  591. package/Materials/effect.js.map +1 -1
  592. package/Materials/effectRenderer.d.ts +1 -1
  593. package/Materials/effectRenderer.js.map +1 -1
  594. package/Materials/imageProcessingConfiguration.d.ts +5 -5
  595. package/Materials/imageProcessingConfiguration.js +4 -4
  596. package/Materials/imageProcessingConfiguration.js.map +1 -1
  597. package/Materials/material.d.ts +21 -26
  598. package/Materials/material.detailMapConfiguration.d.ts +3 -3
  599. package/Materials/material.detailMapConfiguration.js +2 -2
  600. package/Materials/material.detailMapConfiguration.js.map +1 -1
  601. package/Materials/material.js +22 -24
  602. package/Materials/material.js.map +1 -1
  603. package/Materials/materialDefines.d.ts +14 -14
  604. package/Materials/materialDefines.js +13 -13
  605. package/Materials/materialDefines.js.map +1 -1
  606. package/Materials/materialHelper.js +2 -7
  607. package/Materials/materialHelper.js.map +1 -1
  608. package/Materials/materialPluginEvent.d.ts +15 -15
  609. package/Materials/materialPluginEvent.js +1 -1
  610. package/Materials/materialPluginEvent.js.map +1 -1
  611. package/Materials/materialPluginManager.d.ts +2 -4
  612. package/Materials/materialPluginManager.js +2 -4
  613. package/Materials/materialPluginManager.js.map +1 -1
  614. package/Materials/multiMaterial.d.ts +1 -1
  615. package/Materials/multiMaterial.js +1 -1
  616. package/Materials/multiMaterial.js.map +1 -1
  617. package/Materials/pushMaterial.d.ts +1 -1
  618. package/Materials/pushMaterial.js +1 -1
  619. package/Materials/pushMaterial.js.map +1 -1
  620. package/Materials/standardMaterial.d.ts +3 -3
  621. package/Materials/standardMaterial.js +3 -3
  622. package/Materials/standardMaterial.js.map +1 -1
  623. package/Materials/uniformBuffer.d.ts +4 -4
  624. package/Materials/uniformBuffer.js +4 -4
  625. package/Materials/uniformBuffer.js.map +1 -1
  626. package/Materials/uniformBufferEffectCommonAccessor.d.ts +1 -1
  627. package/Materials/uniformBufferEffectCommonAccessor.js +1 -1
  628. package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
  629. package/Maths/math.color.d.ts +1 -1
  630. package/Maths/math.color.js +1 -1
  631. package/Maths/math.color.js.map +1 -1
  632. package/Maths/math.isovector.d.ts +1 -1
  633. package/Maths/math.isovector.js +1 -1
  634. package/Maths/math.isovector.js.map +1 -1
  635. package/Maths/math.like.d.ts +8 -8
  636. package/Maths/math.like.js.map +1 -1
  637. package/Maths/math.polar.d.ts +343 -0
  638. package/Maths/math.polar.js +537 -0
  639. package/Maths/math.polar.js.map +1 -1
  640. package/Maths/math.vector.d.ts +58 -24
  641. package/Maths/math.vector.js +94 -18
  642. package/Maths/math.vector.js.map +1 -1
  643. package/Meshes/Builders/tubeBuilder.d.ts +2 -2
  644. package/Meshes/Builders/tubeBuilder.js +2 -2
  645. package/Meshes/Builders/tubeBuilder.js.map +1 -1
  646. package/Meshes/WebGL/webGLDataBuffer.d.ts +1 -1
  647. package/Meshes/WebGL/webGLDataBuffer.js +1 -1
  648. package/Meshes/WebGL/webGLDataBuffer.js.map +1 -1
  649. package/Meshes/WebGPU/webgpuDataBuffer.d.ts +1 -1
  650. package/Meshes/WebGPU/webgpuDataBuffer.js +1 -1
  651. package/Meshes/WebGPU/webgpuDataBuffer.js.map +1 -1
  652. package/Meshes/abstractMesh.d.ts +48 -70
  653. package/Meshes/abstractMesh.js +47 -69
  654. package/Meshes/abstractMesh.js.map +1 -1
  655. package/Meshes/buffer.d.ts +1 -1
  656. package/Meshes/buffer.js +1 -1
  657. package/Meshes/buffer.js.map +1 -1
  658. package/Meshes/geodesicMesh.d.ts +15 -28
  659. package/Meshes/geodesicMesh.js +11 -24
  660. package/Meshes/geodesicMesh.js.map +1 -1
  661. package/Meshes/geometry.d.ts +15 -20
  662. package/Meshes/geometry.js +7 -12
  663. package/Meshes/geometry.js.map +1 -1
  664. package/Meshes/groundMesh.d.ts +8 -8
  665. package/Meshes/groundMesh.js.map +1 -1
  666. package/Meshes/instancedMesh.d.ts +12 -16
  667. package/Meshes/instancedMesh.js +11 -15
  668. package/Meshes/instancedMesh.js.map +1 -1
  669. package/Meshes/linesMesh.d.ts +5 -8
  670. package/Meshes/linesMesh.js +5 -8
  671. package/Meshes/linesMesh.js.map +1 -1
  672. package/Meshes/mesh.d.ts +47 -92
  673. package/Meshes/mesh.js +50 -98
  674. package/Meshes/mesh.js.map +1 -1
  675. package/Meshes/mesh.vertexData.d.ts +3 -18
  676. package/Meshes/mesh.vertexData.js +3 -18
  677. package/Meshes/mesh.vertexData.js.map +1 -1
  678. package/Meshes/meshSimplificationSceneComponent.d.ts +1 -1
  679. package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
  680. package/Meshes/subMesh.d.ts +23 -51
  681. package/Meshes/subMesh.js +20 -48
  682. package/Meshes/subMesh.js.map +1 -1
  683. package/Meshes/subMesh.project.d.ts +2 -2
  684. package/Meshes/subMesh.project.js +2 -12
  685. package/Meshes/subMesh.project.js.map +1 -1
  686. package/Meshes/thinInstanceMesh.d.ts +4 -4
  687. package/Meshes/thinInstanceMesh.js.map +1 -1
  688. package/Meshes/transformNode.d.ts +8 -9
  689. package/Meshes/transformNode.js +8 -9
  690. package/Meshes/transformNode.js.map +1 -1
  691. package/Misc/arrayTools.d.ts +3 -3
  692. package/Misc/arrayTools.js +1 -1
  693. package/Misc/arrayTools.js.map +1 -1
  694. package/Misc/assetsManager.d.ts +1 -3
  695. package/Misc/assetsManager.js +1 -3
  696. package/Misc/assetsManager.js.map +1 -1
  697. package/Misc/basis.js +1 -1
  698. package/Misc/basis.js.map +1 -1
  699. package/Misc/coroutine.d.ts +11 -25
  700. package/Misc/coroutine.js +7 -21
  701. package/Misc/coroutine.js.map +1 -1
  702. package/Misc/dds.d.ts +1 -10
  703. package/Misc/dds.js +1 -10
  704. package/Misc/dds.js.map +1 -1
  705. package/Misc/decorators.d.ts +5 -15
  706. package/Misc/decorators.js +6 -16
  707. package/Misc/decorators.js.map +1 -1
  708. package/Misc/depthReducer.d.ts +1 -5
  709. package/Misc/depthReducer.js +1 -5
  710. package/Misc/depthReducer.js.map +1 -1
  711. package/Misc/devTools.d.ts +1 -2
  712. package/Misc/devTools.js +1 -2
  713. package/Misc/devTools.js.map +1 -1
  714. package/Misc/environmentTextureTools.d.ts +1 -6
  715. package/Misc/environmentTextureTools.js +1 -6
  716. package/Misc/environmentTextureTools.js.map +1 -1
  717. package/Misc/fileTools.d.ts +12 -24
  718. package/Misc/fileTools.js +14 -26
  719. package/Misc/fileTools.js.map +1 -1
  720. package/Misc/khronosTextureContainer.d.ts +1 -3
  721. package/Misc/khronosTextureContainer.js +1 -3
  722. package/Misc/khronosTextureContainer.js.map +1 -1
  723. package/Misc/khronosTextureContainer2.d.ts +1 -4
  724. package/Misc/khronosTextureContainer2.js +1 -4
  725. package/Misc/khronosTextureContainer2.js.map +1 -1
  726. package/Misc/observable.d.ts +3 -4
  727. package/Misc/observable.js +2 -3
  728. package/Misc/observable.js.map +1 -1
  729. package/Misc/pivotTools.d.ts +3 -5
  730. package/Misc/pivotTools.js +3 -5
  731. package/Misc/pivotTools.js.map +1 -1
  732. package/Misc/screenshotTools.js +1 -1
  733. package/Misc/screenshotTools.js.map +1 -1
  734. package/Misc/tags.d.ts +2 -6
  735. package/Misc/tags.js +2 -6
  736. package/Misc/tags.js.map +1 -1
  737. package/Misc/tga.d.ts +14 -70
  738. package/Misc/tga.js +14 -70
  739. package/Misc/tga.js.map +1 -1
  740. package/Misc/tools.d.ts +9 -0
  741. package/Misc/tools.js +14 -5
  742. package/Misc/tools.js.map +1 -1
  743. package/Misc/typeStore.d.ts +2 -5
  744. package/Misc/typeStore.js +3 -6
  745. package/Misc/typeStore.js.map +1 -1
  746. package/Misc/virtualJoystick.js +0 -1
  747. package/Misc/virtualJoystick.js.map +1 -1
  748. package/Misc/webRequest.d.ts +2 -2
  749. package/Misc/webRequest.js +1 -1
  750. package/Misc/webRequest.js.map +1 -1
  751. package/Morph/morphTarget.d.ts +1 -1
  752. package/Morph/morphTarget.js +1 -1
  753. package/Morph/morphTarget.js.map +1 -1
  754. package/Morph/morphTargetManager.d.ts +3 -4
  755. package/Morph/morphTargetManager.js +2 -3
  756. package/Morph/morphTargetManager.js.map +1 -1
  757. package/Particles/IGPUParticleSystemPlatform.d.ts +1 -1
  758. package/Particles/IGPUParticleSystemPlatform.js.map +1 -1
  759. package/Particles/IParticleSystem.d.ts +6 -0
  760. package/Particles/IParticleSystem.js.map +1 -1
  761. package/Particles/baseParticleSystem.d.ts +14 -9
  762. package/Particles/baseParticleSystem.js +17 -8
  763. package/Particles/baseParticleSystem.js.map +1 -1
  764. package/Particles/cloudPoint.d.ts +16 -19
  765. package/Particles/cloudPoint.js +21 -29
  766. package/Particles/cloudPoint.js.map +1 -1
  767. package/Particles/computeShaderParticleSystem.d.ts +1 -1
  768. package/Particles/computeShaderParticleSystem.js +1 -1
  769. package/Particles/computeShaderParticleSystem.js.map +1 -1
  770. package/Particles/gpuParticleSystem.d.ts +14 -20
  771. package/Particles/gpuParticleSystem.js +17 -13
  772. package/Particles/gpuParticleSystem.js.map +1 -1
  773. package/Particles/particle.d.ts +30 -31
  774. package/Particles/particle.js +16 -17
  775. package/Particles/particle.js.map +1 -1
  776. package/Particles/particleSystem.d.ts +16 -32
  777. package/Particles/particleSystem.js +30 -31
  778. package/Particles/particleSystem.js.map +1 -1
  779. package/Particles/pointsCloudSystem.d.ts +3 -4
  780. package/Particles/pointsCloudSystem.js +27 -20
  781. package/Particles/pointsCloudSystem.js.map +1 -1
  782. package/Particles/solidParticle.d.ts +21 -31
  783. package/Particles/solidParticle.js +9 -19
  784. package/Particles/solidParticle.js.map +1 -1
  785. package/Particles/solidParticleSystem.d.ts +14 -16
  786. package/Particles/solidParticleSystem.js +14 -16
  787. package/Particles/solidParticleSystem.js.map +1 -1
  788. package/Particles/subEmitter.d.ts +1 -5
  789. package/Particles/subEmitter.js +1 -5
  790. package/Particles/subEmitter.js.map +1 -1
  791. package/Particles/webgl2ParticleSystem.d.ts +1 -1
  792. package/Particles/webgl2ParticleSystem.js +1 -1
  793. package/Particles/webgl2ParticleSystem.js.map +1 -1
  794. package/Physics/IPhysicsEngine.d.ts +1 -1
  795. package/Physics/IPhysicsEngine.js.map +1 -1
  796. package/Physics/Plugins/ammoJSPlugin.d.ts +3 -0
  797. package/Physics/Plugins/ammoJSPlugin.js +21 -2
  798. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  799. package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
  800. package/Physics/Plugins/cannonJSPlugin.js +1 -1
  801. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  802. package/Physics/Plugins/oimoJSPlugin.d.ts +1 -1
  803. package/Physics/Plugins/oimoJSPlugin.js +3 -3
  804. package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
  805. package/Physics/physicsEngineComponent.d.ts +4 -4
  806. package/Physics/physicsEngineComponent.js +1 -2
  807. package/Physics/physicsEngineComponent.js.map +1 -1
  808. package/Physics/physicsImpostor.d.ts +13 -7
  809. package/Physics/physicsImpostor.js +9 -6
  810. package/Physics/physicsImpostor.js.map +1 -1
  811. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.d.ts +1 -1
  812. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +2 -2
  813. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  814. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +2 -4
  815. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +2 -4
  816. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  817. package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +10 -10
  818. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +5 -5
  819. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  820. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +13 -13
  821. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +7 -14
  822. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  823. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.d.ts +1 -1
  824. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js +1 -1
  825. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js.map +1 -1
  826. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.d.ts +1 -1
  827. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js.map +1 -1
  828. package/PostProcesses/blackAndWhitePostProcess.d.ts +1 -5
  829. package/PostProcesses/blackAndWhitePostProcess.js +1 -5
  830. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  831. package/PostProcesses/bloomEffect.d.ts +4 -4
  832. package/PostProcesses/bloomEffect.js +3 -3
  833. package/PostProcesses/bloomEffect.js.map +1 -1
  834. package/PostProcesses/blurPostProcess.d.ts +1 -5
  835. package/PostProcesses/blurPostProcess.js +1 -5
  836. package/PostProcesses/blurPostProcess.js.map +1 -1
  837. package/PostProcesses/chromaticAberrationPostProcess.d.ts +1 -5
  838. package/PostProcesses/chromaticAberrationPostProcess.js +1 -5
  839. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  840. package/PostProcesses/colorCorrectionPostProcess.d.ts +1 -5
  841. package/PostProcesses/colorCorrectionPostProcess.js +1 -5
  842. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  843. package/PostProcesses/convolutionPostProcess.d.ts +1 -5
  844. package/PostProcesses/convolutionPostProcess.js +1 -5
  845. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  846. package/PostProcesses/depthOfFieldEffect.d.ts +4 -4
  847. package/PostProcesses/depthOfFieldEffect.js +3 -3
  848. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  849. package/PostProcesses/displayPassPostProcess.d.ts +1 -5
  850. package/PostProcesses/displayPassPostProcess.js +1 -5
  851. package/PostProcesses/displayPassPostProcess.js.map +1 -1
  852. package/PostProcesses/extractHighlightsPostProcess.d.ts +2 -2
  853. package/PostProcesses/extractHighlightsPostProcess.js +2 -2
  854. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  855. package/PostProcesses/filterPostProcess.d.ts +1 -5
  856. package/PostProcesses/filterPostProcess.js +1 -5
  857. package/PostProcesses/filterPostProcess.js.map +1 -1
  858. package/PostProcesses/fxaaPostProcess.d.ts +1 -5
  859. package/PostProcesses/fxaaPostProcess.js +1 -5
  860. package/PostProcesses/fxaaPostProcess.js.map +1 -1
  861. package/PostProcesses/grainPostProcess.d.ts +1 -5
  862. package/PostProcesses/grainPostProcess.js +1 -5
  863. package/PostProcesses/grainPostProcess.js.map +1 -1
  864. package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
  865. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  866. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  867. package/PostProcesses/motionBlurPostProcess.d.ts +1 -5
  868. package/PostProcesses/motionBlurPostProcess.js +1 -5
  869. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  870. package/PostProcesses/passPostProcess.d.ts +2 -10
  871. package/PostProcesses/passPostProcess.js +2 -10
  872. package/PostProcesses/passPostProcess.js.map +1 -1
  873. package/PostProcesses/postProcess.d.ts +8 -12
  874. package/PostProcesses/postProcess.js +6 -10
  875. package/PostProcesses/postProcess.js.map +1 -1
  876. package/PostProcesses/postProcessManager.d.ts +3 -3
  877. package/PostProcesses/postProcessManager.js +3 -3
  878. package/PostProcesses/postProcessManager.js.map +1 -1
  879. package/PostProcesses/refractionPostProcess.d.ts +1 -5
  880. package/PostProcesses/refractionPostProcess.js +1 -5
  881. package/PostProcesses/refractionPostProcess.js.map +1 -1
  882. package/PostProcesses/screenSpaceCurvaturePostProcess.d.ts +1 -5
  883. package/PostProcesses/screenSpaceCurvaturePostProcess.js +1 -5
  884. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  885. package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +1 -5
  886. package/PostProcesses/screenSpaceReflectionPostProcess.js +1 -5
  887. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  888. package/PostProcesses/sharpenPostProcess.d.ts +1 -5
  889. package/PostProcesses/sharpenPostProcess.js +1 -5
  890. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  891. package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +1 -1
  892. package/PostProcesses/volumetricLightScatteringPostProcess.js +1 -1
  893. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  894. package/Probes/reflectionProbe.d.ts +1 -1
  895. package/Probes/reflectionProbe.js +1 -1
  896. package/Probes/reflectionProbe.js.map +1 -1
  897. package/Rendering/boundingBoxRenderer.d.ts +5 -5
  898. package/Rendering/boundingBoxRenderer.js +2 -2
  899. package/Rendering/boundingBoxRenderer.js.map +1 -1
  900. package/Rendering/depthPeelingSceneComponent.d.ts +2 -2
  901. package/Rendering/depthPeelingSceneComponent.js.map +1 -1
  902. package/Rendering/depthRenderer.d.ts +1 -2
  903. package/Rendering/depthRenderer.js +1 -2
  904. package/Rendering/depthRenderer.js.map +1 -1
  905. package/Rendering/depthRendererSceneComponent.d.ts +1 -1
  906. package/Rendering/depthRendererSceneComponent.js.map +1 -1
  907. package/Rendering/edgesRenderer.d.ts +2 -2
  908. package/Rendering/edgesRenderer.js +1 -1
  909. package/Rendering/edgesRenderer.js.map +1 -1
  910. package/Rendering/geometryBufferRenderer.d.ts +10 -16
  911. package/Rendering/geometryBufferRenderer.js +9 -15
  912. package/Rendering/geometryBufferRenderer.js.map +1 -1
  913. package/Rendering/geometryBufferRendererSceneComponent.d.ts +1 -1
  914. package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
  915. package/Rendering/outlineRenderer.d.ts +3 -3
  916. package/Rendering/outlineRenderer.js.map +1 -1
  917. package/Rendering/prePassRenderer.d.ts +7 -14
  918. package/Rendering/prePassRenderer.js +8 -15
  919. package/Rendering/prePassRenderer.js.map +1 -1
  920. package/Rendering/prePassRendererSceneComponent.d.ts +2 -2
  921. package/Rendering/prePassRendererSceneComponent.js.map +1 -1
  922. package/Rendering/renderingGroup.d.ts +3 -3
  923. package/Rendering/renderingGroup.js +3 -3
  924. package/Rendering/renderingGroup.js.map +1 -1
  925. package/Rendering/renderingManager.d.ts +15 -8
  926. package/Rendering/renderingManager.js +59 -17
  927. package/Rendering/renderingManager.js.map +1 -1
  928. package/Rendering/subSurfaceConfiguration.d.ts +2 -4
  929. package/Rendering/subSurfaceConfiguration.js +2 -4
  930. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  931. package/Rendering/subSurfaceSceneComponent.d.ts +1 -1
  932. package/Rendering/subSurfaceSceneComponent.js.map +1 -1
  933. package/Rendering/utilityLayerRenderer.d.ts +4 -4
  934. package/Rendering/utilityLayerRenderer.js +15 -10
  935. package/Rendering/utilityLayerRenderer.js.map +1 -1
  936. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.d.ts +1 -1
  937. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +1 -1
  938. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js.map +1 -1
  939. package/Shaders/ShadersInclude/backgroundUboDeclaration.d.ts +1 -1
  940. package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
  941. package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  942. package/Shaders/ShadersInclude/backgroundVertexDeclaration.d.ts +1 -1
  943. package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +1 -1
  944. package/Shaders/ShadersInclude/backgroundVertexDeclaration.js.map +1 -1
  945. package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
  946. package/Shaders/ShadersInclude/bakedVertexAnimation.js +1 -1
  947. package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  948. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
  949. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
  950. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
  951. package/Shaders/ShadersInclude/bayerDitherFunctions.d.ts +1 -1
  952. package/Shaders/ShadersInclude/bayerDitherFunctions.js +1 -1
  953. package/Shaders/ShadersInclude/bayerDitherFunctions.js.map +1 -1
  954. package/Shaders/ShadersInclude/bonesDeclaration.d.ts +1 -1
  955. package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
  956. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  957. package/Shaders/ShadersInclude/bonesVertex.d.ts +1 -1
  958. package/Shaders/ShadersInclude/bonesVertex.js +1 -1
  959. package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
  960. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.d.ts +1 -1
  961. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +1 -1
  962. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -1
  963. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.d.ts +1 -1
  964. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +1 -1
  965. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
  966. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.d.ts +1 -1
  967. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +1 -1
  968. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -1
  969. package/Shaders/ShadersInclude/bumpFragment.d.ts +1 -1
  970. package/Shaders/ShadersInclude/bumpFragment.js +1 -1
  971. package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
  972. package/Shaders/ShadersInclude/bumpFragmentFunctions.d.ts +1 -1
  973. package/Shaders/ShadersInclude/bumpFragmentFunctions.js +1 -1
  974. package/Shaders/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
  975. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.d.ts +1 -1
  976. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +1 -1
  977. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  978. package/Shaders/ShadersInclude/bumpVertex.d.ts +1 -1
  979. package/Shaders/ShadersInclude/bumpVertex.js +1 -1
  980. package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
  981. package/Shaders/ShadersInclude/bumpVertexDeclaration.d.ts +1 -1
  982. package/Shaders/ShadersInclude/bumpVertexDeclaration.js +1 -1
  983. package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
  984. package/Shaders/ShadersInclude/clipPlaneFragment.d.ts +1 -1
  985. package/Shaders/ShadersInclude/clipPlaneFragment.js +1 -1
  986. package/Shaders/ShadersInclude/clipPlaneFragment.js.map +1 -1
  987. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
  988. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
  989. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
  990. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.d.ts +1 -1
  991. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +1 -1
  992. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js.map +1 -1
  993. package/Shaders/ShadersInclude/clipPlaneVertex.d.ts +1 -1
  994. package/Shaders/ShadersInclude/clipPlaneVertex.js +1 -1
  995. package/Shaders/ShadersInclude/clipPlaneVertex.js.map +1 -1
  996. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
  997. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
  998. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
  999. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.d.ts +1 -1
  1000. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +1 -1
  1001. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js.map +1 -1
  1002. package/Shaders/ShadersInclude/defaultFragmentDeclaration.d.ts +1 -1
  1003. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
  1004. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
  1005. package/Shaders/ShadersInclude/defaultUboDeclaration.d.ts +1 -1
  1006. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  1007. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  1008. package/Shaders/ShadersInclude/defaultVertexDeclaration.d.ts +1 -1
  1009. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
  1010. package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
  1011. package/Shaders/ShadersInclude/depthPrePass.d.ts +1 -1
  1012. package/Shaders/ShadersInclude/depthPrePass.js +1 -1
  1013. package/Shaders/ShadersInclude/depthPrePass.js.map +1 -1
  1014. package/Shaders/ShadersInclude/diffusionProfile.d.ts +1 -1
  1015. package/Shaders/ShadersInclude/diffusionProfile.js +1 -1
  1016. package/Shaders/ShadersInclude/diffusionProfile.js.map +1 -1
  1017. package/Shaders/ShadersInclude/fibonacci.d.ts +1 -1
  1018. package/Shaders/ShadersInclude/fibonacci.js +1 -1
  1019. package/Shaders/ShadersInclude/fibonacci.js.map +1 -1
  1020. package/Shaders/ShadersInclude/fogFragment.d.ts +1 -1
  1021. package/Shaders/ShadersInclude/fogFragment.js +1 -1
  1022. package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
  1023. package/Shaders/ShadersInclude/fogFragmentDeclaration.d.ts +1 -1
  1024. package/Shaders/ShadersInclude/fogFragmentDeclaration.js +1 -1
  1025. package/Shaders/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
  1026. package/Shaders/ShadersInclude/fogVertex.d.ts +1 -1
  1027. package/Shaders/ShadersInclude/fogVertex.js +1 -1
  1028. package/Shaders/ShadersInclude/fogVertex.js.map +1 -1
  1029. package/Shaders/ShadersInclude/fogVertexDeclaration.d.ts +1 -1
  1030. package/Shaders/ShadersInclude/fogVertexDeclaration.js +1 -1
  1031. package/Shaders/ShadersInclude/fogVertexDeclaration.js.map +1 -1
  1032. package/Shaders/ShadersInclude/fresnelFunction.d.ts +1 -1
  1033. package/Shaders/ShadersInclude/fresnelFunction.js +1 -1
  1034. package/Shaders/ShadersInclude/fresnelFunction.js.map +1 -1
  1035. package/Shaders/ShadersInclude/geometryUboDeclaration.d.ts +1 -1
  1036. package/Shaders/ShadersInclude/geometryUboDeclaration.js +1 -1
  1037. package/Shaders/ShadersInclude/geometryUboDeclaration.js.map +1 -1
  1038. package/Shaders/ShadersInclude/geometryVertexDeclaration.d.ts +1 -1
  1039. package/Shaders/ShadersInclude/geometryVertexDeclaration.js +1 -1
  1040. package/Shaders/ShadersInclude/geometryVertexDeclaration.js.map +1 -1
  1041. package/Shaders/ShadersInclude/harmonicsFunctions.d.ts +1 -1
  1042. package/Shaders/ShadersInclude/harmonicsFunctions.js +1 -1
  1043. package/Shaders/ShadersInclude/harmonicsFunctions.js.map +1 -1
  1044. package/Shaders/ShadersInclude/hdrFilteringFunctions.d.ts +1 -1
  1045. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +1 -1
  1046. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  1047. package/Shaders/ShadersInclude/helperFunctions.d.ts +1 -1
  1048. package/Shaders/ShadersInclude/helperFunctions.js +1 -1
  1049. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  1050. package/Shaders/ShadersInclude/imageProcessingCompatibility.d.ts +1 -1
  1051. package/Shaders/ShadersInclude/imageProcessingCompatibility.js +1 -1
  1052. package/Shaders/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
  1053. package/Shaders/ShadersInclude/imageProcessingDeclaration.d.ts +1 -1
  1054. package/Shaders/ShadersInclude/imageProcessingDeclaration.js +1 -1
  1055. package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
  1056. package/Shaders/ShadersInclude/imageProcessingFunctions.d.ts +1 -1
  1057. package/Shaders/ShadersInclude/imageProcessingFunctions.js +1 -1
  1058. package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  1059. package/Shaders/ShadersInclude/importanceSampling.d.ts +1 -1
  1060. package/Shaders/ShadersInclude/importanceSampling.js +1 -1
  1061. package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
  1062. package/Shaders/ShadersInclude/instancesDeclaration.d.ts +1 -1
  1063. package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
  1064. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  1065. package/Shaders/ShadersInclude/instancesVertex.d.ts +1 -1
  1066. package/Shaders/ShadersInclude/instancesVertex.js +1 -1
  1067. package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
  1068. package/Shaders/ShadersInclude/kernelBlurFragment.d.ts +1 -1
  1069. package/Shaders/ShadersInclude/kernelBlurFragment.js +1 -1
  1070. package/Shaders/ShadersInclude/kernelBlurFragment.js.map +1 -1
  1071. package/Shaders/ShadersInclude/kernelBlurFragment2.d.ts +1 -1
  1072. package/Shaders/ShadersInclude/kernelBlurFragment2.js +1 -1
  1073. package/Shaders/ShadersInclude/kernelBlurFragment2.js.map +1 -1
  1074. package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.d.ts +1 -1
  1075. package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js +1 -1
  1076. package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -1
  1077. package/Shaders/ShadersInclude/kernelBlurVertex.d.ts +1 -1
  1078. package/Shaders/ShadersInclude/kernelBlurVertex.js +1 -1
  1079. package/Shaders/ShadersInclude/kernelBlurVertex.js.map +1 -1
  1080. package/Shaders/ShadersInclude/lightFragment.d.ts +1 -1
  1081. package/Shaders/ShadersInclude/lightFragment.js +1 -1
  1082. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  1083. package/Shaders/ShadersInclude/lightFragmentDeclaration.d.ts +1 -1
  1084. package/Shaders/ShadersInclude/lightFragmentDeclaration.js +1 -1
  1085. package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
  1086. package/Shaders/ShadersInclude/lightUboDeclaration.d.ts +1 -1
  1087. package/Shaders/ShadersInclude/lightUboDeclaration.js +1 -1
  1088. package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
  1089. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.d.ts +1 -1
  1090. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +1 -1
  1091. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
  1092. package/Shaders/ShadersInclude/lightVxUboDeclaration.d.ts +1 -1
  1093. package/Shaders/ShadersInclude/lightVxUboDeclaration.js +1 -1
  1094. package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
  1095. package/Shaders/ShadersInclude/lightsFragmentFunctions.d.ts +1 -1
  1096. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -1
  1097. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  1098. package/Shaders/ShadersInclude/logDepthDeclaration.d.ts +1 -1
  1099. package/Shaders/ShadersInclude/logDepthDeclaration.js +1 -1
  1100. package/Shaders/ShadersInclude/logDepthDeclaration.js.map +1 -1
  1101. package/Shaders/ShadersInclude/logDepthFragment.d.ts +1 -1
  1102. package/Shaders/ShadersInclude/logDepthFragment.js +1 -1
  1103. package/Shaders/ShadersInclude/logDepthFragment.js.map +1 -1
  1104. package/Shaders/ShadersInclude/logDepthVertex.d.ts +1 -1
  1105. package/Shaders/ShadersInclude/logDepthVertex.js +1 -1
  1106. package/Shaders/ShadersInclude/logDepthVertex.js.map +1 -1
  1107. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.d.ts +1 -1
  1108. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +1 -1
  1109. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
  1110. package/Shaders/ShadersInclude/meshFragmentDeclaration.d.ts +1 -1
  1111. package/Shaders/ShadersInclude/meshFragmentDeclaration.js +1 -1
  1112. package/Shaders/ShadersInclude/meshFragmentDeclaration.js.map +1 -1
  1113. package/Shaders/ShadersInclude/meshUboDeclaration.d.ts +1 -1
  1114. package/Shaders/ShadersInclude/meshUboDeclaration.js +1 -1
  1115. package/Shaders/ShadersInclude/meshUboDeclaration.js.map +1 -1
  1116. package/Shaders/ShadersInclude/meshVertexDeclaration.d.ts +1 -1
  1117. package/Shaders/ShadersInclude/meshVertexDeclaration.js +1 -1
  1118. package/Shaders/ShadersInclude/meshVertexDeclaration.js.map +1 -1
  1119. package/Shaders/ShadersInclude/morphTargetsVertex.d.ts +1 -1
  1120. package/Shaders/ShadersInclude/morphTargetsVertex.js +1 -1
  1121. package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
  1122. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
  1123. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
  1124. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  1125. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
  1126. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
  1127. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
  1128. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
  1129. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
  1130. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  1131. package/Shaders/ShadersInclude/mrtFragmentDeclaration.d.ts +1 -1
  1132. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +1 -1
  1133. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
  1134. package/Shaders/ShadersInclude/oitDeclaration.d.ts +1 -1
  1135. package/Shaders/ShadersInclude/oitDeclaration.js +1 -1
  1136. package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
  1137. package/Shaders/ShadersInclude/oitFragment.d.ts +1 -1
  1138. package/Shaders/ShadersInclude/oitFragment.js +1 -1
  1139. package/Shaders/ShadersInclude/oitFragment.js.map +1 -1
  1140. package/Shaders/ShadersInclude/packingFunctions.d.ts +1 -1
  1141. package/Shaders/ShadersInclude/packingFunctions.js +1 -1
  1142. package/Shaders/ShadersInclude/packingFunctions.js.map +1 -1
  1143. package/Shaders/ShadersInclude/pbrBRDFFunctions.d.ts +1 -1
  1144. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
  1145. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  1146. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +1 -1
  1147. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +3 -3
  1148. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  1149. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.d.ts +1 -1
  1150. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +1 -1
  1151. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
  1152. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.d.ts +1 -1
  1153. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +1 -1
  1154. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
  1155. package/Shaders/ShadersInclude/pbrBlockAnisotropic.d.ts +1 -1
  1156. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +1 -1
  1157. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
  1158. package/Shaders/ShadersInclude/pbrBlockClearcoat.d.ts +1 -1
  1159. package/Shaders/ShadersInclude/pbrBlockClearcoat.js +1 -1
  1160. package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
  1161. package/Shaders/ShadersInclude/pbrBlockDirectLighting.d.ts +1 -1
  1162. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +1 -1
  1163. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
  1164. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.d.ts +1 -1
  1165. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +1 -1
  1166. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
  1167. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.d.ts +1 -1
  1168. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +1 -1
  1169. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
  1170. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.d.ts +1 -1
  1171. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +1 -1
  1172. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  1173. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.d.ts +1 -1
  1174. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +1 -1
  1175. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
  1176. package/Shaders/ShadersInclude/pbrBlockImageProcessing.d.ts +1 -1
  1177. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
  1178. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  1179. package/Shaders/ShadersInclude/pbrBlockIridescence.d.ts +1 -1
  1180. package/Shaders/ShadersInclude/pbrBlockIridescence.js +1 -1
  1181. package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
  1182. package/Shaders/ShadersInclude/pbrBlockLightmapInit.d.ts +1 -1
  1183. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +1 -1
  1184. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
  1185. package/Shaders/ShadersInclude/pbrBlockNormalFinal.d.ts +1 -1
  1186. package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +1 -1
  1187. package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
  1188. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.d.ts +1 -1
  1189. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +1 -1
  1190. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
  1191. package/Shaders/ShadersInclude/pbrBlockReflectance.d.ts +1 -1
  1192. package/Shaders/ShadersInclude/pbrBlockReflectance.js +1 -1
  1193. package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
  1194. package/Shaders/ShadersInclude/pbrBlockReflectance0.d.ts +1 -1
  1195. package/Shaders/ShadersInclude/pbrBlockReflectance0.js +1 -1
  1196. package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
  1197. package/Shaders/ShadersInclude/pbrBlockReflection.d.ts +1 -1
  1198. package/Shaders/ShadersInclude/pbrBlockReflection.js +1 -1
  1199. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  1200. package/Shaders/ShadersInclude/pbrBlockReflectivity.d.ts +1 -1
  1201. package/Shaders/ShadersInclude/pbrBlockReflectivity.js +1 -1
  1202. package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  1203. package/Shaders/ShadersInclude/pbrBlockSheen.d.ts +1 -1
  1204. package/Shaders/ShadersInclude/pbrBlockSheen.js +1 -1
  1205. package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
  1206. package/Shaders/ShadersInclude/pbrBlockSubSurface.d.ts +1 -1
  1207. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
  1208. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  1209. package/Shaders/ShadersInclude/pbrDebug.d.ts +1 -1
  1210. package/Shaders/ShadersInclude/pbrDebug.js +1 -1
  1211. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  1212. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.d.ts +1 -1
  1213. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +1 -1
  1214. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
  1215. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.d.ts +1 -1
  1216. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  1217. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  1218. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.d.ts +1 -1
  1219. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
  1220. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
  1221. package/Shaders/ShadersInclude/pbrFragmentDeclaration.d.ts +1 -1
  1222. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
  1223. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
  1224. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.d.ts +1 -1
  1225. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +2 -2
  1226. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  1227. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +1 -1
  1228. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -1
  1229. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  1230. package/Shaders/ShadersInclude/pbrHelperFunctions.d.ts +1 -1
  1231. package/Shaders/ShadersInclude/pbrHelperFunctions.js +1 -1
  1232. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  1233. package/Shaders/ShadersInclude/pbrIBLFunctions.d.ts +1 -1
  1234. package/Shaders/ShadersInclude/pbrIBLFunctions.js +1 -1
  1235. package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
  1236. package/Shaders/ShadersInclude/pbrUboDeclaration.d.ts +1 -1
  1237. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  1238. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  1239. package/Shaders/ShadersInclude/pbrVertexDeclaration.d.ts +1 -1
  1240. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
  1241. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  1242. package/Shaders/ShadersInclude/pointCloudVertex.d.ts +1 -1
  1243. package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
  1244. package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
  1245. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.d.ts +1 -1
  1246. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +1 -1
  1247. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
  1248. package/Shaders/ShadersInclude/prePassDeclaration.d.ts +1 -1
  1249. package/Shaders/ShadersInclude/prePassDeclaration.js +1 -1
  1250. package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
  1251. package/Shaders/ShadersInclude/prePassVertex.d.ts +1 -1
  1252. package/Shaders/ShadersInclude/prePassVertex.js +1 -1
  1253. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  1254. package/Shaders/ShadersInclude/prePassVertexDeclaration.d.ts +1 -1
  1255. package/Shaders/ShadersInclude/prePassVertexDeclaration.js +1 -1
  1256. package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
  1257. package/Shaders/ShadersInclude/reflectionFunction.d.ts +1 -1
  1258. package/Shaders/ShadersInclude/reflectionFunction.js +1 -1
  1259. package/Shaders/ShadersInclude/reflectionFunction.js.map +1 -1
  1260. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.d.ts +1 -1
  1261. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +1 -1
  1262. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
  1263. package/Shaders/ShadersInclude/samplerFragmentDeclaration.d.ts +1 -1
  1264. package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +1 -1
  1265. package/Shaders/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
  1266. package/Shaders/ShadersInclude/samplerVertexDeclaration.d.ts +1 -1
  1267. package/Shaders/ShadersInclude/samplerVertexDeclaration.js +1 -1
  1268. package/Shaders/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
  1269. package/Shaders/ShadersInclude/samplerVertexImplementation.d.ts +1 -1
  1270. package/Shaders/ShadersInclude/samplerVertexImplementation.js +1 -1
  1271. package/Shaders/ShadersInclude/samplerVertexImplementation.js.map +1 -1
  1272. package/Shaders/ShadersInclude/sceneFragmentDeclaration.d.ts +1 -1
  1273. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +1 -1
  1274. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
  1275. package/Shaders/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
  1276. package/Shaders/ShadersInclude/sceneUboDeclaration.js +1 -1
  1277. package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  1278. package/Shaders/ShadersInclude/sceneVertexDeclaration.d.ts +1 -1
  1279. package/Shaders/ShadersInclude/sceneVertexDeclaration.js +1 -1
  1280. package/Shaders/ShadersInclude/sceneVertexDeclaration.js.map +1 -1
  1281. package/Shaders/ShadersInclude/shadowMapFragment.d.ts +1 -1
  1282. package/Shaders/ShadersInclude/shadowMapFragment.js +1 -1
  1283. package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
  1284. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.d.ts +1 -1
  1285. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +1 -1
  1286. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
  1287. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.d.ts +1 -1
  1288. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +1 -1
  1289. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
  1290. package/Shaders/ShadersInclude/shadowMapUboDeclaration.d.ts +1 -1
  1291. package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +1 -1
  1292. package/Shaders/ShadersInclude/shadowMapUboDeclaration.js.map +1 -1
  1293. package/Shaders/ShadersInclude/shadowMapVertexDeclaration.d.ts +1 -1
  1294. package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js +1 -1
  1295. package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js.map +1 -1
  1296. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.d.ts +1 -1
  1297. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +1 -1
  1298. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
  1299. package/Shaders/ShadersInclude/shadowMapVertexMetric.d.ts +1 -1
  1300. package/Shaders/ShadersInclude/shadowMapVertexMetric.js +1 -1
  1301. package/Shaders/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
  1302. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.d.ts +1 -1
  1303. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +1 -1
  1304. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
  1305. package/Shaders/ShadersInclude/shadowsFragmentFunctions.d.ts +1 -1
  1306. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +1 -1
  1307. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  1308. package/Shaders/ShadersInclude/shadowsVertex.d.ts +1 -1
  1309. package/Shaders/ShadersInclude/shadowsVertex.js +1 -1
  1310. package/Shaders/ShadersInclude/shadowsVertex.js.map +1 -1
  1311. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.d.ts +1 -1
  1312. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +1 -1
  1313. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
  1314. package/Shaders/ShadersInclude/uvAttributeDeclaration.d.ts +1 -1
  1315. package/Shaders/ShadersInclude/uvAttributeDeclaration.js +1 -1
  1316. package/Shaders/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
  1317. package/Shaders/ShadersInclude/uvVariableDeclaration.d.ts +1 -1
  1318. package/Shaders/ShadersInclude/uvVariableDeclaration.js +1 -1
  1319. package/Shaders/ShadersInclude/uvVariableDeclaration.js.map +1 -1
  1320. package/Shaders/ShadersInclude/vertexColorMixing.d.ts +1 -1
  1321. package/Shaders/ShadersInclude/vertexColorMixing.js +2 -2
  1322. package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
  1323. package/Shaders/anaglyph.fragment.d.ts +1 -1
  1324. package/Shaders/anaglyph.fragment.js +1 -1
  1325. package/Shaders/anaglyph.fragment.js.map +1 -1
  1326. package/Shaders/background.fragment.d.ts +1 -1
  1327. package/Shaders/background.fragment.js +1 -1
  1328. package/Shaders/background.fragment.js.map +1 -1
  1329. package/Shaders/background.vertex.d.ts +1 -1
  1330. package/Shaders/background.vertex.js +1 -1
  1331. package/Shaders/background.vertex.js.map +1 -1
  1332. package/Shaders/blackAndWhite.fragment.d.ts +1 -1
  1333. package/Shaders/blackAndWhite.fragment.js +1 -1
  1334. package/Shaders/blackAndWhite.fragment.js.map +1 -1
  1335. package/Shaders/bloomMerge.fragment.d.ts +1 -1
  1336. package/Shaders/bloomMerge.fragment.js +1 -1
  1337. package/Shaders/bloomMerge.fragment.js.map +1 -1
  1338. package/Shaders/blur.fragment.d.ts +1 -1
  1339. package/Shaders/blur.fragment.js +1 -1
  1340. package/Shaders/blur.fragment.js.map +1 -1
  1341. package/Shaders/boundingBoxRenderer.fragment.d.ts +1 -1
  1342. package/Shaders/boundingBoxRenderer.fragment.js +1 -1
  1343. package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
  1344. package/Shaders/boundingBoxRenderer.vertex.d.ts +1 -1
  1345. package/Shaders/boundingBoxRenderer.vertex.js +1 -1
  1346. package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
  1347. package/Shaders/chromaticAberration.fragment.d.ts +1 -1
  1348. package/Shaders/chromaticAberration.fragment.js +2 -1
  1349. package/Shaders/chromaticAberration.fragment.js.map +1 -1
  1350. package/Shaders/circleOfConfusion.fragment.d.ts +1 -1
  1351. package/Shaders/circleOfConfusion.fragment.js +1 -1
  1352. package/Shaders/circleOfConfusion.fragment.js.map +1 -1
  1353. package/Shaders/clearQuad.fragment.d.ts +1 -1
  1354. package/Shaders/clearQuad.fragment.js +1 -1
  1355. package/Shaders/clearQuad.fragment.js.map +1 -1
  1356. package/Shaders/clearQuad.vertex.d.ts +1 -1
  1357. package/Shaders/clearQuad.vertex.js +1 -1
  1358. package/Shaders/clearQuad.vertex.js.map +1 -1
  1359. package/Shaders/color.fragment.d.ts +1 -1
  1360. package/Shaders/color.fragment.js +4 -3
  1361. package/Shaders/color.fragment.js.map +1 -1
  1362. package/Shaders/color.vertex.d.ts +1 -1
  1363. package/Shaders/color.vertex.js +2 -2
  1364. package/Shaders/color.vertex.js.map +1 -1
  1365. package/Shaders/colorCorrection.fragment.d.ts +1 -1
  1366. package/Shaders/colorCorrection.fragment.js +1 -1
  1367. package/Shaders/colorCorrection.fragment.js.map +1 -1
  1368. package/Shaders/convolution.fragment.d.ts +1 -1
  1369. package/Shaders/convolution.fragment.js +1 -1
  1370. package/Shaders/convolution.fragment.js.map +1 -1
  1371. package/Shaders/default.fragment.d.ts +1 -1
  1372. package/Shaders/default.fragment.js +4 -4
  1373. package/Shaders/default.fragment.js.map +1 -1
  1374. package/Shaders/default.vertex.d.ts +1 -1
  1375. package/Shaders/default.vertex.js +2 -2
  1376. package/Shaders/default.vertex.js.map +1 -1
  1377. package/Shaders/depth.fragment.d.ts +1 -1
  1378. package/Shaders/depth.fragment.js +1 -1
  1379. package/Shaders/depth.fragment.js.map +1 -1
  1380. package/Shaders/depth.vertex.d.ts +1 -1
  1381. package/Shaders/depth.vertex.js +1 -1
  1382. package/Shaders/depth.vertex.js.map +1 -1
  1383. package/Shaders/depthBoxBlur.fragment.d.ts +1 -1
  1384. package/Shaders/depthBoxBlur.fragment.js +1 -1
  1385. package/Shaders/depthBoxBlur.fragment.js.map +1 -1
  1386. package/Shaders/depthOfField.fragment.d.ts +1 -1
  1387. package/Shaders/depthOfField.fragment.js +1 -1
  1388. package/Shaders/depthOfField.fragment.js.map +1 -1
  1389. package/Shaders/depthOfFieldMerge.fragment.d.ts +1 -1
  1390. package/Shaders/depthOfFieldMerge.fragment.js +1 -1
  1391. package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
  1392. package/Shaders/displayPass.fragment.d.ts +1 -1
  1393. package/Shaders/displayPass.fragment.js +1 -1
  1394. package/Shaders/displayPass.fragment.js.map +1 -1
  1395. package/Shaders/extractHighlights.fragment.d.ts +1 -1
  1396. package/Shaders/extractHighlights.fragment.js +1 -1
  1397. package/Shaders/extractHighlights.fragment.js.map +1 -1
  1398. package/Shaders/filter.fragment.d.ts +1 -1
  1399. package/Shaders/filter.fragment.js +1 -1
  1400. package/Shaders/filter.fragment.js.map +1 -1
  1401. package/Shaders/fxaa.fragment.d.ts +1 -1
  1402. package/Shaders/fxaa.fragment.js +1 -1
  1403. package/Shaders/fxaa.fragment.js.map +1 -1
  1404. package/Shaders/fxaa.vertex.d.ts +1 -1
  1405. package/Shaders/fxaa.vertex.js +1 -1
  1406. package/Shaders/fxaa.vertex.js.map +1 -1
  1407. package/Shaders/geometry.fragment.d.ts +1 -1
  1408. package/Shaders/geometry.fragment.js +14 -2
  1409. package/Shaders/geometry.fragment.js.map +1 -1
  1410. package/Shaders/geometry.vertex.d.ts +1 -1
  1411. package/Shaders/geometry.vertex.js +1 -1
  1412. package/Shaders/geometry.vertex.js.map +1 -1
  1413. package/Shaders/glowBlurPostProcess.fragment.d.ts +1 -1
  1414. package/Shaders/glowBlurPostProcess.fragment.js +1 -1
  1415. package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
  1416. package/Shaders/glowMapGeneration.fragment.d.ts +1 -1
  1417. package/Shaders/glowMapGeneration.fragment.js +1 -1
  1418. package/Shaders/glowMapGeneration.fragment.js.map +1 -1
  1419. package/Shaders/glowMapGeneration.vertex.d.ts +1 -1
  1420. package/Shaders/glowMapGeneration.vertex.js +1 -1
  1421. package/Shaders/glowMapGeneration.vertex.js.map +1 -1
  1422. package/Shaders/glowMapMerge.fragment.d.ts +1 -1
  1423. package/Shaders/glowMapMerge.fragment.js +1 -1
  1424. package/Shaders/glowMapMerge.fragment.js.map +1 -1
  1425. package/Shaders/glowMapMerge.vertex.d.ts +1 -1
  1426. package/Shaders/glowMapMerge.vertex.js +1 -1
  1427. package/Shaders/glowMapMerge.vertex.js.map +1 -1
  1428. package/Shaders/gpuRenderParticles.fragment.d.ts +3 -1
  1429. package/Shaders/gpuRenderParticles.fragment.js +9 -2
  1430. package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
  1431. package/Shaders/gpuRenderParticles.vertex.d.ts +3 -1
  1432. package/Shaders/gpuRenderParticles.vertex.js +5 -1
  1433. package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
  1434. package/Shaders/gpuUpdateParticles.fragment.d.ts +1 -1
  1435. package/Shaders/gpuUpdateParticles.fragment.js +1 -1
  1436. package/Shaders/gpuUpdateParticles.fragment.js.map +1 -1
  1437. package/Shaders/gpuUpdateParticles.vertex.d.ts +1 -1
  1438. package/Shaders/gpuUpdateParticles.vertex.js +1 -1
  1439. package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
  1440. package/Shaders/grain.fragment.d.ts +1 -1
  1441. package/Shaders/grain.fragment.js +1 -1
  1442. package/Shaders/grain.fragment.js.map +1 -1
  1443. package/Shaders/hdrFiltering.fragment.d.ts +1 -1
  1444. package/Shaders/hdrFiltering.fragment.js +1 -1
  1445. package/Shaders/hdrFiltering.fragment.js.map +1 -1
  1446. package/Shaders/hdrFiltering.vertex.d.ts +1 -1
  1447. package/Shaders/hdrFiltering.vertex.js +1 -1
  1448. package/Shaders/hdrFiltering.vertex.js.map +1 -1
  1449. package/Shaders/highlights.fragment.d.ts +1 -1
  1450. package/Shaders/highlights.fragment.js +1 -1
  1451. package/Shaders/highlights.fragment.js.map +1 -1
  1452. package/Shaders/imageProcessing.fragment.d.ts +1 -1
  1453. package/Shaders/imageProcessing.fragment.js +1 -1
  1454. package/Shaders/imageProcessing.fragment.js.map +1 -1
  1455. package/Shaders/kernelBlur.fragment.d.ts +1 -1
  1456. package/Shaders/kernelBlur.fragment.js +1 -1
  1457. package/Shaders/kernelBlur.fragment.js.map +1 -1
  1458. package/Shaders/kernelBlur.vertex.d.ts +1 -1
  1459. package/Shaders/kernelBlur.vertex.js +1 -1
  1460. package/Shaders/kernelBlur.vertex.js.map +1 -1
  1461. package/Shaders/layer.fragment.d.ts +1 -1
  1462. package/Shaders/layer.fragment.js +1 -1
  1463. package/Shaders/layer.fragment.js.map +1 -1
  1464. package/Shaders/layer.vertex.d.ts +1 -1
  1465. package/Shaders/layer.vertex.js +1 -1
  1466. package/Shaders/layer.vertex.js.map +1 -1
  1467. package/Shaders/lensFlare.fragment.d.ts +1 -1
  1468. package/Shaders/lensFlare.fragment.js +1 -1
  1469. package/Shaders/lensFlare.fragment.js.map +1 -1
  1470. package/Shaders/lensFlare.vertex.d.ts +1 -1
  1471. package/Shaders/lensFlare.vertex.js +1 -1
  1472. package/Shaders/lensFlare.vertex.js.map +1 -1
  1473. package/Shaders/lensHighlights.fragment.d.ts +1 -1
  1474. package/Shaders/lensHighlights.fragment.js +1 -1
  1475. package/Shaders/lensHighlights.fragment.js.map +1 -1
  1476. package/Shaders/line.fragment.d.ts +1 -1
  1477. package/Shaders/line.fragment.js +1 -1
  1478. package/Shaders/line.fragment.js.map +1 -1
  1479. package/Shaders/line.vertex.d.ts +1 -1
  1480. package/Shaders/line.vertex.js +1 -1
  1481. package/Shaders/line.vertex.js.map +1 -1
  1482. package/Shaders/minmaxRedux.fragment.d.ts +1 -1
  1483. package/Shaders/minmaxRedux.fragment.js +1 -1
  1484. package/Shaders/minmaxRedux.fragment.js.map +1 -1
  1485. package/Shaders/motionBlur.fragment.d.ts +1 -1
  1486. package/Shaders/motionBlur.fragment.js +1 -1
  1487. package/Shaders/motionBlur.fragment.js.map +1 -1
  1488. package/Shaders/noise.fragment.d.ts +1 -1
  1489. package/Shaders/noise.fragment.js +1 -1
  1490. package/Shaders/noise.fragment.js.map +1 -1
  1491. package/Shaders/oitBackBlend.fragment.d.ts +1 -1
  1492. package/Shaders/oitBackBlend.fragment.js +1 -1
  1493. package/Shaders/oitBackBlend.fragment.js.map +1 -1
  1494. package/Shaders/oitFinal.fragment.d.ts +1 -1
  1495. package/Shaders/oitFinal.fragment.js +1 -1
  1496. package/Shaders/oitFinal.fragment.js.map +1 -1
  1497. package/Shaders/outline.fragment.d.ts +1 -1
  1498. package/Shaders/outline.fragment.js +1 -1
  1499. package/Shaders/outline.fragment.js.map +1 -1
  1500. package/Shaders/outline.vertex.d.ts +1 -1
  1501. package/Shaders/outline.vertex.js +1 -1
  1502. package/Shaders/outline.vertex.js.map +1 -1
  1503. package/Shaders/particles.fragment.d.ts +3 -1
  1504. package/Shaders/particles.fragment.js +9 -2
  1505. package/Shaders/particles.fragment.js.map +1 -1
  1506. package/Shaders/particles.vertex.d.ts +3 -1
  1507. package/Shaders/particles.vertex.js +5 -1
  1508. package/Shaders/particles.vertex.js.map +1 -1
  1509. package/Shaders/pass.fragment.d.ts +1 -1
  1510. package/Shaders/pass.fragment.js +1 -1
  1511. package/Shaders/pass.fragment.js.map +1 -1
  1512. package/Shaders/passCube.fragment.d.ts +1 -1
  1513. package/Shaders/passCube.fragment.js +1 -1
  1514. package/Shaders/passCube.fragment.js.map +1 -1
  1515. package/Shaders/pbr.fragment.d.ts +1 -1
  1516. package/Shaders/pbr.fragment.js +1 -1
  1517. package/Shaders/pbr.fragment.js.map +1 -1
  1518. package/Shaders/pbr.vertex.d.ts +1 -1
  1519. package/Shaders/pbr.vertex.js +2 -2
  1520. package/Shaders/pbr.vertex.js.map +1 -1
  1521. package/Shaders/postprocess.vertex.d.ts +1 -1
  1522. package/Shaders/postprocess.vertex.js +1 -1
  1523. package/Shaders/postprocess.vertex.js.map +1 -1
  1524. package/Shaders/procedural.vertex.d.ts +1 -1
  1525. package/Shaders/procedural.vertex.js +1 -1
  1526. package/Shaders/procedural.vertex.js.map +1 -1
  1527. package/Shaders/refraction.fragment.d.ts +1 -1
  1528. package/Shaders/refraction.fragment.js +1 -1
  1529. package/Shaders/refraction.fragment.js.map +1 -1
  1530. package/Shaders/rgbdDecode.fragment.d.ts +1 -1
  1531. package/Shaders/rgbdDecode.fragment.js +1 -1
  1532. package/Shaders/rgbdDecode.fragment.js.map +1 -1
  1533. package/Shaders/rgbdEncode.fragment.d.ts +1 -1
  1534. package/Shaders/rgbdEncode.fragment.js +1 -1
  1535. package/Shaders/rgbdEncode.fragment.js.map +1 -1
  1536. package/Shaders/screenSpaceCurvature.fragment.d.ts +1 -1
  1537. package/Shaders/screenSpaceCurvature.fragment.js +1 -1
  1538. package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
  1539. package/Shaders/screenSpaceReflection.fragment.d.ts +1 -1
  1540. package/Shaders/screenSpaceReflection.fragment.js +1 -1
  1541. package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
  1542. package/Shaders/shadowMap.fragment.d.ts +1 -1
  1543. package/Shaders/shadowMap.fragment.js +1 -1
  1544. package/Shaders/shadowMap.fragment.js.map +1 -1
  1545. package/Shaders/shadowMap.vertex.d.ts +1 -1
  1546. package/Shaders/shadowMap.vertex.js +1 -1
  1547. package/Shaders/shadowMap.vertex.js.map +1 -1
  1548. package/Shaders/sharpen.fragment.d.ts +1 -1
  1549. package/Shaders/sharpen.fragment.js +1 -1
  1550. package/Shaders/sharpen.fragment.js.map +1 -1
  1551. package/Shaders/spriteMap.fragment.d.ts +1 -1
  1552. package/Shaders/spriteMap.fragment.js +1 -1
  1553. package/Shaders/spriteMap.fragment.js.map +1 -1
  1554. package/Shaders/spriteMap.vertex.d.ts +1 -1
  1555. package/Shaders/spriteMap.vertex.js +1 -1
  1556. package/Shaders/spriteMap.vertex.js.map +1 -1
  1557. package/Shaders/sprites.fragment.d.ts +1 -1
  1558. package/Shaders/sprites.fragment.js +1 -1
  1559. package/Shaders/sprites.fragment.js.map +1 -1
  1560. package/Shaders/sprites.vertex.d.ts +1 -1
  1561. package/Shaders/sprites.vertex.js +1 -1
  1562. package/Shaders/sprites.vertex.js.map +1 -1
  1563. package/Shaders/ssao.fragment.d.ts +1 -1
  1564. package/Shaders/ssao.fragment.js +1 -1
  1565. package/Shaders/ssao.fragment.js.map +1 -1
  1566. package/Shaders/ssao2.fragment.d.ts +1 -1
  1567. package/Shaders/ssao2.fragment.js +1 -1
  1568. package/Shaders/ssao2.fragment.js.map +1 -1
  1569. package/Shaders/ssaoCombine.fragment.d.ts +1 -1
  1570. package/Shaders/ssaoCombine.fragment.js +1 -1
  1571. package/Shaders/ssaoCombine.fragment.js.map +1 -1
  1572. package/Shaders/standard.fragment.d.ts +1 -1
  1573. package/Shaders/standard.fragment.js +1 -1
  1574. package/Shaders/standard.fragment.js.map +1 -1
  1575. package/Shaders/stereoscopicInterlace.fragment.d.ts +1 -1
  1576. package/Shaders/stereoscopicInterlace.fragment.js +1 -1
  1577. package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
  1578. package/Shaders/subSurfaceScattering.fragment.d.ts +1 -1
  1579. package/Shaders/subSurfaceScattering.fragment.js +1 -1
  1580. package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
  1581. package/Shaders/tonemap.fragment.d.ts +1 -1
  1582. package/Shaders/tonemap.fragment.js +1 -1
  1583. package/Shaders/tonemap.fragment.js.map +1 -1
  1584. package/Shaders/volumetricLightScattering.fragment.d.ts +1 -1
  1585. package/Shaders/volumetricLightScattering.fragment.js +1 -1
  1586. package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
  1587. package/Shaders/volumetricLightScatteringPass.fragment.d.ts +1 -1
  1588. package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
  1589. package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
  1590. package/Shaders/volumetricLightScatteringPass.vertex.d.ts +1 -1
  1591. package/Shaders/volumetricLightScatteringPass.vertex.js +1 -1
  1592. package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
  1593. package/Shaders/vrDistortionCorrection.fragment.d.ts +1 -1
  1594. package/Shaders/vrDistortionCorrection.fragment.js +1 -1
  1595. package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
  1596. package/Shaders/vrMultiviewToSingleview.fragment.d.ts +1 -1
  1597. package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
  1598. package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
  1599. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
  1600. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +1 -1
  1601. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  1602. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
  1603. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
  1604. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
  1605. package/ShadersWGSL/ShadersInclude/bonesDeclaration.d.ts +1 -1
  1606. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
  1607. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
  1608. package/ShadersWGSL/ShadersInclude/bonesVertex.d.ts +1 -1
  1609. package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
  1610. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  1611. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +1 -1
  1612. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +1 -1
  1613. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
  1614. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
  1615. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
  1616. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
  1617. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +1 -1
  1618. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +1 -1
  1619. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
  1620. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
  1621. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
  1622. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
  1623. package/ShadersWGSL/ShadersInclude/instancesDeclaration.d.ts +1 -1
  1624. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
  1625. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  1626. package/ShadersWGSL/ShadersInclude/instancesVertex.d.ts +1 -1
  1627. package/ShadersWGSL/ShadersInclude/instancesVertex.js +1 -1
  1628. package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
  1629. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.d.ts +1 -1
  1630. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
  1631. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
  1632. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.d.ts +1 -1
  1633. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +1 -1
  1634. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
  1635. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
  1636. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
  1637. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  1638. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
  1639. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
  1640. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
  1641. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
  1642. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
  1643. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  1644. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
  1645. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
  1646. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  1647. package/ShadersWGSL/gpuUpdateParticles.compute.d.ts +1 -1
  1648. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  1649. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  1650. package/Sprites/spriteManager.d.ts +4 -0
  1651. package/Sprites/spriteManager.js +2 -0
  1652. package/Sprites/spriteManager.js.map +1 -1
  1653. package/Sprites/spriteSceneComponent.d.ts +6 -6
  1654. package/Sprites/spriteSceneComponent.js.map +1 -1
  1655. package/Sprites/thinSprite.d.ts +5 -6
  1656. package/Sprites/thinSprite.js +1 -2
  1657. package/Sprites/thinSprite.js.map +1 -1
  1658. package/States/IStencilState.d.ts +1 -1
  1659. package/States/IStencilState.js.map +1 -1
  1660. package/States/alphaCullingState.d.ts +1 -1
  1661. package/States/alphaCullingState.js +1 -1
  1662. package/States/alphaCullingState.js.map +1 -1
  1663. package/States/depthCullingState.d.ts +1 -1
  1664. package/States/depthCullingState.js +1 -1
  1665. package/States/depthCullingState.js.map +1 -1
  1666. package/States/stencilState.d.ts +1 -1
  1667. package/States/stencilState.js +1 -1
  1668. package/States/stencilState.js.map +1 -1
  1669. package/States/stencilStateComposer.d.ts +1 -1
  1670. package/States/stencilStateComposer.js +1 -1
  1671. package/States/stencilStateComposer.js.map +1 -1
  1672. package/XR/features/WebXRControllerPhysics.d.ts +1 -1
  1673. package/XR/features/WebXRControllerPhysics.js +1 -1
  1674. package/XR/features/WebXRControllerPhysics.js.map +1 -1
  1675. package/XR/features/WebXRControllerPointerSelection.d.ts +3 -6
  1676. package/XR/features/WebXRControllerPointerSelection.js +3 -6
  1677. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  1678. package/XR/features/WebXRLayers.d.ts +2 -2
  1679. package/XR/features/WebXRLayers.js +4 -4
  1680. package/XR/features/WebXRLayers.js.map +1 -1
  1681. package/XR/features/WebXRNearInteraction.js +2 -2
  1682. package/XR/features/WebXRNearInteraction.js.map +1 -1
  1683. package/XR/motionController/webXRAbstractMotionController.d.ts +3 -4
  1684. package/XR/motionController/webXRAbstractMotionController.js +2 -3
  1685. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  1686. package/XR/native/nativeXRFrame.d.ts +2 -2
  1687. package/XR/native/nativeXRFrame.js +1 -1
  1688. package/XR/native/nativeXRFrame.js.map +1 -1
  1689. package/XR/native/nativeXRRenderTarget.d.ts +3 -3
  1690. package/XR/native/nativeXRRenderTarget.js +3 -3
  1691. package/XR/native/nativeXRRenderTarget.js.map +1 -1
  1692. package/XR/webXRCamera.d.ts +2 -2
  1693. package/XR/webXRCamera.js +1 -1
  1694. package/XR/webXRCamera.js.map +1 -1
  1695. package/XR/webXRDefaultExperience.d.ts +6 -6
  1696. package/XR/webXRDefaultExperience.js.map +1 -1
  1697. package/XR/webXRExperienceHelper.d.ts +21 -1
  1698. package/XR/webXRExperienceHelper.js +37 -7
  1699. package/XR/webXRExperienceHelper.js.map +1 -1
  1700. package/XR/webXRInputSource.d.ts +1 -1
  1701. package/XR/webXRInputSource.js.map +1 -1
  1702. package/XR/webXRLayerWrapper.d.ts +1 -1
  1703. package/XR/webXRLayerWrapper.js +1 -1
  1704. package/XR/webXRLayerWrapper.js.map +1 -1
  1705. package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
  1706. package/XR/webXRRenderTargetTextureProvider.js +1 -1
  1707. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  1708. package/XR/webXRSessionManager.d.ts +1 -2
  1709. package/XR/webXRSessionManager.js +1 -2
  1710. package/XR/webXRSessionManager.js.map +1 -1
  1711. package/XR/webXRWebGLLayer.d.ts +2 -2
  1712. package/XR/webXRWebGLLayer.js +2 -2
  1713. package/XR/webXRWebGLLayer.js.map +1 -1
  1714. package/abstractScene.d.ts +1 -1
  1715. package/abstractScene.js +1 -1
  1716. package/abstractScene.js.map +1 -1
  1717. package/node.d.ts +40 -52
  1718. package/node.js +40 -55
  1719. package/node.js.map +1 -1
  1720. package/package.json +1 -1
  1721. package/scene.d.ts +83 -107
  1722. package/scene.js +94 -108
  1723. package/scene.js.map +1 -1
  1724. package/sceneComponent.d.ts +4 -2
  1725. package/sceneComponent.js +4 -2
  1726. package/sceneComponent.js.map +1 -1
  1727. package/types.d.ts +2 -2
  1728. package/types.js +1 -1
  1729. package/types.js.map +1 -1
@@ -7,17 +7,17 @@ import { ImageProcessingPostProcess } from "../../PostProcesses/imageProcessingP
7
7
  * Note : This is an internal class, and you should NOT need to instanciate this.
8
8
  * Only the `PrePassRenderer` should instanciate this class.
9
9
  * It is more likely that you need a regular `MultiRenderTarget`
10
- * @hidden
10
+ * @internal
11
11
  */
12
12
  export class PrePassRenderTarget extends MultiRenderTarget {
13
13
  constructor(name, renderTargetTexture, size, count, scene, options) {
14
14
  super(name, size, count, scene, options);
15
15
  /**
16
- * @hidden
16
+ * @internal
17
17
  */
18
18
  this._beforeCompositionPostProcesses = [];
19
19
  /**
20
- * @hidden
20
+ * @internal
21
21
  */
22
22
  this._internalTextureDirty = false;
23
23
  /**
@@ -33,7 +33,7 @@ export class PrePassRenderTarget extends MultiRenderTarget {
33
33
  }
34
34
  /**
35
35
  * Creates a composition effect for this RT
36
- * @hidden
36
+ * @internal
37
37
  */
38
38
  _createCompositionEffect() {
39
39
  this.imageProcessingPostProcess = new ImageProcessingPostProcess("prePassComposition", 1, null, undefined, this._engine);
@@ -41,7 +41,7 @@ export class PrePassRenderTarget extends MultiRenderTarget {
41
41
  }
42
42
  /**
43
43
  * Checks that the size of this RT is still adapted to the desired render size.
44
- * @hidden
44
+ * @internal
45
45
  */
46
46
  _checkSize() {
47
47
  const requiredWidth = this._engine.getRenderWidth(true);
@@ -66,7 +66,7 @@ export class PrePassRenderTarget extends MultiRenderTarget {
66
66
  }
67
67
  /**
68
68
  * Resets the post processes chains applied to this RT.
69
- * @hidden
69
+ * @internal
70
70
  */
71
71
  _resetPostProcessChain() {
72
72
  this._beforeCompositionPostProcesses.length = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"prePassRenderTarget.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/prePassRenderTarget.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAG5F;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAoB,SAAQ,iBAAiB;IAyCtD,YAAmB,IAAY,EAAE,mBAAkD,EAAE,IAAS,EAAE,KAAa,EAAE,KAAa,EAAE,OAA+C;QACzK,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAzC7C;;WAEG;QACI,oCAA+B,GAAkB,EAAE,CAAC;QAqB3D;;WAEG;QACI,0BAAqB,GAAG,KAAK,CAAC;QAErC;;WAEG;QACI,YAAO,GAAY,KAAK,CAAC;QAEhC;;;WAGG;QACI,wBAAmB,GAAkC,IAAI,CAAC;QAK7D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAED;;;OAGG;IACI,wBAAwB;QAC3B,IAAI,CAAC,0BAA0B,GAAG,IAAI,0BAA0B,CAAC,oBAAoB,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzH,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,EAAE,CAAC;IACxD,CAAC;IAED;;;OAGG;IACI,UAAU;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEtC,IAAI,KAAK,KAAK,aAAa,IAAI,MAAM,KAAK,cAAc,EAAE;YACtD,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAE9D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACrC;IACL,CAAC;IAED;;;;;;OAMG;IACI,WAAW,CAAC,KAAa,EAAE,OAAmC,EAAE,YAAuB;QAC1F,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,sBAAsB;QACzB,IAAI,CAAC,+BAA+B,CAAC,MAAM,GAAG,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,OAAO;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAE1B,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEhE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACd,KAAK,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACxD;SACJ;QAED,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,CAAC;SAC7C;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,GAAG,IAAI,CAAC;SACxD;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,EAAE,CAAC;SACxD;IACL,CAAC;CACJ","sourcesContent":["import type { IMultiRenderTargetOptions } from \"./multiRenderTarget\";\r\nimport { MultiRenderTarget } from \"./multiRenderTarget\";\r\nimport type { Engine } from \"../../Engines/engine\";\r\nimport type { RenderTargetTexture } from \"./renderTargetTexture\";\r\nimport type { Scene } from \"../../scene\";\r\nimport type { PostProcess } from \"../../PostProcesses/postProcess\";\r\nimport { ImageProcessingPostProcess } from \"../../PostProcesses/imageProcessingPostProcess\";\r\nimport type { Nullable } from \"../../types\";\r\n\r\n/**\r\n * A multi render target designed to render the prepass.\r\n * Prepass is a scene component used to render information in multiple textures\r\n * alongside with the scene materials rendering.\r\n * Note : This is an internal class, and you should NOT need to instanciate this.\r\n * Only the `PrePassRenderer` should instanciate this class.\r\n * It is more likely that you need a regular `MultiRenderTarget`\r\n * @hidden\r\n */\r\nexport class PrePassRenderTarget extends MultiRenderTarget {\r\n /**\r\n * @hidden\r\n */\r\n public _beforeCompositionPostProcesses: PostProcess[] = [];\r\n /**\r\n * Image processing post process for composition\r\n */\r\n public imageProcessingPostProcess: ImageProcessingPostProcess;\r\n\r\n /**\r\n * @hidden\r\n */\r\n public _engine: Engine;\r\n\r\n /**\r\n * @hidden\r\n */\r\n public _scene: Scene;\r\n\r\n /**\r\n * @hidden\r\n */\r\n public _outputPostProcess: Nullable<PostProcess>;\r\n\r\n /**\r\n * @hidden\r\n */\r\n public _internalTextureDirty = false;\r\n\r\n /**\r\n * Is this render target enabled for prepass rendering\r\n */\r\n public enabled: boolean = false;\r\n\r\n /**\r\n * Render target associated with this prePassRenderTarget\r\n * If this is `null`, it means this prePassRenderTarget is associated with the scene\r\n */\r\n public renderTargetTexture: Nullable<RenderTargetTexture> = null;\r\n\r\n public constructor(name: string, renderTargetTexture: Nullable<RenderTargetTexture>, size: any, count: number, scene?: Scene, options?: IMultiRenderTargetOptions | undefined) {\r\n super(name, size, count, scene, options);\r\n\r\n this.renderTargetTexture = renderTargetTexture;\r\n }\r\n\r\n /**\r\n * Creates a composition effect for this RT\r\n * @hidden\r\n */\r\n public _createCompositionEffect() {\r\n this.imageProcessingPostProcess = new ImageProcessingPostProcess(\"prePassComposition\", 1, null, undefined, this._engine);\r\n this.imageProcessingPostProcess._updateParameters();\r\n }\r\n\r\n /**\r\n * Checks that the size of this RT is still adapted to the desired render size.\r\n * @hidden\r\n */\r\n public _checkSize() {\r\n const requiredWidth = this._engine.getRenderWidth(true);\r\n const requiredHeight = this._engine.getRenderHeight(true);\r\n\r\n const width = this.getRenderWidth();\r\n const height = this.getRenderHeight();\r\n\r\n if (width !== requiredWidth || height !== requiredHeight) {\r\n this.resize({ width: requiredWidth, height: requiredHeight });\r\n\r\n this._internalTextureDirty = true;\r\n }\r\n }\r\n\r\n /**\r\n * Changes the number of render targets in this MRT\r\n * Be careful as it will recreate all the data in the new texture.\r\n * @param count new texture count\r\n * @param options Specifies texture types and sampling modes for new textures\r\n * @param textureNames Specifies the names of the textures (optional)\r\n */\r\n public updateCount(count: number, options?: IMultiRenderTargetOptions, textureNames?: string[]) {\r\n super.updateCount(count, options, textureNames);\r\n this._internalTextureDirty = true;\r\n }\r\n\r\n /**\r\n * Resets the post processes chains applied to this RT.\r\n * @hidden\r\n */\r\n public _resetPostProcessChain() {\r\n this._beforeCompositionPostProcesses.length = 0;\r\n }\r\n\r\n /**\r\n * Diposes this render target\r\n */\r\n public dispose() {\r\n const scene = this._scene;\r\n\r\n super.dispose();\r\n\r\n if (scene && scene.prePassRenderer) {\r\n const index = scene.prePassRenderer.renderTargets.indexOf(this);\r\n\r\n if (index !== -1) {\r\n scene.prePassRenderer.renderTargets.splice(index, 1);\r\n }\r\n }\r\n\r\n if (this.imageProcessingPostProcess) {\r\n this.imageProcessingPostProcess.dispose();\r\n }\r\n\r\n if (this.renderTargetTexture) {\r\n this.renderTargetTexture._prePassRenderTarget = null;\r\n }\r\n\r\n if (this._outputPostProcess) {\r\n this._outputPostProcess.autoClear = true;\r\n this._outputPostProcess.restoreDefaultInputTexture();\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"prePassRenderTarget.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/prePassRenderTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IMultiRenderTargetOptions } from \"./multiRenderTarget\";\r\nimport { MultiRenderTarget } from \"./multiRenderTarget\";\r\nimport type { Engine } from \"../../Engines/engine\";\r\nimport type { RenderTargetTexture } from \"./renderTargetTexture\";\r\nimport type { Scene } from \"../../scene\";\r\nimport type { PostProcess } from \"../../PostProcesses/postProcess\";\r\nimport { ImageProcessingPostProcess } from \"../../PostProcesses/imageProcessingPostProcess\";\r\nimport type { Nullable } from \"../../types\";\r\n\r\n/**\r\n * A multi render target designed to render the prepass.\r\n * Prepass is a scene component used to render information in multiple textures\r\n * alongside with the scene materials rendering.\r\n * Note : This is an internal class, and you should NOT need to instanciate this.\r\n * Only the `PrePassRenderer` should instanciate this class.\r\n * It is more likely that you need a regular `MultiRenderTarget`\r\n * @internal\r\n */\r\nexport class PrePassRenderTarget extends MultiRenderTarget {\r\n /**\r\n * @internal\r\n */\r\n public _beforeCompositionPostProcesses: PostProcess[] = [];\r\n /**\r\n * Image processing post process for composition\r\n */\r\n public imageProcessingPostProcess: ImageProcessingPostProcess;\r\n\r\n /**\r\n * @internal\r\n */\r\n public _engine: Engine;\r\n\r\n /**\r\n * @internal\r\n */\r\n public _scene: Scene;\r\n\r\n /**\r\n * @internal\r\n */\r\n public _outputPostProcess: Nullable<PostProcess>;\r\n\r\n /**\r\n * @internal\r\n */\r\n public _internalTextureDirty = false;\r\n\r\n /**\r\n * Is this render target enabled for prepass rendering\r\n */\r\n public enabled: boolean = false;\r\n\r\n /**\r\n * Render target associated with this prePassRenderTarget\r\n * If this is `null`, it means this prePassRenderTarget is associated with the scene\r\n */\r\n public renderTargetTexture: Nullable<RenderTargetTexture> = null;\r\n\r\n public constructor(name: string, renderTargetTexture: Nullable<RenderTargetTexture>, size: any, count: number, scene?: Scene, options?: IMultiRenderTargetOptions | undefined) {\r\n super(name, size, count, scene, options);\r\n\r\n this.renderTargetTexture = renderTargetTexture;\r\n }\r\n\r\n /**\r\n * Creates a composition effect for this RT\r\n * @internal\r\n */\r\n public _createCompositionEffect() {\r\n this.imageProcessingPostProcess = new ImageProcessingPostProcess(\"prePassComposition\", 1, null, undefined, this._engine);\r\n this.imageProcessingPostProcess._updateParameters();\r\n }\r\n\r\n /**\r\n * Checks that the size of this RT is still adapted to the desired render size.\r\n * @internal\r\n */\r\n public _checkSize() {\r\n const requiredWidth = this._engine.getRenderWidth(true);\r\n const requiredHeight = this._engine.getRenderHeight(true);\r\n\r\n const width = this.getRenderWidth();\r\n const height = this.getRenderHeight();\r\n\r\n if (width !== requiredWidth || height !== requiredHeight) {\r\n this.resize({ width: requiredWidth, height: requiredHeight });\r\n\r\n this._internalTextureDirty = true;\r\n }\r\n }\r\n\r\n /**\r\n * Changes the number of render targets in this MRT\r\n * Be careful as it will recreate all the data in the new texture.\r\n * @param count new texture count\r\n * @param options Specifies texture types and sampling modes for new textures\r\n * @param textureNames Specifies the names of the textures (optional)\r\n */\r\n public updateCount(count: number, options?: IMultiRenderTargetOptions, textureNames?: string[]) {\r\n super.updateCount(count, options, textureNames);\r\n this._internalTextureDirty = true;\r\n }\r\n\r\n /**\r\n * Resets the post processes chains applied to this RT.\r\n * @internal\r\n */\r\n public _resetPostProcessChain() {\r\n this._beforeCompositionPostProcesses.length = 0;\r\n }\r\n\r\n /**\r\n * Diposes this render target\r\n */\r\n public dispose() {\r\n const scene = this._scene;\r\n\r\n super.dispose();\r\n\r\n if (scene && scene.prePassRenderer) {\r\n const index = scene.prePassRenderer.renderTargets.indexOf(this);\r\n\r\n if (index !== -1) {\r\n scene.prePassRenderer.renderTargets.splice(index, 1);\r\n }\r\n }\r\n\r\n if (this.imageProcessingPostProcess) {\r\n this.imageProcessingPostProcess.dispose();\r\n }\r\n\r\n if (this.renderTargetTexture) {\r\n this.renderTargetTexture._prePassRenderTarget = null;\r\n }\r\n\r\n if (this._outputPostProcess) {\r\n this._outputPostProcess.autoClear = true;\r\n this._outputPostProcess.restoreDefaultInputTexture();\r\n }\r\n }\r\n}\r\n"]}
@@ -155,16 +155,16 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
155
155
  ratio: number;
156
156
  };
157
157
  protected _sizeRatio: Nullable<number>;
158
- /** @hidden */
158
+ /** @internal */
159
159
  _generateMipMaps: boolean;
160
- /** @hidden */
160
+ /** @internal */
161
161
  _cleared: boolean;
162
162
  /**
163
163
  * Skip the initial clear of the rtt at the beginning of the frame render loop
164
164
  */
165
165
  skipInitialClear: boolean;
166
166
  protected _renderingManager: RenderingManager;
167
- /** @hidden */
167
+ /** @internal */
168
168
  _waitingRenderList?: string[];
169
169
  protected _doNotChangeAspectRatio: boolean;
170
170
  protected _currentRefreshId: number;
@@ -297,7 +297,7 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
297
297
  * @param postProcess define the post process to remove from the list
298
298
  */
299
299
  removePostProcess(postProcess: PostProcess): void;
300
- /** @hidden */
300
+ /** @internal */
301
301
  _shouldRender(): boolean;
302
302
  /**
303
303
  * Gets the actual render size of the texture.
@@ -367,18 +367,14 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
367
367
  private _bestReflectionRenderTargetDimension;
368
368
  private _prepareRenderingManager;
369
369
  /**
370
- * @hidden
370
+ * @internal
371
371
  * @param faceIndex face index to bind to if this is a cubetexture
372
372
  * @param layer defines the index of the texture to bind in the array
373
373
  */
374
374
  _bindFrameBuffer(faceIndex?: number, layer?: number): void;
375
375
  protected _unbindFrameBuffer(engine: Engine, faceIndex: number): void;
376
376
  /**
377
- * @param scene
378
- * @param faceIndex
379
- * @param layer
380
- * @param useCameraPostProcess
381
- * @hidden
377
+ * @internal
382
378
  */
383
379
  _prepareFrame(scene: Scene, faceIndex?: number, layer?: number, useCameraPostProcess?: boolean): void;
384
380
  private _renderToTarget;
@@ -421,7 +417,7 @@ export declare class RenderTargetTexture extends Texture implements IRenderTarge
421
417
  * Dispose the texture and release its associated resources.
422
418
  */
423
419
  dispose(): void;
424
- /** @hidden */
420
+ /** @internal */
425
421
  _rebuild(): void;
426
422
  /**
427
423
  * Clear the info related to rendering groups preventing retention point in material dispose.
@@ -83,7 +83,7 @@ export class RenderTargetTexture extends Texture {
83
83
  * An event triggered when the texture is resized.
84
84
  */
85
85
  this.onResizeObservable = new Observable();
86
- /** @hidden */
86
+ /** @internal */
87
87
  this._cleared = false;
88
88
  /**
89
89
  * Skip the initial clear of the rtt at the beginning of the frame render loop
@@ -415,7 +415,7 @@ export class RenderTargetTexture extends Texture {
415
415
  this._postProcesses[0].autoClear = false;
416
416
  }
417
417
  }
418
- /** @hidden */
418
+ /** @internal */
419
419
  _shouldRender() {
420
420
  if (this._currentRefreshId === -1) {
421
421
  // At least render once
@@ -749,7 +749,7 @@ export class RenderTargetTexture extends Texture {
749
749
  }
750
750
  }
751
751
  /**
752
- * @hidden
752
+ * @internal
753
753
  * @param faceIndex face index to bind to if this is a cubetexture
754
754
  * @param layer defines the index of the texture to bind in the array
755
755
  */
@@ -772,11 +772,7 @@ export class RenderTargetTexture extends Texture {
772
772
  });
773
773
  }
774
774
  /**
775
- * @param scene
776
- * @param faceIndex
777
- * @param layer
778
- * @param useCameraPostProcess
779
- * @hidden
775
+ * @internal
780
776
  */
781
777
  _prepareFrame(scene, faceIndex, layer, useCameraPostProcess) {
782
778
  if (this._postProcessManager) {
@@ -865,6 +861,9 @@ export class RenderTargetTexture extends Texture {
865
861
  else if (useCameraPostProcess) {
866
862
  scene.postProcessManager._finalizeFrame(false, this._renderTarget ?? undefined, faceIndex);
867
863
  }
864
+ for (const step of scene._afterRenderTargetPostProcessStage) {
865
+ step.action(this, faceIndex, layer);
866
+ }
868
867
  if (this._texture) {
869
868
  this._texture.generateMipMaps = saveGenerateMipMaps;
870
869
  }
@@ -1008,7 +1007,7 @@ export class RenderTargetTexture extends Texture {
1008
1007
  this._texture = null;
1009
1008
  super.dispose();
1010
1009
  }
1011
- /** @hidden */
1010
+ /** @internal */
1012
1011
  _rebuild() {
1013
1012
  if (this.refreshRate === RenderTargetTexture.REFRESHRATE_RENDER_ONCE) {
1014
1013
  this.refreshRate = RenderTargetTexture.REFRESHRATE_RENDER_ONCE;
@@ -1 +1 @@
1
- {"version":3,"file":"renderTargetTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/renderTargetTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Observer } from \"../../Misc/observable\";\r\nimport { Observable } from \"../../Misc/observable\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport type { SmartArray } from \"../../Misc/smartArray\";\r\nimport type { Nullable, Immutable } from \"../../types\";\r\nimport type { Camera } from \"../../Cameras/camera\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport type { Color4 } from \"../../Maths/math.color\";\r\nimport type { RenderTargetCreationOptions, TextureSize } from \"../../Materials/Textures/textureCreationOptions\";\r\nimport type { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"../../Meshes/subMesh\";\r\nimport type { InternalTexture } from \"../../Materials/Textures/internalTexture\";\r\nimport { Texture } from \"../../Materials/Textures/texture\";\r\nimport { PostProcessManager } from \"../../PostProcesses/postProcessManager\";\r\nimport type { PostProcess } from \"../../PostProcesses/postProcess\";\r\nimport { RenderingManager } from \"../../Rendering/renderingManager\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport type { IRenderTargetTexture, RenderTargetWrapper } from \"../../Engines/renderTargetWrapper\";\r\n\r\nimport \"../../Engines/Extensions/engine.renderTarget\";\r\nimport \"../../Engines/Extensions/engine.renderTargetCube\";\r\nimport { Engine } from \"../../Engines/engine\";\r\nimport { _ObserveArray } from \"core/Misc/arrayTools\";\r\n\r\ndeclare type Material = import(\"../material\").Material;\r\n\r\n/**\r\n * This Helps creating a texture that will be created from a camera in your scene.\r\n * It is basically a dynamic texture that could be used to create special effects for instance.\r\n * Actually, It is the base of lot of effects in the framework like post process, shadows, effect layers and rendering pipelines...\r\n */\r\nexport class RenderTargetTexture extends Texture implements IRenderTargetTexture {\r\n /**\r\n * The texture will only be rendered once which can be useful to improve performance if everything in your render is static for instance.\r\n */\r\n public static readonly REFRESHRATE_RENDER_ONCE: number = 0;\r\n /**\r\n * The texture will only be rendered rendered every frame and is recommended for dynamic contents.\r\n */\r\n public static readonly REFRESHRATE_RENDER_ONEVERYFRAME: number = 1;\r\n /**\r\n * The texture will be rendered every 2 frames which could be enough if your dynamic objects are not\r\n * the central point of your effect and can save a lot of performances.\r\n */\r\n public static readonly REFRESHRATE_RENDER_ONEVERYTWOFRAMES: number = 2;\r\n\r\n /**\r\n * Use this predicate to dynamically define the list of mesh you want to render.\r\n * If set, the renderList property will be overwritten.\r\n */\r\n public renderListPredicate: (AbstractMesh: AbstractMesh) => boolean;\r\n\r\n private _renderList: Nullable<Array<AbstractMesh>>;\r\n private _unObserveRenderList: Nullable<() => void> = null;\r\n\r\n /**\r\n * Use this list to define the list of mesh you want to render.\r\n */\r\n public get renderList(): Nullable<Array<AbstractMesh>> {\r\n return this._renderList;\r\n }\r\n\r\n public set renderList(value: Nullable<Array<AbstractMesh>>) {\r\n if (this._unObserveRenderList) {\r\n this._unObserveRenderList();\r\n this._unObserveRenderList = null;\r\n }\r\n\r\n if (value) {\r\n this._unObserveRenderList = _ObserveArray(value, this._renderListHasChanged);\r\n }\r\n\r\n this._renderList = value;\r\n }\r\n\r\n private _renderListHasChanged = (_functionName: String, previousLength: number) => {\r\n const newLength = this._renderList ? this._renderList.length : 0;\r\n if ((previousLength === 0 && newLength > 0) || newLength === 0) {\r\n this.getScene()?.meshes.forEach((mesh) => {\r\n mesh._markSubMeshesAsLightDirty();\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Use this function to overload the renderList array at rendering time.\r\n * Return null to render with the current renderList, else return the list of meshes to use for rendering.\r\n * For 2DArray RTT, layerOrFace is the index of the layer that is going to be rendered, else it is the faceIndex of\r\n * the cube (if the RTT is a cube, else layerOrFace=0).\r\n * The renderList passed to the function is the current render list (the one that will be used if the function returns null).\r\n * The length of this list is passed through renderListLength: don't use renderList.length directly because the array can\r\n * hold dummy elements!\r\n */\r\n public getCustomRenderList: (layerOrFace: number, renderList: Nullable<Immutable<Array<AbstractMesh>>>, renderListLength: number) => Nullable<Array<AbstractMesh>>;\r\n\r\n /**\r\n * Define if particles should be rendered in your texture.\r\n */\r\n public renderParticles = true;\r\n /**\r\n * Define if sprites should be rendered in your texture.\r\n */\r\n public renderSprites = false;\r\n\r\n /**\r\n * Define the camera used to render the texture.\r\n */\r\n public activeCamera: Nullable<Camera>;\r\n /**\r\n * Override the mesh isReady function with your own one.\r\n */\r\n public customIsReadyFunction: (mesh: AbstractMesh, refreshRate: number) => boolean;\r\n /**\r\n * Override the render function of the texture with your own one.\r\n */\r\n public customRenderFunction: (\r\n opaqueSubMeshes: SmartArray<SubMesh>,\r\n alphaTestSubMeshes: SmartArray<SubMesh>,\r\n transparentSubMeshes: SmartArray<SubMesh>,\r\n depthOnlySubMeshes: SmartArray<SubMesh>,\r\n beforeTransparents?: () => void\r\n ) => void;\r\n /**\r\n * Define if camera post processes should be use while rendering the texture.\r\n */\r\n public useCameraPostProcesses: boolean;\r\n /**\r\n * Define if the camera viewport should be respected while rendering the texture or if the render should be done to the entire texture.\r\n */\r\n public ignoreCameraViewport: boolean = false;\r\n\r\n private _postProcessManager: Nullable<PostProcessManager>;\r\n\r\n /**\r\n * Post-processes for this render target\r\n */\r\n public get postProcesses() {\r\n return this._postProcesses;\r\n }\r\n private _postProcesses: PostProcess[];\r\n private _resizeObserver: Nullable<Observer<Engine>>;\r\n\r\n private get _prePassEnabled() {\r\n return !!this._prePassRenderTarget && this._prePassRenderTarget.enabled;\r\n }\r\n\r\n /**\r\n * An event triggered when the texture is unbind.\r\n */\r\n public onBeforeBindObservable = new Observable<RenderTargetTexture>();\r\n\r\n /**\r\n * An event triggered when the texture is unbind.\r\n */\r\n public onAfterUnbindObservable = new Observable<RenderTargetTexture>();\r\n\r\n private _onAfterUnbindObserver: Nullable<Observer<RenderTargetTexture>>;\r\n /**\r\n * Set a after unbind callback in the texture.\r\n * This has been kept for backward compatibility and use of onAfterUnbindObservable is recommended.\r\n */\r\n public set onAfterUnbind(callback: () => void) {\r\n if (this._onAfterUnbindObserver) {\r\n this.onAfterUnbindObservable.remove(this._onAfterUnbindObserver);\r\n }\r\n this._onAfterUnbindObserver = this.onAfterUnbindObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered before rendering the texture\r\n */\r\n public onBeforeRenderObservable = new Observable<number>();\r\n\r\n private _onBeforeRenderObserver: Nullable<Observer<number>>;\r\n /**\r\n * Set a before render callback in the texture.\r\n * This has been kept for backward compatibility and use of onBeforeRenderObservable is recommended.\r\n */\r\n public set onBeforeRender(callback: (faceIndex: number) => void) {\r\n if (this._onBeforeRenderObserver) {\r\n this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver);\r\n }\r\n this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered after rendering the texture\r\n */\r\n public onAfterRenderObservable = new Observable<number>();\r\n\r\n private _onAfterRenderObserver: Nullable<Observer<number>>;\r\n /**\r\n * Set a after render callback in the texture.\r\n * This has been kept for backward compatibility and use of onAfterRenderObservable is recommended.\r\n */\r\n public set onAfterRender(callback: (faceIndex: number) => void) {\r\n if (this._onAfterRenderObserver) {\r\n this.onAfterRenderObservable.remove(this._onAfterRenderObserver);\r\n }\r\n this._onAfterRenderObserver = this.onAfterRenderObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered after the texture clear\r\n */\r\n public onClearObservable = new Observable<Engine>();\r\n\r\n private _onClearObserver: Nullable<Observer<Engine>>;\r\n /**\r\n * Set a clear callback in the texture.\r\n * This has been kept for backward compatibility and use of onClearObservable is recommended.\r\n */\r\n public set onClear(callback: (Engine: Engine) => void) {\r\n if (this._onClearObserver) {\r\n this.onClearObservable.remove(this._onClearObserver);\r\n }\r\n this._onClearObserver = this.onClearObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered when the texture is resized.\r\n */\r\n public onResizeObservable = new Observable<RenderTargetTexture>();\r\n\r\n /**\r\n * Define the clear color of the Render Target if it should be different from the scene.\r\n */\r\n public clearColor: Color4;\r\n protected _size: TextureSize;\r\n protected _initialSizeParameter: number | { width: number; height: number } | { ratio: number };\r\n protected _sizeRatio: Nullable<number>;\r\n /** @hidden */\r\n public _generateMipMaps: boolean;\r\n /** @hidden */\r\n public _cleared = false;\r\n /**\r\n * Skip the initial clear of the rtt at the beginning of the frame render loop\r\n */\r\n public skipInitialClear = false;\r\n protected _renderingManager: RenderingManager;\r\n /** @hidden */\r\n public _waitingRenderList?: string[];\r\n protected _doNotChangeAspectRatio: boolean;\r\n protected _currentRefreshId = -1;\r\n protected _refreshRate = 1;\r\n protected _textureMatrix: Matrix;\r\n protected _samples = 1;\r\n protected _renderTargetOptions: RenderTargetCreationOptions;\r\n private _canRescale = true;\r\n protected _renderTarget: Nullable<RenderTargetWrapper> = null;\r\n /**\r\n * Current render pass id of the render target texture. Note it can change over the rendering as there's a separate id for each face of a cube / each layer of an array layer!\r\n */\r\n public renderPassId: number;\r\n private _renderPassIds: number[];\r\n /**\r\n * Gets the render pass ids used by the render target texture. For a single render target the array length will be 1, for a cube texture it will be 6 and for\r\n * a 2D texture array it will return an array of ids the size of the 2D texture array\r\n */\r\n public get renderPassIds(): readonly number[] {\r\n return this._renderPassIds;\r\n }\r\n\r\n /**\r\n * Gets the current value of the refreshId counter\r\n */\r\n public get currentRefreshId() {\r\n return this._currentRefreshId;\r\n }\r\n\r\n /**\r\n * Sets a specific material to be used to render a mesh/a list of meshes in this render target texture\r\n * @param mesh mesh or array of meshes\r\n * @param material material or array of materials to use for this render pass. If undefined is passed, no specific material will be used but the regular material instead (mesh.material). It's possible to provide an array of materials to use a different material for each rendering in the case of a cube texture (6 rendering) and a 2D texture array (as many rendering as the length of the array)\r\n */\r\n public setMaterialForRendering(mesh: AbstractMesh | AbstractMesh[], material?: Material | Material[]): void {\r\n let meshes;\r\n if (!Array.isArray(mesh)) {\r\n meshes = [mesh];\r\n } else {\r\n meshes = mesh;\r\n }\r\n for (let j = 0; j < meshes.length; ++j) {\r\n for (let i = 0; i < this._renderPassIds.length; ++i) {\r\n meshes[j].setMaterialForRenderPass(this._renderPassIds[i], material !== undefined ? (Array.isArray(material) ? material[i] : material) : undefined);\r\n }\r\n }\r\n }\r\n\r\n private _isCubeData: boolean;\r\n /**\r\n * Gets render target creation options that were used.\r\n */\r\n public get renderTargetOptions(): RenderTargetCreationOptions {\r\n return this._renderTargetOptions;\r\n }\r\n\r\n /**\r\n * Gets the render target wrapper associated with this render target\r\n */\r\n public get renderTarget(): Nullable<RenderTargetWrapper> {\r\n return this._renderTarget;\r\n }\r\n\r\n protected _onRatioRescale(): void {\r\n if (this._sizeRatio) {\r\n this.resize(this._initialSizeParameter);\r\n }\r\n }\r\n\r\n /**\r\n * Gets or sets the center of the bounding box associated with the texture (when in cube mode)\r\n * It must define where the camera used to render the texture is set\r\n */\r\n public boundingBoxPosition = Vector3.Zero();\r\n\r\n private _boundingBoxSize: Vector3;\r\n\r\n /**\r\n * Gets or sets the size of the bounding box associated with the texture (when in cube mode)\r\n * When defined, the cubemap will switch to local mode\r\n * @see https://community.arm.com/graphics/b/blog/posts/reflections-based-on-local-cubemaps-in-unity\r\n * @example https://www.babylonjs-playground.com/#RNASML\r\n */\r\n public set boundingBoxSize(value: Vector3) {\r\n if (this._boundingBoxSize && this._boundingBoxSize.equals(value)) {\r\n return;\r\n }\r\n this._boundingBoxSize = value;\r\n const scene = this.getScene();\r\n if (scene) {\r\n scene.markAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n }\r\n public get boundingBoxSize(): Vector3 {\r\n return this._boundingBoxSize;\r\n }\r\n\r\n /**\r\n * In case the RTT has been created with a depth texture, get the associated\r\n * depth texture.\r\n * Otherwise, return null.\r\n */\r\n public get depthStencilTexture(): Nullable<InternalTexture> {\r\n return this._renderTarget?._depthStencilTexture ?? null;\r\n }\r\n\r\n /**\r\n * Instantiate a render target texture. This is mainly used to render of screen the scene to for instance apply post process\r\n * or used a shadow, depth texture...\r\n * @param name The friendly name of the texture\r\n * @param size The size of the RTT (number if square, or {width: number, height:number} or {ratio:} to define a ratio from the main scene)\r\n * @param scene The scene the RTT belongs to. The latest created scene will be used if not precised.\r\n * @param generateMipMaps True if mip maps need to be generated after render.\r\n * @param doNotChangeAspectRatio True to not change the aspect ratio of the scene in the RTT\r\n * @param type The type of the buffer in the RTT (int, half float, float...)\r\n * @param isCube True if a cube texture needs to be created\r\n * @param samplingMode The sampling mode to be usedwith the render target (Linear, Nearest...)\r\n * @param generateDepthBuffer True to generate a depth buffer\r\n * @param generateStencilBuffer True to generate a stencil buffer\r\n * @param isMulti True if multiple textures need to be created (Draw Buffers)\r\n * @param format The internal format of the buffer in the RTT (RED, RG, RGB, RGBA, ALPHA...)\r\n * @param delayAllocation if the texture allocation should be delayed (default: false)\r\n * @param samples sample count to use when creating the RTT\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param noColorTarget True to indicate that no color target should be created. Useful if you only want to write to the depth buffer, for eg\r\n * @param useSRGBBuffer True to create a SRGB texture\r\n */\r\n constructor(\r\n name: string,\r\n size: number | { width: number; height: number; layers?: number } | { ratio: number },\r\n scene?: Nullable<Scene>,\r\n generateMipMaps?: boolean,\r\n doNotChangeAspectRatio: boolean = true,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n isCube = false,\r\n samplingMode = Texture.TRILINEAR_SAMPLINGMODE,\r\n generateDepthBuffer = true,\r\n generateStencilBuffer = false,\r\n isMulti = false,\r\n format = Constants.TEXTUREFORMAT_RGBA,\r\n delayAllocation = false,\r\n samples?: number,\r\n creationFlags?: number,\r\n noColorTarget = false,\r\n useSRGBBuffer = false\r\n ) {\r\n super(null, scene, !generateMipMaps, undefined, samplingMode, undefined, undefined, undefined, undefined, format);\r\n scene = this.getScene();\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n const engine = this.getScene()!.getEngine();\r\n\r\n this._coordinatesMode = Texture.PROJECTION_MODE;\r\n this.renderList = new Array<AbstractMesh>();\r\n this.name = name;\r\n this.isRenderTarget = true;\r\n this._initialSizeParameter = size;\r\n this._renderPassIds = [];\r\n this._isCubeData = isCube;\r\n\r\n this._processSizeParameter(size);\r\n\r\n this.renderPassId = this._renderPassIds[0];\r\n\r\n this._resizeObserver = engine.onResizeObservable.add(() => {});\r\n\r\n this._generateMipMaps = generateMipMaps ? true : false;\r\n this._doNotChangeAspectRatio = doNotChangeAspectRatio;\r\n\r\n // Rendering groups\r\n this._renderingManager = new RenderingManager(scene);\r\n this._renderingManager._useSceneAutoClearSetup = true;\r\n\r\n if (isMulti) {\r\n return;\r\n }\r\n\r\n this._renderTargetOptions = {\r\n generateMipMaps: generateMipMaps,\r\n type: type,\r\n format: this._format ?? undefined,\r\n samplingMode: this.samplingMode,\r\n generateDepthBuffer: generateDepthBuffer,\r\n generateStencilBuffer: generateStencilBuffer,\r\n samples,\r\n creationFlags,\r\n noColorTarget,\r\n useSRGBBuffer,\r\n };\r\n\r\n if (this.samplingMode === Texture.NEAREST_SAMPLINGMODE) {\r\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n }\r\n\r\n if (!delayAllocation) {\r\n if (isCube) {\r\n this._renderTarget = scene.getEngine().createRenderTargetCubeTexture(this.getRenderSize(), this._renderTargetOptions);\r\n this.coordinatesMode = Texture.INVCUBIC_MODE;\r\n this._textureMatrix = Matrix.Identity();\r\n } else {\r\n this._renderTarget = scene.getEngine().createRenderTargetTexture(this._size, this._renderTargetOptions);\r\n }\r\n this._texture = this._renderTarget.texture;\r\n if (samples !== undefined) {\r\n this.samples = samples;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Creates a depth stencil texture.\r\n * This is only available in WebGL 2 or with the depth texture extension available.\r\n * @param comparisonFunction Specifies the comparison function to set on the texture. If 0 or undefined, the texture is not in comparison mode (default: 0)\r\n * @param bilinearFiltering Specifies whether or not bilinear filtering is enable on the texture (default: true)\r\n * @param generateStencil Specifies whether or not a stencil should be allocated in the texture (default: false)\r\n * @param samples sample count of the depth/stencil texture (default: 1)\r\n * @param format format of the depth texture (default: Constants.TEXTUREFORMAT_DEPTH32_FLOAT)\r\n */\r\n public createDepthStencilTexture(\r\n comparisonFunction: number = 0,\r\n bilinearFiltering: boolean = true,\r\n generateStencil: boolean = false,\r\n samples: number = 1,\r\n format: number = Constants.TEXTUREFORMAT_DEPTH32_FLOAT\r\n ): void {\r\n this._renderTarget?.createDepthStencilTexture(comparisonFunction, bilinearFiltering, generateStencil, samples, format);\r\n }\r\n\r\n private _releaseRenderPassId(): void {\r\n if (this._scene) {\r\n const engine = this._scene.getEngine();\r\n for (let i = 0; i < this._renderPassIds.length; ++i) {\r\n engine.releaseRenderPassId(this._renderPassIds[i]);\r\n }\r\n }\r\n this._renderPassIds = [];\r\n }\r\n\r\n private _createRenderPassId(): void {\r\n this._releaseRenderPassId();\r\n\r\n const engine = this._scene!.getEngine(); // scene can't be null in a RenderTargetTexture, see constructor\r\n const numPasses = this._isCubeData ? 6 : this.getRenderLayers() || 1;\r\n\r\n for (let i = 0; i < numPasses; ++i) {\r\n this._renderPassIds[i] = engine.createRenderPassId(`RenderTargetTexture - ${this.name}#${i}`);\r\n }\r\n }\r\n\r\n private _processSizeParameter(size: number | { width: number; height: number } | { ratio: number }): void {\r\n if ((<{ ratio: number }>size).ratio) {\r\n this._sizeRatio = (<{ ratio: number }>size).ratio;\r\n const engine = this._getEngine()!;\r\n this._size = {\r\n width: this._bestReflectionRenderTargetDimension(engine.getRenderWidth(), this._sizeRatio),\r\n height: this._bestReflectionRenderTargetDimension(engine.getRenderHeight(), this._sizeRatio),\r\n };\r\n } else {\r\n this._size = <number | { width: number; height: number; layers?: number }>size;\r\n }\r\n\r\n this._createRenderPassId();\r\n }\r\n\r\n /**\r\n * Define the number of samples to use in case of MSAA.\r\n * It defaults to one meaning no MSAA has been enabled.\r\n */\r\n public get samples(): number {\r\n return this._renderTarget?.samples ?? this._samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n if (this._renderTarget) {\r\n this._samples = this._renderTarget.setSamples(value);\r\n }\r\n }\r\n\r\n /**\r\n * Resets the refresh counter of the texture and start bak from scratch.\r\n * Could be useful to regenerate the texture if it is setup to render only once.\r\n */\r\n public resetRefreshCounter(): void {\r\n this._currentRefreshId = -1;\r\n }\r\n\r\n /**\r\n * Define the refresh rate of the texture or the rendering frequency.\r\n * Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...\r\n */\r\n public get refreshRate(): number {\r\n return this._refreshRate;\r\n }\r\n public set refreshRate(value: number) {\r\n this._refreshRate = value;\r\n this.resetRefreshCounter();\r\n }\r\n\r\n /**\r\n * Adds a post process to the render target rendering passes.\r\n * @param postProcess define the post process to add\r\n */\r\n public addPostProcess(postProcess: PostProcess): void {\r\n if (!this._postProcessManager) {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n this._postProcessManager = new PostProcessManager(scene);\r\n this._postProcesses = new Array<PostProcess>();\r\n }\r\n\r\n this._postProcesses.push(postProcess);\r\n this._postProcesses[0].autoClear = false;\r\n }\r\n\r\n /**\r\n * Clear all the post processes attached to the render target\r\n * @param dispose define if the cleared post processes should also be disposed (false by default)\r\n */\r\n public clearPostProcesses(dispose: boolean = false): void {\r\n if (!this._postProcesses) {\r\n return;\r\n }\r\n\r\n if (dispose) {\r\n for (const postProcess of this._postProcesses) {\r\n postProcess.dispose();\r\n }\r\n }\r\n\r\n this._postProcesses = [];\r\n }\r\n\r\n /**\r\n * Remove one of the post process from the list of attached post processes to the texture\r\n * @param postProcess define the post process to remove from the list\r\n */\r\n public removePostProcess(postProcess: PostProcess): void {\r\n if (!this._postProcesses) {\r\n return;\r\n }\r\n\r\n const index = this._postProcesses.indexOf(postProcess);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this._postProcesses.splice(index, 1);\r\n\r\n if (this._postProcesses.length > 0) {\r\n this._postProcesses[0].autoClear = false;\r\n }\r\n }\r\n\r\n /** @hidden */\r\n public _shouldRender(): boolean {\r\n if (this._currentRefreshId === -1) {\r\n // At least render once\r\n this._currentRefreshId = 1;\r\n return true;\r\n }\r\n\r\n if (this.refreshRate === this._currentRefreshId) {\r\n this._currentRefreshId = 1;\r\n return true;\r\n }\r\n\r\n this._currentRefreshId++;\r\n return false;\r\n }\r\n\r\n /**\r\n * Gets the actual render size of the texture.\r\n * @returns the width of the render size\r\n */\r\n public getRenderSize(): number {\r\n return this.getRenderWidth();\r\n }\r\n\r\n /**\r\n * Gets the actual render width of the texture.\r\n * @returns the width of the render size\r\n */\r\n public getRenderWidth(): number {\r\n if ((<{ width: number; height: number }>this._size).width) {\r\n return (<{ width: number; height: number }>this._size).width;\r\n }\r\n\r\n return <number>this._size;\r\n }\r\n\r\n /**\r\n * Gets the actual render height of the texture.\r\n * @returns the height of the render size\r\n */\r\n public getRenderHeight(): number {\r\n if ((<{ width: number; height: number }>this._size).width) {\r\n return (<{ width: number; height: number }>this._size).height;\r\n }\r\n\r\n return <number>this._size;\r\n }\r\n\r\n /**\r\n * Gets the actual number of layers of the texture.\r\n * @returns the number of layers\r\n */\r\n public getRenderLayers(): number {\r\n const layers = (<{ width: number; height: number; layers?: number }>this._size).layers;\r\n if (layers) {\r\n return layers;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n /**\r\n * Don't allow this render target texture to rescale. Mainly used to prevent rescaling by the scene optimizer.\r\n */\r\n public disableRescaling() {\r\n this._canRescale = false;\r\n }\r\n\r\n /**\r\n * Get if the texture can be rescaled or not.\r\n */\r\n public get canRescale(): boolean {\r\n return this._canRescale;\r\n }\r\n\r\n /**\r\n * Resize the texture using a ratio.\r\n * @param ratio the ratio to apply to the texture size in order to compute the new target size\r\n */\r\n public scale(ratio: number): void {\r\n const newSize = Math.max(1, this.getRenderSize() * ratio);\r\n\r\n this.resize(newSize);\r\n }\r\n\r\n /**\r\n * Get the texture reflection matrix used to rotate/transform the reflection.\r\n * @returns the reflection matrix\r\n */\r\n public getReflectionTextureMatrix(): Matrix {\r\n if (this.isCube) {\r\n return this._textureMatrix;\r\n }\r\n\r\n return super.getReflectionTextureMatrix();\r\n }\r\n\r\n /**\r\n * Resize the texture to a new desired size.\r\n * Be careful as it will recreate all the data in the new texture.\r\n * @param size Define the new size. It can be:\r\n * - a number for squared texture,\r\n * - an object containing { width: number, height: number }\r\n * - or an object containing a ratio { ratio: number }\r\n */\r\n public resize(size: number | { width: number; height: number } | { ratio: number }): void {\r\n const wasCube = this.isCube;\r\n\r\n this._renderTarget?.dispose();\r\n this._renderTarget = null;\r\n\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n this._processSizeParameter(size);\r\n\r\n if (wasCube) {\r\n this._renderTarget = scene.getEngine().createRenderTargetCubeTexture(this.getRenderSize(), this._renderTargetOptions);\r\n } else {\r\n this._renderTarget = scene.getEngine().createRenderTargetTexture(this._size, this._renderTargetOptions);\r\n }\r\n this._texture = this._renderTarget.texture;\r\n\r\n if (this._renderTargetOptions.samples !== undefined) {\r\n this.samples = this._renderTargetOptions.samples;\r\n }\r\n\r\n if (this.onResizeObservable.hasObservers()) {\r\n this.onResizeObservable.notifyObservers(this);\r\n }\r\n }\r\n\r\n private _defaultRenderListPrepared: boolean;\r\n\r\n /**\r\n * Renders all the objects from the render list into the texture.\r\n * @param useCameraPostProcess Define if camera post processes should be used during the rendering\r\n * @param dumpForDebug Define if the rendering result should be dumped (copied) for debugging purpose\r\n */\r\n public render(useCameraPostProcess: boolean = false, dumpForDebug: boolean = false): void {\r\n this._render(useCameraPostProcess, dumpForDebug);\r\n }\r\n\r\n /**\r\n * This function will check if the render target texture can be rendered (textures are loaded, shaders are compiled)\r\n * @returns true if all required resources are ready\r\n */\r\n public isReadyForRendering(): boolean {\r\n return this._render(false, false, true);\r\n }\r\n\r\n private _render(useCameraPostProcess: boolean = false, dumpForDebug: boolean = false, checkReadiness: boolean = false): boolean {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return checkReadiness;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n if (this.useCameraPostProcesses !== undefined) {\r\n useCameraPostProcess = this.useCameraPostProcesses;\r\n }\r\n\r\n if (this._waitingRenderList) {\r\n this.renderList = [];\r\n for (let index = 0; index < this._waitingRenderList.length; index++) {\r\n const id = this._waitingRenderList[index];\r\n const mesh = scene.getMeshById(id);\r\n if (mesh) {\r\n this.renderList.push(mesh);\r\n }\r\n }\r\n\r\n this._waitingRenderList = undefined;\r\n }\r\n\r\n // Is predicate defined?\r\n if (this.renderListPredicate) {\r\n if (this.renderList) {\r\n this.renderList.length = 0; // Clear previous renderList\r\n } else {\r\n this.renderList = [];\r\n }\r\n\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return checkReadiness;\r\n }\r\n\r\n const sceneMeshes = scene.meshes;\r\n\r\n for (let index = 0; index < sceneMeshes.length; index++) {\r\n const mesh = sceneMeshes[index];\r\n if (this.renderListPredicate(mesh)) {\r\n this.renderList.push(mesh);\r\n }\r\n }\r\n }\r\n\r\n const currentRenderPassId = engine.currentRenderPassId;\r\n\r\n this.onBeforeBindObservable.notifyObservers(this);\r\n\r\n // Set custom projection.\r\n // Needs to be before binding to prevent changing the aspect ratio.\r\n const camera: Nullable<Camera> = this.activeCamera ?? scene.activeCamera;\r\n const sceneCamera = scene.activeCamera;\r\n\r\n if (camera) {\r\n if (camera !== scene.activeCamera) {\r\n scene.setTransformMatrix(camera.getViewMatrix(), camera.getProjectionMatrix(true));\r\n scene.activeCamera = camera;\r\n }\r\n engine.setViewport(camera.viewport, this.getRenderWidth(), this.getRenderHeight());\r\n }\r\n\r\n this._defaultRenderListPrepared = false;\r\n\r\n let returnValue = checkReadiness;\r\n\r\n if (!checkReadiness) {\r\n if (this.is2DArray) {\r\n for (let layer = 0; layer < this.getRenderLayers(); layer++) {\r\n this._renderToTarget(0, useCameraPostProcess, dumpForDebug, layer, camera);\r\n scene.incrementRenderId();\r\n scene.resetCachedMaterial();\r\n }\r\n } else if (this.isCube) {\r\n for (let face = 0; face < 6; face++) {\r\n this._renderToTarget(face, useCameraPostProcess, dumpForDebug, undefined, camera);\r\n scene.incrementRenderId();\r\n scene.resetCachedMaterial();\r\n }\r\n } else {\r\n this._renderToTarget(0, useCameraPostProcess, dumpForDebug, undefined, camera);\r\n }\r\n } else {\r\n if (!scene.getViewMatrix()) {\r\n // We probably didn't execute scene.render() yet, so make sure we have a view/projection matrix setup for the scene\r\n scene.updateTransformMatrix();\r\n }\r\n const numLayers = this.is2DArray ? this.getRenderLayers() : this.isCube ? 6 : 1;\r\n for (let layer = 0; layer < numLayers && returnValue; layer++) {\r\n let currentRenderList: Nullable<Array<AbstractMesh>> = null;\r\n const defaultRenderList = this.renderList ? this.renderList : scene.getActiveMeshes().data;\r\n const defaultRenderListLength = this.renderList ? this.renderList.length : scene.getActiveMeshes().length;\r\n\r\n engine.currentRenderPassId = this._renderPassIds[layer];\r\n\r\n this.onBeforeRenderObservable.notifyObservers(layer);\r\n\r\n if (this.getCustomRenderList) {\r\n currentRenderList = this.getCustomRenderList(layer, defaultRenderList, defaultRenderListLength);\r\n }\r\n\r\n if (!currentRenderList) {\r\n currentRenderList = defaultRenderList;\r\n }\r\n\r\n if (!this._doNotChangeAspectRatio) {\r\n scene.updateTransformMatrix(true);\r\n }\r\n\r\n for (let i = 0; i < currentRenderList.length && returnValue; ++i) {\r\n const mesh = currentRenderList[i];\r\n\r\n if (!mesh.isEnabled() || mesh.isBlocked || !mesh.isVisible || !mesh.subMeshes) {\r\n continue;\r\n }\r\n\r\n if (this.customIsReadyFunction) {\r\n if (!this.customIsReadyFunction(mesh, this.refreshRate)) {\r\n returnValue = false;\r\n break;\r\n }\r\n } else if (!mesh.isReady(true)) {\r\n returnValue = false;\r\n break;\r\n }\r\n }\r\n\r\n this.onAfterRenderObservable.notifyObservers(layer);\r\n }\r\n }\r\n\r\n this.onAfterUnbindObservable.notifyObservers(this);\r\n\r\n engine.currentRenderPassId = currentRenderPassId;\r\n\r\n if (sceneCamera) {\r\n scene.activeCamera = sceneCamera;\r\n // Do not avoid setting uniforms when multiple scenes are active as another camera may have overwrite these\r\n if (scene.getEngine().scenes.length > 1 || (this.activeCamera && this.activeCamera !== scene.activeCamera)) {\r\n scene.setTransformMatrix(scene.activeCamera.getViewMatrix(), scene.activeCamera.getProjectionMatrix(true));\r\n }\r\n engine.setViewport(scene.activeCamera.viewport);\r\n }\r\n\r\n scene.resetCachedMaterial();\r\n\r\n return returnValue;\r\n }\r\n\r\n private _bestReflectionRenderTargetDimension(renderDimension: number, scale: number): number {\r\n const minimum = 128;\r\n const x = renderDimension * scale;\r\n const curved = Engine.NearestPOT(x + (minimum * minimum) / (minimum + x));\r\n\r\n // Ensure we don't exceed the render dimension (while staying POT)\r\n return Math.min(Engine.FloorPOT(renderDimension), curved);\r\n }\r\n\r\n private _prepareRenderingManager(currentRenderList: Array<AbstractMesh>, currentRenderListLength: number, camera: Nullable<Camera>, checkLayerMask: boolean): void {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n this._renderingManager.reset();\r\n\r\n const sceneRenderId = scene.getRenderId();\r\n for (let meshIndex = 0; meshIndex < currentRenderListLength; meshIndex++) {\r\n const mesh = currentRenderList[meshIndex];\r\n\r\n if (mesh && !mesh.isBlocked) {\r\n if (this.customIsReadyFunction) {\r\n if (!this.customIsReadyFunction(mesh, this.refreshRate)) {\r\n this.resetRefreshCounter();\r\n continue;\r\n }\r\n } else if (!mesh.isReady(this.refreshRate === 0)) {\r\n this.resetRefreshCounter();\r\n continue;\r\n }\r\n\r\n if (!mesh._internalAbstractMeshDataInfo._currentLODIsUpToDate && scene.activeCamera) {\r\n mesh._internalAbstractMeshDataInfo._currentLOD = scene.customLODSelector\r\n ? scene.customLODSelector(mesh, this.activeCamera || scene.activeCamera)\r\n : mesh.getLOD(this.activeCamera || scene.activeCamera);\r\n mesh._internalAbstractMeshDataInfo._currentLODIsUpToDate = true;\r\n }\r\n if (!mesh._internalAbstractMeshDataInfo._currentLOD) {\r\n continue;\r\n }\r\n\r\n let meshToRender = mesh._internalAbstractMeshDataInfo._currentLOD;\r\n\r\n meshToRender._preActivateForIntermediateRendering(sceneRenderId);\r\n\r\n let isMasked;\r\n if (checkLayerMask && camera) {\r\n isMasked = (mesh.layerMask & camera.layerMask) === 0;\r\n } else {\r\n isMasked = false;\r\n }\r\n\r\n if (mesh.isEnabled() && mesh.isVisible && mesh.subMeshes && !isMasked) {\r\n if (meshToRender !== mesh) {\r\n meshToRender._activate(sceneRenderId, true);\r\n }\r\n if (mesh._activate(sceneRenderId, true) && mesh.subMeshes.length) {\r\n if (!mesh.isAnInstance) {\r\n meshToRender._internalAbstractMeshDataInfo._onlyForInstancesIntermediate = false;\r\n } else {\r\n if (mesh._internalAbstractMeshDataInfo._actAsRegularMesh) {\r\n meshToRender = mesh;\r\n }\r\n }\r\n meshToRender._internalAbstractMeshDataInfo._isActiveIntermediate = true;\r\n\r\n for (let subIndex = 0; subIndex < meshToRender.subMeshes.length; subIndex++) {\r\n const subMesh = meshToRender.subMeshes[subIndex];\r\n this._renderingManager.dispatch(subMesh, meshToRender);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (let particleIndex = 0; particleIndex < scene.particleSystems.length; particleIndex++) {\r\n const particleSystem = scene.particleSystems[particleIndex];\r\n\r\n const emitter: any = particleSystem.emitter;\r\n if (!particleSystem.isStarted() || !emitter || !emitter.position || !emitter.isEnabled()) {\r\n continue;\r\n }\r\n\r\n if (currentRenderList.indexOf(emitter) >= 0) {\r\n this._renderingManager.dispatchParticles(particleSystem);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @hidden\r\n * @param faceIndex face index to bind to if this is a cubetexture\r\n * @param layer defines the index of the texture to bind in the array\r\n */\r\n public _bindFrameBuffer(faceIndex: number = 0, layer = 0) {\r\n const scene = this.getScene();\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n if (this._renderTarget) {\r\n engine.bindFramebuffer(this._renderTarget, this.isCube ? faceIndex : undefined, undefined, undefined, this.ignoreCameraViewport, 0, layer);\r\n }\r\n }\r\n\r\n protected _unbindFrameBuffer(engine: Engine, faceIndex: number): void {\r\n if (!this._renderTarget) {\r\n return;\r\n }\r\n engine.unBindFramebuffer(this._renderTarget, this.isCube, () => {\r\n this.onAfterRenderObservable.notifyObservers(faceIndex);\r\n });\r\n }\r\n\r\n /**\r\n * @param scene\r\n * @param faceIndex\r\n * @param layer\r\n * @param useCameraPostProcess\r\n * @hidden\r\n */\r\n public _prepareFrame(scene: Scene, faceIndex?: number, layer?: number, useCameraPostProcess?: boolean) {\r\n if (this._postProcessManager) {\r\n if (!this._prePassEnabled) {\r\n this._postProcessManager._prepareFrame(this._texture, this._postProcesses);\r\n }\r\n } else if (!useCameraPostProcess || !scene.postProcessManager._prepareFrame(this._texture)) {\r\n this._bindFrameBuffer(faceIndex, layer);\r\n }\r\n }\r\n\r\n private _renderToTarget(faceIndex: number, useCameraPostProcess: boolean, dumpForDebug: boolean, layer = 0, camera: Nullable<Camera> = null): void {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n engine._debugPushGroup?.(`render to face #${faceIndex} layer #${layer}`, 1);\r\n\r\n // Bind\r\n this._prepareFrame(scene, faceIndex, layer, useCameraPostProcess);\r\n\r\n if (this.is2DArray) {\r\n engine.currentRenderPassId = this._renderPassIds[layer];\r\n this.onBeforeRenderObservable.notifyObservers(layer);\r\n } else {\r\n engine.currentRenderPassId = this._renderPassIds[faceIndex];\r\n this.onBeforeRenderObservable.notifyObservers(faceIndex);\r\n }\r\n\r\n const fastPath = engine.snapshotRendering && engine.snapshotRenderingMode === Constants.SNAPSHOTRENDERING_FAST;\r\n\r\n if (!fastPath) {\r\n // Get the list of meshes to render\r\n let currentRenderList: Nullable<Array<AbstractMesh>> = null;\r\n const defaultRenderList = this.renderList ? this.renderList : scene.getActiveMeshes().data;\r\n const defaultRenderListLength = this.renderList ? this.renderList.length : scene.getActiveMeshes().length;\r\n\r\n if (this.getCustomRenderList) {\r\n currentRenderList = this.getCustomRenderList(this.is2DArray ? layer : faceIndex, defaultRenderList, defaultRenderListLength);\r\n }\r\n\r\n if (!currentRenderList) {\r\n // No custom render list provided, we prepare the rendering for the default list, but check\r\n // first if we did not already performed the preparation before so as to avoid re-doing it several times\r\n if (!this._defaultRenderListPrepared) {\r\n this._prepareRenderingManager(defaultRenderList, defaultRenderListLength, camera, !this.renderList);\r\n this._defaultRenderListPrepared = true;\r\n }\r\n currentRenderList = defaultRenderList;\r\n } else {\r\n // Prepare the rendering for the custom render list provided\r\n this._prepareRenderingManager(currentRenderList, currentRenderList.length, camera, false);\r\n }\r\n\r\n // Before clear\r\n for (const step of scene._beforeRenderTargetClearStage) {\r\n step.action(this, faceIndex, layer);\r\n }\r\n\r\n // Clear\r\n if (this.onClearObservable.hasObservers()) {\r\n this.onClearObservable.notifyObservers(engine);\r\n } else {\r\n if (!this.skipInitialClear) {\r\n engine.clear(this.clearColor || scene.clearColor, true, true, true);\r\n }\r\n }\r\n\r\n if (!this._doNotChangeAspectRatio) {\r\n scene.updateTransformMatrix(true);\r\n }\r\n\r\n // Before Camera Draw\r\n for (const step of scene._beforeRenderTargetDrawStage) {\r\n step.action(this, faceIndex, layer);\r\n }\r\n\r\n // Render\r\n this._renderingManager.render(this.customRenderFunction, currentRenderList, this.renderParticles, this.renderSprites);\r\n\r\n // After Camera Draw\r\n for (const step of scene._afterRenderTargetDrawStage) {\r\n step.action(this, faceIndex, layer);\r\n }\r\n\r\n const saveGenerateMipMaps = this._texture?.generateMipMaps ?? false;\r\n\r\n if (this._texture) {\r\n this._texture.generateMipMaps = false; // if left true, the mipmaps will be generated (if this._texture.generateMipMaps = true) when the first post process binds its own RTT: by doing so it will unbind the current RTT,\r\n // which will trigger a mipmap generation. We don't want this because it's a wasted work, we will do an unbind of the current RTT at the end of the process (see unbindFrameBuffer) which will\r\n // trigger the generation of the final mipmaps\r\n }\r\n\r\n if (this._postProcessManager) {\r\n this._postProcessManager._finalizeFrame(false, this._renderTarget ?? undefined, faceIndex, this._postProcesses, this.ignoreCameraViewport);\r\n } else if (useCameraPostProcess) {\r\n scene.postProcessManager._finalizeFrame(false, this._renderTarget ?? undefined, faceIndex);\r\n }\r\n\r\n if (this._texture) {\r\n this._texture.generateMipMaps = saveGenerateMipMaps;\r\n }\r\n\r\n if (!this._doNotChangeAspectRatio) {\r\n scene.updateTransformMatrix(true);\r\n }\r\n\r\n // Dump ?\r\n if (dumpForDebug) {\r\n Tools.DumpFramebuffer(this.getRenderWidth(), this.getRenderHeight(), engine);\r\n }\r\n } else {\r\n // Clear\r\n if (this.onClearObservable.hasObservers()) {\r\n this.onClearObservable.notifyObservers(engine);\r\n } else {\r\n if (!this.skipInitialClear) {\r\n engine.clear(this.clearColor || scene.clearColor, true, true, true);\r\n }\r\n }\r\n }\r\n\r\n // Unbind\r\n this._unbindFrameBuffer(engine, faceIndex);\r\n\r\n if (this._texture && this.isCube && faceIndex === 5) {\r\n engine.generateMipMapsForCubemap(this._texture);\r\n }\r\n\r\n engine._debugPopGroup?.(1);\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 ): void {\r\n this._renderingManager.setRenderingOrder(renderingGroupId, opaqueSortCompareFn, alphaTestSortCompareFn, transparentSortCompareFn);\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 */\r\n public setRenderingAutoClearDepthStencil(renderingGroupId: number, autoClearDepthStencil: boolean): void {\r\n this._renderingManager.setRenderingAutoClearDepthStencil(renderingGroupId, autoClearDepthStencil);\r\n this._renderingManager._useSceneAutoClearSetup = false;\r\n }\r\n\r\n /**\r\n * Clones the texture.\r\n * @returns the cloned texture\r\n */\r\n public clone(): RenderTargetTexture {\r\n const textureSize = this.getSize();\r\n const newTexture = new RenderTargetTexture(\r\n this.name,\r\n textureSize,\r\n this.getScene(),\r\n this._renderTargetOptions.generateMipMaps,\r\n this._doNotChangeAspectRatio,\r\n this._renderTargetOptions.type,\r\n this.isCube,\r\n this._renderTargetOptions.samplingMode,\r\n this._renderTargetOptions.generateDepthBuffer,\r\n this._renderTargetOptions.generateStencilBuffer,\r\n undefined,\r\n this._renderTargetOptions.format,\r\n undefined,\r\n this._renderTargetOptions.samples\r\n );\r\n\r\n // Base texture\r\n newTexture.hasAlpha = this.hasAlpha;\r\n newTexture.level = this.level;\r\n\r\n // RenderTarget Texture\r\n newTexture.coordinatesMode = this.coordinatesMode;\r\n if (this.renderList) {\r\n newTexture.renderList = this.renderList.slice(0);\r\n }\r\n\r\n return newTexture;\r\n }\r\n\r\n /**\r\n * Serialize the texture to a JSON representation we can easily use in the respective Parse function.\r\n * @returns The JSON representation of the texture\r\n */\r\n public serialize(): any {\r\n if (!this.name) {\r\n return null;\r\n }\r\n\r\n const serializationObject = super.serialize();\r\n\r\n serializationObject.renderTargetSize = this.getRenderSize();\r\n serializationObject.renderList = [];\r\n\r\n if (this.renderList) {\r\n for (let index = 0; index < this.renderList.length; index++) {\r\n serializationObject.renderList.push(this.renderList[index].id);\r\n }\r\n }\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * This will remove the attached framebuffer objects. The texture will not be able to be used as render target anymore\r\n */\r\n public disposeFramebufferObjects(): void {\r\n this._renderTarget?.dispose(true);\r\n }\r\n\r\n /**\r\n * Release and destroy the underlying lower level texture aka internalTexture.\r\n */\r\n public releaseInternalTexture(): void {\r\n this._renderTarget?.releaseTextures();\r\n this._texture = null;\r\n }\r\n\r\n /**\r\n * Dispose the texture and release its associated resources.\r\n */\r\n public dispose(): void {\r\n this.onResizeObservable.clear();\r\n this.onClearObservable.clear();\r\n this.onAfterRenderObservable.clear();\r\n this.onAfterUnbindObservable.clear();\r\n this.onBeforeBindObservable.clear();\r\n this.onBeforeRenderObservable.clear();\r\n\r\n if (this._postProcessManager) {\r\n this._postProcessManager.dispose();\r\n this._postProcessManager = null;\r\n }\r\n\r\n if (this._prePassRenderTarget) {\r\n this._prePassRenderTarget.dispose();\r\n }\r\n\r\n this._releaseRenderPassId();\r\n this.clearPostProcesses(true);\r\n\r\n if (this._resizeObserver) {\r\n this.getScene()!.getEngine().onResizeObservable.remove(this._resizeObserver);\r\n this._resizeObserver = null;\r\n }\r\n\r\n this.renderList = null;\r\n\r\n // Remove from custom render targets\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n let index = scene.customRenderTargets.indexOf(this);\r\n\r\n if (index >= 0) {\r\n scene.customRenderTargets.splice(index, 1);\r\n }\r\n\r\n for (const camera of scene.cameras) {\r\n index = camera.customRenderTargets.indexOf(this);\r\n\r\n if (index >= 0) {\r\n camera.customRenderTargets.splice(index, 1);\r\n }\r\n }\r\n\r\n this._renderTarget?.dispose();\r\n this._renderTarget = null;\r\n this._texture = null;\r\n\r\n super.dispose();\r\n }\r\n\r\n /** @hidden */\r\n public _rebuild(): void {\r\n if (this.refreshRate === RenderTargetTexture.REFRESHRATE_RENDER_ONCE) {\r\n this.refreshRate = RenderTargetTexture.REFRESHRATE_RENDER_ONCE;\r\n }\r\n\r\n if (this._postProcessManager) {\r\n this._postProcessManager._rebuild();\r\n }\r\n }\r\n\r\n /**\r\n * Clear the info related to rendering groups preventing retention point in material dispose.\r\n */\r\n public freeRenderingGroups(): void {\r\n if (this._renderingManager) {\r\n this._renderingManager.freeRenderingGroups();\r\n }\r\n }\r\n\r\n /**\r\n * Gets the number of views the corresponding to the texture (eg. a MultiviewRenderTarget will have > 1)\r\n * @returns the view count\r\n */\r\n public getViewCount() {\r\n return 1;\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nTexture._CreateRenderTargetTexture = (name: string, renderTargetSize: number, scene: Scene, generateMipMaps: boolean, creationFlags?: number) => {\r\n return new RenderTargetTexture(name, renderTargetSize, scene, generateMipMaps);\r\n};\r\n"]}
1
+ {"version":3,"file":"renderTargetTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/renderTargetTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Observer } from \"../../Misc/observable\";\r\nimport { Observable } from \"../../Misc/observable\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport type { SmartArray } from \"../../Misc/smartArray\";\r\nimport type { Nullable, Immutable } from \"../../types\";\r\nimport type { Camera } from \"../../Cameras/camera\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport type { Color4 } from \"../../Maths/math.color\";\r\nimport type { RenderTargetCreationOptions, TextureSize } from \"../../Materials/Textures/textureCreationOptions\";\r\nimport type { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"../../Meshes/subMesh\";\r\nimport type { InternalTexture } from \"../../Materials/Textures/internalTexture\";\r\nimport { Texture } from \"../../Materials/Textures/texture\";\r\nimport { PostProcessManager } from \"../../PostProcesses/postProcessManager\";\r\nimport type { PostProcess } from \"../../PostProcesses/postProcess\";\r\nimport { RenderingManager } from \"../../Rendering/renderingManager\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport type { IRenderTargetTexture, RenderTargetWrapper } from \"../../Engines/renderTargetWrapper\";\r\n\r\nimport \"../../Engines/Extensions/engine.renderTarget\";\r\nimport \"../../Engines/Extensions/engine.renderTargetCube\";\r\nimport { Engine } from \"../../Engines/engine\";\r\nimport { _ObserveArray } from \"core/Misc/arrayTools\";\r\n\r\ndeclare type Material = import(\"../material\").Material;\r\n\r\n/**\r\n * This Helps creating a texture that will be created from a camera in your scene.\r\n * It is basically a dynamic texture that could be used to create special effects for instance.\r\n * Actually, It is the base of lot of effects in the framework like post process, shadows, effect layers and rendering pipelines...\r\n */\r\nexport class RenderTargetTexture extends Texture implements IRenderTargetTexture {\r\n /**\r\n * The texture will only be rendered once which can be useful to improve performance if everything in your render is static for instance.\r\n */\r\n public static readonly REFRESHRATE_RENDER_ONCE: number = 0;\r\n /**\r\n * The texture will only be rendered rendered every frame and is recommended for dynamic contents.\r\n */\r\n public static readonly REFRESHRATE_RENDER_ONEVERYFRAME: number = 1;\r\n /**\r\n * The texture will be rendered every 2 frames which could be enough if your dynamic objects are not\r\n * the central point of your effect and can save a lot of performances.\r\n */\r\n public static readonly REFRESHRATE_RENDER_ONEVERYTWOFRAMES: number = 2;\r\n\r\n /**\r\n * Use this predicate to dynamically define the list of mesh you want to render.\r\n * If set, the renderList property will be overwritten.\r\n */\r\n public renderListPredicate: (AbstractMesh: AbstractMesh) => boolean;\r\n\r\n private _renderList: Nullable<Array<AbstractMesh>>;\r\n private _unObserveRenderList: Nullable<() => void> = null;\r\n\r\n /**\r\n * Use this list to define the list of mesh you want to render.\r\n */\r\n public get renderList(): Nullable<Array<AbstractMesh>> {\r\n return this._renderList;\r\n }\r\n\r\n public set renderList(value: Nullable<Array<AbstractMesh>>) {\r\n if (this._unObserveRenderList) {\r\n this._unObserveRenderList();\r\n this._unObserveRenderList = null;\r\n }\r\n\r\n if (value) {\r\n this._unObserveRenderList = _ObserveArray(value, this._renderListHasChanged);\r\n }\r\n\r\n this._renderList = value;\r\n }\r\n\r\n private _renderListHasChanged = (_functionName: String, previousLength: number) => {\r\n const newLength = this._renderList ? this._renderList.length : 0;\r\n if ((previousLength === 0 && newLength > 0) || newLength === 0) {\r\n this.getScene()?.meshes.forEach((mesh) => {\r\n mesh._markSubMeshesAsLightDirty();\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Use this function to overload the renderList array at rendering time.\r\n * Return null to render with the current renderList, else return the list of meshes to use for rendering.\r\n * For 2DArray RTT, layerOrFace is the index of the layer that is going to be rendered, else it is the faceIndex of\r\n * the cube (if the RTT is a cube, else layerOrFace=0).\r\n * The renderList passed to the function is the current render list (the one that will be used if the function returns null).\r\n * The length of this list is passed through renderListLength: don't use renderList.length directly because the array can\r\n * hold dummy elements!\r\n */\r\n public getCustomRenderList: (layerOrFace: number, renderList: Nullable<Immutable<Array<AbstractMesh>>>, renderListLength: number) => Nullable<Array<AbstractMesh>>;\r\n\r\n /**\r\n * Define if particles should be rendered in your texture.\r\n */\r\n public renderParticles = true;\r\n /**\r\n * Define if sprites should be rendered in your texture.\r\n */\r\n public renderSprites = false;\r\n\r\n /**\r\n * Define the camera used to render the texture.\r\n */\r\n public activeCamera: Nullable<Camera>;\r\n /**\r\n * Override the mesh isReady function with your own one.\r\n */\r\n public customIsReadyFunction: (mesh: AbstractMesh, refreshRate: number) => boolean;\r\n /**\r\n * Override the render function of the texture with your own one.\r\n */\r\n public customRenderFunction: (\r\n opaqueSubMeshes: SmartArray<SubMesh>,\r\n alphaTestSubMeshes: SmartArray<SubMesh>,\r\n transparentSubMeshes: SmartArray<SubMesh>,\r\n depthOnlySubMeshes: SmartArray<SubMesh>,\r\n beforeTransparents?: () => void\r\n ) => void;\r\n /**\r\n * Define if camera post processes should be use while rendering the texture.\r\n */\r\n public useCameraPostProcesses: boolean;\r\n /**\r\n * Define if the camera viewport should be respected while rendering the texture or if the render should be done to the entire texture.\r\n */\r\n public ignoreCameraViewport: boolean = false;\r\n\r\n private _postProcessManager: Nullable<PostProcessManager>;\r\n\r\n /**\r\n * Post-processes for this render target\r\n */\r\n public get postProcesses() {\r\n return this._postProcesses;\r\n }\r\n private _postProcesses: PostProcess[];\r\n private _resizeObserver: Nullable<Observer<Engine>>;\r\n\r\n private get _prePassEnabled() {\r\n return !!this._prePassRenderTarget && this._prePassRenderTarget.enabled;\r\n }\r\n\r\n /**\r\n * An event triggered when the texture is unbind.\r\n */\r\n public onBeforeBindObservable = new Observable<RenderTargetTexture>();\r\n\r\n /**\r\n * An event triggered when the texture is unbind.\r\n */\r\n public onAfterUnbindObservable = new Observable<RenderTargetTexture>();\r\n\r\n private _onAfterUnbindObserver: Nullable<Observer<RenderTargetTexture>>;\r\n /**\r\n * Set a after unbind callback in the texture.\r\n * This has been kept for backward compatibility and use of onAfterUnbindObservable is recommended.\r\n */\r\n public set onAfterUnbind(callback: () => void) {\r\n if (this._onAfterUnbindObserver) {\r\n this.onAfterUnbindObservable.remove(this._onAfterUnbindObserver);\r\n }\r\n this._onAfterUnbindObserver = this.onAfterUnbindObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered before rendering the texture\r\n */\r\n public onBeforeRenderObservable = new Observable<number>();\r\n\r\n private _onBeforeRenderObserver: Nullable<Observer<number>>;\r\n /**\r\n * Set a before render callback in the texture.\r\n * This has been kept for backward compatibility and use of onBeforeRenderObservable is recommended.\r\n */\r\n public set onBeforeRender(callback: (faceIndex: number) => void) {\r\n if (this._onBeforeRenderObserver) {\r\n this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver);\r\n }\r\n this._onBeforeRenderObserver = this.onBeforeRenderObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered after rendering the texture\r\n */\r\n public onAfterRenderObservable = new Observable<number>();\r\n\r\n private _onAfterRenderObserver: Nullable<Observer<number>>;\r\n /**\r\n * Set a after render callback in the texture.\r\n * This has been kept for backward compatibility and use of onAfterRenderObservable is recommended.\r\n */\r\n public set onAfterRender(callback: (faceIndex: number) => void) {\r\n if (this._onAfterRenderObserver) {\r\n this.onAfterRenderObservable.remove(this._onAfterRenderObserver);\r\n }\r\n this._onAfterRenderObserver = this.onAfterRenderObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered after the texture clear\r\n */\r\n public onClearObservable = new Observable<Engine>();\r\n\r\n private _onClearObserver: Nullable<Observer<Engine>>;\r\n /**\r\n * Set a clear callback in the texture.\r\n * This has been kept for backward compatibility and use of onClearObservable is recommended.\r\n */\r\n public set onClear(callback: (Engine: Engine) => void) {\r\n if (this._onClearObserver) {\r\n this.onClearObservable.remove(this._onClearObserver);\r\n }\r\n this._onClearObserver = this.onClearObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered when the texture is resized.\r\n */\r\n public onResizeObservable = new Observable<RenderTargetTexture>();\r\n\r\n /**\r\n * Define the clear color of the Render Target if it should be different from the scene.\r\n */\r\n public clearColor: Color4;\r\n protected _size: TextureSize;\r\n protected _initialSizeParameter: number | { width: number; height: number } | { ratio: number };\r\n protected _sizeRatio: Nullable<number>;\r\n /** @internal */\r\n public _generateMipMaps: boolean;\r\n /** @internal */\r\n public _cleared = false;\r\n /**\r\n * Skip the initial clear of the rtt at the beginning of the frame render loop\r\n */\r\n public skipInitialClear = false;\r\n protected _renderingManager: RenderingManager;\r\n /** @internal */\r\n public _waitingRenderList?: string[];\r\n protected _doNotChangeAspectRatio: boolean;\r\n protected _currentRefreshId = -1;\r\n protected _refreshRate = 1;\r\n protected _textureMatrix: Matrix;\r\n protected _samples = 1;\r\n protected _renderTargetOptions: RenderTargetCreationOptions;\r\n private _canRescale = true;\r\n protected _renderTarget: Nullable<RenderTargetWrapper> = null;\r\n /**\r\n * Current render pass id of the render target texture. Note it can change over the rendering as there's a separate id for each face of a cube / each layer of an array layer!\r\n */\r\n public renderPassId: number;\r\n private _renderPassIds: number[];\r\n /**\r\n * Gets the render pass ids used by the render target texture. For a single render target the array length will be 1, for a cube texture it will be 6 and for\r\n * a 2D texture array it will return an array of ids the size of the 2D texture array\r\n */\r\n public get renderPassIds(): readonly number[] {\r\n return this._renderPassIds;\r\n }\r\n\r\n /**\r\n * Gets the current value of the refreshId counter\r\n */\r\n public get currentRefreshId() {\r\n return this._currentRefreshId;\r\n }\r\n\r\n /**\r\n * Sets a specific material to be used to render a mesh/a list of meshes in this render target texture\r\n * @param mesh mesh or array of meshes\r\n * @param material material or array of materials to use for this render pass. If undefined is passed, no specific material will be used but the regular material instead (mesh.material). It's possible to provide an array of materials to use a different material for each rendering in the case of a cube texture (6 rendering) and a 2D texture array (as many rendering as the length of the array)\r\n */\r\n public setMaterialForRendering(mesh: AbstractMesh | AbstractMesh[], material?: Material | Material[]): void {\r\n let meshes;\r\n if (!Array.isArray(mesh)) {\r\n meshes = [mesh];\r\n } else {\r\n meshes = mesh;\r\n }\r\n for (let j = 0; j < meshes.length; ++j) {\r\n for (let i = 0; i < this._renderPassIds.length; ++i) {\r\n meshes[j].setMaterialForRenderPass(this._renderPassIds[i], material !== undefined ? (Array.isArray(material) ? material[i] : material) : undefined);\r\n }\r\n }\r\n }\r\n\r\n private _isCubeData: boolean;\r\n /**\r\n * Gets render target creation options that were used.\r\n */\r\n public get renderTargetOptions(): RenderTargetCreationOptions {\r\n return this._renderTargetOptions;\r\n }\r\n\r\n /**\r\n * Gets the render target wrapper associated with this render target\r\n */\r\n public get renderTarget(): Nullable<RenderTargetWrapper> {\r\n return this._renderTarget;\r\n }\r\n\r\n protected _onRatioRescale(): void {\r\n if (this._sizeRatio) {\r\n this.resize(this._initialSizeParameter);\r\n }\r\n }\r\n\r\n /**\r\n * Gets or sets the center of the bounding box associated with the texture (when in cube mode)\r\n * It must define where the camera used to render the texture is set\r\n */\r\n public boundingBoxPosition = Vector3.Zero();\r\n\r\n private _boundingBoxSize: Vector3;\r\n\r\n /**\r\n * Gets or sets the size of the bounding box associated with the texture (when in cube mode)\r\n * When defined, the cubemap will switch to local mode\r\n * @see https://community.arm.com/graphics/b/blog/posts/reflections-based-on-local-cubemaps-in-unity\r\n * @example https://www.babylonjs-playground.com/#RNASML\r\n */\r\n public set boundingBoxSize(value: Vector3) {\r\n if (this._boundingBoxSize && this._boundingBoxSize.equals(value)) {\r\n return;\r\n }\r\n this._boundingBoxSize = value;\r\n const scene = this.getScene();\r\n if (scene) {\r\n scene.markAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n }\r\n public get boundingBoxSize(): Vector3 {\r\n return this._boundingBoxSize;\r\n }\r\n\r\n /**\r\n * In case the RTT has been created with a depth texture, get the associated\r\n * depth texture.\r\n * Otherwise, return null.\r\n */\r\n public get depthStencilTexture(): Nullable<InternalTexture> {\r\n return this._renderTarget?._depthStencilTexture ?? null;\r\n }\r\n\r\n /**\r\n * Instantiate a render target texture. This is mainly used to render of screen the scene to for instance apply post process\r\n * or used a shadow, depth texture...\r\n * @param name The friendly name of the texture\r\n * @param size The size of the RTT (number if square, or {width: number, height:number} or {ratio:} to define a ratio from the main scene)\r\n * @param scene The scene the RTT belongs to. The latest created scene will be used if not precised.\r\n * @param generateMipMaps True if mip maps need to be generated after render.\r\n * @param doNotChangeAspectRatio True to not change the aspect ratio of the scene in the RTT\r\n * @param type The type of the buffer in the RTT (int, half float, float...)\r\n * @param isCube True if a cube texture needs to be created\r\n * @param samplingMode The sampling mode to be usedwith the render target (Linear, Nearest...)\r\n * @param generateDepthBuffer True to generate a depth buffer\r\n * @param generateStencilBuffer True to generate a stencil buffer\r\n * @param isMulti True if multiple textures need to be created (Draw Buffers)\r\n * @param format The internal format of the buffer in the RTT (RED, RG, RGB, RGBA, ALPHA...)\r\n * @param delayAllocation if the texture allocation should be delayed (default: false)\r\n * @param samples sample count to use when creating the RTT\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param noColorTarget True to indicate that no color target should be created. Useful if you only want to write to the depth buffer, for eg\r\n * @param useSRGBBuffer True to create a SRGB texture\r\n */\r\n constructor(\r\n name: string,\r\n size: number | { width: number; height: number; layers?: number } | { ratio: number },\r\n scene?: Nullable<Scene>,\r\n generateMipMaps?: boolean,\r\n doNotChangeAspectRatio: boolean = true,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_INT,\r\n isCube = false,\r\n samplingMode = Texture.TRILINEAR_SAMPLINGMODE,\r\n generateDepthBuffer = true,\r\n generateStencilBuffer = false,\r\n isMulti = false,\r\n format = Constants.TEXTUREFORMAT_RGBA,\r\n delayAllocation = false,\r\n samples?: number,\r\n creationFlags?: number,\r\n noColorTarget = false,\r\n useSRGBBuffer = false\r\n ) {\r\n super(null, scene, !generateMipMaps, undefined, samplingMode, undefined, undefined, undefined, undefined, format);\r\n scene = this.getScene();\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n const engine = this.getScene()!.getEngine();\r\n\r\n this._coordinatesMode = Texture.PROJECTION_MODE;\r\n this.renderList = new Array<AbstractMesh>();\r\n this.name = name;\r\n this.isRenderTarget = true;\r\n this._initialSizeParameter = size;\r\n this._renderPassIds = [];\r\n this._isCubeData = isCube;\r\n\r\n this._processSizeParameter(size);\r\n\r\n this.renderPassId = this._renderPassIds[0];\r\n\r\n this._resizeObserver = engine.onResizeObservable.add(() => {});\r\n\r\n this._generateMipMaps = generateMipMaps ? true : false;\r\n this._doNotChangeAspectRatio = doNotChangeAspectRatio;\r\n\r\n // Rendering groups\r\n this._renderingManager = new RenderingManager(scene);\r\n this._renderingManager._useSceneAutoClearSetup = true;\r\n\r\n if (isMulti) {\r\n return;\r\n }\r\n\r\n this._renderTargetOptions = {\r\n generateMipMaps: generateMipMaps,\r\n type: type,\r\n format: this._format ?? undefined,\r\n samplingMode: this.samplingMode,\r\n generateDepthBuffer: generateDepthBuffer,\r\n generateStencilBuffer: generateStencilBuffer,\r\n samples,\r\n creationFlags,\r\n noColorTarget,\r\n useSRGBBuffer,\r\n };\r\n\r\n if (this.samplingMode === Texture.NEAREST_SAMPLINGMODE) {\r\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n }\r\n\r\n if (!delayAllocation) {\r\n if (isCube) {\r\n this._renderTarget = scene.getEngine().createRenderTargetCubeTexture(this.getRenderSize(), this._renderTargetOptions);\r\n this.coordinatesMode = Texture.INVCUBIC_MODE;\r\n this._textureMatrix = Matrix.Identity();\r\n } else {\r\n this._renderTarget = scene.getEngine().createRenderTargetTexture(this._size, this._renderTargetOptions);\r\n }\r\n this._texture = this._renderTarget.texture;\r\n if (samples !== undefined) {\r\n this.samples = samples;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Creates a depth stencil texture.\r\n * This is only available in WebGL 2 or with the depth texture extension available.\r\n * @param comparisonFunction Specifies the comparison function to set on the texture. If 0 or undefined, the texture is not in comparison mode (default: 0)\r\n * @param bilinearFiltering Specifies whether or not bilinear filtering is enable on the texture (default: true)\r\n * @param generateStencil Specifies whether or not a stencil should be allocated in the texture (default: false)\r\n * @param samples sample count of the depth/stencil texture (default: 1)\r\n * @param format format of the depth texture (default: Constants.TEXTUREFORMAT_DEPTH32_FLOAT)\r\n */\r\n public createDepthStencilTexture(\r\n comparisonFunction: number = 0,\r\n bilinearFiltering: boolean = true,\r\n generateStencil: boolean = false,\r\n samples: number = 1,\r\n format: number = Constants.TEXTUREFORMAT_DEPTH32_FLOAT\r\n ): void {\r\n this._renderTarget?.createDepthStencilTexture(comparisonFunction, bilinearFiltering, generateStencil, samples, format);\r\n }\r\n\r\n private _releaseRenderPassId(): void {\r\n if (this._scene) {\r\n const engine = this._scene.getEngine();\r\n for (let i = 0; i < this._renderPassIds.length; ++i) {\r\n engine.releaseRenderPassId(this._renderPassIds[i]);\r\n }\r\n }\r\n this._renderPassIds = [];\r\n }\r\n\r\n private _createRenderPassId(): void {\r\n this._releaseRenderPassId();\r\n\r\n const engine = this._scene!.getEngine(); // scene can't be null in a RenderTargetTexture, see constructor\r\n const numPasses = this._isCubeData ? 6 : this.getRenderLayers() || 1;\r\n\r\n for (let i = 0; i < numPasses; ++i) {\r\n this._renderPassIds[i] = engine.createRenderPassId(`RenderTargetTexture - ${this.name}#${i}`);\r\n }\r\n }\r\n\r\n private _processSizeParameter(size: number | { width: number; height: number } | { ratio: number }): void {\r\n if ((<{ ratio: number }>size).ratio) {\r\n this._sizeRatio = (<{ ratio: number }>size).ratio;\r\n const engine = this._getEngine()!;\r\n this._size = {\r\n width: this._bestReflectionRenderTargetDimension(engine.getRenderWidth(), this._sizeRatio),\r\n height: this._bestReflectionRenderTargetDimension(engine.getRenderHeight(), this._sizeRatio),\r\n };\r\n } else {\r\n this._size = <number | { width: number; height: number; layers?: number }>size;\r\n }\r\n\r\n this._createRenderPassId();\r\n }\r\n\r\n /**\r\n * Define the number of samples to use in case of MSAA.\r\n * It defaults to one meaning no MSAA has been enabled.\r\n */\r\n public get samples(): number {\r\n return this._renderTarget?.samples ?? this._samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n if (this._renderTarget) {\r\n this._samples = this._renderTarget.setSamples(value);\r\n }\r\n }\r\n\r\n /**\r\n * Resets the refresh counter of the texture and start bak from scratch.\r\n * Could be useful to regenerate the texture if it is setup to render only once.\r\n */\r\n public resetRefreshCounter(): void {\r\n this._currentRefreshId = -1;\r\n }\r\n\r\n /**\r\n * Define the refresh rate of the texture or the rendering frequency.\r\n * Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...\r\n */\r\n public get refreshRate(): number {\r\n return this._refreshRate;\r\n }\r\n public set refreshRate(value: number) {\r\n this._refreshRate = value;\r\n this.resetRefreshCounter();\r\n }\r\n\r\n /**\r\n * Adds a post process to the render target rendering passes.\r\n * @param postProcess define the post process to add\r\n */\r\n public addPostProcess(postProcess: PostProcess): void {\r\n if (!this._postProcessManager) {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n this._postProcessManager = new PostProcessManager(scene);\r\n this._postProcesses = new Array<PostProcess>();\r\n }\r\n\r\n this._postProcesses.push(postProcess);\r\n this._postProcesses[0].autoClear = false;\r\n }\r\n\r\n /**\r\n * Clear all the post processes attached to the render target\r\n * @param dispose define if the cleared post processes should also be disposed (false by default)\r\n */\r\n public clearPostProcesses(dispose: boolean = false): void {\r\n if (!this._postProcesses) {\r\n return;\r\n }\r\n\r\n if (dispose) {\r\n for (const postProcess of this._postProcesses) {\r\n postProcess.dispose();\r\n }\r\n }\r\n\r\n this._postProcesses = [];\r\n }\r\n\r\n /**\r\n * Remove one of the post process from the list of attached post processes to the texture\r\n * @param postProcess define the post process to remove from the list\r\n */\r\n public removePostProcess(postProcess: PostProcess): void {\r\n if (!this._postProcesses) {\r\n return;\r\n }\r\n\r\n const index = this._postProcesses.indexOf(postProcess);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this._postProcesses.splice(index, 1);\r\n\r\n if (this._postProcesses.length > 0) {\r\n this._postProcesses[0].autoClear = false;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public _shouldRender(): boolean {\r\n if (this._currentRefreshId === -1) {\r\n // At least render once\r\n this._currentRefreshId = 1;\r\n return true;\r\n }\r\n\r\n if (this.refreshRate === this._currentRefreshId) {\r\n this._currentRefreshId = 1;\r\n return true;\r\n }\r\n\r\n this._currentRefreshId++;\r\n return false;\r\n }\r\n\r\n /**\r\n * Gets the actual render size of the texture.\r\n * @returns the width of the render size\r\n */\r\n public getRenderSize(): number {\r\n return this.getRenderWidth();\r\n }\r\n\r\n /**\r\n * Gets the actual render width of the texture.\r\n * @returns the width of the render size\r\n */\r\n public getRenderWidth(): number {\r\n if ((<{ width: number; height: number }>this._size).width) {\r\n return (<{ width: number; height: number }>this._size).width;\r\n }\r\n\r\n return <number>this._size;\r\n }\r\n\r\n /**\r\n * Gets the actual render height of the texture.\r\n * @returns the height of the render size\r\n */\r\n public getRenderHeight(): number {\r\n if ((<{ width: number; height: number }>this._size).width) {\r\n return (<{ width: number; height: number }>this._size).height;\r\n }\r\n\r\n return <number>this._size;\r\n }\r\n\r\n /**\r\n * Gets the actual number of layers of the texture.\r\n * @returns the number of layers\r\n */\r\n public getRenderLayers(): number {\r\n const layers = (<{ width: number; height: number; layers?: number }>this._size).layers;\r\n if (layers) {\r\n return layers;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n /**\r\n * Don't allow this render target texture to rescale. Mainly used to prevent rescaling by the scene optimizer.\r\n */\r\n public disableRescaling() {\r\n this._canRescale = false;\r\n }\r\n\r\n /**\r\n * Get if the texture can be rescaled or not.\r\n */\r\n public get canRescale(): boolean {\r\n return this._canRescale;\r\n }\r\n\r\n /**\r\n * Resize the texture using a ratio.\r\n * @param ratio the ratio to apply to the texture size in order to compute the new target size\r\n */\r\n public scale(ratio: number): void {\r\n const newSize = Math.max(1, this.getRenderSize() * ratio);\r\n\r\n this.resize(newSize);\r\n }\r\n\r\n /**\r\n * Get the texture reflection matrix used to rotate/transform the reflection.\r\n * @returns the reflection matrix\r\n */\r\n public getReflectionTextureMatrix(): Matrix {\r\n if (this.isCube) {\r\n return this._textureMatrix;\r\n }\r\n\r\n return super.getReflectionTextureMatrix();\r\n }\r\n\r\n /**\r\n * Resize the texture to a new desired size.\r\n * Be careful as it will recreate all the data in the new texture.\r\n * @param size Define the new size. It can be:\r\n * - a number for squared texture,\r\n * - an object containing { width: number, height: number }\r\n * - or an object containing a ratio { ratio: number }\r\n */\r\n public resize(size: number | { width: number; height: number } | { ratio: number }): void {\r\n const wasCube = this.isCube;\r\n\r\n this._renderTarget?.dispose();\r\n this._renderTarget = null;\r\n\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n this._processSizeParameter(size);\r\n\r\n if (wasCube) {\r\n this._renderTarget = scene.getEngine().createRenderTargetCubeTexture(this.getRenderSize(), this._renderTargetOptions);\r\n } else {\r\n this._renderTarget = scene.getEngine().createRenderTargetTexture(this._size, this._renderTargetOptions);\r\n }\r\n this._texture = this._renderTarget.texture;\r\n\r\n if (this._renderTargetOptions.samples !== undefined) {\r\n this.samples = this._renderTargetOptions.samples;\r\n }\r\n\r\n if (this.onResizeObservable.hasObservers()) {\r\n this.onResizeObservable.notifyObservers(this);\r\n }\r\n }\r\n\r\n private _defaultRenderListPrepared: boolean;\r\n\r\n /**\r\n * Renders all the objects from the render list into the texture.\r\n * @param useCameraPostProcess Define if camera post processes should be used during the rendering\r\n * @param dumpForDebug Define if the rendering result should be dumped (copied) for debugging purpose\r\n */\r\n public render(useCameraPostProcess: boolean = false, dumpForDebug: boolean = false): void {\r\n this._render(useCameraPostProcess, dumpForDebug);\r\n }\r\n\r\n /**\r\n * This function will check if the render target texture can be rendered (textures are loaded, shaders are compiled)\r\n * @returns true if all required resources are ready\r\n */\r\n public isReadyForRendering(): boolean {\r\n return this._render(false, false, true);\r\n }\r\n\r\n private _render(useCameraPostProcess: boolean = false, dumpForDebug: boolean = false, checkReadiness: boolean = false): boolean {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return checkReadiness;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n if (this.useCameraPostProcesses !== undefined) {\r\n useCameraPostProcess = this.useCameraPostProcesses;\r\n }\r\n\r\n if (this._waitingRenderList) {\r\n this.renderList = [];\r\n for (let index = 0; index < this._waitingRenderList.length; index++) {\r\n const id = this._waitingRenderList[index];\r\n const mesh = scene.getMeshById(id);\r\n if (mesh) {\r\n this.renderList.push(mesh);\r\n }\r\n }\r\n\r\n this._waitingRenderList = undefined;\r\n }\r\n\r\n // Is predicate defined?\r\n if (this.renderListPredicate) {\r\n if (this.renderList) {\r\n this.renderList.length = 0; // Clear previous renderList\r\n } else {\r\n this.renderList = [];\r\n }\r\n\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return checkReadiness;\r\n }\r\n\r\n const sceneMeshes = scene.meshes;\r\n\r\n for (let index = 0; index < sceneMeshes.length; index++) {\r\n const mesh = sceneMeshes[index];\r\n if (this.renderListPredicate(mesh)) {\r\n this.renderList.push(mesh);\r\n }\r\n }\r\n }\r\n\r\n const currentRenderPassId = engine.currentRenderPassId;\r\n\r\n this.onBeforeBindObservable.notifyObservers(this);\r\n\r\n // Set custom projection.\r\n // Needs to be before binding to prevent changing the aspect ratio.\r\n const camera: Nullable<Camera> = this.activeCamera ?? scene.activeCamera;\r\n const sceneCamera = scene.activeCamera;\r\n\r\n if (camera) {\r\n if (camera !== scene.activeCamera) {\r\n scene.setTransformMatrix(camera.getViewMatrix(), camera.getProjectionMatrix(true));\r\n scene.activeCamera = camera;\r\n }\r\n engine.setViewport(camera.viewport, this.getRenderWidth(), this.getRenderHeight());\r\n }\r\n\r\n this._defaultRenderListPrepared = false;\r\n\r\n let returnValue = checkReadiness;\r\n\r\n if (!checkReadiness) {\r\n if (this.is2DArray) {\r\n for (let layer = 0; layer < this.getRenderLayers(); layer++) {\r\n this._renderToTarget(0, useCameraPostProcess, dumpForDebug, layer, camera);\r\n scene.incrementRenderId();\r\n scene.resetCachedMaterial();\r\n }\r\n } else if (this.isCube) {\r\n for (let face = 0; face < 6; face++) {\r\n this._renderToTarget(face, useCameraPostProcess, dumpForDebug, undefined, camera);\r\n scene.incrementRenderId();\r\n scene.resetCachedMaterial();\r\n }\r\n } else {\r\n this._renderToTarget(0, useCameraPostProcess, dumpForDebug, undefined, camera);\r\n }\r\n } else {\r\n if (!scene.getViewMatrix()) {\r\n // We probably didn't execute scene.render() yet, so make sure we have a view/projection matrix setup for the scene\r\n scene.updateTransformMatrix();\r\n }\r\n const numLayers = this.is2DArray ? this.getRenderLayers() : this.isCube ? 6 : 1;\r\n for (let layer = 0; layer < numLayers && returnValue; layer++) {\r\n let currentRenderList: Nullable<Array<AbstractMesh>> = null;\r\n const defaultRenderList = this.renderList ? this.renderList : scene.getActiveMeshes().data;\r\n const defaultRenderListLength = this.renderList ? this.renderList.length : scene.getActiveMeshes().length;\r\n\r\n engine.currentRenderPassId = this._renderPassIds[layer];\r\n\r\n this.onBeforeRenderObservable.notifyObservers(layer);\r\n\r\n if (this.getCustomRenderList) {\r\n currentRenderList = this.getCustomRenderList(layer, defaultRenderList, defaultRenderListLength);\r\n }\r\n\r\n if (!currentRenderList) {\r\n currentRenderList = defaultRenderList;\r\n }\r\n\r\n if (!this._doNotChangeAspectRatio) {\r\n scene.updateTransformMatrix(true);\r\n }\r\n\r\n for (let i = 0; i < currentRenderList.length && returnValue; ++i) {\r\n const mesh = currentRenderList[i];\r\n\r\n if (!mesh.isEnabled() || mesh.isBlocked || !mesh.isVisible || !mesh.subMeshes) {\r\n continue;\r\n }\r\n\r\n if (this.customIsReadyFunction) {\r\n if (!this.customIsReadyFunction(mesh, this.refreshRate)) {\r\n returnValue = false;\r\n break;\r\n }\r\n } else if (!mesh.isReady(true)) {\r\n returnValue = false;\r\n break;\r\n }\r\n }\r\n\r\n this.onAfterRenderObservable.notifyObservers(layer);\r\n }\r\n }\r\n\r\n this.onAfterUnbindObservable.notifyObservers(this);\r\n\r\n engine.currentRenderPassId = currentRenderPassId;\r\n\r\n if (sceneCamera) {\r\n scene.activeCamera = sceneCamera;\r\n // Do not avoid setting uniforms when multiple scenes are active as another camera may have overwrite these\r\n if (scene.getEngine().scenes.length > 1 || (this.activeCamera && this.activeCamera !== scene.activeCamera)) {\r\n scene.setTransformMatrix(scene.activeCamera.getViewMatrix(), scene.activeCamera.getProjectionMatrix(true));\r\n }\r\n engine.setViewport(scene.activeCamera.viewport);\r\n }\r\n\r\n scene.resetCachedMaterial();\r\n\r\n return returnValue;\r\n }\r\n\r\n private _bestReflectionRenderTargetDimension(renderDimension: number, scale: number): number {\r\n const minimum = 128;\r\n const x = renderDimension * scale;\r\n const curved = Engine.NearestPOT(x + (minimum * minimum) / (minimum + x));\r\n\r\n // Ensure we don't exceed the render dimension (while staying POT)\r\n return Math.min(Engine.FloorPOT(renderDimension), curved);\r\n }\r\n\r\n private _prepareRenderingManager(currentRenderList: Array<AbstractMesh>, currentRenderListLength: number, camera: Nullable<Camera>, checkLayerMask: boolean): void {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n this._renderingManager.reset();\r\n\r\n const sceneRenderId = scene.getRenderId();\r\n for (let meshIndex = 0; meshIndex < currentRenderListLength; meshIndex++) {\r\n const mesh = currentRenderList[meshIndex];\r\n\r\n if (mesh && !mesh.isBlocked) {\r\n if (this.customIsReadyFunction) {\r\n if (!this.customIsReadyFunction(mesh, this.refreshRate)) {\r\n this.resetRefreshCounter();\r\n continue;\r\n }\r\n } else if (!mesh.isReady(this.refreshRate === 0)) {\r\n this.resetRefreshCounter();\r\n continue;\r\n }\r\n\r\n if (!mesh._internalAbstractMeshDataInfo._currentLODIsUpToDate && scene.activeCamera) {\r\n mesh._internalAbstractMeshDataInfo._currentLOD = scene.customLODSelector\r\n ? scene.customLODSelector(mesh, this.activeCamera || scene.activeCamera)\r\n : mesh.getLOD(this.activeCamera || scene.activeCamera);\r\n mesh._internalAbstractMeshDataInfo._currentLODIsUpToDate = true;\r\n }\r\n if (!mesh._internalAbstractMeshDataInfo._currentLOD) {\r\n continue;\r\n }\r\n\r\n let meshToRender = mesh._internalAbstractMeshDataInfo._currentLOD;\r\n\r\n meshToRender._preActivateForIntermediateRendering(sceneRenderId);\r\n\r\n let isMasked;\r\n if (checkLayerMask && camera) {\r\n isMasked = (mesh.layerMask & camera.layerMask) === 0;\r\n } else {\r\n isMasked = false;\r\n }\r\n\r\n if (mesh.isEnabled() && mesh.isVisible && mesh.subMeshes && !isMasked) {\r\n if (meshToRender !== mesh) {\r\n meshToRender._activate(sceneRenderId, true);\r\n }\r\n if (mesh._activate(sceneRenderId, true) && mesh.subMeshes.length) {\r\n if (!mesh.isAnInstance) {\r\n meshToRender._internalAbstractMeshDataInfo._onlyForInstancesIntermediate = false;\r\n } else {\r\n if (mesh._internalAbstractMeshDataInfo._actAsRegularMesh) {\r\n meshToRender = mesh;\r\n }\r\n }\r\n meshToRender._internalAbstractMeshDataInfo._isActiveIntermediate = true;\r\n\r\n for (let subIndex = 0; subIndex < meshToRender.subMeshes.length; subIndex++) {\r\n const subMesh = meshToRender.subMeshes[subIndex];\r\n this._renderingManager.dispatch(subMesh, meshToRender);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (let particleIndex = 0; particleIndex < scene.particleSystems.length; particleIndex++) {\r\n const particleSystem = scene.particleSystems[particleIndex];\r\n\r\n const emitter: any = particleSystem.emitter;\r\n if (!particleSystem.isStarted() || !emitter || !emitter.position || !emitter.isEnabled()) {\r\n continue;\r\n }\r\n\r\n if (currentRenderList.indexOf(emitter) >= 0) {\r\n this._renderingManager.dispatchParticles(particleSystem);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n * @param faceIndex face index to bind to if this is a cubetexture\r\n * @param layer defines the index of the texture to bind in the array\r\n */\r\n public _bindFrameBuffer(faceIndex: number = 0, layer = 0) {\r\n const scene = this.getScene();\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n if (this._renderTarget) {\r\n engine.bindFramebuffer(this._renderTarget, this.isCube ? faceIndex : undefined, undefined, undefined, this.ignoreCameraViewport, 0, layer);\r\n }\r\n }\r\n\r\n protected _unbindFrameBuffer(engine: Engine, faceIndex: number): void {\r\n if (!this._renderTarget) {\r\n return;\r\n }\r\n engine.unBindFramebuffer(this._renderTarget, this.isCube, () => {\r\n this.onAfterRenderObservable.notifyObservers(faceIndex);\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _prepareFrame(scene: Scene, faceIndex?: number, layer?: number, useCameraPostProcess?: boolean) {\r\n if (this._postProcessManager) {\r\n if (!this._prePassEnabled) {\r\n this._postProcessManager._prepareFrame(this._texture, this._postProcesses);\r\n }\r\n } else if (!useCameraPostProcess || !scene.postProcessManager._prepareFrame(this._texture)) {\r\n this._bindFrameBuffer(faceIndex, layer);\r\n }\r\n }\r\n\r\n private _renderToTarget(faceIndex: number, useCameraPostProcess: boolean, dumpForDebug: boolean, layer = 0, camera: Nullable<Camera> = null): void {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n engine._debugPushGroup?.(`render to face #${faceIndex} layer #${layer}`, 1);\r\n\r\n // Bind\r\n this._prepareFrame(scene, faceIndex, layer, useCameraPostProcess);\r\n\r\n if (this.is2DArray) {\r\n engine.currentRenderPassId = this._renderPassIds[layer];\r\n this.onBeforeRenderObservable.notifyObservers(layer);\r\n } else {\r\n engine.currentRenderPassId = this._renderPassIds[faceIndex];\r\n this.onBeforeRenderObservable.notifyObservers(faceIndex);\r\n }\r\n\r\n const fastPath = engine.snapshotRendering && engine.snapshotRenderingMode === Constants.SNAPSHOTRENDERING_FAST;\r\n\r\n if (!fastPath) {\r\n // Get the list of meshes to render\r\n let currentRenderList: Nullable<Array<AbstractMesh>> = null;\r\n const defaultRenderList = this.renderList ? this.renderList : scene.getActiveMeshes().data;\r\n const defaultRenderListLength = this.renderList ? this.renderList.length : scene.getActiveMeshes().length;\r\n\r\n if (this.getCustomRenderList) {\r\n currentRenderList = this.getCustomRenderList(this.is2DArray ? layer : faceIndex, defaultRenderList, defaultRenderListLength);\r\n }\r\n\r\n if (!currentRenderList) {\r\n // No custom render list provided, we prepare the rendering for the default list, but check\r\n // first if we did not already performed the preparation before so as to avoid re-doing it several times\r\n if (!this._defaultRenderListPrepared) {\r\n this._prepareRenderingManager(defaultRenderList, defaultRenderListLength, camera, !this.renderList);\r\n this._defaultRenderListPrepared = true;\r\n }\r\n currentRenderList = defaultRenderList;\r\n } else {\r\n // Prepare the rendering for the custom render list provided\r\n this._prepareRenderingManager(currentRenderList, currentRenderList.length, camera, false);\r\n }\r\n\r\n // Before clear\r\n for (const step of scene._beforeRenderTargetClearStage) {\r\n step.action(this, faceIndex, layer);\r\n }\r\n\r\n // Clear\r\n if (this.onClearObservable.hasObservers()) {\r\n this.onClearObservable.notifyObservers(engine);\r\n } else {\r\n if (!this.skipInitialClear) {\r\n engine.clear(this.clearColor || scene.clearColor, true, true, true);\r\n }\r\n }\r\n\r\n if (!this._doNotChangeAspectRatio) {\r\n scene.updateTransformMatrix(true);\r\n }\r\n\r\n // Before Camera Draw\r\n for (const step of scene._beforeRenderTargetDrawStage) {\r\n step.action(this, faceIndex, layer);\r\n }\r\n\r\n // Render\r\n this._renderingManager.render(this.customRenderFunction, currentRenderList, this.renderParticles, this.renderSprites);\r\n\r\n // After Camera Draw\r\n for (const step of scene._afterRenderTargetDrawStage) {\r\n step.action(this, faceIndex, layer);\r\n }\r\n\r\n const saveGenerateMipMaps = this._texture?.generateMipMaps ?? false;\r\n\r\n if (this._texture) {\r\n this._texture.generateMipMaps = false; // if left true, the mipmaps will be generated (if this._texture.generateMipMaps = true) when the first post process binds its own RTT: by doing so it will unbind the current RTT,\r\n // which will trigger a mipmap generation. We don't want this because it's a wasted work, we will do an unbind of the current RTT at the end of the process (see unbindFrameBuffer) which will\r\n // trigger the generation of the final mipmaps\r\n }\r\n\r\n if (this._postProcessManager) {\r\n this._postProcessManager._finalizeFrame(false, this._renderTarget ?? undefined, faceIndex, this._postProcesses, this.ignoreCameraViewport);\r\n } else if (useCameraPostProcess) {\r\n scene.postProcessManager._finalizeFrame(false, this._renderTarget ?? undefined, faceIndex);\r\n }\r\n\r\n for (const step of scene._afterRenderTargetPostProcessStage) {\r\n step.action(this, faceIndex, layer);\r\n }\r\n\r\n if (this._texture) {\r\n this._texture.generateMipMaps = saveGenerateMipMaps;\r\n }\r\n\r\n if (!this._doNotChangeAspectRatio) {\r\n scene.updateTransformMatrix(true);\r\n }\r\n\r\n // Dump ?\r\n if (dumpForDebug) {\r\n Tools.DumpFramebuffer(this.getRenderWidth(), this.getRenderHeight(), engine);\r\n }\r\n } else {\r\n // Clear\r\n if (this.onClearObservable.hasObservers()) {\r\n this.onClearObservable.notifyObservers(engine);\r\n } else {\r\n if (!this.skipInitialClear) {\r\n engine.clear(this.clearColor || scene.clearColor, true, true, true);\r\n }\r\n }\r\n }\r\n\r\n // Unbind\r\n this._unbindFrameBuffer(engine, faceIndex);\r\n\r\n if (this._texture && this.isCube && faceIndex === 5) {\r\n engine.generateMipMapsForCubemap(this._texture);\r\n }\r\n\r\n engine._debugPopGroup?.(1);\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 ): void {\r\n this._renderingManager.setRenderingOrder(renderingGroupId, opaqueSortCompareFn, alphaTestSortCompareFn, transparentSortCompareFn);\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 */\r\n public setRenderingAutoClearDepthStencil(renderingGroupId: number, autoClearDepthStencil: boolean): void {\r\n this._renderingManager.setRenderingAutoClearDepthStencil(renderingGroupId, autoClearDepthStencil);\r\n this._renderingManager._useSceneAutoClearSetup = false;\r\n }\r\n\r\n /**\r\n * Clones the texture.\r\n * @returns the cloned texture\r\n */\r\n public clone(): RenderTargetTexture {\r\n const textureSize = this.getSize();\r\n const newTexture = new RenderTargetTexture(\r\n this.name,\r\n textureSize,\r\n this.getScene(),\r\n this._renderTargetOptions.generateMipMaps,\r\n this._doNotChangeAspectRatio,\r\n this._renderTargetOptions.type,\r\n this.isCube,\r\n this._renderTargetOptions.samplingMode,\r\n this._renderTargetOptions.generateDepthBuffer,\r\n this._renderTargetOptions.generateStencilBuffer,\r\n undefined,\r\n this._renderTargetOptions.format,\r\n undefined,\r\n this._renderTargetOptions.samples\r\n );\r\n\r\n // Base texture\r\n newTexture.hasAlpha = this.hasAlpha;\r\n newTexture.level = this.level;\r\n\r\n // RenderTarget Texture\r\n newTexture.coordinatesMode = this.coordinatesMode;\r\n if (this.renderList) {\r\n newTexture.renderList = this.renderList.slice(0);\r\n }\r\n\r\n return newTexture;\r\n }\r\n\r\n /**\r\n * Serialize the texture to a JSON representation we can easily use in the respective Parse function.\r\n * @returns The JSON representation of the texture\r\n */\r\n public serialize(): any {\r\n if (!this.name) {\r\n return null;\r\n }\r\n\r\n const serializationObject = super.serialize();\r\n\r\n serializationObject.renderTargetSize = this.getRenderSize();\r\n serializationObject.renderList = [];\r\n\r\n if (this.renderList) {\r\n for (let index = 0; index < this.renderList.length; index++) {\r\n serializationObject.renderList.push(this.renderList[index].id);\r\n }\r\n }\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * This will remove the attached framebuffer objects. The texture will not be able to be used as render target anymore\r\n */\r\n public disposeFramebufferObjects(): void {\r\n this._renderTarget?.dispose(true);\r\n }\r\n\r\n /**\r\n * Release and destroy the underlying lower level texture aka internalTexture.\r\n */\r\n public releaseInternalTexture(): void {\r\n this._renderTarget?.releaseTextures();\r\n this._texture = null;\r\n }\r\n\r\n /**\r\n * Dispose the texture and release its associated resources.\r\n */\r\n public dispose(): void {\r\n this.onResizeObservable.clear();\r\n this.onClearObservable.clear();\r\n this.onAfterRenderObservable.clear();\r\n this.onAfterUnbindObservable.clear();\r\n this.onBeforeBindObservable.clear();\r\n this.onBeforeRenderObservable.clear();\r\n\r\n if (this._postProcessManager) {\r\n this._postProcessManager.dispose();\r\n this._postProcessManager = null;\r\n }\r\n\r\n if (this._prePassRenderTarget) {\r\n this._prePassRenderTarget.dispose();\r\n }\r\n\r\n this._releaseRenderPassId();\r\n this.clearPostProcesses(true);\r\n\r\n if (this._resizeObserver) {\r\n this.getScene()!.getEngine().onResizeObservable.remove(this._resizeObserver);\r\n this._resizeObserver = null;\r\n }\r\n\r\n this.renderList = null;\r\n\r\n // Remove from custom render targets\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return;\r\n }\r\n\r\n let index = scene.customRenderTargets.indexOf(this);\r\n\r\n if (index >= 0) {\r\n scene.customRenderTargets.splice(index, 1);\r\n }\r\n\r\n for (const camera of scene.cameras) {\r\n index = camera.customRenderTargets.indexOf(this);\r\n\r\n if (index >= 0) {\r\n camera.customRenderTargets.splice(index, 1);\r\n }\r\n }\r\n\r\n this._renderTarget?.dispose();\r\n this._renderTarget = null;\r\n this._texture = null;\r\n\r\n super.dispose();\r\n }\r\n\r\n /** @internal */\r\n public _rebuild(): void {\r\n if (this.refreshRate === RenderTargetTexture.REFRESHRATE_RENDER_ONCE) {\r\n this.refreshRate = RenderTargetTexture.REFRESHRATE_RENDER_ONCE;\r\n }\r\n\r\n if (this._postProcessManager) {\r\n this._postProcessManager._rebuild();\r\n }\r\n }\r\n\r\n /**\r\n * Clear the info related to rendering groups preventing retention point in material dispose.\r\n */\r\n public freeRenderingGroups(): void {\r\n if (this._renderingManager) {\r\n this._renderingManager.freeRenderingGroups();\r\n }\r\n }\r\n\r\n /**\r\n * Gets the number of views the corresponding to the texture (eg. a MultiviewRenderTarget will have > 1)\r\n * @returns the view count\r\n */\r\n public getViewCount() {\r\n return 1;\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nTexture._CreateRenderTargetTexture = (name: string, renderTargetSize: number, scene: Scene, generateMipMaps: boolean, creationFlags?: number) => {\r\n return new RenderTargetTexture(name, renderTargetSize, scene, generateMipMaps);\r\n};\r\n"]}