@babylonjs/core 9.11.0 → 9.12.1

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 (1078) hide show
  1. package/Actions/actionManager.d.ts +1 -1
  2. package/Actions/actionManager.js +8 -5
  3. package/Actions/actionManager.js.map +1 -1
  4. package/Animations/animatable.core.d.ts +1 -1
  5. package/Animations/animatable.core.js +2 -2
  6. package/Animations/animatable.core.js.map +1 -1
  7. package/Animations/animationPropertiesOverride.js +1 -1
  8. package/Animations/animationPropertiesOverride.js.map +1 -1
  9. package/Animations/animatorAvatar.d.ts +2 -2
  10. package/Animations/animatorAvatar.js +3 -3
  11. package/Animations/animatorAvatar.js.map +1 -1
  12. package/Animations/pathCursor.d.ts +1 -1
  13. package/Animations/pathCursor.js +1 -1
  14. package/Animations/pathCursor.js.map +1 -1
  15. package/Animations/runtimeAnimation.d.ts +1 -1
  16. package/Animations/runtimeAnimation.js +2 -2
  17. package/Animations/runtimeAnimation.js.map +1 -1
  18. package/Audio/analyser.js +1 -1
  19. package/Audio/analyser.js.map +1 -1
  20. package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js +1 -1
  21. package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js.map +1 -1
  22. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +1 -1
  23. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +1 -1
  24. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -1
  25. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.d.ts +1 -1
  26. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js +1 -1
  27. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js.map +1 -1
  28. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +1 -1
  29. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +1 -1
  30. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
  31. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +1 -1
  32. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
  33. package/AudioV2/webAudio/webAudioStreamingSound.js +1 -1
  34. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  35. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  36. package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
  37. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  38. package/BakedVertexAnimation/vertexAnimationBaker.js +1 -1
  39. package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -1
  40. package/Behaviors/Cameras/bouncingBehavior.js +1 -1
  41. package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
  42. package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
  43. package/Behaviors/Cameras/framingBehavior.js +2 -2
  44. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  45. package/Behaviors/Cameras/interpolatingBehavior.d.ts +28 -1
  46. package/Behaviors/Cameras/interpolatingBehavior.js +64 -22
  47. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  48. package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
  49. package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
  50. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +3 -3
  51. package/Behaviors/Meshes/baseSixDofDragBehavior.js +4 -4
  52. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  53. package/Behaviors/Meshes/followBehavior.js +1 -1
  54. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  55. package/Behaviors/Meshes/handConstraintBehavior.js +2 -2
  56. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  57. package/Behaviors/Meshes/multiPointerScaleBehavior.js +1 -1
  58. package/Behaviors/Meshes/multiPointerScaleBehavior.js.map +1 -1
  59. package/Behaviors/Meshes/pointerDragBehavior.d.ts +3 -3
  60. package/Behaviors/Meshes/pointerDragBehavior.js +5 -5
  61. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  62. package/Behaviors/Meshes/sixDofDragBehavior.d.ts +1 -1
  63. package/Behaviors/Meshes/sixDofDragBehavior.js +2 -2
  64. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  65. package/Behaviors/Meshes/surfaceMagnetismBehavior.js +1 -1
  66. package/Behaviors/Meshes/surfaceMagnetismBehavior.js.map +1 -1
  67. package/Bones/boneIKController.d.ts +1 -1
  68. package/Bones/boneIKController.js +1 -1
  69. package/Bones/boneIKController.js.map +1 -1
  70. package/Bones/boneLookController.d.ts +1 -1
  71. package/Bones/boneLookController.js +1 -1
  72. package/Bones/boneLookController.js.map +1 -1
  73. package/Bones/skeleton.d.ts +2 -2
  74. package/Bones/skeleton.functions.d.ts +1 -1
  75. package/Bones/skeleton.functions.js +3 -3
  76. package/Bones/skeleton.functions.js.map +1 -1
  77. package/Bones/skeleton.js +3 -4
  78. package/Bones/skeleton.js.map +1 -1
  79. package/Buffers/buffer.align.pure.js +6 -0
  80. package/Buffers/buffer.align.pure.js.map +1 -1
  81. package/Buffers/buffer.nonFloatVertexBuffers.js +2 -1
  82. package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
  83. package/Buffers/buffer.pure.d.ts +8 -0
  84. package/Buffers/buffer.pure.js +31 -2
  85. package/Buffers/buffer.pure.js.map +1 -1
  86. package/Buffers/bufferUtils.js +17 -5
  87. package/Buffers/bufferUtils.js.map +1 -1
  88. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +1 -1
  89. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  90. package/Cameras/Inputs/BaseCameraPointersInput.js +1 -1
  91. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  92. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +1 -1
  93. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  94. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +2 -2
  95. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  96. package/Cameras/Inputs/flyCameraKeyboardInput.js +11 -3
  97. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  98. package/Cameras/Inputs/flyCameraMouseInput.d.ts +2 -0
  99. package/Cameras/Inputs/flyCameraMouseInput.js +16 -4
  100. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  101. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +1 -1
  102. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  103. package/Cameras/Inputs/followCameraMouseWheelInput.js +1 -1
  104. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  105. package/Cameras/Inputs/freeCameraGamepadInput.js +1 -1
  106. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  107. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +27 -7
  108. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  109. package/Cameras/Inputs/freeCameraMouseInput.d.ts +14 -0
  110. package/Cameras/Inputs/freeCameraMouseInput.js +27 -5
  111. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  112. package/Cameras/Inputs/freeCameraMouseWheelInput.js +1 -1
  113. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  114. package/Cameras/Inputs/freeCameraTouchInput.js +18 -7
  115. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  116. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +9 -2
  117. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  118. package/Cameras/Limits/geospatialLimits.d.ts +1 -1
  119. package/Cameras/Limits/geospatialLimits.js +1 -1
  120. package/Cameras/Limits/geospatialLimits.js.map +1 -1
  121. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +2 -2
  122. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
  123. package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -1
  124. package/Cameras/RigModes/stereoscopicRigMode.js +3 -3
  125. package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
  126. package/Cameras/RigModes/vrRigMode.js +2 -2
  127. package/Cameras/RigModes/vrRigMode.js.map +1 -1
  128. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +3 -3
  129. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +5 -5
  130. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  131. package/Cameras/VR/vrCameraMetrics.d.ts +1 -1
  132. package/Cameras/VR/vrCameraMetrics.js +1 -1
  133. package/Cameras/VR/vrCameraMetrics.js.map +1 -1
  134. package/Cameras/arcRotateCamera.pure.js.map +1 -1
  135. package/Cameras/cameraInputsManager.d.ts +1 -1
  136. package/Cameras/cameraInputsManager.js +1 -1
  137. package/Cameras/cameraInputsManager.js.map +1 -1
  138. package/Cameras/flyCamera.pure.d.ts +8 -0
  139. package/Cameras/flyCamera.pure.js.map +1 -1
  140. package/Cameras/freeCamera.pure.d.ts +8 -0
  141. package/Cameras/freeCamera.pure.js.map +1 -1
  142. package/Cameras/geospatialCamera.pure.d.ts +30 -7
  143. package/Cameras/geospatialCamera.pure.js +39 -14
  144. package/Cameras/geospatialCamera.pure.js.map +1 -1
  145. package/Cameras/geospatialCameraMovement.js +2 -2
  146. package/Cameras/geospatialCameraMovement.js.map +1 -1
  147. package/Cameras/index.d.ts +1 -0
  148. package/Cameras/index.js +1 -0
  149. package/Cameras/index.js.map +1 -1
  150. package/Cameras/pure.d.ts +1 -0
  151. package/Cameras/pure.js +1 -0
  152. package/Cameras/pure.js.map +1 -1
  153. package/Cameras/targetCamera.pure.d.ts +25 -0
  154. package/Cameras/targetCamera.pure.js +83 -25
  155. package/Cameras/targetCamera.pure.js.map +1 -1
  156. package/Cameras/targetCameraMovement.d.ts +56 -0
  157. package/Cameras/targetCameraMovement.js +63 -0
  158. package/Cameras/targetCameraMovement.js.map +1 -0
  159. package/Collisions/collider.d.ts +1 -1
  160. package/Collisions/collider.js +1 -1
  161. package/Collisions/collider.js.map +1 -1
  162. package/Collisions/gpuPicker.d.ts +1 -1
  163. package/Collisions/gpuPicker.js +5 -5
  164. package/Collisions/gpuPicker.js.map +1 -1
  165. package/Collisions/meshCollisionData.d.ts +1 -1
  166. package/Collisions/meshCollisionData.js +1 -1
  167. package/Collisions/meshCollisionData.js.map +1 -1
  168. package/Collisions/pickingInfo.d.ts +1 -1
  169. package/Collisions/pickingInfo.js +2 -2
  170. package/Collisions/pickingInfo.js.map +1 -1
  171. package/Culling/Octrees/octreeBlock.d.ts +1 -1
  172. package/Culling/Octrees/octreeBlock.js +1 -1
  173. package/Culling/Octrees/octreeBlock.js.map +1 -1
  174. package/Culling/boundingBox.d.ts +1 -1
  175. package/Culling/boundingBox.js +1 -1
  176. package/Culling/boundingBox.js.map +1 -1
  177. package/Culling/boundingInfo.d.ts +1 -1
  178. package/Culling/boundingInfo.js +1 -1
  179. package/Culling/boundingInfo.js.map +1 -1
  180. package/Culling/boundingSphere.d.ts +1 -1
  181. package/Culling/boundingSphere.js +1 -1
  182. package/Culling/boundingSphere.js.map +1 -1
  183. package/Culling/ray.core.d.ts +1 -1
  184. package/Culling/ray.core.js +1 -1
  185. package/Culling/ray.core.js.map +1 -1
  186. package/Debug/axesViewer.d.ts +1 -1
  187. package/Debug/axesViewer.js +3 -3
  188. package/Debug/axesViewer.js.map +1 -1
  189. package/Debug/boneAxesViewer.d.ts +1 -1
  190. package/Debug/boneAxesViewer.js +1 -1
  191. package/Debug/boneAxesViewer.js.map +1 -1
  192. package/Debug/directionalLightFrustumViewer.d.ts +1 -1
  193. package/Debug/directionalLightFrustumViewer.js +6 -6
  194. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  195. package/Debug/rayHelper.d.ts +1 -1
  196. package/Debug/rayHelper.js +2 -2
  197. package/Debug/rayHelper.js.map +1 -1
  198. package/Debug/skeletonViewer.d.ts +2 -2
  199. package/Debug/skeletonViewer.js +10 -10
  200. package/Debug/skeletonViewer.js.map +1 -1
  201. package/DeviceInput/internalDeviceSourceManager.d.ts +1 -1
  202. package/DeviceInput/internalDeviceSourceManager.js +0 -1
  203. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  204. package/DeviceInput/webDeviceInputSystem.js +1 -1
  205. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  206. package/Engines/AbstractEngine/abstractEngine.scissor.d.ts +18 -0
  207. package/Engines/AbstractEngine/abstractEngine.scissor.js +2 -0
  208. package/Engines/AbstractEngine/abstractEngine.scissor.js.map +1 -0
  209. package/Engines/Extensions/engine.views.d.ts +1 -1
  210. package/Engines/Extensions/engine.views.js +1 -1
  211. package/Engines/Extensions/engine.views.js.map +1 -1
  212. package/Engines/Native/nativeHelpers.js +4 -1
  213. package/Engines/Native/nativeHelpers.js.map +1 -1
  214. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
  215. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +11 -1
  216. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  217. package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
  218. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  219. package/Engines/WebGPU/webgpuTintWASM.js +1 -1
  220. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  221. package/Engines/abstractEngine.pure.js +2 -2
  222. package/Engines/abstractEngine.pure.js.map +1 -1
  223. package/Engines/constants.d.ts +4 -0
  224. package/Engines/constants.js +4 -0
  225. package/Engines/constants.js.map +1 -1
  226. package/Engines/engine.d.ts +1 -0
  227. package/Engines/engine.js +1 -0
  228. package/Engines/engine.js.map +1 -1
  229. package/Engines/engine.pure.d.ts +0 -12
  230. package/Engines/engine.pure.js +0 -20
  231. package/Engines/engine.pure.js.map +1 -1
  232. package/Engines/engineFactory.d.ts +2 -2
  233. package/Engines/engineFactory.js +3 -3
  234. package/Engines/engineFactory.js.map +1 -1
  235. package/Engines/nullEngine.pure.d.ts +66 -0
  236. package/Engines/nullEngine.pure.js +93 -0
  237. package/Engines/nullEngine.pure.js.map +1 -1
  238. package/Engines/pure.d.ts +1 -0
  239. package/Engines/pure.js +1 -0
  240. package/Engines/pure.js.map +1 -1
  241. package/Engines/thinEngine.scissor.d.ts +6 -0
  242. package/Engines/thinEngine.scissor.js +9 -0
  243. package/Engines/thinEngine.scissor.js.map +1 -0
  244. package/Engines/thinEngine.scissor.pure.d.ts +6 -0
  245. package/Engines/thinEngine.scissor.pure.js +24 -0
  246. package/Engines/thinEngine.scissor.pure.js.map +1 -0
  247. package/Engines/thinNativeEngine.d.ts +0 -1
  248. package/Engines/thinNativeEngine.js +0 -1
  249. package/Engines/thinNativeEngine.js.map +1 -1
  250. package/Engines/thinNativeEngine.pure.js +7 -0
  251. package/Engines/thinNativeEngine.pure.js.map +1 -1
  252. package/Engines/webgpuEngine.pure.js.map +1 -1
  253. package/Events/pointerEvents.d.ts +1 -1
  254. package/Events/pointerEvents.js +1 -1
  255. package/Events/pointerEvents.js.map +1 -1
  256. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +1 -1
  257. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -1
  258. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
  259. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +1 -1
  260. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
  261. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js +1 -1
  262. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js.map +1 -1
  263. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.d.ts +1 -1
  264. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js +3 -3
  265. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js.map +1 -1
  266. package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +1 -1
  267. package/FlowGraph/CustomTypes/flowGraphMatrix.js +1 -1
  268. package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
  269. package/FlowGraph/flowGraphBlock.d.ts +1 -1
  270. package/FlowGraph/flowGraphBlock.js +1 -1
  271. package/FlowGraph/flowGraphBlock.js.map +1 -1
  272. package/FlowGraph/flowGraphExecutionBlock.d.ts +1 -1
  273. package/FlowGraph/flowGraphExecutionBlock.js +1 -1
  274. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  275. package/FlowGraph/flowGraphMath.d.ts +1 -1
  276. package/FlowGraph/flowGraphMath.js +1 -1
  277. package/FlowGraph/flowGraphMath.js.map +1 -1
  278. package/FlowGraph/flowGraphParser.js +1 -1
  279. package/FlowGraph/flowGraphParser.js.map +1 -1
  280. package/FlowGraph/flowGraphPathConverterComponent.d.ts +1 -1
  281. package/FlowGraph/flowGraphPathConverterComponent.js +2 -2
  282. package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
  283. package/FlowGraph/flowGraphValidator.js.map +1 -1
  284. package/FlowGraph/serialization.js +4 -4
  285. package/FlowGraph/serialization.js.map +1 -1
  286. package/FlowGraph/utils.js.map +1 -1
  287. package/FrameGraph/Node/nodeRenderGraph.d.ts +2 -2
  288. package/FrameGraph/Node/nodeRenderGraph.js +7 -7
  289. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  290. package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +30 -0
  291. package/FrameGraph/Tasks/Layers/baseLayerTask.js +28 -1
  292. package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
  293. package/FrameGraph/Tasks/Misc/computeShaderTask.d.ts +2 -2
  294. package/FrameGraph/Tasks/Misc/computeShaderTask.js +2 -2
  295. package/FrameGraph/Tasks/Misc/computeShaderTask.js.map +1 -1
  296. package/FrameGraph/Tasks/Misc/lightingVolumeTask.d.ts +1 -1
  297. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +2 -2
  298. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
  299. package/FrameGraph/Tasks/PostProcesses/blurTask.d.ts +7 -0
  300. package/FrameGraph/Tasks/PostProcesses/blurTask.js +8 -1
  301. package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -1
  302. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +1 -1
  303. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
  304. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js +1 -1
  305. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js.map +1 -1
  306. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.d.ts +1 -1
  307. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js +1 -1
  308. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js.map +1 -1
  309. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.d.ts +2 -2
  310. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js +3 -3
  311. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js.map +1 -1
  312. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +1 -1
  313. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +2 -2
  314. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
  315. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +6 -0
  316. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +14 -5
  317. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  318. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +1 -1
  319. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +1 -1
  320. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  321. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +1 -1
  322. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +1 -1
  323. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -1
  324. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +1 -1
  325. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +2 -2
  326. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -1
  327. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +1 -1
  328. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +2 -2
  329. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -1
  330. package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +7 -1
  331. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +7 -1
  332. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  333. package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +1 -1
  334. package/FrameGraph/Tasks/Texture/clearTextureTask.js +1 -1
  335. package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
  336. package/FrameGraph/frameGraphRenderContext.js +1 -1
  337. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  338. package/FrameGraph/frameGraphTextureManager.d.ts +1 -1
  339. package/FrameGraph/frameGraphTextureManager.js +1 -1
  340. package/FrameGraph/frameGraphTextureManager.js.map +1 -1
  341. package/Gamepads/gamepadManager.js +1 -1
  342. package/Gamepads/gamepadManager.js.map +1 -1
  343. package/Gizmos/axisDragGizmo.d.ts +5 -5
  344. package/Gizmos/axisDragGizmo.js +6 -6
  345. package/Gizmos/axisDragGizmo.js.map +1 -1
  346. package/Gizmos/axisScaleGizmo.d.ts +4 -4
  347. package/Gizmos/axisScaleGizmo.js +6 -6
  348. package/Gizmos/axisScaleGizmo.js.map +1 -1
  349. package/Gizmos/boundingBoxGizmo.d.ts +5 -5
  350. package/Gizmos/boundingBoxGizmo.js +7 -7
  351. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  352. package/Gizmos/cameraGizmo.d.ts +3 -3
  353. package/Gizmos/cameraGizmo.js +7 -7
  354. package/Gizmos/cameraGizmo.js.map +1 -1
  355. package/Gizmos/gizmo.d.ts +2 -2
  356. package/Gizmos/gizmo.js +3 -3
  357. package/Gizmos/gizmo.js.map +1 -1
  358. package/Gizmos/gizmoManager.d.ts +2 -2
  359. package/Gizmos/gizmoManager.js +2 -2
  360. package/Gizmos/gizmoManager.js.map +1 -1
  361. package/Gizmos/lightGizmo.d.ts +4 -4
  362. package/Gizmos/lightGizmo.js +11 -11
  363. package/Gizmos/lightGizmo.js.map +1 -1
  364. package/Gizmos/planeDragGizmo.d.ts +4 -4
  365. package/Gizmos/planeDragGizmo.js +5 -5
  366. package/Gizmos/planeDragGizmo.js.map +1 -1
  367. package/Gizmos/positionGizmo.d.ts +1 -1
  368. package/Gizmos/positionGizmo.js +2 -2
  369. package/Gizmos/positionGizmo.js.map +1 -1
  370. package/Gizmos/rotationGizmo.d.ts +3 -3
  371. package/Gizmos/rotationGizmo.js +3 -3
  372. package/Gizmos/rotationGizmo.js.map +1 -1
  373. package/Gizmos/scaleGizmo.d.ts +2 -2
  374. package/Gizmos/scaleGizmo.js +4 -4
  375. package/Gizmos/scaleGizmo.js.map +1 -1
  376. package/Gizmos/spatialAudioGizmo.d.ts +2 -2
  377. package/Gizmos/spatialAudioGizmo.js +6 -6
  378. package/Gizmos/spatialAudioGizmo.js.map +1 -1
  379. package/Helpers/environmentHelper.d.ts +6 -6
  380. package/Helpers/environmentHelper.js +12 -12
  381. package/Helpers/environmentHelper.js.map +1 -1
  382. package/Helpers/materialConversionHelper.d.ts +1 -1
  383. package/Helpers/materialConversionHelper.js +1 -1
  384. package/Helpers/materialConversionHelper.js.map +1 -1
  385. package/Helpers/photoDome.d.ts +1 -1
  386. package/Helpers/photoDome.js +1 -1
  387. package/Helpers/photoDome.js.map +1 -1
  388. package/Helpers/textureDome.d.ts +4 -4
  389. package/Helpers/textureDome.js +6 -6
  390. package/Helpers/textureDome.js.map +1 -1
  391. package/Helpers/videoDome.d.ts +1 -1
  392. package/Helpers/videoDome.js +2 -2
  393. package/Helpers/videoDome.js.map +1 -1
  394. package/Inputs/scene.inputManager.d.ts +1 -1
  395. package/Inputs/scene.inputManager.js +1 -1
  396. package/Inputs/scene.inputManager.js.map +1 -1
  397. package/Instrumentation/sceneInstrumentation.js +1 -1
  398. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  399. package/Layers/effectLayer.d.ts +1 -1
  400. package/Layers/effectLayer.js +3 -3
  401. package/Layers/effectLayer.js.map +1 -1
  402. package/Layers/layer.d.ts +2 -2
  403. package/Layers/layer.js +4 -4
  404. package/Layers/layer.js.map +1 -1
  405. package/Layers/thinEffectLayer.d.ts +2 -2
  406. package/Layers/thinEffectLayer.js +3 -3
  407. package/Layers/thinEffectLayer.js.map +1 -1
  408. package/Layers/thinGlowLayer.d.ts +1 -1
  409. package/Layers/thinGlowLayer.js +3 -3
  410. package/Layers/thinGlowLayer.js.map +1 -1
  411. package/Layers/thinHighlightLayer.d.ts +1 -1
  412. package/Layers/thinHighlightLayer.js +3 -3
  413. package/Layers/thinHighlightLayer.js.map +1 -1
  414. package/Layers/thinSelectionOutlineLayer.d.ts +1 -1
  415. package/Layers/thinSelectionOutlineLayer.js +3 -3
  416. package/Layers/thinSelectionOutlineLayer.js.map +1 -1
  417. package/Legacy/legacy.js +12 -1
  418. package/Legacy/legacy.js.map +1 -1
  419. package/LensFlares/lensFlare.d.ts +2 -2
  420. package/LensFlares/lensFlare.js +3 -3
  421. package/LensFlares/lensFlare.js.map +1 -1
  422. package/LensFlares/lensFlareSystem.d.ts +1 -1
  423. package/LensFlares/lensFlareSystem.js +6 -6
  424. package/LensFlares/lensFlareSystem.js.map +1 -1
  425. package/Lights/LTC/ltcTextureTool.js +1 -1
  426. package/Lights/LTC/ltcTextureTool.js.map +1 -1
  427. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -285
  428. package/Lights/Shadows/cascadedShadowGenerator.js +3 -857
  429. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  430. package/Lights/Shadows/cascadedShadowGenerator.pure.d.ts +290 -0
  431. package/Lights/Shadows/cascadedShadowGenerator.pure.js +868 -0
  432. package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -0
  433. package/Lights/Shadows/pure.d.ts +1 -0
  434. package/Lights/Shadows/pure.js +1 -0
  435. package/Lights/Shadows/pure.js.map +1 -1
  436. package/Lights/Shadows/shadowGenerator.d.ts +3 -3
  437. package/Lights/Shadows/shadowGenerator.js +7 -7
  438. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  439. package/Lights/areaLight.d.ts +1 -1
  440. package/Lights/areaLight.js +0 -1
  441. package/Lights/areaLight.js.map +1 -1
  442. package/Lights/light.d.ts +2 -2
  443. package/Lights/light.js +2 -2
  444. package/Lights/light.js.map +1 -1
  445. package/Lights/shadowLight.d.ts +1 -1
  446. package/Lights/shadowLight.js +1 -1
  447. package/Lights/shadowLight.js.map +1 -1
  448. package/Loading/sceneLoader.d.ts +2 -2
  449. package/Loading/sceneLoader.js +3 -3
  450. package/Loading/sceneLoader.js.map +1 -1
  451. package/Materials/GreasedLine/greasedLineMaterialDefaults.d.ts +1 -1
  452. package/Materials/GreasedLine/greasedLineMaterialDefaults.js +1 -1
  453. package/Materials/GreasedLine/greasedLineMaterialDefaults.js.map +1 -1
  454. package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js +10 -3
  455. package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js.map +1 -1
  456. package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +3 -3
  457. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +3 -3
  458. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  459. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +6 -6
  460. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
  461. package/Materials/Node/nodeMaterial.pure.d.ts +12 -0
  462. package/Materials/Node/nodeMaterial.pure.js +68 -13
  463. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  464. package/Materials/Node/nodeMaterialDefault.js +14 -14
  465. package/Materials/Node/nodeMaterialDefault.js.map +1 -1
  466. package/Materials/PBR/openpbrMaterial.pure.js +19 -4
  467. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  468. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +40 -2
  469. package/Materials/PBR/pbrAnisotropicConfiguration.js +41 -3
  470. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  471. package/Materials/PBR/pbrBRDFConfiguration.d.ts +5 -1
  472. package/Materials/PBR/pbrBRDFConfiguration.js +5 -1
  473. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  474. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +2 -2
  475. package/Materials/PBR/pbrBaseSimpleMaterial.js +2 -2
  476. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  477. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +42 -2
  478. package/Materials/PBR/pbrClearCoatConfiguration.js +42 -2
  479. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  480. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +38 -1
  481. package/Materials/PBR/pbrIridescenceConfiguration.js +38 -1
  482. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  483. package/Materials/PBR/pbrSheenConfiguration.d.ts +41 -2
  484. package/Materials/PBR/pbrSheenConfiguration.js +41 -2
  485. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  486. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +41 -2
  487. package/Materials/PBR/pbrSubSurfaceConfiguration.js +42 -3
  488. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  489. package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
  490. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  491. package/Materials/Textures/Filtering/hdrIrradianceFiltering.d.ts +1 -1
  492. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +2 -2
  493. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -1
  494. package/Materials/Textures/Loaders/EXR/exrLoader.core.d.ts +1 -1
  495. package/Materials/Textures/Loaders/EXR/exrLoader.core.js +5 -109
  496. package/Materials/Textures/Loaders/EXR/exrLoader.core.js.map +1 -1
  497. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js +1 -1
  498. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js.map +1 -1
  499. package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
  500. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  501. package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
  502. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  503. package/Materials/Textures/Loaders/envTextureLoader.js +3 -1
  504. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  505. package/Materials/Textures/Loaders/ktxTextureLoader.js +11 -2
  506. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  507. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
  508. package/Materials/Textures/MultiviewRenderTarget.js +1 -1
  509. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  510. package/Materials/Textures/Packer/packer.d.ts +1 -1
  511. package/Materials/Textures/Packer/packer.js +6 -6
  512. package/Materials/Textures/Packer/packer.js.map +1 -1
  513. package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -2
  514. package/Materials/Textures/Procedurals/customProceduralTexture.js +4 -4
  515. package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
  516. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +4 -1
  517. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  518. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js +1 -1
  519. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js.map +1 -1
  520. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  521. package/Materials/Textures/prePassRenderTarget.js +1 -1
  522. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  523. package/Materials/Textures/rawCubeTexture.d.ts +1 -1
  524. package/Materials/Textures/rawCubeTexture.js +2 -2
  525. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  526. package/Materials/Textures/rawTexture.d.ts +1 -1
  527. package/Materials/Textures/rawTexture.js +1 -1
  528. package/Materials/Textures/rawTexture.js.map +1 -1
  529. package/Materials/Textures/rawTexture2DArray.d.ts +1 -1
  530. package/Materials/Textures/rawTexture2DArray.js +1 -1
  531. package/Materials/Textures/rawTexture2DArray.js.map +1 -1
  532. package/Materials/Textures/rawTexture3D.d.ts +1 -1
  533. package/Materials/Textures/rawTexture3D.js +1 -1
  534. package/Materials/Textures/rawTexture3D.js.map +1 -1
  535. package/Materials/Textures/refractionTexture.d.ts +1 -1
  536. package/Materials/Textures/refractionTexture.js +1 -1
  537. package/Materials/Textures/refractionTexture.js.map +1 -1
  538. package/Materials/Textures/textureMerger.d.ts +1 -1
  539. package/Materials/Textures/textureMerger.js +1 -1
  540. package/Materials/Textures/textureMerger.js.map +1 -1
  541. package/Materials/Textures/textureProcessor.d.ts +1 -1
  542. package/Materials/Textures/textureProcessor.js +2 -2
  543. package/Materials/Textures/textureProcessor.js.map +1 -1
  544. package/Materials/Textures/thinRenderTargetTexture.d.ts +4 -4
  545. package/Materials/Textures/thinRenderTargetTexture.js +2 -2
  546. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  547. package/Materials/clipPlaneMaterialHelper.js +1 -1
  548. package/Materials/clipPlaneMaterialHelper.js.map +1 -1
  549. package/Materials/effectRenderer.pure.js +4 -2
  550. package/Materials/effectRenderer.pure.js.map +1 -1
  551. package/Materials/floatingOriginMatrixOverrides.d.ts +1 -1
  552. package/Materials/floatingOriginMatrixOverrides.js +1 -1
  553. package/Materials/floatingOriginMatrixOverrides.js.map +1 -1
  554. package/Materials/material.detailMapConfiguration.d.ts +39 -1
  555. package/Materials/material.detailMapConfiguration.js +39 -1
  556. package/Materials/material.detailMapConfiguration.js.map +1 -1
  557. package/Materials/materialHelper.functions.js +45 -1
  558. package/Materials/materialHelper.functions.js.map +1 -1
  559. package/Materials/materialHelper.geometryrendering.d.ts +1 -1
  560. package/Materials/materialHelper.geometryrendering.js +1 -1
  561. package/Materials/materialHelper.geometryrendering.js.map +1 -1
  562. package/Materials/materialPluginFactoryExport.js +2 -2
  563. package/Materials/materialPluginFactoryExport.js.map +1 -1
  564. package/Materials/pushMaterial.d.ts +7 -1
  565. package/Materials/pushMaterial.js +7 -1
  566. package/Materials/pushMaterial.js.map +1 -1
  567. package/Materials/uniformBuffer.js +1 -1
  568. package/Materials/uniformBuffer.js.map +1 -1
  569. package/Maths/math.axis.d.ts +1 -1
  570. package/Maths/math.axis.js +1 -1
  571. package/Maths/math.axis.js.map +1 -1
  572. package/Maths/math.d.ts +2 -2
  573. package/Maths/math.functions.d.ts +1 -1
  574. package/Maths/math.functions.js +1 -1
  575. package/Maths/math.functions.js.map +1 -1
  576. package/Maths/math.isovector.d.ts +1 -1
  577. package/Maths/math.isovector.js +1 -1
  578. package/Maths/math.isovector.js.map +1 -1
  579. package/Maths/math.js +2 -2
  580. package/Maths/math.js.map +1 -1
  581. package/Maths/math.path.d.ts +1 -1
  582. package/Maths/math.path.js +1 -1
  583. package/Maths/math.path.js.map +1 -1
  584. package/Maths/math.plane.d.ts +1 -1
  585. package/Maths/math.plane.js +1 -1
  586. package/Maths/math.plane.js.map +1 -1
  587. package/Maths/math.polar.d.ts +1 -1
  588. package/Maths/math.polar.js +1 -1
  589. package/Maths/math.polar.js.map +1 -1
  590. package/Maths/math.vertexFormat.d.ts +1 -1
  591. package/Maths/math.vertexFormat.js +1 -1
  592. package/Maths/math.vertexFormat.js.map +1 -1
  593. package/Maths/pure.d.ts +1 -0
  594. package/Maths/pure.js +1 -0
  595. package/Maths/pure.js.map +1 -1
  596. package/Meshes/Builders/geodesicBuilder.js +1 -1
  597. package/Meshes/Builders/geodesicBuilder.js.map +1 -1
  598. package/Meshes/Builders/goldbergBuilder.d.ts +1 -1
  599. package/Meshes/Builders/goldbergBuilder.js +4 -4
  600. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  601. package/Meshes/Builders/greasedLineBuilder.d.ts +4 -4
  602. package/Meshes/Builders/greasedLineBuilder.js +5 -5
  603. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  604. package/Meshes/Builders/textBuilder.d.ts +2 -2
  605. package/Meshes/Builders/textBuilder.js +4 -4
  606. package/Meshes/Builders/textBuilder.js.map +1 -1
  607. package/Meshes/Builders/tiledBoxBuilder.d.ts +3 -3
  608. package/Meshes/Builders/tiledBoxBuilder.js +3 -3
  609. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  610. package/Meshes/Builders/tiledPlaneBuilder.d.ts +1 -1
  611. package/Meshes/Builders/tiledPlaneBuilder.js +1 -1
  612. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  613. package/Meshes/Compression/dracoCodec.js +1 -1
  614. package/Meshes/Compression/dracoCodec.js.map +1 -1
  615. package/Meshes/Compression/dracoDecoder.js +1 -1
  616. package/Meshes/Compression/dracoDecoder.js.map +1 -1
  617. package/Meshes/Compression/dracoEncoder.d.ts +1 -1
  618. package/Meshes/Compression/dracoEncoder.js +2 -2
  619. package/Meshes/Compression/dracoEncoder.js.map +1 -1
  620. package/Meshes/Compression/meshoptCompression.js +1 -1
  621. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  622. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
  623. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  624. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +50 -1
  625. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +263 -107
  626. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  627. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +37 -0
  628. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +160 -0
  629. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
  630. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
  631. package/Meshes/GreasedLine/greasedLineBaseMesh.js +3 -3
  632. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  633. package/Meshes/Node/nodeGeometry.d.ts +2 -2
  634. package/Meshes/Node/nodeGeometry.js +4 -4
  635. package/Meshes/Node/nodeGeometry.js.map +1 -1
  636. package/Meshes/Node/nodeGeometryBuildState.d.ts +1 -1
  637. package/Meshes/Node/nodeGeometryBuildState.js +1 -1
  638. package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
  639. package/Meshes/abstractMesh.hotSpot.d.ts +1 -1
  640. package/Meshes/abstractMesh.hotSpot.js +2 -2
  641. package/Meshes/abstractMesh.hotSpot.js.map +1 -1
  642. package/Meshes/abstractMesh.pure.js +2 -13
  643. package/Meshes/abstractMesh.pure.js.map +1 -1
  644. package/Meshes/buffer.d.ts +1 -1
  645. package/Meshes/buffer.js +1 -1
  646. package/Meshes/buffer.js.map +1 -1
  647. package/Meshes/csg.d.ts +3 -3
  648. package/Meshes/csg.js +4 -4
  649. package/Meshes/csg.js.map +1 -1
  650. package/Meshes/csg2.d.ts +1 -1
  651. package/Meshes/csg2.js +38 -11
  652. package/Meshes/csg2.js.map +1 -1
  653. package/Meshes/geodesicMesh.d.ts +1 -1
  654. package/Meshes/geodesicMesh.js +1 -1
  655. package/Meshes/geodesicMesh.js.map +1 -1
  656. package/Meshes/geometry.d.ts +2 -2
  657. package/Meshes/geometry.js +34 -19
  658. package/Meshes/geometry.js.map +1 -1
  659. package/Meshes/lattice.d.ts +1 -1
  660. package/Meshes/lattice.js +1 -1
  661. package/Meshes/lattice.js.map +1 -1
  662. package/Meshes/lattice.material.d.ts +1 -1
  663. package/Meshes/lattice.material.js +1 -1
  664. package/Meshes/lattice.material.js.map +1 -1
  665. package/Meshes/mesh.pure.js +26 -14
  666. package/Meshes/mesh.pure.js.map +1 -1
  667. package/Meshes/mesh.vertexData.d.ts +2 -2
  668. package/Meshes/mesh.vertexData.js +3 -4
  669. package/Meshes/mesh.vertexData.js.map +1 -1
  670. package/Meshes/mesh.vertexData.subdivide.js +1 -1
  671. package/Meshes/mesh.vertexData.subdivide.js.map +1 -1
  672. package/Meshes/meshBuilder.d.ts +18 -18
  673. package/Meshes/meshBuilder.js +18 -18
  674. package/Meshes/meshBuilder.js.map +1 -1
  675. package/Meshes/meshSimplification.d.ts +1 -1
  676. package/Meshes/meshSimplification.js +4 -4
  677. package/Meshes/meshSimplification.js.map +1 -1
  678. package/Meshes/meshUVSpaceRenderer.d.ts +1 -1
  679. package/Meshes/meshUVSpaceRenderer.js +0 -1
  680. package/Meshes/meshUVSpaceRenderer.js.map +1 -1
  681. package/Meshes/meshUtils.d.ts +1 -1
  682. package/Meshes/meshUtils.js +2 -2
  683. package/Meshes/meshUtils.js.map +1 -1
  684. package/Meshes/polygonMesh.d.ts +2 -2
  685. package/Meshes/polygonMesh.js +3 -3
  686. package/Meshes/polygonMesh.js.map +1 -1
  687. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
  688. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  689. package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
  690. package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
  691. package/Misc/PerformanceViewer/performanceViewerCollector.js +1 -1
  692. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  693. package/Misc/areaLightsTextureTools.d.ts +1 -1
  694. package/Misc/areaLightsTextureTools.js +3 -3
  695. package/Misc/areaLightsTextureTools.js.map +1 -1
  696. package/Misc/assetsManager.d.ts +4 -4
  697. package/Misc/assetsManager.js +5 -5
  698. package/Misc/assetsManager.js.map +1 -1
  699. package/Misc/basisWorker.js +1 -1
  700. package/Misc/basisWorker.js.map +1 -1
  701. package/Misc/brdfTextureTools.js +1 -1
  702. package/Misc/brdfTextureTools.js.map +1 -1
  703. package/Misc/copyTextureToTexture.d.ts +1 -1
  704. package/Misc/copyTextureToTexture.js +1 -1
  705. package/Misc/copyTextureToTexture.js.map +1 -1
  706. package/Misc/decorators.serialization.js +2 -2
  707. package/Misc/decorators.serialization.js.map +1 -1
  708. package/Misc/depthReducer.d.ts +2 -2
  709. package/Misc/depthReducer.js +2 -2
  710. package/Misc/depthReducer.js.map +1 -1
  711. package/Misc/gradients.d.ts +1 -1
  712. package/Misc/gradients.js +1 -1
  713. package/Misc/gradients.js.map +1 -1
  714. package/Misc/greasedLineTools.d.ts +1 -1
  715. package/Misc/greasedLineTools.js +3 -3
  716. package/Misc/greasedLineTools.js.map +1 -1
  717. package/Misc/halfFloat.d.ts +17 -0
  718. package/Misc/halfFloat.js +131 -0
  719. package/Misc/halfFloat.js.map +1 -0
  720. package/Misc/khronosTextureContainer2.js +1 -1
  721. package/Misc/khronosTextureContainer2.js.map +1 -1
  722. package/Misc/meshExploder.js +1 -1
  723. package/Misc/meshExploder.js.map +1 -1
  724. package/Misc/pivotTools.js +1 -1
  725. package/Misc/pivotTools.js.map +1 -1
  726. package/Misc/rgbdTextureTools.js +1 -1
  727. package/Misc/rgbdTextureTools.js.map +1 -1
  728. package/Misc/sceneOptimizer.js +1 -1
  729. package/Misc/sceneOptimizer.js.map +1 -1
  730. package/Misc/sceneRecorder.js +7 -7
  731. package/Misc/sceneRecorder.js.map +1 -1
  732. package/Misc/sceneSerializer.js +3 -3
  733. package/Misc/sceneSerializer.js.map +1 -1
  734. package/Misc/snapshotRenderingHelper.js +1 -1
  735. package/Misc/snapshotRenderingHelper.js.map +1 -1
  736. package/Misc/textureTools.d.ts +3 -13
  737. package/Misc/textureTools.js +6 -64
  738. package/Misc/textureTools.js.map +1 -1
  739. package/Misc/thinMinMaxReducer.d.ts +1 -1
  740. package/Misc/thinMinMaxReducer.js +1 -1
  741. package/Misc/thinMinMaxReducer.js.map +1 -1
  742. package/Misc/tools.internals.js +1 -1
  743. package/Misc/tools.internals.js.map +1 -1
  744. package/Misc/tools.pure.js +1 -1
  745. package/Misc/tools.pure.js.map +1 -1
  746. package/Misc/trajectoryClassifier.d.ts +1 -1
  747. package/Misc/trajectoryClassifier.js +1 -1
  748. package/Misc/trajectoryClassifier.js.map +1 -1
  749. package/Misc/videoRecorder.js +1 -1
  750. package/Misc/videoRecorder.js.map +1 -1
  751. package/Misc/virtualJoystick.d.ts +1 -1
  752. package/Misc/virtualJoystick.js +1 -1
  753. package/Misc/virtualJoystick.js.map +1 -1
  754. package/Morph/morphTarget.js +1 -1
  755. package/Morph/morphTarget.js.map +1 -1
  756. package/Navigation/Plugins/recastJSPlugin.d.ts +1 -1
  757. package/Navigation/Plugins/recastJSPlugin.js +2 -2
  758. package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
  759. package/Particles/EmitterTypes/boxParticleEmitter.d.ts +1 -1
  760. package/Particles/EmitterTypes/boxParticleEmitter.js +1 -1
  761. package/Particles/EmitterTypes/boxParticleEmitter.js.map +1 -1
  762. package/Particles/EmitterTypes/coneParticleEmitter.d.ts +1 -1
  763. package/Particles/EmitterTypes/coneParticleEmitter.js +1 -1
  764. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  765. package/Particles/EmitterTypes/customParticleEmitter.d.ts +1 -1
  766. package/Particles/EmitterTypes/customParticleEmitter.js +1 -1
  767. package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
  768. package/Particles/EmitterTypes/cylinderParticleEmitter.d.ts +1 -1
  769. package/Particles/EmitterTypes/cylinderParticleEmitter.js +1 -1
  770. package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
  771. package/Particles/EmitterTypes/hemisphericParticleEmitter.d.ts +1 -1
  772. package/Particles/EmitterTypes/hemisphericParticleEmitter.js +1 -1
  773. package/Particles/EmitterTypes/hemisphericParticleEmitter.js.map +1 -1
  774. package/Particles/EmitterTypes/meshParticleEmitter.d.ts +1 -1
  775. package/Particles/EmitterTypes/meshParticleEmitter.js +2 -2
  776. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  777. package/Particles/EmitterTypes/pointParticleEmitter.d.ts +1 -1
  778. package/Particles/EmitterTypes/pointParticleEmitter.js +1 -1
  779. package/Particles/EmitterTypes/pointParticleEmitter.js.map +1 -1
  780. package/Particles/EmitterTypes/sphereParticleEmitter.d.ts +1 -1
  781. package/Particles/EmitterTypes/sphereParticleEmitter.js +1 -1
  782. package/Particles/EmitterTypes/sphereParticleEmitter.js.map +1 -1
  783. package/Particles/Node/nodeParticleBuildState.d.ts +4 -4
  784. package/Particles/Node/nodeParticleBuildState.js +2 -2
  785. package/Particles/Node/nodeParticleBuildState.js.map +1 -1
  786. package/Particles/Node/nodeParticleSystemSet.d.ts +2 -2
  787. package/Particles/Node/nodeParticleSystemSet.helper.js +31 -31
  788. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  789. package/Particles/Node/nodeParticleSystemSet.js +8 -8
  790. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  791. package/Particles/attractor.d.ts +1 -1
  792. package/Particles/attractor.js +1 -1
  793. package/Particles/attractor.js.map +1 -1
  794. package/Particles/flowMap.d.ts +7 -1
  795. package/Particles/flowMap.js +7 -1
  796. package/Particles/flowMap.js.map +1 -1
  797. package/Particles/particle.d.ts +2 -2
  798. package/Particles/particle.js +2 -2
  799. package/Particles/particle.js.map +1 -1
  800. package/Particles/particleHelper.js +5 -5
  801. package/Particles/particleHelper.js.map +1 -1
  802. package/Particles/particleSystem.functions.d.ts +1 -1
  803. package/Particles/particleSystem.functions.js +1 -1
  804. package/Particles/particleSystem.functions.js.map +1 -1
  805. package/Particles/particleSystemSet.d.ts +1 -1
  806. package/Particles/particleSystemSet.js +5 -5
  807. package/Particles/particleSystemSet.js.map +1 -1
  808. package/Particles/pointsCloudSystem.d.ts +1 -1
  809. package/Particles/pointsCloudSystem.js +6 -6
  810. package/Particles/pointsCloudSystem.js.map +1 -1
  811. package/Particles/solidParticle.d.ts +2 -2
  812. package/Particles/solidParticle.js +3 -3
  813. package/Particles/solidParticle.js.map +1 -1
  814. package/Particles/solidParticleSystem.d.ts +4 -4
  815. package/Particles/solidParticleSystem.js +7 -7
  816. package/Particles/solidParticleSystem.js.map +1 -1
  817. package/Particles/subEmitter.js +1 -1
  818. package/Particles/subEmitter.js.map +1 -1
  819. package/Particles/thinParticleSystem.function.js +2 -2
  820. package/Particles/thinParticleSystem.function.js.map +1 -1
  821. package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
  822. package/Physics/Plugins/cannonJSPlugin.js +1 -1
  823. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  824. package/Physics/castingResult.d.ts +1 -1
  825. package/Physics/castingResult.js +1 -1
  826. package/Physics/castingResult.js.map +1 -1
  827. package/Physics/physicsHelper.d.ts +1 -1
  828. package/Physics/physicsHelper.js +4 -4
  829. package/Physics/physicsHelper.js.map +1 -1
  830. package/Physics/physicsImpostor.d.ts +1 -1
  831. package/Physics/physicsImpostor.js +1 -1
  832. package/Physics/physicsImpostor.js.map +1 -1
  833. package/Physics/physicsRaycastResult.d.ts +1 -1
  834. package/Physics/physicsRaycastResult.js +1 -1
  835. package/Physics/physicsRaycastResult.js.map +1 -1
  836. package/Physics/v1/Plugins/ammoJSPlugin.d.ts +2 -2
  837. package/Physics/v1/Plugins/ammoJSPlugin.js +5 -5
  838. package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
  839. package/Physics/v1/Plugins/oimoJSPlugin.d.ts +2 -2
  840. package/Physics/v1/Plugins/oimoJSPlugin.js +2 -2
  841. package/Physics/v1/Plugins/oimoJSPlugin.js.map +1 -1
  842. package/Physics/v1/physicsEngine.d.ts +1 -1
  843. package/Physics/v1/physicsEngine.js +1 -1
  844. package/Physics/v1/physicsEngine.js.map +1 -1
  845. package/Physics/v2/Plugins/havokPlugin.d.ts +14 -2
  846. package/Physics/v2/Plugins/havokPlugin.js +45 -7
  847. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  848. package/Physics/v2/characterController.d.ts +1 -1
  849. package/Physics/v2/characterController.js +2 -2
  850. package/Physics/v2/characterController.js.map +1 -1
  851. package/Physics/v2/physicsAggregate.d.ts +3 -3
  852. package/Physics/v2/physicsAggregate.js +10 -6
  853. package/Physics/v2/physicsAggregate.js.map +1 -1
  854. package/Physics/v2/physicsBody.d.ts +1 -1
  855. package/Physics/v2/physicsBody.js +1 -1
  856. package/Physics/v2/physicsBody.js.map +1 -1
  857. package/Physics/v2/physicsEngine.d.ts +1 -1
  858. package/Physics/v2/physicsEngine.js +1 -1
  859. package/Physics/v2/physicsEngine.js.map +1 -1
  860. package/Physics/v2/physicsShape.d.ts +1 -1
  861. package/Physics/v2/physicsShape.js +1 -1
  862. package/Physics/v2/physicsShape.js.map +1 -1
  863. package/Physics/v2/ragdoll.d.ts +2 -2
  864. package/Physics/v2/ragdoll.js +2 -2
  865. package/Physics/v2/ragdoll.js.map +1 -1
  866. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.d.ts +1 -0
  867. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +8 -6
  868. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  869. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js +1 -1
  870. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js.map +1 -1
  871. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
  872. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  873. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +3 -2
  874. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  875. package/PostProcesses/bloomEffect.d.ts +1 -1
  876. package/PostProcesses/bloomEffect.js +4 -4
  877. package/PostProcesses/bloomEffect.js.map +1 -1
  878. package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
  879. package/PostProcesses/depthOfFieldEffect.js +3 -3
  880. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  881. package/PostProcesses/depthOfFieldMergePostProcess.d.ts +1 -1
  882. package/PostProcesses/depthOfFieldMergePostProcess.js +1 -1
  883. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  884. package/PostProcesses/highlightsPostProcess.d.ts +1 -1
  885. package/PostProcesses/highlightsPostProcess.js +1 -1
  886. package/PostProcesses/highlightsPostProcess.js.map +1 -1
  887. package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
  888. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  889. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  890. package/PostProcesses/postProcessManager.d.ts +3 -0
  891. package/PostProcesses/postProcessManager.js +4 -1
  892. package/PostProcesses/postProcessManager.js.map +1 -1
  893. package/PostProcesses/subSurfaceScatteringPostProcess.pure.d.ts +1 -0
  894. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js +10 -0
  895. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js.map +1 -1
  896. package/PostProcesses/thinAnaglyphPostProcess.d.ts +1 -1
  897. package/PostProcesses/thinAnaglyphPostProcess.js +1 -1
  898. package/PostProcesses/thinAnaglyphPostProcess.js.map +1 -1
  899. package/PostProcesses/thinBlackAndWhitePostProcess.d.ts +1 -1
  900. package/PostProcesses/thinBlackAndWhitePostProcess.js +1 -1
  901. package/PostProcesses/thinBlackAndWhitePostProcess.js.map +1 -1
  902. package/PostProcesses/thinBloomEffect.js +1 -1
  903. package/PostProcesses/thinBloomEffect.js.map +1 -1
  904. package/PostProcesses/thinBloomMergePostProcess.d.ts +1 -1
  905. package/PostProcesses/thinBloomMergePostProcess.js +1 -1
  906. package/PostProcesses/thinBloomMergePostProcess.js.map +1 -1
  907. package/PostProcesses/thinBlurPostProcess.d.ts +1 -1
  908. package/PostProcesses/thinBlurPostProcess.js +1 -1
  909. package/PostProcesses/thinBlurPostProcess.js.map +1 -1
  910. package/PostProcesses/thinChromaticAberrationPostProcess.d.ts +2 -2
  911. package/PostProcesses/thinChromaticAberrationPostProcess.js +2 -2
  912. package/PostProcesses/thinChromaticAberrationPostProcess.js.map +1 -1
  913. package/PostProcesses/thinCircleOfConfusionPostProcess.d.ts +1 -1
  914. package/PostProcesses/thinCircleOfConfusionPostProcess.js +1 -1
  915. package/PostProcesses/thinCircleOfConfusionPostProcess.js.map +1 -1
  916. package/PostProcesses/thinColorCorrectionPostProcess.d.ts +1 -1
  917. package/PostProcesses/thinColorCorrectionPostProcess.js +2 -2
  918. package/PostProcesses/thinColorCorrectionPostProcess.js.map +1 -1
  919. package/PostProcesses/thinConvolutionPostProcess.d.ts +1 -1
  920. package/PostProcesses/thinConvolutionPostProcess.js +1 -1
  921. package/PostProcesses/thinConvolutionPostProcess.js.map +1 -1
  922. package/PostProcesses/thinCustomPostProcess.d.ts +1 -1
  923. package/PostProcesses/thinCustomPostProcess.js +1 -1
  924. package/PostProcesses/thinCustomPostProcess.js.map +1 -1
  925. package/PostProcesses/thinDepthOfFieldEffect.d.ts +3 -0
  926. package/PostProcesses/thinDepthOfFieldEffect.js +4 -1
  927. package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -1
  928. package/PostProcesses/thinDepthOfFieldMergePostProcess.d.ts +1 -1
  929. package/PostProcesses/thinDepthOfFieldMergePostProcess.js +1 -1
  930. package/PostProcesses/thinDepthOfFieldMergePostProcess.js.map +1 -1
  931. package/PostProcesses/thinExtractHighlightsPostProcess.d.ts +1 -1
  932. package/PostProcesses/thinExtractHighlightsPostProcess.js +1 -1
  933. package/PostProcesses/thinExtractHighlightsPostProcess.js.map +1 -1
  934. package/PostProcesses/thinFXAAPostProcess.d.ts +2 -2
  935. package/PostProcesses/thinFXAAPostProcess.js +2 -2
  936. package/PostProcesses/thinFXAAPostProcess.js.map +1 -1
  937. package/PostProcesses/thinFilterPostProcess.d.ts +2 -2
  938. package/PostProcesses/thinFilterPostProcess.js +2 -2
  939. package/PostProcesses/thinFilterPostProcess.js.map +1 -1
  940. package/PostProcesses/thinGrainPostProcess.d.ts +1 -1
  941. package/PostProcesses/thinGrainPostProcess.js +1 -1
  942. package/PostProcesses/thinGrainPostProcess.js.map +1 -1
  943. package/PostProcesses/thinImageProcessingPostProcess.d.ts +2 -2
  944. package/PostProcesses/thinImageProcessingPostProcess.js +2 -2
  945. package/PostProcesses/thinImageProcessingPostProcess.js.map +1 -1
  946. package/PostProcesses/thinMotionBlurPostProcess.d.ts +1 -1
  947. package/PostProcesses/thinMotionBlurPostProcess.js +2 -2
  948. package/PostProcesses/thinMotionBlurPostProcess.js.map +1 -1
  949. package/PostProcesses/thinPassPostProcess.d.ts +1 -1
  950. package/PostProcesses/thinPassPostProcess.js +1 -1
  951. package/PostProcesses/thinPassPostProcess.js.map +1 -1
  952. package/PostProcesses/thinSSAO2BlurPostProcess.d.ts +1 -1
  953. package/PostProcesses/thinSSAO2BlurPostProcess.js +1 -1
  954. package/PostProcesses/thinSSAO2BlurPostProcess.js.map +1 -1
  955. package/PostProcesses/thinSSAO2CombinePostProcess.d.ts +1 -1
  956. package/PostProcesses/thinSSAO2CombinePostProcess.js +2 -2
  957. package/PostProcesses/thinSSAO2CombinePostProcess.js.map +1 -1
  958. package/PostProcesses/thinSSAO2PostProcess.d.ts +7 -2
  959. package/PostProcesses/thinSSAO2PostProcess.js +36 -4
  960. package/PostProcesses/thinSSAO2PostProcess.js.map +1 -1
  961. package/PostProcesses/thinSSRBlurCombinerPostProcess.d.ts +1 -1
  962. package/PostProcesses/thinSSRBlurCombinerPostProcess.js +2 -2
  963. package/PostProcesses/thinSSRBlurCombinerPostProcess.js.map +1 -1
  964. package/PostProcesses/thinSSRBlurPostProcess.d.ts +2 -2
  965. package/PostProcesses/thinSSRBlurPostProcess.js +2 -2
  966. package/PostProcesses/thinSSRBlurPostProcess.js.map +1 -1
  967. package/PostProcesses/thinSSRPostProcess.d.ts +1 -1
  968. package/PostProcesses/thinSSRPostProcess.js +2 -2
  969. package/PostProcesses/thinSSRPostProcess.js.map +1 -1
  970. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.d.ts +1 -1
  971. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js +1 -1
  972. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js.map +1 -1
  973. package/PostProcesses/thinSharpenPostProcess.d.ts +1 -1
  974. package/PostProcesses/thinSharpenPostProcess.js +1 -1
  975. package/PostProcesses/thinSharpenPostProcess.js.map +1 -1
  976. package/PostProcesses/thinTAAPostProcess.d.ts +3 -3
  977. package/PostProcesses/thinTAAPostProcess.js +4 -4
  978. package/PostProcesses/thinTAAPostProcess.js.map +1 -1
  979. package/PostProcesses/thinTonemapPostProcess.d.ts +1 -1
  980. package/PostProcesses/thinTonemapPostProcess.js +1 -1
  981. package/PostProcesses/thinTonemapPostProcess.js.map +1 -1
  982. package/PostProcesses/vrDistortionCorrectionPostProcess.d.ts +1 -1
  983. package/PostProcesses/vrDistortionCorrectionPostProcess.js +3 -3
  984. package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
  985. package/Rendering/IBLShadows/iblShadowsAccumulationPass.d.ts +2 -2
  986. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +4 -4
  987. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
  988. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.d.ts +2 -2
  989. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js +4 -4
  990. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js.map +1 -1
  991. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.d.ts +3 -3
  992. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +4 -4
  993. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
  994. package/Rendering/depthPeelingRenderer.d.ts +1 -1
  995. package/Rendering/depthPeelingRenderer.js +2 -2
  996. package/Rendering/depthPeelingRenderer.js.map +1 -1
  997. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
  998. package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
  999. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  1000. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
  1001. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +2 -2
  1002. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  1003. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +3 -3
  1004. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -3
  1005. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  1006. package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
  1007. package/Rendering/fluidRenderer/fluidRenderingTextures.js +3 -3
  1008. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  1009. package/Rendering/iblCdfGenerator.d.ts +3 -3
  1010. package/Rendering/iblCdfGenerator.js +5 -5
  1011. package/Rendering/iblCdfGenerator.js.map +1 -1
  1012. package/Rendering/renderingGroup.js +1 -1
  1013. package/Rendering/renderingGroup.js.map +1 -1
  1014. package/Rendering/subSurfaceConfiguration.d.ts +2 -2
  1015. package/Rendering/subSurfaceConfiguration.js +2 -2
  1016. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  1017. package/Rendering/utilityLayerRenderer.d.ts +2 -2
  1018. package/Rendering/utilityLayerRenderer.js +4 -4
  1019. package/Rendering/utilityLayerRenderer.js.map +1 -1
  1020. package/Shaders/greasedLine.vertex.js +19 -3
  1021. package/Shaders/greasedLine.vertex.js.map +1 -1
  1022. package/Shaders/ssao2.fragment.js +10 -2
  1023. package/Shaders/ssao2.fragment.js.map +1 -1
  1024. package/ShadersWGSL/ssao2.fragment.js +10 -2
  1025. package/ShadersWGSL/ssao2.fragment.js.map +1 -1
  1026. package/SmartAssets/smartAssetSerializer.js +1 -1
  1027. package/SmartAssets/smartAssetSerializer.js.map +1 -1
  1028. package/Sprites/sprite.d.ts +2 -2
  1029. package/Sprites/sprite.js +2 -2
  1030. package/Sprites/sprite.js.map +1 -1
  1031. package/Sprites/spriteManager.d.ts +2 -2
  1032. package/Sprites/spriteManager.js +4 -5
  1033. package/Sprites/spriteManager.js.map +1 -1
  1034. package/Sprites/spritePackedManager.js +1 -1
  1035. package/Sprites/spritePackedManager.js.map +1 -1
  1036. package/Sprites/spriteRenderer.js +2 -2
  1037. package/Sprites/spriteRenderer.js.map +1 -1
  1038. package/XR/features/WebXRHitTestLegacy.d.ts +1 -1
  1039. package/XR/features/WebXRHitTestLegacy.js +2 -2
  1040. package/XR/features/WebXRHitTestLegacy.js.map +1 -1
  1041. package/XR/motionController/webXRAbstractMotionController.js +2 -2
  1042. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  1043. package/XR/motionController/webXRGenericMotionController.js +2 -2
  1044. package/XR/motionController/webXRGenericMotionController.js.map +1 -1
  1045. package/XR/motionController/webXRProfiledMotionController.js +4 -4
  1046. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  1047. package/XR/webXRCamera.d.ts +3 -3
  1048. package/XR/webXRCamera.js +4 -4
  1049. package/XR/webXRCamera.js.map +1 -1
  1050. package/XR/webXRDefaultExperience.d.ts +4 -4
  1051. package/XR/webXRDefaultExperience.js +4 -4
  1052. package/XR/webXRDefaultExperience.js.map +1 -1
  1053. package/XR/webXREnterExitUI.js +1 -1
  1054. package/XR/webXREnterExitUI.js.map +1 -1
  1055. package/XR/webXRExperienceHelper.js +2 -2
  1056. package/XR/webXRExperienceHelper.js.map +1 -1
  1057. package/XR/webXRFeaturesManager.d.ts +47 -0
  1058. package/XR/webXRFeaturesManager.js +1 -1
  1059. package/XR/webXRFeaturesManager.js.map +1 -1
  1060. package/XR/webXRInput.js +1 -1
  1061. package/XR/webXRInput.js.map +1 -1
  1062. package/XR/webXRInputSource.js +4 -4
  1063. package/XR/webXRInputSource.js.map +1 -1
  1064. package/XR/webXRManagedOutputCanvas.js +1 -1
  1065. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  1066. package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
  1067. package/XR/webXRRenderTargetTextureProvider.js +1 -1
  1068. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  1069. package/assetContainer.d.ts +4 -4
  1070. package/assetContainer.js +6 -6
  1071. package/assetContainer.js.map +1 -1
  1072. package/node.d.ts +1 -1
  1073. package/node.js +6 -2
  1074. package/node.js.map +1 -1
  1075. package/package.json +46 -175
  1076. package/scene.pure.d.ts +12 -0
  1077. package/scene.pure.js +36 -0
  1078. package/scene.pure.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"proceduralTextureSceneComponent.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Procedurals/proceduralTextureSceneComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAwB,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF;;;GAGG;AACH,MAAM,OAAO,+BAA+B;IAWxC;;;OAGG;IACH,YAAY,KAAY;QAdxB;;WAEG;QACa,SAAI,GAAG,uBAAuB,CAAC,sBAAsB,CAAC;QAYlE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,uBAAuB,CAAC,kCAAkC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnI,CAAC;IAED;;;OAGG;IACI,OAAO;QACV,sBAAsB;IAC1B,CAAC;IAED;;OAEG;IACI,OAAO;QACV,sBAAsB;IAC1B,CAAC;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC;YACvC,KAAK,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/F,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC;gBACtG,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACzE,IAAI,iBAAiB,CAAC,aAAa,EAAE,EAAE,CAAC;oBACpC,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBAC/B,CAAC;YACL,CAAC;YACD,KAAK,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjG,CAAC;IACL,CAAC;CACJ","sourcesContent":["import { Tools } from \"../../../Misc/tools\";\r\nimport { type Scene } from \"../../../scene\";\r\nimport { type ISceneComponent, SceneComponentConstants } from \"../../../sceneComponent\";\r\n\r\n/**\r\n * Defines the Procedural Texture scene component responsible to manage any Procedural Texture\r\n * in a given scene.\r\n */\r\nexport class ProceduralTextureSceneComponent implements ISceneComponent {\r\n /**\r\n * The component name helpful to identify the component in the list of scene components.\r\n */\r\n public readonly name = SceneComponentConstants.NAME_PROCEDURALTEXTURE;\r\n\r\n /**\r\n * The scene the component belongs to.\r\n */\r\n public scene: Scene;\r\n\r\n /**\r\n * Creates a new instance of the component for the given scene\r\n * @param scene Defines the scene to register the component in\r\n */\r\n constructor(scene: Scene) {\r\n this.scene = scene;\r\n }\r\n\r\n /**\r\n * Registers the component in a given scene\r\n */\r\n public register(): void {\r\n this.scene._beforeClearStage.registerStep(SceneComponentConstants.STEP_BEFORECLEAR_PROCEDURALTEXTURE, this, this._beforeClear);\r\n }\r\n\r\n /**\r\n * Rebuilds the elements related to this component in case of\r\n * context lost for instance.\r\n */\r\n public rebuild(): void {\r\n // Nothing to do here.\r\n }\r\n\r\n /**\r\n * Disposes the component and the associated resources.\r\n */\r\n public dispose(): void {\r\n // Nothing to do here.\r\n }\r\n\r\n private _beforeClear(): void {\r\n if (this.scene.proceduralTexturesEnabled) {\r\n Tools.StartPerformanceCounter(\"Procedural textures\", this.scene.proceduralTextures.length > 0);\r\n for (let proceduralIndex = 0; proceduralIndex < this.scene.proceduralTextures.length; proceduralIndex++) {\r\n const proceduralTexture = this.scene.proceduralTextures[proceduralIndex];\r\n if (proceduralTexture._shouldRender()) {\r\n proceduralTexture.render();\r\n }\r\n }\r\n Tools.EndPerformanceCounter(\"Procedural textures\", this.scene.proceduralTextures.length > 0);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"proceduralTextureSceneComponent.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Procedurals/proceduralTextureSceneComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAwB,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF;;;GAGG;AACH,MAAM,OAAO,+BAA+B;IAWxC;;;OAGG;IACH,YAAY,KAAY;QAdxB;;WAEG;QACa,SAAI,GAAG,uBAAuB,CAAC,sBAAsB,CAAC;QAYlE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,uBAAuB,CAAC,kCAAkC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnI,CAAC;IAED;;;OAGG;IACI,OAAO;QACV,sBAAsB;IAC1B,CAAC;IAED;;OAEG;IACI,OAAO;QACV,sBAAsB;IAC1B,CAAC;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC;YACvC,KAAK,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/F,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC;gBACtG,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACzE,IAAI,iBAAiB,CAAC,aAAa,EAAE,EAAE,CAAC;oBACpC,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBAC/B,CAAC;YACL,CAAC;YACD,KAAK,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjG,CAAC;IACL,CAAC;CACJ","sourcesContent":["import { Tools } from \"../../../Misc/tools.pure\";\r\nimport { type Scene } from \"../../../scene\";\r\nimport { type ISceneComponent, SceneComponentConstants } from \"../../../sceneComponent\";\r\n\r\n/**\r\n * Defines the Procedural Texture scene component responsible to manage any Procedural Texture\r\n * in a given scene.\r\n */\r\nexport class ProceduralTextureSceneComponent implements ISceneComponent {\r\n /**\r\n * The component name helpful to identify the component in the list of scene components.\r\n */\r\n public readonly name = SceneComponentConstants.NAME_PROCEDURALTEXTURE;\r\n\r\n /**\r\n * The scene the component belongs to.\r\n */\r\n public scene: Scene;\r\n\r\n /**\r\n * Creates a new instance of the component for the given scene\r\n * @param scene Defines the scene to register the component in\r\n */\r\n constructor(scene: Scene) {\r\n this.scene = scene;\r\n }\r\n\r\n /**\r\n * Registers the component in a given scene\r\n */\r\n public register(): void {\r\n this.scene._beforeClearStage.registerStep(SceneComponentConstants.STEP_BEFORECLEAR_PROCEDURALTEXTURE, this, this._beforeClear);\r\n }\r\n\r\n /**\r\n * Rebuilds the elements related to this component in case of\r\n * context lost for instance.\r\n */\r\n public rebuild(): void {\r\n // Nothing to do here.\r\n }\r\n\r\n /**\r\n * Disposes the component and the associated resources.\r\n */\r\n public dispose(): void {\r\n // Nothing to do here.\r\n }\r\n\r\n private _beforeClear(): void {\r\n if (this.scene.proceduralTexturesEnabled) {\r\n Tools.StartPerformanceCounter(\"Procedural textures\", this.scene.proceduralTextures.length > 0);\r\n for (let proceduralIndex = 0; proceduralIndex < this.scene.proceduralTextures.length; proceduralIndex++) {\r\n const proceduralTexture = this.scene.proceduralTextures[proceduralIndex];\r\n if (proceduralTexture._shouldRender()) {\r\n proceduralTexture.render();\r\n }\r\n }\r\n Tools.EndPerformanceCounter(\"Procedural textures\", this.scene.proceduralTextures.length > 0);\r\n }\r\n }\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { type IMultiRenderTargetOptions, MultiRenderTarget } from "./multiRenderTarget.js";
1
+ import { type IMultiRenderTargetOptions, MultiRenderTarget } from "./multiRenderTarget.pure.js";
2
2
  import { type Engine } from "../../Engines/engine.js";
3
3
  import { type RenderTargetTexture } from "./renderTargetTexture.js";
4
4
  import { type Scene } from "../../scene.js";
@@ -1,4 +1,4 @@
1
- import { MultiRenderTarget } from "./multiRenderTarget.js";
1
+ import { MultiRenderTarget } from "./multiRenderTarget.pure.js";
2
2
  import { ImageProcessingPostProcess } from "../../PostProcesses/imageProcessingPostProcess.js";
3
3
  /**
4
4
  * A multi render target designed to render the prepass.
@@ -1 +1 @@
1
- {"version":3,"file":"prePassRenderTarget.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/prePassRenderTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IMultiRenderTargetOptions, 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 override _engine: Engine;\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _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) {\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 override 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 override 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":["../../../../../dev/core/src/Materials/Textures/prePassRenderTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IMultiRenderTargetOptions, MultiRenderTarget } from \"./multiRenderTarget.pure\";\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 override _engine: Engine;\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _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) {\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 override 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 override 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,7 +1,7 @@
1
1
  import { type Nullable } from "../../types.js";
2
2
  import { type Scene } from "../../scene.js";
3
3
  import { type SphericalPolynomial } from "../../Maths/sphericalPolynomial.js";
4
- import { CubeTexture } from "./cubeTexture.js";
4
+ import { CubeTexture } from "./cubeTexture.pure.js";
5
5
  /**
6
6
  * Raw cube texture where the raw buffers are passed in
7
7
  */
@@ -1,6 +1,6 @@
1
1
  import { SerializationHelper } from "../../Misc/decorators.serialization.js";
2
- import { _UpdateRGBDAsync as UpdateRGBDAsyncEnvTools } from "../../Misc/environmentTextureTools.js";
3
- import { CubeTexture } from "./cubeTexture.js";
2
+ import { _UpdateRGBDAsync as UpdateRGBDAsyncEnvTools } from "../../Misc/environmentTextureTools.pure.js";
3
+ import { CubeTexture } from "./cubeTexture.pure.js";
4
4
 
5
5
  /**
6
6
  * Raw cube texture where the raw buffers are passed in
@@ -1 +1 @@
1
- {"version":3,"file":"rawCubeTexture.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/rawCubeTexture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAKjG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,WAAW;IAC3C;;;;;;;;;;;OAWG;IACH,YACI,KAAY,EACZ,IAAiC,EACjC,IAAY,EACZ,SAAiB,SAAS,CAAC,kBAAkB,EAC7C,OAAe,SAAS,CAAC,yBAAyB,EAClD,kBAA2B,KAAK,EAChC,UAAmB,KAAK,EACxB,eAAuB,SAAS,CAAC,8BAA8B,EAC/D,cAAgC,IAAI;QAEpC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAC1I,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,IAAuB,EAAE,MAAc,EAAE,IAAY,EAAE,OAAgB,EAAE,cAAgC,IAAI;QACvH,IAAI,CAAC,QAAS,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9G,CAAC;IAED;;;;;;;OAOG;IACH,2FAA2F;IACpF,eAAe,CAAC,IAAyB,EAAE,sBAAqD,IAAI,EAAE,WAAmB,GAAG,EAAE,YAAoB,CAAC;QACtJ,0CAA0C;QAC1C,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAED;;;OAGG;IACa,KAAK;QACjB,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC;YAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,QAAS,CAAC;YAEvC,MAAM,OAAO,GAAG,IAAI,cAAc,CAC9B,KAAK,EACL,eAAe,CAAC,gBAAgB,EAChC,eAAe,CAAC,KAAK,EACrB,eAAe,CAAC,MAAM,EACtB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,eAAe,EAC/B,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,YAAY,EAC5B,eAAe,CAAC,YAAY,CAC/B,CAAC;YAEF,IAAI,eAAe,CAAC,MAAM,+CAAsC,EAAE,CAAC;gBAC/D,mEAAmE;gBACnE,OAAO,CAAC,eAAe,CACnB,eAAe,CAAC,qBAAsB,EACtC,eAAe,CAAC,oBAAoB,EACpC,eAAe,CAAC,mBAAmB,EACnC,eAAe,CAAC,oBAAoB,CACvC,CAAC;YACN,CAAC;YAED,OAAO,OAAO,CAAC;QACnB,CAAC,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;CACJ","sourcesContent":["import { SerializationHelper } from \"../../Misc/decorators.serialization\";\r\nimport { _UpdateRGBDAsync as UpdateRGBDAsyncEnvTools } from \"../../Misc/environmentTextureTools\";\r\nimport { type Nullable } from \"../../types\";\r\nimport { type Scene } from \"../../scene\";\r\nimport { type SphericalPolynomial } from \"../../Maths/sphericalPolynomial\";\r\nimport { InternalTextureSource } from \"./internalTexture\";\r\nimport { CubeTexture } from \"./cubeTexture\";\r\nimport { Constants } from \"../../Engines/constants\";\r\n\r\n/**\r\n * Raw cube texture where the raw buffers are passed in\r\n */\r\nexport class RawCubeTexture extends CubeTexture {\r\n /**\r\n * Creates a cube texture where the raw buffers are passed in.\r\n * @param scene defines the scene the texture is attached to\r\n * @param data defines the array of data to use to create each face\r\n * @param size defines the size of the textures\r\n * @param format defines the format of the data\r\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_BYTE)\r\n * @param generateMipMaps defines if the engine should generate the mip levels\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\r\n * @param compression defines the compression used (null by default)\r\n */\r\n constructor(\r\n scene: Scene,\r\n data: Nullable<ArrayBufferView[]>,\r\n size: number,\r\n format: number = Constants.TEXTUREFORMAT_RGBA,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n generateMipMaps: boolean = false,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n compression: Nullable<string> = null\r\n ) {\r\n super(\"\", scene);\r\n\r\n this._texture = scene.getEngine().createRawCubeTexture(data, size, format, type, generateMipMaps, invertY, samplingMode, compression);\r\n }\r\n\r\n /**\r\n * Updates the raw cube texture.\r\n * @param data defines the data to store\r\n * @param format defines the data format\r\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_BYTE by default)\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param compression defines the compression used (null by default)\r\n */\r\n public update(data: ArrayBufferView[], format: number, type: number, invertY: boolean, compression: Nullable<string> = null): void {\r\n this._texture!.getEngine().updateRawCubeTexture(this._texture!, data, format, type, invertY, compression);\r\n }\r\n\r\n /**\r\n * Updates a raw cube texture with RGBD encoded data.\r\n * @param data defines the array of data [mipmap][face] to use to create each face\r\n * @param sphericalPolynomial defines the spherical polynomial for irradiance\r\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\r\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\r\n * @returns a promise that resolves when the operation is complete\r\n */\r\n // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax\r\n public updateRGBDAsync(data: ArrayBufferView[][], sphericalPolynomial: Nullable<SphericalPolynomial> = null, lodScale: number = 0.8, lodOffset: number = 0): Promise<void> {\r\n // eslint-disable-next-line github/no-then\r\n return UpdateRGBDAsyncEnvTools(this._texture!, data, sphericalPolynomial, lodScale, lodOffset).then(() => {});\r\n }\r\n\r\n /**\r\n * Clones the raw cube texture.\r\n * @returns a new cube texture\r\n */\r\n public override clone(): CubeTexture {\r\n return SerializationHelper.Clone(() => {\r\n const scene = this.getScene()!;\r\n const internalTexture = this._texture!;\r\n\r\n const texture = new RawCubeTexture(\r\n scene,\r\n internalTexture._bufferViewArray,\r\n internalTexture.width,\r\n internalTexture.format,\r\n internalTexture.type,\r\n internalTexture.generateMipMaps,\r\n internalTexture.invertY,\r\n internalTexture.samplingMode,\r\n internalTexture._compression\r\n );\r\n\r\n if (internalTexture.source === InternalTextureSource.CubeRawRGBD) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n texture.updateRGBDAsync(\r\n internalTexture._bufferViewArrayArray!,\r\n internalTexture._sphericalPolynomial,\r\n internalTexture._lodGenerationScale,\r\n internalTexture._lodGenerationOffset\r\n );\r\n }\r\n\r\n return texture;\r\n }, this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"rawCubeTexture.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/rawCubeTexture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAKtG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,WAAW;IAC3C;;;;;;;;;;;OAWG;IACH,YACI,KAAY,EACZ,IAAiC,EACjC,IAAY,EACZ,SAAiB,SAAS,CAAC,kBAAkB,EAC7C,OAAe,SAAS,CAAC,yBAAyB,EAClD,kBAA2B,KAAK,EAChC,UAAmB,KAAK,EACxB,eAAuB,SAAS,CAAC,8BAA8B,EAC/D,cAAgC,IAAI;QAEpC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAC1I,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,IAAuB,EAAE,MAAc,EAAE,IAAY,EAAE,OAAgB,EAAE,cAAgC,IAAI;QACvH,IAAI,CAAC,QAAS,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9G,CAAC;IAED;;;;;;;OAOG;IACH,2FAA2F;IACpF,eAAe,CAAC,IAAyB,EAAE,sBAAqD,IAAI,EAAE,WAAmB,GAAG,EAAE,YAAoB,CAAC;QACtJ,0CAA0C;QAC1C,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAED;;;OAGG;IACa,KAAK;QACjB,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC;YAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,QAAS,CAAC;YAEvC,MAAM,OAAO,GAAG,IAAI,cAAc,CAC9B,KAAK,EACL,eAAe,CAAC,gBAAgB,EAChC,eAAe,CAAC,KAAK,EACrB,eAAe,CAAC,MAAM,EACtB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,eAAe,EAC/B,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,YAAY,EAC5B,eAAe,CAAC,YAAY,CAC/B,CAAC;YAEF,IAAI,eAAe,CAAC,MAAM,+CAAsC,EAAE,CAAC;gBAC/D,mEAAmE;gBACnE,OAAO,CAAC,eAAe,CACnB,eAAe,CAAC,qBAAsB,EACtC,eAAe,CAAC,oBAAoB,EACpC,eAAe,CAAC,mBAAmB,EACnC,eAAe,CAAC,oBAAoB,CACvC,CAAC;YACN,CAAC;YAED,OAAO,OAAO,CAAC;QACnB,CAAC,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;CACJ","sourcesContent":["import { SerializationHelper } from \"../../Misc/decorators.serialization\";\r\nimport { _UpdateRGBDAsync as UpdateRGBDAsyncEnvTools } from \"../../Misc/environmentTextureTools.pure\";\r\nimport { type Nullable } from \"../../types\";\r\nimport { type Scene } from \"../../scene\";\r\nimport { type SphericalPolynomial } from \"../../Maths/sphericalPolynomial\";\r\nimport { InternalTextureSource } from \"./internalTexture\";\r\nimport { CubeTexture } from \"./cubeTexture.pure\";\r\nimport { Constants } from \"../../Engines/constants\";\r\n\r\n/**\r\n * Raw cube texture where the raw buffers are passed in\r\n */\r\nexport class RawCubeTexture extends CubeTexture {\r\n /**\r\n * Creates a cube texture where the raw buffers are passed in.\r\n * @param scene defines the scene the texture is attached to\r\n * @param data defines the array of data to use to create each face\r\n * @param size defines the size of the textures\r\n * @param format defines the format of the data\r\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_BYTE)\r\n * @param generateMipMaps defines if the engine should generate the mip levels\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\r\n * @param compression defines the compression used (null by default)\r\n */\r\n constructor(\r\n scene: Scene,\r\n data: Nullable<ArrayBufferView[]>,\r\n size: number,\r\n format: number = Constants.TEXTUREFORMAT_RGBA,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n generateMipMaps: boolean = false,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n compression: Nullable<string> = null\r\n ) {\r\n super(\"\", scene);\r\n\r\n this._texture = scene.getEngine().createRawCubeTexture(data, size, format, type, generateMipMaps, invertY, samplingMode, compression);\r\n }\r\n\r\n /**\r\n * Updates the raw cube texture.\r\n * @param data defines the data to store\r\n * @param format defines the data format\r\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_BYTE by default)\r\n * @param invertY defines if data must be stored with Y axis inverted\r\n * @param compression defines the compression used (null by default)\r\n */\r\n public update(data: ArrayBufferView[], format: number, type: number, invertY: boolean, compression: Nullable<string> = null): void {\r\n this._texture!.getEngine().updateRawCubeTexture(this._texture!, data, format, type, invertY, compression);\r\n }\r\n\r\n /**\r\n * Updates a raw cube texture with RGBD encoded data.\r\n * @param data defines the array of data [mipmap][face] to use to create each face\r\n * @param sphericalPolynomial defines the spherical polynomial for irradiance\r\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\r\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\r\n * @returns a promise that resolves when the operation is complete\r\n */\r\n // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax\r\n public updateRGBDAsync(data: ArrayBufferView[][], sphericalPolynomial: Nullable<SphericalPolynomial> = null, lodScale: number = 0.8, lodOffset: number = 0): Promise<void> {\r\n // eslint-disable-next-line github/no-then\r\n return UpdateRGBDAsyncEnvTools(this._texture!, data, sphericalPolynomial, lodScale, lodOffset).then(() => {});\r\n }\r\n\r\n /**\r\n * Clones the raw cube texture.\r\n * @returns a new cube texture\r\n */\r\n public override clone(): CubeTexture {\r\n return SerializationHelper.Clone(() => {\r\n const scene = this.getScene()!;\r\n const internalTexture = this._texture!;\r\n\r\n const texture = new RawCubeTexture(\r\n scene,\r\n internalTexture._bufferViewArray,\r\n internalTexture.width,\r\n internalTexture.format,\r\n internalTexture.type,\r\n internalTexture.generateMipMaps,\r\n internalTexture.invertY,\r\n internalTexture.samplingMode,\r\n internalTexture._compression\r\n );\r\n\r\n if (internalTexture.source === InternalTextureSource.CubeRawRGBD) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n texture.updateRGBDAsync(\r\n internalTexture._bufferViewArrayArray!,\r\n internalTexture._sphericalPolynomial,\r\n internalTexture._lodGenerationScale,\r\n internalTexture._lodGenerationOffset\r\n );\r\n }\r\n\r\n return texture;\r\n }, this);\r\n }\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { Texture } from "./texture.js";
1
+ import { Texture } from "./texture.pure.js";
2
2
  import { type Nullable } from "../../types.js";
3
3
  import { type AbstractEngine } from "../../Engines/abstractEngine.js";
4
4
  import { type Scene } from "../../scene.js";
@@ -1,4 +1,4 @@
1
- import { Texture } from "./texture.js";
1
+ import { Texture } from "./texture.pure.js";
2
2
 
3
3
  /**
4
4
  * Raw texture can help creating a texture directly from an array of data.
@@ -1 +1 @@
1
- {"version":3,"file":"rawTexture.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/rawTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { Texture } from \"./texture\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { type Nullable } from \"../../types\";\r\nimport { type AbstractEngine } from \"../../Engines/abstractEngine\";\r\n\r\nimport { type Scene } from \"../../scene\";\r\n\r\n/**\r\n * Raw texture can help creating a texture directly from an array of data.\r\n * This can be super useful if you either get the data from an uncompressed source or\r\n * if you wish to create your texture pixel by pixel.\r\n */\r\nexport class RawTexture extends Texture {\r\n private _waitingForData: boolean;\r\n /**\r\n * Instantiates a new RawTexture.\r\n * Raw texture can help creating a texture directly from an array of data.\r\n * This can be super useful if you either get the data from an uncompressed source or\r\n * if you wish to create your texture pixel by pixel.\r\n * @param data define the array of data to use to create the texture (null to create an empty texture)\r\n * @param width define the width of the texture\r\n * @param height define the height of the texture\r\n * @param format define the format of the data (RGB, RGBA... Engine.TEXTUREFORMAT_xxx)\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps define whether mip maps should be generated or not\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @param waitDataToBeReady If set to true Rawtexture will wait data to be set in order to be flaged as ready.\r\n * @param mipLevelCount defines the number of mip levels to allocate for the texture\r\n */\r\n constructor(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n /**\r\n * Define the format of the data (RGB, RGBA... Engine.TEXTUREFORMAT_xxx)\r\n */\r\n public format: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags?: number,\r\n useSRGBBuffer?: boolean,\r\n waitDataToBeReady?: boolean,\r\n mipLevelCount?: number\r\n ) {\r\n super(null, sceneOrEngine, !generateMipMaps, invertY, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, creationFlags);\r\n\r\n if (!this._engine) {\r\n return;\r\n }\r\n\r\n if (!this._engine._caps.textureFloatLinearFiltering && type === Constants.TEXTURETYPE_FLOAT) {\r\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n }\r\n if (!this._engine._caps.textureHalfFloatLinearFiltering && type === Constants.TEXTURETYPE_HALF_FLOAT) {\r\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n }\r\n\r\n this._texture = this._engine.createRawTexture(\r\n data,\r\n width,\r\n height,\r\n format,\r\n generateMipMaps,\r\n invertY,\r\n samplingMode,\r\n null,\r\n type,\r\n creationFlags ?? 0,\r\n useSRGBBuffer ?? false,\r\n mipLevelCount\r\n );\r\n\r\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._waitingForData = !!waitDataToBeReady && !data;\r\n }\r\n\r\n /**\r\n * Updates the texture underlying data.\r\n * @param data Define the new data of the texture\r\n */\r\n public update(data: ArrayBufferView): void {\r\n this.updateMipLevel(data, 0);\r\n }\r\n\r\n /**\r\n * Updates a specific mip level of the texture.\r\n * @param data The new data for the mip level\r\n * @param mipLevel The mip level to update (0 is the base level)\r\n */\r\n public updateMipLevel(data: ArrayBufferView, mipLevel: number): void {\r\n this._getEngine()!.updateRawTexture(this._texture, data, this._texture!.format, this._texture!.invertY, null, this._texture!.type, this._texture!._useSRGBBuffer, mipLevel);\r\n this._waitingForData = false;\r\n }\r\n\r\n /**\r\n * Clones the texture.\r\n * @returns the cloned texture\r\n */\r\n public override clone(): Texture {\r\n if (!this._texture) {\r\n return super.clone();\r\n }\r\n\r\n const rawTexture = new RawTexture(\r\n null,\r\n this.getSize().width,\r\n this.getSize().height,\r\n this.format,\r\n this.getScene(),\r\n this._texture.generateMipMaps,\r\n this._invertY,\r\n this.samplingMode,\r\n this._texture.type,\r\n this._texture._creationFlags,\r\n this._useSRGBBuffer\r\n );\r\n\r\n rawTexture._texture = this._texture;\r\n this._texture.incrementReferences();\r\n\r\n return rawTexture;\r\n }\r\n\r\n public override isReady(): boolean {\r\n return super.isReady() && !this._waitingForData;\r\n }\r\n\r\n /**\r\n * Creates a luminance texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @returns the luminance texture\r\n */\r\n public static CreateLuminanceTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_LUMINANCE, sceneOrEngine, generateMipMaps, invertY, samplingMode);\r\n }\r\n\r\n /**\r\n * Creates a luminance alpha texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @returns the luminance alpha texture\r\n */\r\n public static CreateLuminanceAlphaTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_LUMINANCE_ALPHA, sceneOrEngine, generateMipMaps, invertY, samplingMode);\r\n }\r\n\r\n /**\r\n * Creates an alpha texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @returns the alpha texture\r\n */\r\n public static CreateAlphaTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_ALPHA, sceneOrEngine, generateMipMaps, invertY, samplingMode);\r\n }\r\n\r\n /**\r\n * Creates a RGB texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @returns the RGB alpha texture\r\n */\r\n public static CreateRGBTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags: number = 0,\r\n useSRGBBuffer: boolean = false\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_RGB, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, creationFlags, useSRGBBuffer);\r\n }\r\n\r\n /**\r\n * Creates a RGBA texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @param waitDataToBeReady if set to true this will force texture to wait for data to be set before it is considered ready.\r\n * @returns the RGBA texture\r\n */\r\n public static CreateRGBATexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags: number = 0,\r\n useSRGBBuffer: boolean = false,\r\n waitDataToBeReady: boolean = false\r\n ): RawTexture {\r\n return new RawTexture(\r\n data,\r\n width,\r\n height,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n sceneOrEngine,\r\n generateMipMaps,\r\n invertY,\r\n samplingMode,\r\n type,\r\n creationFlags,\r\n useSRGBBuffer,\r\n waitDataToBeReady\r\n );\r\n }\r\n\r\n /**\r\n * Creates a RGBA storage texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @returns the RGBA texture\r\n */\r\n public static CreateRGBAStorageTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n useSRGBBuffer: boolean = false\r\n ): RawTexture {\r\n return new RawTexture(\r\n data,\r\n width,\r\n height,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n sceneOrEngine,\r\n generateMipMaps,\r\n invertY,\r\n samplingMode,\r\n type,\r\n Constants.TEXTURE_CREATIONFLAG_STORAGE,\r\n useSRGBBuffer\r\n );\r\n }\r\n\r\n /**\r\n * Creates a R texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @returns the R texture\r\n */\r\n public static CreateRTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_FLOAT\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_R, sceneOrEngine, generateMipMaps, invertY, samplingMode, type);\r\n }\r\n\r\n /**\r\n * Creates a R storage texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @returns the R texture\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static CreateRStorageTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_FLOAT\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_R, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, Constants.TEXTURE_CREATIONFLAG_STORAGE);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"rawTexture.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/rawTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { Texture } from \"./texture.pure\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { type Nullable } from \"../../types\";\r\nimport { type AbstractEngine } from \"../../Engines/abstractEngine\";\r\n\r\nimport { type Scene } from \"../../scene\";\r\n\r\n/**\r\n * Raw texture can help creating a texture directly from an array of data.\r\n * This can be super useful if you either get the data from an uncompressed source or\r\n * if you wish to create your texture pixel by pixel.\r\n */\r\nexport class RawTexture extends Texture {\r\n private _waitingForData: boolean;\r\n /**\r\n * Instantiates a new RawTexture.\r\n * Raw texture can help creating a texture directly from an array of data.\r\n * This can be super useful if you either get the data from an uncompressed source or\r\n * if you wish to create your texture pixel by pixel.\r\n * @param data define the array of data to use to create the texture (null to create an empty texture)\r\n * @param width define the width of the texture\r\n * @param height define the height of the texture\r\n * @param format define the format of the data (RGB, RGBA... Engine.TEXTUREFORMAT_xxx)\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps define whether mip maps should be generated or not\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @param waitDataToBeReady If set to true Rawtexture will wait data to be set in order to be flaged as ready.\r\n * @param mipLevelCount defines the number of mip levels to allocate for the texture\r\n */\r\n constructor(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n /**\r\n * Define the format of the data (RGB, RGBA... Engine.TEXTUREFORMAT_xxx)\r\n */\r\n public format: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags?: number,\r\n useSRGBBuffer?: boolean,\r\n waitDataToBeReady?: boolean,\r\n mipLevelCount?: number\r\n ) {\r\n super(null, sceneOrEngine, !generateMipMaps, invertY, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, creationFlags);\r\n\r\n if (!this._engine) {\r\n return;\r\n }\r\n\r\n if (!this._engine._caps.textureFloatLinearFiltering && type === Constants.TEXTURETYPE_FLOAT) {\r\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n }\r\n if (!this._engine._caps.textureHalfFloatLinearFiltering && type === Constants.TEXTURETYPE_HALF_FLOAT) {\r\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\r\n }\r\n\r\n this._texture = this._engine.createRawTexture(\r\n data,\r\n width,\r\n height,\r\n format,\r\n generateMipMaps,\r\n invertY,\r\n samplingMode,\r\n null,\r\n type,\r\n creationFlags ?? 0,\r\n useSRGBBuffer ?? false,\r\n mipLevelCount\r\n );\r\n\r\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._waitingForData = !!waitDataToBeReady && !data;\r\n }\r\n\r\n /**\r\n * Updates the texture underlying data.\r\n * @param data Define the new data of the texture\r\n */\r\n public update(data: ArrayBufferView): void {\r\n this.updateMipLevel(data, 0);\r\n }\r\n\r\n /**\r\n * Updates a specific mip level of the texture.\r\n * @param data The new data for the mip level\r\n * @param mipLevel The mip level to update (0 is the base level)\r\n */\r\n public updateMipLevel(data: ArrayBufferView, mipLevel: number): void {\r\n this._getEngine()!.updateRawTexture(this._texture, data, this._texture!.format, this._texture!.invertY, null, this._texture!.type, this._texture!._useSRGBBuffer, mipLevel);\r\n this._waitingForData = false;\r\n }\r\n\r\n /**\r\n * Clones the texture.\r\n * @returns the cloned texture\r\n */\r\n public override clone(): Texture {\r\n if (!this._texture) {\r\n return super.clone();\r\n }\r\n\r\n const rawTexture = new RawTexture(\r\n null,\r\n this.getSize().width,\r\n this.getSize().height,\r\n this.format,\r\n this.getScene(),\r\n this._texture.generateMipMaps,\r\n this._invertY,\r\n this.samplingMode,\r\n this._texture.type,\r\n this._texture._creationFlags,\r\n this._useSRGBBuffer\r\n );\r\n\r\n rawTexture._texture = this._texture;\r\n this._texture.incrementReferences();\r\n\r\n return rawTexture;\r\n }\r\n\r\n public override isReady(): boolean {\r\n return super.isReady() && !this._waitingForData;\r\n }\r\n\r\n /**\r\n * Creates a luminance texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @returns the luminance texture\r\n */\r\n public static CreateLuminanceTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_LUMINANCE, sceneOrEngine, generateMipMaps, invertY, samplingMode);\r\n }\r\n\r\n /**\r\n * Creates a luminance alpha texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @returns the luminance alpha texture\r\n */\r\n public static CreateLuminanceAlphaTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_LUMINANCE_ALPHA, sceneOrEngine, generateMipMaps, invertY, samplingMode);\r\n }\r\n\r\n /**\r\n * Creates an alpha texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @returns the alpha texture\r\n */\r\n public static CreateAlphaTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_ALPHA, sceneOrEngine, generateMipMaps, invertY, samplingMode);\r\n }\r\n\r\n /**\r\n * Creates a RGB texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @returns the RGB alpha texture\r\n */\r\n public static CreateRGBTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags: number = 0,\r\n useSRGBBuffer: boolean = false\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_RGB, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, creationFlags, useSRGBBuffer);\r\n }\r\n\r\n /**\r\n * Creates a RGBA texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @param waitDataToBeReady if set to true this will force texture to wait for data to be set before it is considered ready.\r\n * @returns the RGBA texture\r\n */\r\n public static CreateRGBATexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags: number = 0,\r\n useSRGBBuffer: boolean = false,\r\n waitDataToBeReady: boolean = false\r\n ): RawTexture {\r\n return new RawTexture(\r\n data,\r\n width,\r\n height,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n sceneOrEngine,\r\n generateMipMaps,\r\n invertY,\r\n samplingMode,\r\n type,\r\n creationFlags,\r\n useSRGBBuffer,\r\n waitDataToBeReady\r\n );\r\n }\r\n\r\n /**\r\n * Creates a RGBA storage texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\r\n * @returns the RGBA texture\r\n */\r\n public static CreateRGBAStorageTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n useSRGBBuffer: boolean = false\r\n ): RawTexture {\r\n return new RawTexture(\r\n data,\r\n width,\r\n height,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n sceneOrEngine,\r\n generateMipMaps,\r\n invertY,\r\n samplingMode,\r\n type,\r\n Constants.TEXTURE_CREATIONFLAG_STORAGE,\r\n useSRGBBuffer\r\n );\r\n }\r\n\r\n /**\r\n * Creates a R texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @returns the R texture\r\n */\r\n public static CreateRTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_FLOAT\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_R, sceneOrEngine, generateMipMaps, invertY, samplingMode, type);\r\n }\r\n\r\n /**\r\n * Creates a R storage texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param sceneOrEngine defines the scene or engine the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @returns the R texture\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public static CreateRStorageTexture(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n sceneOrEngine: Nullable<Scene | AbstractEngine>,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_FLOAT\r\n ): RawTexture {\r\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_R, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, Constants.TEXTURE_CREATIONFLAG_STORAGE);\r\n }\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { Texture } from "./texture.js";
1
+ import { Texture } from "./texture.pure.js";
2
2
  import { type Nullable } from "../../types.js";
3
3
  import { type Scene } from "../../scene.js";
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { Texture } from "./texture.js";
1
+ import { Texture } from "./texture.pure.js";
2
2
 
3
3
  /**
4
4
  * Class used to store 2D array textures containing user data
@@ -1 +1 @@
1
- {"version":3,"file":"rawTexture2DArray.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/rawTexture2DArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKpD;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAG1C;;OAEG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,YACI,IAA+B,EAC/B,KAAa,EACb,MAAc,EACd,KAAa;IACb,6CAA6C;IACtC,MAAc,EACrB,KAAY,EACZ,kBAA2B,IAAI,EAC/B,UAAmB,KAAK,EACxB,eAAuB,OAAO,CAAC,sBAAsB,EACrD,WAAW,GAAG,SAAS,CAAC,yBAAyB,EACjD,aAAsB,EACtB,aAAsB;QAEtB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QATvC,WAAM,GAAN,MAAM,CAAQ;QAWrB,IAAI,CAAC,QAAQ,GAAG,KAAK;aAChB,SAAS,EAAE;aACX,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;QAE/J,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAqB;QAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,IAAqB,EAAE,QAAgB;QACzD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,UAAU,EAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,iBAAiB,CAC3B,IAAqB,EACrB,KAAa,EACb,MAAc,EACd,KAAa,EACb,KAAY,EACZ,kBAA2B,IAAI,EAC/B,UAAmB,KAAK,EACxB,eAAuB,SAAS,CAAC,8BAA8B,EAC/D,OAAe,SAAS,CAAC,yBAAyB;QAElD,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,kBAAkB,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAChJ,CAAC;CACJ","sourcesContent":["import { Texture } from \"./texture\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { type Nullable } from \"../../types\";\r\n\r\nimport { type Scene } from \"../../scene\";\r\n\r\n/**\r\n * Class used to store 2D array textures containing user data\r\n */\r\nexport class RawTexture2DArray extends Texture {\r\n private _depth: number;\r\n\r\n /**\r\n * Gets the number of layers of the texture\r\n */\r\n public get depth() {\r\n return this._depth;\r\n }\r\n\r\n /**\r\n * Create a new RawTexture2DArray\r\n * @param data defines the data of the texture\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @param depth defines the number of layers of the texture\r\n * @param format defines the texture format to use\r\n * @param scene defines the hosting scene\r\n * @param generateMipMaps defines a boolean indicating if mip levels should be generated (true by default)\r\n * @param invertY defines if texture must be stored with Y axis inverted\r\n * @param samplingMode defines the sampling mode to use (Texture.TRILINEAR_SAMPLINGMODE by default)\r\n * @param textureType defines the texture Type (Engine.TEXTURETYPE_UNSIGNED_BYTE, Engine.TEXTURETYPE_FLOAT...)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param mipLevelCount defines the number of mip levels to allocate for the texture\r\n */\r\n constructor(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n depth: number,\r\n /** Gets or sets the texture format to use */\r\n public format: number,\r\n scene: Scene,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags?: number,\r\n mipLevelCount?: number\r\n ) {\r\n super(null, scene, !generateMipMaps, invertY);\r\n\r\n this._texture = scene\r\n .getEngine()\r\n .createRawTexture2DArray(data, width, height, depth, format, generateMipMaps, invertY, samplingMode, null, textureType, creationFlags ?? 0, mipLevelCount);\r\n\r\n this._depth = depth;\r\n this.is2DArray = true;\r\n }\r\n\r\n /**\r\n * Update the texture with new data\r\n * @param data defines the data to store in the texture\r\n */\r\n public update(data: ArrayBufferView): void {\r\n this.updateMipLevel(data, 0);\r\n }\r\n\r\n /**\r\n * Updates a specific mip level of the texture.\r\n * @param data The new data for the mip level\r\n * @param mipLevel The mip level to update (0 is the base level)\r\n */\r\n public updateMipLevel(data: ArrayBufferView, mipLevel: number): void {\r\n if (!this._texture) {\r\n return;\r\n }\r\n this._getEngine()!.updateRawTexture2DArray(this._texture, data, this._texture.format, this._texture.invertY, null, this._texture.type, mipLevel);\r\n }\r\n\r\n /**\r\n * Creates a RGBA texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param depth defines the number of layers of the texture\r\n * @param scene defines the scene the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @returns the RGBA texture\r\n */\r\n public static CreateRGBATexture(\r\n data: ArrayBufferView,\r\n width: number,\r\n height: number,\r\n depth: number,\r\n scene: Scene,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE\r\n ): RawTexture2DArray {\r\n return new RawTexture2DArray(data, width, height, depth, Constants.TEXTUREFORMAT_RGBA, scene, generateMipMaps, invertY, samplingMode, type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"rawTexture2DArray.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/rawTexture2DArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKpD;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAG1C;;OAEG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,YACI,IAA+B,EAC/B,KAAa,EACb,MAAc,EACd,KAAa;IACb,6CAA6C;IACtC,MAAc,EACrB,KAAY,EACZ,kBAA2B,IAAI,EAC/B,UAAmB,KAAK,EACxB,eAAuB,OAAO,CAAC,sBAAsB,EACrD,WAAW,GAAG,SAAS,CAAC,yBAAyB,EACjD,aAAsB,EACtB,aAAsB;QAEtB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QATvC,WAAM,GAAN,MAAM,CAAQ;QAWrB,IAAI,CAAC,QAAQ,GAAG,KAAK;aAChB,SAAS,EAAE;aACX,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;QAE/J,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAqB;QAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,IAAqB,EAAE,QAAgB;QACzD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,UAAU,EAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,iBAAiB,CAC3B,IAAqB,EACrB,KAAa,EACb,MAAc,EACd,KAAa,EACb,KAAY,EACZ,kBAA2B,IAAI,EAC/B,UAAmB,KAAK,EACxB,eAAuB,SAAS,CAAC,8BAA8B,EAC/D,OAAe,SAAS,CAAC,yBAAyB;QAElD,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,kBAAkB,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAChJ,CAAC;CACJ","sourcesContent":["import { Texture } from \"./texture.pure\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { type Nullable } from \"../../types\";\r\n\r\nimport { type Scene } from \"../../scene\";\r\n\r\n/**\r\n * Class used to store 2D array textures containing user data\r\n */\r\nexport class RawTexture2DArray extends Texture {\r\n private _depth: number;\r\n\r\n /**\r\n * Gets the number of layers of the texture\r\n */\r\n public get depth() {\r\n return this._depth;\r\n }\r\n\r\n /**\r\n * Create a new RawTexture2DArray\r\n * @param data defines the data of the texture\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @param depth defines the number of layers of the texture\r\n * @param format defines the texture format to use\r\n * @param scene defines the hosting scene\r\n * @param generateMipMaps defines a boolean indicating if mip levels should be generated (true by default)\r\n * @param invertY defines if texture must be stored with Y axis inverted\r\n * @param samplingMode defines the sampling mode to use (Texture.TRILINEAR_SAMPLINGMODE by default)\r\n * @param textureType defines the texture Type (Engine.TEXTURETYPE_UNSIGNED_BYTE, Engine.TEXTURETYPE_FLOAT...)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n * @param mipLevelCount defines the number of mip levels to allocate for the texture\r\n */\r\n constructor(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n depth: number,\r\n /** Gets or sets the texture format to use */\r\n public format: number,\r\n scene: Scene,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags?: number,\r\n mipLevelCount?: number\r\n ) {\r\n super(null, scene, !generateMipMaps, invertY);\r\n\r\n this._texture = scene\r\n .getEngine()\r\n .createRawTexture2DArray(data, width, height, depth, format, generateMipMaps, invertY, samplingMode, null, textureType, creationFlags ?? 0, mipLevelCount);\r\n\r\n this._depth = depth;\r\n this.is2DArray = true;\r\n }\r\n\r\n /**\r\n * Update the texture with new data\r\n * @param data defines the data to store in the texture\r\n */\r\n public update(data: ArrayBufferView): void {\r\n this.updateMipLevel(data, 0);\r\n }\r\n\r\n /**\r\n * Updates a specific mip level of the texture.\r\n * @param data The new data for the mip level\r\n * @param mipLevel The mip level to update (0 is the base level)\r\n */\r\n public updateMipLevel(data: ArrayBufferView, mipLevel: number): void {\r\n if (!this._texture) {\r\n return;\r\n }\r\n this._getEngine()!.updateRawTexture2DArray(this._texture, data, this._texture.format, this._texture.invertY, null, this._texture.type, mipLevel);\r\n }\r\n\r\n /**\r\n * Creates a RGBA texture from some data.\r\n * @param data Define the texture data\r\n * @param width Define the width of the texture\r\n * @param height Define the height of the texture\r\n * @param depth defines the number of layers of the texture\r\n * @param scene defines the scene the texture will belong to\r\n * @param generateMipMaps Define whether or not to create mip maps for the texture\r\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\r\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\r\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\r\n * @returns the RGBA texture\r\n */\r\n public static CreateRGBATexture(\r\n data: ArrayBufferView,\r\n width: number,\r\n height: number,\r\n depth: number,\r\n scene: Scene,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\r\n type: number = Constants.TEXTURETYPE_UNSIGNED_BYTE\r\n ): RawTexture2DArray {\r\n return new RawTexture2DArray(data, width, height, depth, Constants.TEXTUREFORMAT_RGBA, scene, generateMipMaps, invertY, samplingMode, type);\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type Scene } from "../../scene.js";
2
- import { Texture } from "./texture.js";
2
+ import { Texture } from "./texture.pure.js";
3
3
  import { type Nullable } from "../../types.js";
4
4
  /**
5
5
  * Class used to store 3D textures containing user data
@@ -1,4 +1,4 @@
1
- import { Texture } from "./texture.js";
1
+ import { Texture } from "./texture.pure.js";
2
2
 
3
3
  /**
4
4
  * Class used to store 3D textures containing user data
@@ -1 +1 @@
1
- {"version":3,"file":"rawTexture3D.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/rawTexture3D.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACrC;;OAEG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,YACI,IAA+B,EAC/B,KAAa,EACb,MAAc,EACd,KAAa;IACb,6CAA6C;IACtC,MAAc,EACrB,KAAY,EACZ,kBAA2B,IAAI,EAC/B,UAAmB,KAAK,EACxB,eAAuB,OAAO,CAAC,sBAAsB,EACrD,WAAW,GAAG,SAAS,CAAC,yBAAyB,EACjD,aAAsB;QAEtB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QARvC,WAAM,GAAN,MAAM,CAAQ;QAUrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAEnK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAqB;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,UAAU,EAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtI,CAAC;CACJ","sourcesContent":["import { type Scene } from \"../../scene\";\r\nimport { Texture } from \"./texture\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { type Nullable } from \"../../types\";\r\n/**\r\n * Class used to store 3D textures containing user data\r\n */\r\nexport class RawTexture3D extends Texture {\r\n /**\r\n * Gets the width of the texture\r\n */\r\n public get width(): number {\r\n return this._texture ? this._texture.width : 0;\r\n }\r\n\r\n /**\r\n * Gets the height of the texture\r\n */\r\n public get height(): number {\r\n return this._texture ? this._texture.height : 0;\r\n }\r\n\r\n /**\r\n * Gets the depth of the texture\r\n */\r\n public get depth(): number {\r\n return this._texture ? this._texture.depth : 0;\r\n }\r\n\r\n /**\r\n * Create a new RawTexture3D\r\n * @param data defines the data of the texture\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @param depth defines the depth of the texture\r\n * @param format defines the texture format to use\r\n * @param scene defines the hosting scene\r\n * @param generateMipMaps defines a boolean indicating if mip levels should be generated (true by default)\r\n * @param invertY defines if texture must be stored with Y axis inverted\r\n * @param samplingMode defines the sampling mode to use (Texture.TRILINEAR_SAMPLINGMODE by default)\r\n * @param textureType defines the texture Type (Engine.TEXTURETYPE_UNSIGNED_BYTE, Engine.TEXTURETYPE_FLOAT...)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n */\r\n constructor(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n depth: number,\r\n /** Gets or sets the texture format to use */\r\n public format: number,\r\n scene: Scene,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags?: number\r\n ) {\r\n super(null, scene, !generateMipMaps, invertY);\r\n\r\n this._texture = scene.getEngine().createRawTexture3D(data, width, height, depth, format, generateMipMaps, invertY, samplingMode, null, textureType, creationFlags);\r\n\r\n this.is3D = true;\r\n }\r\n\r\n /**\r\n * Update the texture with new data\r\n * @param data defines the data to store in the texture\r\n */\r\n public update(data: ArrayBufferView): void {\r\n if (!this._texture) {\r\n return;\r\n }\r\n this._getEngine()!.updateRawTexture3D(this._texture, data, this._texture.format, this._texture.invertY, null, this._texture.type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"rawTexture3D.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/rawTexture3D.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACrC;;OAEG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,YACI,IAA+B,EAC/B,KAAa,EACb,MAAc,EACd,KAAa;IACb,6CAA6C;IACtC,MAAc,EACrB,KAAY,EACZ,kBAA2B,IAAI,EAC/B,UAAmB,KAAK,EACxB,eAAuB,OAAO,CAAC,sBAAsB,EACrD,WAAW,GAAG,SAAS,CAAC,yBAAyB,EACjD,aAAsB;QAEtB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QARvC,WAAM,GAAN,MAAM,CAAQ;QAUrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAEnK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAqB;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,UAAU,EAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtI,CAAC;CACJ","sourcesContent":["import { type Scene } from \"../../scene\";\r\nimport { Texture } from \"./texture.pure\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { type Nullable } from \"../../types\";\r\n/**\r\n * Class used to store 3D textures containing user data\r\n */\r\nexport class RawTexture3D extends Texture {\r\n /**\r\n * Gets the width of the texture\r\n */\r\n public get width(): number {\r\n return this._texture ? this._texture.width : 0;\r\n }\r\n\r\n /**\r\n * Gets the height of the texture\r\n */\r\n public get height(): number {\r\n return this._texture ? this._texture.height : 0;\r\n }\r\n\r\n /**\r\n * Gets the depth of the texture\r\n */\r\n public get depth(): number {\r\n return this._texture ? this._texture.depth : 0;\r\n }\r\n\r\n /**\r\n * Create a new RawTexture3D\r\n * @param data defines the data of the texture\r\n * @param width defines the width of the texture\r\n * @param height defines the height of the texture\r\n * @param depth defines the depth of the texture\r\n * @param format defines the texture format to use\r\n * @param scene defines the hosting scene\r\n * @param generateMipMaps defines a boolean indicating if mip levels should be generated (true by default)\r\n * @param invertY defines if texture must be stored with Y axis inverted\r\n * @param samplingMode defines the sampling mode to use (Texture.TRILINEAR_SAMPLINGMODE by default)\r\n * @param textureType defines the texture Type (Engine.TEXTURETYPE_UNSIGNED_BYTE, Engine.TEXTURETYPE_FLOAT...)\r\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\r\n */\r\n constructor(\r\n data: Nullable<ArrayBufferView>,\r\n width: number,\r\n height: number,\r\n depth: number,\r\n /** Gets or sets the texture format to use */\r\n public format: number,\r\n scene: Scene,\r\n generateMipMaps: boolean = true,\r\n invertY: boolean = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n creationFlags?: number\r\n ) {\r\n super(null, scene, !generateMipMaps, invertY);\r\n\r\n this._texture = scene.getEngine().createRawTexture3D(data, width, height, depth, format, generateMipMaps, invertY, samplingMode, null, textureType, creationFlags);\r\n\r\n this.is3D = true;\r\n }\r\n\r\n /**\r\n * Update the texture with new data\r\n * @param data defines the data to store in the texture\r\n */\r\n public update(data: ArrayBufferView): void {\r\n if (!this._texture) {\r\n return;\r\n }\r\n this._getEngine()!.updateRawTexture3D(this._texture, data, this._texture.format, this._texture.invertY, null, this._texture.type);\r\n }\r\n}\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import { type Scene } from "../../scene.js";
2
2
  import { Plane } from "../../Maths/math.plane.js";
3
- import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTexture.js";
3
+ import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTexture.pure.js";
4
4
  /**
5
5
  * Creates a refraction texture used by refraction channel of the standard material.
6
6
  * It is like a mirror but to see through a material.
@@ -1,5 +1,5 @@
1
1
  import { Plane } from "../../Maths/math.plane.js";
2
- import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTexture.js";
2
+ import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTexture.pure.js";
3
3
  /**
4
4
  * Creates a refraction texture used by refraction channel of the standard material.
5
5
  * It is like a mirror but to see through a material.
@@ -1 +1 @@
1
- {"version":3,"file":"refractionTexture.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/refractionTexture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAatD;;;;;;;;OAQG;IACH,YAAY,IAAY,EAAE,IAAY,EAAE,KAAa,EAAE,eAAyB;QAC5E,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QAtBpD;;;;WAIG;QACI,oBAAe,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/C;;WAEG;QACI,UAAK,GAAG,GAAG,CAAC;QAcf,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,QAAQ,EAAG,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,QAAQ,EAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACa,KAAK;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAErG,eAAe;QACf,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACpC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAE9B,qBAAqB;QACrB,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAE9B,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;OAGG;IACa,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAE9C,mBAAmB,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACjE,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvC,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ","sourcesContent":["import { type Scene } from \"../../scene\";\r\nimport { Plane } from \"../../Maths/math.plane\";\r\nimport { RenderTargetTexture } from \"../../Materials/Textures/renderTargetTexture\";\r\n/**\r\n * Creates a refraction texture used by refraction channel of the standard material.\r\n * It is like a mirror but to see through a material.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#refractiontexture\r\n */\r\nexport class RefractionTexture extends RenderTargetTexture {\r\n /**\r\n * Define the reflection plane we want to use. The refractionPlane is usually set to the constructed refractor.\r\n * It is possible to directly set the refractionPlane by directly using a Plane(a, b, c, d) where a, b and c give the plane normal vector (a, b, c) and d is a scalar displacement from the refractionPlane to the origin. However in all but the very simplest of situations it is more straight forward to set it to the refractor as stated in the doc.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#refraction\r\n */\r\n public refractionPlane = new Plane(0, 1, 0, 1);\r\n\r\n /**\r\n * Define how deep under the surface we should see.\r\n */\r\n public depth = 2.0;\r\n\r\n /**\r\n * Creates a refraction texture used by refraction channel of the standard material.\r\n * It is like a mirror but to see through a material.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#refraction\r\n * @param name Define the texture name\r\n * @param size Define the size of the underlying texture\r\n * @param scene Define the scene the refraction belongs to\r\n * @param generateMipMaps Define if we need to generate mips level for the refraction\r\n */\r\n constructor(name: string, size: number, scene?: Scene, generateMipMaps?: boolean) {\r\n super(name, size, scene, generateMipMaps, true);\r\n\r\n this.onBeforeRenderObservable.add(() => {\r\n this.getScene()!.clipPlane = this.refractionPlane;\r\n });\r\n\r\n this.onAfterRenderObservable.add(() => {\r\n this.getScene()!.clipPlane = null;\r\n });\r\n }\r\n\r\n /**\r\n * Clone the refraction texture.\r\n * @returns the cloned texture\r\n */\r\n public override clone(): RefractionTexture {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return this;\r\n }\r\n\r\n const textureSize = this.getSize();\r\n const newTexture = new RefractionTexture(this.name, textureSize.width, scene, this._generateMipMaps);\r\n\r\n // Base texture\r\n newTexture.hasAlpha = this.hasAlpha;\r\n newTexture.level = this.level;\r\n\r\n // Refraction Texture\r\n newTexture.refractionPlane = this.refractionPlane.clone();\r\n if (this.renderList) {\r\n newTexture.renderList = this.renderList.slice(0);\r\n }\r\n newTexture.depth = this.depth;\r\n\r\n return newTexture;\r\n }\r\n\r\n /**\r\n * Serialize the texture to a JSON representation you could use in Parse later on\r\n * @returns the serialized JSON representation\r\n */\r\n public override 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.mirrorPlane = this.refractionPlane.asArray();\r\n serializationObject.depth = this.depth;\r\n\r\n return serializationObject;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"refractionTexture.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/refractionTexture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AACxF;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAatD;;;;;;;;OAQG;IACH,YAAY,IAAY,EAAE,IAAY,EAAE,KAAa,EAAE,eAAyB;QAC5E,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QAtBpD;;;;WAIG;QACI,oBAAe,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/C;;WAEG;QACI,UAAK,GAAG,GAAG,CAAC;QAcf,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,QAAQ,EAAG,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,QAAQ,EAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACa,KAAK;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAErG,eAAe;QACf,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACpC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAE9B,qBAAqB;QACrB,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAE9B,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;OAGG;IACa,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAE9C,mBAAmB,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACjE,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvC,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ","sourcesContent":["import { type Scene } from \"../../scene\";\r\nimport { Plane } from \"../../Maths/math.plane\";\r\nimport { RenderTargetTexture } from \"../../Materials/Textures/renderTargetTexture.pure\";\r\n/**\r\n * Creates a refraction texture used by refraction channel of the standard material.\r\n * It is like a mirror but to see through a material.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#refractiontexture\r\n */\r\nexport class RefractionTexture extends RenderTargetTexture {\r\n /**\r\n * Define the reflection plane we want to use. The refractionPlane is usually set to the constructed refractor.\r\n * It is possible to directly set the refractionPlane by directly using a Plane(a, b, c, d) where a, b and c give the plane normal vector (a, b, c) and d is a scalar displacement from the refractionPlane to the origin. However in all but the very simplest of situations it is more straight forward to set it to the refractor as stated in the doc.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#refraction\r\n */\r\n public refractionPlane = new Plane(0, 1, 0, 1);\r\n\r\n /**\r\n * Define how deep under the surface we should see.\r\n */\r\n public depth = 2.0;\r\n\r\n /**\r\n * Creates a refraction texture used by refraction channel of the standard material.\r\n * It is like a mirror but to see through a material.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#refraction\r\n * @param name Define the texture name\r\n * @param size Define the size of the underlying texture\r\n * @param scene Define the scene the refraction belongs to\r\n * @param generateMipMaps Define if we need to generate mips level for the refraction\r\n */\r\n constructor(name: string, size: number, scene?: Scene, generateMipMaps?: boolean) {\r\n super(name, size, scene, generateMipMaps, true);\r\n\r\n this.onBeforeRenderObservable.add(() => {\r\n this.getScene()!.clipPlane = this.refractionPlane;\r\n });\r\n\r\n this.onAfterRenderObservable.add(() => {\r\n this.getScene()!.clipPlane = null;\r\n });\r\n }\r\n\r\n /**\r\n * Clone the refraction texture.\r\n * @returns the cloned texture\r\n */\r\n public override clone(): RefractionTexture {\r\n const scene = this.getScene();\r\n\r\n if (!scene) {\r\n return this;\r\n }\r\n\r\n const textureSize = this.getSize();\r\n const newTexture = new RefractionTexture(this.name, textureSize.width, scene, this._generateMipMaps);\r\n\r\n // Base texture\r\n newTexture.hasAlpha = this.hasAlpha;\r\n newTexture.level = this.level;\r\n\r\n // Refraction Texture\r\n newTexture.refractionPlane = this.refractionPlane.clone();\r\n if (this.renderList) {\r\n newTexture.renderList = this.renderList.slice(0);\r\n }\r\n newTexture.depth = this.depth;\r\n\r\n return newTexture;\r\n }\r\n\r\n /**\r\n * Serialize the texture to a JSON representation you could use in Parse later on\r\n * @returns the serialized JSON representation\r\n */\r\n public override 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.mirrorPlane = this.refractionPlane.asArray();\r\n serializationObject.depth = this.depth;\r\n\r\n return serializationObject;\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type Scene } from "../../scene.js";
2
- import { ProceduralTexture } from "./Procedurals/proceduralTexture.js";
2
+ import { ProceduralTexture } from "./Procedurals/proceduralTexture.pure.js";
3
3
  import { type BaseTexture } from "./baseTexture.js";
4
4
  import { type TextureSize } from "./textureCreationOptions.js";
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { ProceduralTexture } from "./Procedurals/proceduralTexture.js";
1
+ import { ProceduralTexture } from "./Procedurals/proceduralTexture.pure.js";
2
2
 
3
3
  const _ShaderName = "textureMerger";
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"textureMerger.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/textureMerger.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Scene } from \"../../scene\";\nimport { type IProceduralTextureCreationOptions } from \"core/Materials/Textures/Procedurals/proceduralTexture\";\nimport { ProceduralTexture } from \"./Procedurals/proceduralTexture\";\nimport { type BaseTexture } from \"./baseTexture\";\nimport { type TextureSize } from \"./textureCreationOptions\";\nimport { ShaderLanguage } from \"core/Materials/shaderLanguage\";\nimport { Constants } from \"../../Engines/constants\";\nimport { type Texture } from \"./texture\";\n\n/**\n * Configuration for a texture input source\n */\nexport interface ITextureChannelInput {\n /** The texture to use as input */\n texture: BaseTexture;\n /** Source channel to read from (0=R, 1=G, 2=B, 3=A) */\n sourceChannel: number;\n}\n\n/**\n * Configuration for a constant value input source\n */\nexport interface IConstantChannelInput {\n /** Constant value between 0.0 and 1.0 */\n value: number;\n}\n\n/**\n * Union type for channel input sources\n */\nexport type ChannelInput = ITextureChannelInput | IConstantChannelInput;\n\n/**\n * Configuration for texture merging operation\n */\nexport interface ITextureMergeConfiguration {\n /** Configuration for red output channel */\n red: ChannelInput;\n /** Configuration for green output channel (optional, defaults to 0) */\n green?: ChannelInput;\n /** Configuration for blue output channel (optional, defaults to 0) */\n blue?: ChannelInput;\n /** Configuration for alpha output channel (optional, defaults to 1) */\n alpha?: ChannelInput;\n /** Output texture size. If not specified, uses the largest input texture size */\n outputSize?: TextureSize;\n /** Whether to generate mipmaps for the output texture */\n generateMipMaps?: boolean;\n}\n\nconst _ShaderName = \"textureMerger\";\n\n/**\n * @internal\n * Check if a channel input is a texture input\n * @param input The channel input to check\n * @returns True if the input is a texture input, false otherwise\n */\nfunction IsTextureInput(input: ChannelInput): input is ITextureChannelInput {\n return \"texture\" in input;\n}\n\n/**\n * @internal\n * Check if a channel input is a constant input\n * @param input The channel input to check\n * @returns True if the input is a constant input, false otherwise\n */\nfunction IsConstantInput(input: ChannelInput): input is IConstantChannelInput {\n return \"value\" in input;\n}\n\n/**\n * @internal\n * Copy texture transformation properties from one texture to another\n * @param source The source texture\n * @param destination The destination texture\n */\nfunction CopyTextureTransform(source: Texture, destination: Texture) {\n destination.uOffset = source.uOffset;\n destination.vOffset = source.vOffset;\n destination.uScale = source.uScale;\n destination.vScale = source.vScale;\n destination.uAng = source.uAng;\n destination.vAng = source.vAng;\n destination.wAng = source.wAng;\n destination.uRotationCenter = source.uRotationCenter;\n destination.vRotationCenter = source.vRotationCenter;\n}\n\n/**\n * @internal\n * Merge multiple texture channels into a single texture\n * @param name Name for the resulting texture\n * @param config Merge configuration\n * @param scene Scene to create the texture in\n * @returns The merged texture\n */\nexport async function MergeTexturesAsync(name: string, config: ITextureMergeConfiguration, scene: Scene): Promise<ProceduralTexture> {\n const channels = [config.red, config.green, config.blue, config.alpha];\n const textureInputs: BaseTexture[] = [];\n const textureInputMap: number[] = []; // Maps channel index to texture input index (-1 for constants)\n\n // Collect unique textures and validate inputs\n for (let channelIndex = 0; channelIndex < 4; channelIndex++) {\n const channel = channels[channelIndex];\n if (channel) {\n if (IsTextureInput(channel)) {\n // Validate source channel\n if (channel.sourceChannel < 0 || channel.sourceChannel > 3) {\n throw new Error(\"Source channel must be between 0 and 3 (R, G, B, A)\");\n }\n\n // Find or add texture to inputs\n let textureIndex = textureInputs.indexOf(channel.texture);\n if (textureIndex === -1) {\n textureIndex = textureInputs.length;\n textureInputs.push(channel.texture);\n }\n textureInputMap[channelIndex] = textureIndex;\n } else if (IsConstantInput(channel)) {\n // Validate constant value\n if (channel.value < 0 || channel.value > 1) {\n throw new Error(\"Constant value must be between 0.0 and 1.0\");\n }\n textureInputMap[channelIndex] = -1;\n } else {\n throw new Error(\"Invalid channel input configuration\");\n }\n } else {\n textureInputMap[channelIndex] = -1;\n }\n }\n\n // Determine output size\n let outputSize = config.outputSize;\n if (!outputSize && textureInputs.length > 0) {\n // Use the largest texture size\n let maxSize = 0;\n for (const texture of textureInputs) {\n const size = texture.getSize();\n const currentSize = Math.max(size.width, size.height);\n if (currentSize > maxSize) {\n maxSize = currentSize;\n outputSize = size.width === size.height ? maxSize : size;\n }\n }\n }\n outputSize = outputSize || 512; // Fallback size\n\n // Generate shader defines\n const defines: string[] = [];\n const usedTextures = new Set<number>();\n\n for (let channelIndex = 0; channelIndex < 4; channelIndex++) {\n const channel = channels[channelIndex];\n const channelName = [\"RED\", \"GREEN\", \"BLUE\", \"ALPHA\"][channelIndex];\n\n if (channel && IsTextureInput(channel)) {\n defines.push(`${channelName}_FROM_TEXTURE`);\n const textureIndex = textureInputMap[channelIndex];\n usedTextures.add(textureIndex);\n }\n }\n\n // Add texture defines for used textures\n usedTextures.forEach((textureIndex) => {\n defines.push(`USE_TEXTURE${textureIndex}`);\n });\n\n // Create the procedural texture\n const outputTextureOptions: IProceduralTextureCreationOptions = {\n type: Constants.TEXTURETYPE_HALF_FLOAT,\n format: Constants.TEXTUREFORMAT_RGBA,\n samplingMode: Constants.TEXTURE_NEAREST_SAMPLINGMODE,\n generateDepthBuffer: false,\n generateMipMaps: false,\n shaderLanguage: scene.getEngine().isWebGPU ? ShaderLanguage.WGSL : ShaderLanguage.GLSL,\n extraInitializationsAsync: async () => {\n if (scene.getEngine().isWebGPU) {\n await Promise.all([import(\"../../ShadersWGSL/textureMerger.fragment\")]);\n } else {\n await Promise.all([import(\"../../Shaders/textureMerger.fragment\")]);\n }\n },\n skipSceneRegistration: true,\n };\n const proceduralTexture = new ProceduralTexture(name, outputSize, _ShaderName, scene, outputTextureOptions);\n proceduralTexture.refreshRate = -1; // Do not auto-refresh\n\n // Set the defines\n proceduralTexture.defines = defines.length > 0 ? \"#define \" + defines.join(\"\\n#define \") + \"\\n\" : \"\";\n\n // Set up texture inputs\n for (let i = 0; i < textureInputs.length; i++) {\n CopyTextureTransform(textureInputs[i] as Texture, proceduralTexture);\n proceduralTexture.setTexture(`inputTexture${i}`, textureInputs[i]);\n }\n\n // Set up channel configuration\n for (let channelIndex = 0; channelIndex < 4; channelIndex++) {\n const channel = channels[channelIndex];\n const channelName = [\"red\", \"green\", \"blue\", \"alpha\"][channelIndex];\n\n if (channel && IsTextureInput(channel)) {\n const textureIndex = textureInputMap[channelIndex];\n proceduralTexture.setInt(`${channelName}TextureIndex`, textureIndex);\n proceduralTexture.setInt(`${channelName}SourceChannel`, channel.sourceChannel);\n } else {\n // Use constant value (either provided or default)\n let constantValue: number;\n if (channel && IsConstantInput(channel)) {\n constantValue = channel.value;\n } else {\n // Use default values: 0 for RGB, 1 for alpha\n constantValue = channelIndex === 3 ? 1.0 : 0.0;\n }\n proceduralTexture.setFloat(`${channelName}ConstantValue`, constantValue);\n }\n }\n\n return await new Promise<ProceduralTexture>((resolve, reject) => {\n // Compile and render\n proceduralTexture.executeWhenReady(() => {\n try {\n proceduralTexture.render();\n resolve(proceduralTexture);\n } catch (error) {\n reject(error instanceof Error ? error : new Error(String(error)));\n }\n });\n });\n}\n\n/**\n * @internal\n * Create a texture input configuration\n * @param texture The texture to read from\n * @param sourceChannel The channel to read (0=R, 1=G, 2=B, 3=A)\n * @returns Texture channel input configuration\n */\nexport function CreateTextureInput(texture: BaseTexture, sourceChannel: number): ITextureChannelInput {\n return { texture, sourceChannel };\n}\n\n/**\n * @internal\n * Create a constant value input configuration\n * @param value The constant value (0.0-1.0)\n * @returns Constant channel input configuration\n */\nexport function CreateConstantInput(value: number): IConstantChannelInput {\n return { value };\n}\n\n/**\n * @internal\n * Create a simple RGBA channel packing configuration\n * @param red Input for red channel\n * @param green Input for green channel (optional, defaults to 0)\n * @param blue Input for blue channel (optional, defaults to 0)\n * @param alpha Input for alpha channel (optional, defaults to 1)\n * @returns Texture merge configuration\n */\nexport function CreateRGBAConfiguration(red: ChannelInput, green?: ChannelInput, blue?: ChannelInput, alpha?: ChannelInput): ITextureMergeConfiguration {\n return { red, green, blue, alpha };\n}\n"]}
1
+ {"version":3,"file":"textureMerger.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/textureMerger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAIzE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AA4CpD,MAAM,WAAW,GAAG,eAAe,CAAC;AAEpC;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAmB;IACvC,OAAO,SAAS,IAAI,KAAK,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,KAAmB;IACxC,OAAO,OAAO,IAAI,KAAK,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,MAAe,EAAE,WAAoB;IAC/D,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACrC,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACrC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,WAAW,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IACrD,WAAW,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,MAAkC,EAAE,KAAY;IACnG,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,MAAM,eAAe,GAAa,EAAE,CAAC,CAAC,+DAA+D;IAErG,8CAA8C;IAC9C,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,0BAA0B;gBAC1B,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;oBACzD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBAC3E,CAAC;gBAED,gCAAgC;gBAChC,IAAI,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1D,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;oBACtB,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;oBACpC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;gBACD,eAAe,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;YACjD,CAAC;iBAAM,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,0BAA0B;gBAC1B,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAClE,CAAC;gBACD,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IAED,wBAAwB;IACxB,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,+BAA+B;QAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,WAAW,GAAG,OAAO,EAAE,CAAC;gBACxB,OAAO,GAAG,WAAW,CAAC;gBACtB,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,CAAC;QACL,CAAC;IACL,CAAC;IACD,UAAU,GAAG,UAAU,IAAI,GAAG,CAAC,CAAC,gBAAgB;IAEhD,0BAA0B;IAC1B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;QAEpE,IAAI,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,eAAe,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACnD,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QAClC,OAAO,CAAC,IAAI,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,gCAAgC;IAChC,MAAM,oBAAoB,GAAsC;QAC5D,IAAI,EAAE,SAAS,CAAC,sBAAsB;QACtC,MAAM,EAAE,SAAS,CAAC,kBAAkB;QACpC,YAAY,EAAE,SAAS,CAAC,4BAA4B;QACpD,mBAAmB,EAAE,KAAK;QAC1B,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,6BAAqB,CAAC,4BAAoB;QACtF,yBAAyB,EAAE,KAAK,IAAI,EAAE;YAClC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACJ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC;QACL,CAAC;QACD,qBAAqB,EAAE,IAAI;KAC9B,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAC5G,iBAAiB,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB;IAE1D,kBAAkB;IAClB,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAErG,wBAAwB;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAY,EAAE,iBAAiB,CAAC,CAAC;QACrE,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,+BAA+B;IAC/B,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;QAEpE,IAAI,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACnD,iBAAiB,CAAC,MAAM,CAAC,GAAG,WAAW,cAAc,EAAE,YAAY,CAAC,CAAC;YACrE,iBAAiB,CAAC,MAAM,CAAC,GAAG,WAAW,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACJ,kDAAkD;YAClD,IAAI,aAAqB,CAAC;YAC1B,IAAI,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,6CAA6C;gBAC7C,aAAa,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACnD,CAAC;YACD,iBAAiB,CAAC,QAAQ,CAAC,GAAG,WAAW,eAAe,EAAE,aAAa,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IAED,OAAO,MAAM,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5D,qBAAqB;QACrB,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC;gBACD,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoB,EAAE,aAAqB;IAC1E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC7C,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAiB,EAAE,KAAoB,EAAE,IAAmB,EAAE,KAAoB;IACtH,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC","sourcesContent":["import { type Scene } from \"../../scene\";\nimport { type IProceduralTextureCreationOptions } from \"core/Materials/Textures/Procedurals/proceduralTexture\";\nimport { ProceduralTexture } from \"./Procedurals/proceduralTexture.pure\";\nimport { type BaseTexture } from \"./baseTexture\";\nimport { type TextureSize } from \"./textureCreationOptions\";\nimport { ShaderLanguage } from \"core/Materials/shaderLanguage\";\nimport { Constants } from \"../../Engines/constants\";\nimport { type Texture } from \"./texture\";\n\n/**\n * Configuration for a texture input source\n */\nexport interface ITextureChannelInput {\n /** The texture to use as input */\n texture: BaseTexture;\n /** Source channel to read from (0=R, 1=G, 2=B, 3=A) */\n sourceChannel: number;\n}\n\n/**\n * Configuration for a constant value input source\n */\nexport interface IConstantChannelInput {\n /** Constant value between 0.0 and 1.0 */\n value: number;\n}\n\n/**\n * Union type for channel input sources\n */\nexport type ChannelInput = ITextureChannelInput | IConstantChannelInput;\n\n/**\n * Configuration for texture merging operation\n */\nexport interface ITextureMergeConfiguration {\n /** Configuration for red output channel */\n red: ChannelInput;\n /** Configuration for green output channel (optional, defaults to 0) */\n green?: ChannelInput;\n /** Configuration for blue output channel (optional, defaults to 0) */\n blue?: ChannelInput;\n /** Configuration for alpha output channel (optional, defaults to 1) */\n alpha?: ChannelInput;\n /** Output texture size. If not specified, uses the largest input texture size */\n outputSize?: TextureSize;\n /** Whether to generate mipmaps for the output texture */\n generateMipMaps?: boolean;\n}\n\nconst _ShaderName = \"textureMerger\";\n\n/**\n * @internal\n * Check if a channel input is a texture input\n * @param input The channel input to check\n * @returns True if the input is a texture input, false otherwise\n */\nfunction IsTextureInput(input: ChannelInput): input is ITextureChannelInput {\n return \"texture\" in input;\n}\n\n/**\n * @internal\n * Check if a channel input is a constant input\n * @param input The channel input to check\n * @returns True if the input is a constant input, false otherwise\n */\nfunction IsConstantInput(input: ChannelInput): input is IConstantChannelInput {\n return \"value\" in input;\n}\n\n/**\n * @internal\n * Copy texture transformation properties from one texture to another\n * @param source The source texture\n * @param destination The destination texture\n */\nfunction CopyTextureTransform(source: Texture, destination: Texture) {\n destination.uOffset = source.uOffset;\n destination.vOffset = source.vOffset;\n destination.uScale = source.uScale;\n destination.vScale = source.vScale;\n destination.uAng = source.uAng;\n destination.vAng = source.vAng;\n destination.wAng = source.wAng;\n destination.uRotationCenter = source.uRotationCenter;\n destination.vRotationCenter = source.vRotationCenter;\n}\n\n/**\n * @internal\n * Merge multiple texture channels into a single texture\n * @param name Name for the resulting texture\n * @param config Merge configuration\n * @param scene Scene to create the texture in\n * @returns The merged texture\n */\nexport async function MergeTexturesAsync(name: string, config: ITextureMergeConfiguration, scene: Scene): Promise<ProceduralTexture> {\n const channels = [config.red, config.green, config.blue, config.alpha];\n const textureInputs: BaseTexture[] = [];\n const textureInputMap: number[] = []; // Maps channel index to texture input index (-1 for constants)\n\n // Collect unique textures and validate inputs\n for (let channelIndex = 0; channelIndex < 4; channelIndex++) {\n const channel = channels[channelIndex];\n if (channel) {\n if (IsTextureInput(channel)) {\n // Validate source channel\n if (channel.sourceChannel < 0 || channel.sourceChannel > 3) {\n throw new Error(\"Source channel must be between 0 and 3 (R, G, B, A)\");\n }\n\n // Find or add texture to inputs\n let textureIndex = textureInputs.indexOf(channel.texture);\n if (textureIndex === -1) {\n textureIndex = textureInputs.length;\n textureInputs.push(channel.texture);\n }\n textureInputMap[channelIndex] = textureIndex;\n } else if (IsConstantInput(channel)) {\n // Validate constant value\n if (channel.value < 0 || channel.value > 1) {\n throw new Error(\"Constant value must be between 0.0 and 1.0\");\n }\n textureInputMap[channelIndex] = -1;\n } else {\n throw new Error(\"Invalid channel input configuration\");\n }\n } else {\n textureInputMap[channelIndex] = -1;\n }\n }\n\n // Determine output size\n let outputSize = config.outputSize;\n if (!outputSize && textureInputs.length > 0) {\n // Use the largest texture size\n let maxSize = 0;\n for (const texture of textureInputs) {\n const size = texture.getSize();\n const currentSize = Math.max(size.width, size.height);\n if (currentSize > maxSize) {\n maxSize = currentSize;\n outputSize = size.width === size.height ? maxSize : size;\n }\n }\n }\n outputSize = outputSize || 512; // Fallback size\n\n // Generate shader defines\n const defines: string[] = [];\n const usedTextures = new Set<number>();\n\n for (let channelIndex = 0; channelIndex < 4; channelIndex++) {\n const channel = channels[channelIndex];\n const channelName = [\"RED\", \"GREEN\", \"BLUE\", \"ALPHA\"][channelIndex];\n\n if (channel && IsTextureInput(channel)) {\n defines.push(`${channelName}_FROM_TEXTURE`);\n const textureIndex = textureInputMap[channelIndex];\n usedTextures.add(textureIndex);\n }\n }\n\n // Add texture defines for used textures\n usedTextures.forEach((textureIndex) => {\n defines.push(`USE_TEXTURE${textureIndex}`);\n });\n\n // Create the procedural texture\n const outputTextureOptions: IProceduralTextureCreationOptions = {\n type: Constants.TEXTURETYPE_HALF_FLOAT,\n format: Constants.TEXTUREFORMAT_RGBA,\n samplingMode: Constants.TEXTURE_NEAREST_SAMPLINGMODE,\n generateDepthBuffer: false,\n generateMipMaps: false,\n shaderLanguage: scene.getEngine().isWebGPU ? ShaderLanguage.WGSL : ShaderLanguage.GLSL,\n extraInitializationsAsync: async () => {\n if (scene.getEngine().isWebGPU) {\n await Promise.all([import(\"../../ShadersWGSL/textureMerger.fragment\")]);\n } else {\n await Promise.all([import(\"../../Shaders/textureMerger.fragment\")]);\n }\n },\n skipSceneRegistration: true,\n };\n const proceduralTexture = new ProceduralTexture(name, outputSize, _ShaderName, scene, outputTextureOptions);\n proceduralTexture.refreshRate = -1; // Do not auto-refresh\n\n // Set the defines\n proceduralTexture.defines = defines.length > 0 ? \"#define \" + defines.join(\"\\n#define \") + \"\\n\" : \"\";\n\n // Set up texture inputs\n for (let i = 0; i < textureInputs.length; i++) {\n CopyTextureTransform(textureInputs[i] as Texture, proceduralTexture);\n proceduralTexture.setTexture(`inputTexture${i}`, textureInputs[i]);\n }\n\n // Set up channel configuration\n for (let channelIndex = 0; channelIndex < 4; channelIndex++) {\n const channel = channels[channelIndex];\n const channelName = [\"red\", \"green\", \"blue\", \"alpha\"][channelIndex];\n\n if (channel && IsTextureInput(channel)) {\n const textureIndex = textureInputMap[channelIndex];\n proceduralTexture.setInt(`${channelName}TextureIndex`, textureIndex);\n proceduralTexture.setInt(`${channelName}SourceChannel`, channel.sourceChannel);\n } else {\n // Use constant value (either provided or default)\n let constantValue: number;\n if (channel && IsConstantInput(channel)) {\n constantValue = channel.value;\n } else {\n // Use default values: 0 for RGB, 1 for alpha\n constantValue = channelIndex === 3 ? 1.0 : 0.0;\n }\n proceduralTexture.setFloat(`${channelName}ConstantValue`, constantValue);\n }\n }\n\n return await new Promise<ProceduralTexture>((resolve, reject) => {\n // Compile and render\n proceduralTexture.executeWhenReady(() => {\n try {\n proceduralTexture.render();\n resolve(proceduralTexture);\n } catch (error) {\n reject(error instanceof Error ? error : new Error(String(error)));\n }\n });\n });\n}\n\n/**\n * @internal\n * Create a texture input configuration\n * @param texture The texture to read from\n * @param sourceChannel The channel to read (0=R, 1=G, 2=B, 3=A)\n * @returns Texture channel input configuration\n */\nexport function CreateTextureInput(texture: BaseTexture, sourceChannel: number): ITextureChannelInput {\n return { texture, sourceChannel };\n}\n\n/**\n * @internal\n * Create a constant value input configuration\n * @param value The constant value (0.0-1.0)\n * @returns Constant channel input configuration\n */\nexport function CreateConstantInput(value: number): IConstantChannelInput {\n return { value };\n}\n\n/**\n * @internal\n * Create a simple RGBA channel packing configuration\n * @param red Input for red channel\n * @param green Input for green channel (optional, defaults to 0)\n * @param blue Input for blue channel (optional, defaults to 0)\n * @param alpha Input for alpha channel (optional, defaults to 1)\n * @returns Texture merge configuration\n */\nexport function CreateRGBAConfiguration(red: ChannelInput, green?: ChannelInput, blue?: ChannelInput, alpha?: ChannelInput): ITextureMergeConfiguration {\n return { red, green, blue, alpha };\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { type Scene } from "../../scene.js";
2
2
  import { type BaseTexture } from "./baseTexture.js";
3
3
  import { type Nullable } from "../../types.js";
4
- import { Color4 } from "../../Maths/math.color.js";
4
+ import { Color4 } from "../../Maths/math.color.pure.js";
5
5
  /**
6
6
  * Specifies the color space of a texture operand.
7
7
  * When `sRGB` is set the sampled RGB values are converted to linear space before any channel
@@ -1,6 +1,6 @@
1
- import { ProceduralTexture } from "./Procedurals/proceduralTexture.js";
1
+ import { ProceduralTexture } from "./Procedurals/proceduralTexture.pure.js";
2
2
 
3
- import { Color4 } from "../../Maths/math.color.js";
3
+ import { Color4 } from "../../Maths/math.color.pure.js";
4
4
  const _ShaderName = "textureProcessor";
5
5
  /**
6
6
  * Specifies the color space of a texture operand.