@onerjs/core 8.53.5 → 8.53.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (841) hide show
  1. package/Animations/animationGroup.d.ts +0 -1
  2. package/Animations/animationGroup.js +0 -1
  3. package/Animations/animationGroup.js.map +1 -1
  4. package/Animations/animationGroup.pure.js +2 -0
  5. package/Animations/animationGroup.pure.js.map +1 -1
  6. package/Animations/runtimeAnimation.js +11 -0
  7. package/Animations/runtimeAnimation.js.map +1 -1
  8. package/Audio/audioSceneComponent.pure.js +1 -1
  9. package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
  10. package/AudioV2/abstractAudio/abstractSound.js +7 -2
  11. package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
  12. package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
  13. package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
  14. package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
  15. package/AudioV2/abstractAudio/staticSound.js +17 -1
  16. package/AudioV2/abstractAudio/staticSound.js.map +1 -1
  17. package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
  18. package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
  19. package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
  20. package/AudioV2/abstractAudio/streamingSound.js +9 -1
  21. package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
  22. package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
  23. package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
  24. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
  25. package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
  26. package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
  27. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  28. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
  29. package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
  30. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  31. package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
  32. package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
  33. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  34. package/Bones/bone.pure.js +3 -3
  35. package/Buffers/buffer.pure.js +0 -12
  36. package/Buffers/buffer.pure.js.map +1 -1
  37. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
  38. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  39. package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
  40. package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
  41. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  42. package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
  43. package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
  44. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
  45. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
  46. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  47. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
  48. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  49. package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
  50. package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
  51. package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
  52. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  53. package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
  54. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  55. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
  56. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  57. package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
  58. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  59. package/Cameras/Inputs/followCameraPointersInput.js +239 -203
  60. package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
  61. package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
  62. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  63. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
  64. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  65. package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
  66. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  67. package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
  68. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  69. package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
  70. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  71. package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
  72. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
  73. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  74. package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
  75. package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
  76. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
  77. package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
  78. package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
  79. package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
  80. package/Cameras/VR/vrExperienceHelper.js +0 -2
  81. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  82. package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
  83. package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
  84. package/Cameras/arcRotateCamera.pure.js +1559 -1479
  85. package/Cameras/arcRotateCamera.pure.js.map +1 -1
  86. package/Cameras/camera.pure.js +1225 -1178
  87. package/Cameras/camera.pure.js.map +1 -1
  88. package/Cameras/flyCamera.pure.js +369 -351
  89. package/Cameras/flyCamera.pure.js.map +1 -1
  90. package/Cameras/followCamera.pure.js +229 -192
  91. package/Cameras/followCamera.pure.js.map +1 -1
  92. package/Cameras/freeCamera.pure.js +373 -351
  93. package/Cameras/freeCamera.pure.js.map +1 -1
  94. package/Cameras/geospatialCamera.pure.d.ts +30 -7
  95. package/Cameras/geospatialCamera.pure.js +502 -457
  96. package/Cameras/geospatialCamera.pure.js.map +1 -1
  97. package/Cameras/geospatialCameraMovement.js +2 -2
  98. package/Cameras/geospatialCameraMovement.js.map +1 -1
  99. package/Cameras/targetCamera.pure.d.ts +7 -0
  100. package/Cameras/targetCamera.pure.js +550 -509
  101. package/Cameras/targetCamera.pure.js.map +1 -1
  102. package/Cameras/universalCamera.pure.js +98 -85
  103. package/Cameras/universalCamera.pure.js.map +1 -1
  104. package/Collisions/gpuPicker.d.ts +111 -4
  105. package/Collisions/gpuPicker.js +696 -119
  106. package/Collisions/gpuPicker.js.map +1 -1
  107. package/Compute/computeShader.pure.js +372 -355
  108. package/Compute/computeShader.pure.js.map +1 -1
  109. package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
  110. package/Decorators/nodeDecorator.d.ts +11 -1
  111. package/Decorators/nodeDecorator.js +43 -6
  112. package/Decorators/nodeDecorator.js.map +1 -1
  113. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
  114. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
  115. package/Engines/Native/nativeHelpers.js +15 -0
  116. package/Engines/Native/nativeHelpers.js.map +1 -1
  117. package/Engines/Native/nativeInterfaces.d.ts +7 -2
  118. package/Engines/Native/nativeInterfaces.js.map +1 -1
  119. package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
  120. package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
  121. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
  122. package/Engines/Processors/shaderProcessor.js +5 -3
  123. package/Engines/Processors/shaderProcessor.js.map +1 -1
  124. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
  125. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
  126. package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
  127. package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
  128. package/Engines/abstractEngine.functions.d.ts +8 -2
  129. package/Engines/abstractEngine.functions.js +12 -4
  130. package/Engines/abstractEngine.functions.js.map +1 -1
  131. package/Engines/abstractEngine.pure.d.ts +20 -1
  132. package/Engines/abstractEngine.pure.js +21 -134
  133. package/Engines/abstractEngine.pure.js.map +1 -1
  134. package/Engines/engine.d.ts +208 -0
  135. package/Engines/engine.pure.js +0 -15
  136. package/Engines/engine.pure.js.map +1 -1
  137. package/Engines/nullEngine.pure.d.ts +66 -0
  138. package/Engines/nullEngine.pure.js +97 -0
  139. package/Engines/nullEngine.pure.js.map +1 -1
  140. package/Engines/thinEngine.pure.d.ts +0 -13
  141. package/Engines/thinEngine.pure.js +4 -23
  142. package/Engines/thinEngine.pure.js.map +1 -1
  143. package/Engines/thinNativeEngine.d.ts +0 -1
  144. package/Engines/thinNativeEngine.js +0 -1
  145. package/Engines/thinNativeEngine.js.map +1 -1
  146. package/Engines/thinNativeEngine.pure.d.ts +27 -0
  147. package/Engines/thinNativeEngine.pure.js +383 -17
  148. package/Engines/thinNativeEngine.pure.js.map +1 -1
  149. package/Engines/webgpuEngine.d.ts +1 -0
  150. package/Engines/webgpuEngine.js +1 -0
  151. package/Engines/webgpuEngine.js.map +1 -1
  152. package/Engines/webgpuEngine.pure.d.ts +9 -0
  153. package/Engines/webgpuEngine.pure.js +7 -0
  154. package/Engines/webgpuEngine.pure.js.map +1 -1
  155. package/FlowGraph/flowGraph.js +9 -0
  156. package/FlowGraph/flowGraph.js.map +1 -1
  157. package/FlowGraph/flowGraphContext.js +597 -584
  158. package/FlowGraph/flowGraphContext.js.map +1 -1
  159. package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
  160. package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
  161. package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
  162. package/FlowGraph/serialization.d.ts +11 -0
  163. package/FlowGraph/serialization.js +11 -1
  164. package/FlowGraph/serialization.js.map +1 -1
  165. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
  166. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
  167. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
  168. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
  169. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
  170. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
  171. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
  172. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
  173. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
  174. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
  175. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
  176. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
  177. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
  178. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
  179. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
  180. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
  181. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
  182. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
  183. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
  184. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
  185. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
  186. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
  187. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
  188. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
  189. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
  190. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
  191. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
  192. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
  193. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
  194. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
  195. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
  196. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
  197. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
  198. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
  199. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
  200. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
  201. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
  202. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
  203. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
  204. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
  205. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
  206. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
  207. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
  208. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
  209. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
  210. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
  211. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
  212. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
  213. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
  214. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
  215. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
  216. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  217. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
  218. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
  219. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
  220. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
  221. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
  222. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
  223. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
  224. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
  225. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
  226. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
  227. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
  228. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
  229. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
  230. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
  231. package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
  232. package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
  233. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
  234. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
  235. package/FrameGraph/Node/nodeRenderGraph.js +715 -693
  236. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  237. package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
  238. package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
  239. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
  240. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
  241. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  242. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
  243. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
  244. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
  245. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
  246. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
  247. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
  248. package/Helpers/environmentHelper.js +2 -2
  249. package/Helpers/environmentHelper.js.map +1 -1
  250. package/Layers/effectLayer.js +529 -519
  251. package/Layers/effectLayer.js.map +1 -1
  252. package/Layers/glowLayer.pure.js +428 -413
  253. package/Layers/glowLayer.pure.js.map +1 -1
  254. package/Layers/highlightLayer.pure.js +473 -458
  255. package/Layers/highlightLayer.pure.js.map +1 -1
  256. package/Layers/selectionOutlineLayer.pure.js +360 -345
  257. package/Layers/selectionOutlineLayer.pure.js.map +1 -1
  258. package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
  259. package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
  260. package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
  261. package/Lights/Shadows/shadowGenerator.js +6 -1
  262. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  263. package/Lights/areaLight.pure.js +61 -39
  264. package/Lights/areaLight.pure.js.map +1 -1
  265. package/Lights/directionalLight.pure.js +308 -284
  266. package/Lights/directionalLight.pure.js.map +1 -1
  267. package/Lights/hemisphericLight.pure.js +123 -104
  268. package/Lights/hemisphericLight.pure.js.map +1 -1
  269. package/Lights/light.d.ts +5 -3
  270. package/Lights/light.js +869 -827
  271. package/Lights/light.js.map +1 -1
  272. package/Lights/pointLight.pure.js +185 -174
  273. package/Lights/pointLight.pure.js.map +1 -1
  274. package/Lights/rectAreaLight.pure.d.ts +17 -0
  275. package/Lights/rectAreaLight.pure.js +238 -159
  276. package/Lights/rectAreaLight.pure.js.map +1 -1
  277. package/Lights/shadowLight.js +280 -268
  278. package/Lights/shadowLight.js.map +1 -1
  279. package/Lights/spotLight.pure.js +460 -427
  280. package/Lights/spotLight.pure.js.map +1 -1
  281. package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
  282. package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
  283. package/Loading/sceneLoader.d.ts +5 -1
  284. package/Loading/sceneLoader.js +299 -402
  285. package/Loading/sceneLoader.js.map +1 -1
  286. package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
  287. package/Materials/Background/backgroundMaterial.pure.js +949 -794
  288. package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
  289. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
  290. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
  291. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
  292. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
  293. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
  294. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
  295. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
  296. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
  297. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
  298. package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
  299. package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
  300. package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
  301. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
  302. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
  303. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
  304. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
  305. package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
  306. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
  307. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
  308. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
  309. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
  310. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
  311. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
  312. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
  313. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
  314. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
  315. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
  316. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
  317. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
  318. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
  319. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
  320. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
  321. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
  322. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
  323. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
  324. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
  325. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
  326. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
  327. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
  328. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
  329. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
  330. package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
  331. package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
  332. package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
  333. package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
  334. package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
  335. package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
  336. package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
  337. package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
  338. package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
  339. package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
  340. package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
  341. package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
  342. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
  343. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
  344. package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
  345. package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
  346. package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
  347. package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
  348. package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
  349. package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
  350. package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
  351. package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
  352. package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
  353. package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
  354. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
  355. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
  356. package/Materials/Node/nodeMaterial.pure.js +1765 -1737
  357. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  358. package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
  359. package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
  360. package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
  361. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  362. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
  363. package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
  364. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  365. package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
  366. package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
  367. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  368. package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
  369. package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
  370. package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
  371. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
  372. package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
  373. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  374. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
  375. package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
  376. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  377. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
  378. package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
  379. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  380. package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
  381. package/Materials/PBR/pbrMaterial.pure.js +1041 -685
  382. package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
  383. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
  384. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
  385. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
  386. package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
  387. package/Materials/PBR/pbrSheenConfiguration.js +314 -270
  388. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  389. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
  390. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
  391. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
  392. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
  393. package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
  394. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  395. package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
  396. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
  397. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
  398. package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
  399. package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
  400. package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
  401. package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
  402. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
  403. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
  404. package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
  405. package/Materials/Textures/HTML/htmlTexture.js +455 -0
  406. package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
  407. package/Materials/Textures/HTML/index.d.ts +4 -0
  408. package/Materials/Textures/HTML/index.js +5 -0
  409. package/Materials/Textures/HTML/index.js.map +1 -0
  410. package/Materials/Textures/HTML/pure.d.ts +5 -0
  411. package/Materials/Textures/HTML/pure.js +6 -0
  412. package/Materials/Textures/HTML/pure.js.map +1 -0
  413. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
  414. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  415. package/Materials/Textures/baseTexture.pure.js +880 -825
  416. package/Materials/Textures/baseTexture.pure.js.map +1 -1
  417. package/Materials/Textures/cubeTexture.d.ts +0 -1
  418. package/Materials/Textures/cubeTexture.js +0 -1
  419. package/Materials/Textures/cubeTexture.js.map +1 -1
  420. package/Materials/Textures/cubeTexture.pure.js +368 -333
  421. package/Materials/Textures/cubeTexture.pure.js.map +1 -1
  422. package/Materials/Textures/dynamicTexture.d.ts +0 -1
  423. package/Materials/Textures/dynamicTexture.js +0 -1
  424. package/Materials/Textures/dynamicTexture.js.map +1 -1
  425. package/Materials/Textures/dynamicTexture.pure.js +2 -0
  426. package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
  427. package/Materials/Textures/htmlElementTexture.d.ts +0 -2
  428. package/Materials/Textures/htmlElementTexture.js +0 -2
  429. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  430. package/Materials/Textures/htmlElementTexture.pure.js +4 -0
  431. package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
  432. package/Materials/Textures/index.d.ts +1 -0
  433. package/Materials/Textures/index.js +1 -1
  434. package/Materials/Textures/index.js.map +1 -1
  435. package/Materials/Textures/multiRenderTarget.d.ts +0 -1
  436. package/Materials/Textures/multiRenderTarget.js +0 -1
  437. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  438. package/Materials/Textures/multiRenderTarget.pure.js +2 -0
  439. package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
  440. package/Materials/Textures/pure.d.ts +1 -0
  441. package/Materials/Textures/pure.js +1 -0
  442. package/Materials/Textures/pure.js.map +1 -1
  443. package/Materials/Textures/texture.pure.js +961 -923
  444. package/Materials/Textures/texture.pure.js.map +1 -1
  445. package/Materials/Textures/videoTexture.pure.d.ts +3 -0
  446. package/Materials/Textures/videoTexture.pure.js +450 -401
  447. package/Materials/Textures/videoTexture.pure.js.map +1 -1
  448. package/Materials/colorCurves.pure.js +510 -477
  449. package/Materials/colorCurves.pure.js.map +1 -1
  450. package/Materials/effect.pure.js +0 -7
  451. package/Materials/effect.pure.js.map +1 -1
  452. package/Materials/imageProcessing.js +12 -4
  453. package/Materials/imageProcessing.js.map +1 -1
  454. package/Materials/imageProcessingConfiguration.pure.js +647 -587
  455. package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
  456. package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
  457. package/Materials/material.decalMapConfiguration.pure.js +149 -130
  458. package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
  459. package/Materials/material.detailMapConfiguration.d.ts +3 -3
  460. package/Materials/material.detailMapConfiguration.js +213 -175
  461. package/Materials/material.detailMapConfiguration.js.map +1 -1
  462. package/Materials/material.pure.js +1815 -1721
  463. package/Materials/material.pure.js.map +1 -1
  464. package/Materials/materialPluginBase.pure.js +270 -249
  465. package/Materials/materialPluginBase.pure.js.map +1 -1
  466. package/Materials/materialPluginManager.pure.js +18 -8
  467. package/Materials/materialPluginManager.pure.js.map +1 -1
  468. package/Materials/materialStencilState.js +211 -200
  469. package/Materials/materialStencilState.js.map +1 -1
  470. package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
  471. package/Materials/meshDebugPluginMaterial.pure.js +397 -275
  472. package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
  473. package/Materials/standardMaterial.pure.d.ts +32 -32
  474. package/Materials/standardMaterial.pure.js +1804 -1394
  475. package/Materials/standardMaterial.pure.js.map +1 -1
  476. package/Maths/math.color.pure.js +5 -5
  477. package/Maths/math.functions.js +38 -30
  478. package/Maths/math.functions.js.map +1 -1
  479. package/Maths/math.vector.pure.js +25 -25
  480. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
  481. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  482. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
  483. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
  484. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  485. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
  486. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
  487. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
  488. package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
  489. package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
  490. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
  491. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
  492. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
  493. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
  494. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
  495. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
  496. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
  497. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
  498. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
  499. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
  500. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
  501. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
  502. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
  503. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
  504. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
  505. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
  506. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
  507. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
  508. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
  509. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
  510. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
  511. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
  512. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
  513. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
  514. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
  515. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
  516. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
  517. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
  518. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
  519. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
  520. package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
  521. package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
  522. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
  523. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
  524. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
  525. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
  526. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
  527. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
  528. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
  529. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
  530. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
  531. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
  532. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
  533. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
  534. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
  535. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
  536. package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
  537. package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
  538. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
  539. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
  540. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
  541. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
  542. package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
  543. package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
  544. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
  545. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
  546. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
  547. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
  548. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
  549. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
  550. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
  551. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
  552. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
  553. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
  554. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
  555. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
  556. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
  557. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
  558. package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
  559. package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
  560. package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
  561. package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
  562. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
  563. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
  564. package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
  565. package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
  566. package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
  567. package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
  568. package/Meshes/Node/nodeGeometry.js +560 -538
  569. package/Meshes/Node/nodeGeometry.js.map +1 -1
  570. package/Meshes/Node/nodeGeometryBlock.js +473 -458
  571. package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
  572. package/Meshes/abstractMesh.pure.js +2218 -2207
  573. package/Meshes/abstractMesh.pure.js.map +1 -1
  574. package/Meshes/geometry.js +30 -15
  575. package/Meshes/geometry.js.map +1 -1
  576. package/Meshes/mesh.pure.js +26 -14
  577. package/Meshes/mesh.pure.js.map +1 -1
  578. package/Meshes/mesh.vertexData.js +1665 -1655
  579. package/Meshes/mesh.vertexData.js.map +1 -1
  580. package/Meshes/transformNode.pure.js +1400 -1372
  581. package/Meshes/transformNode.pure.js.map +1 -1
  582. package/Misc/decorators.d.ts +34 -19
  583. package/Misc/decorators.functions.d.ts +33 -2
  584. package/Misc/decorators.functions.js +114 -35
  585. package/Misc/decorators.functions.js.map +1 -1
  586. package/Misc/decorators.js +96 -68
  587. package/Misc/decorators.js.map +1 -1
  588. package/Misc/decorators.serialization.js +47 -40
  589. package/Misc/decorators.serialization.js.map +1 -1
  590. package/Misc/decorators.serializationUtilities.d.ts +24 -0
  591. package/Misc/decorators.serializationUtilities.js +20 -0
  592. package/Misc/decorators.serializationUtilities.js.map +1 -0
  593. package/Misc/dumpTools.pure.js +43 -33
  594. package/Misc/dumpTools.pure.js.map +1 -1
  595. package/Misc/fileTools.pure.js +8 -0
  596. package/Misc/fileTools.pure.js.map +1 -1
  597. package/Misc/observable.pure.js +0 -7
  598. package/Misc/observable.pure.js.map +1 -1
  599. package/Misc/snapshotRenderingHelper.d.ts +4 -1
  600. package/Misc/snapshotRenderingHelper.js.map +1 -1
  601. package/Misc/symbolMetadataPolyfill.d.ts +11 -0
  602. package/Misc/symbolMetadataPolyfill.js +22 -0
  603. package/Misc/symbolMetadataPolyfill.js.map +1 -0
  604. package/Misc/tools.pure.js +2 -2
  605. package/Misc/tools.pure.js.map +1 -1
  606. package/Morph/morphTarget.js +382 -365
  607. package/Morph/morphTarget.js.map +1 -1
  608. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
  609. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
  610. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
  611. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
  612. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
  613. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
  614. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
  615. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
  616. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
  617. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
  618. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
  619. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
  620. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
  621. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
  622. package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
  623. package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
  624. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
  625. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
  626. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
  627. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
  628. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
  629. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
  630. package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
  631. package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
  632. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
  633. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
  634. package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
  635. package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
  636. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
  637. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
  638. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
  639. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
  640. package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
  641. package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
  642. package/Particles/Node/nodeParticleBlock.js +339 -324
  643. package/Particles/Node/nodeParticleBlock.js.map +1 -1
  644. package/Particles/Node/nodeParticleSystemSet.js +494 -473
  645. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  646. package/Particles/gpuParticleSystem.d.ts +0 -1
  647. package/Particles/gpuParticleSystem.js +0 -1
  648. package/Particles/gpuParticleSystem.js.map +1 -1
  649. package/Particles/gpuParticleSystem.pure.d.ts +4 -3
  650. package/Particles/gpuParticleSystem.pure.js +27 -16
  651. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  652. package/Particles/particleSystem.pure.js +57 -2
  653. package/Particles/particleSystem.pure.js.map +1 -1
  654. package/Particles/thinParticleSystem.d.ts +0 -1
  655. package/Particles/thinParticleSystem.js +0 -1
  656. package/Particles/thinParticleSystem.js.map +1 -1
  657. package/Particles/thinParticleSystem.pure.js +2 -0
  658. package/Particles/thinParticleSystem.pure.js.map +1 -1
  659. package/Particles/webgl2ParticleSystem.pure.js +2 -0
  660. package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
  661. package/Physics/v1/physicsImpostor.pure.js +4 -4
  662. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
  663. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
  664. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
  665. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
  666. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
  667. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
  668. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  669. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
  670. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
  671. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  672. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
  673. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
  674. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
  675. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
  676. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
  677. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
  678. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
  679. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
  680. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
  681. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  682. package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
  683. package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
  684. package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
  685. package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
  686. package/PostProcesses/blurPostProcess.pure.js +127 -115
  687. package/PostProcesses/blurPostProcess.pure.js.map +1 -1
  688. package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
  689. package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
  690. package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
  691. package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
  692. package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
  693. package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
  694. package/PostProcesses/convolutionPostProcess.pure.js +96 -84
  695. package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
  696. package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
  697. package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
  698. package/PostProcesses/filterPostProcess.pure.js +66 -54
  699. package/PostProcesses/filterPostProcess.pure.js.map +1 -1
  700. package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
  701. package/PostProcesses/grainPostProcess.pure.js +82 -70
  702. package/PostProcesses/grainPostProcess.pure.js.map +1 -1
  703. package/PostProcesses/imageProcessingPostProcess.js +334 -322
  704. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  705. package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
  706. package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
  707. package/PostProcesses/passPostProcess.pure.js +75 -63
  708. package/PostProcesses/passPostProcess.pure.js.map +1 -1
  709. package/PostProcesses/postProcess.pure.js +899 -835
  710. package/PostProcesses/postProcess.pure.js.map +1 -1
  711. package/PostProcesses/refractionPostProcess.pure.js +114 -87
  712. package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
  713. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
  714. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
  715. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
  716. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
  717. package/PostProcesses/sharpenPostProcess.pure.js +86 -74
  718. package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
  719. package/PostProcesses/tonemapPostProcess.pure.js +82 -70
  720. package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
  721. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
  722. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
  723. package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
  724. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
  725. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
  726. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
  727. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
  728. package/Probes/reflectionProbe.pure.js +238 -224
  729. package/Probes/reflectionProbe.pure.js.map +1 -1
  730. package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
  731. package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
  732. package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
  733. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
  734. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
  735. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
  736. package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
  737. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
  738. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  739. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
  740. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
  741. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
  742. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
  743. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
  744. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
  745. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
  746. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
  747. package/Rendering/edgesRenderer.pure.js.map +1 -1
  748. package/Rendering/prePassRenderer.d.ts +0 -2
  749. package/Rendering/prePassRenderer.js +0 -2
  750. package/Rendering/prePassRenderer.js.map +1 -1
  751. package/Rendering/prePassRenderer.pure.js +2 -0
  752. package/Rendering/prePassRenderer.pure.js.map +1 -1
  753. package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
  754. package/Rendering/reflectiveShadowMap.pure.js +151 -130
  755. package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
  756. package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
  757. package/Rendering/thinDepthPeelingRenderer.js +0 -1
  758. package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
  759. package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
  760. package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
  761. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
  762. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  763. package/Shaders/gaussianSplatting.fragment.js +17 -1
  764. package/Shaders/gaussianSplatting.fragment.js.map +1 -1
  765. package/Shaders/gaussianSplatting.vertex.js +1 -1
  766. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  767. package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
  768. package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
  769. package/Shaders/picking.fragment.js +39 -3
  770. package/Shaders/picking.fragment.js.map +1 -1
  771. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
  772. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
  773. package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
  774. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  775. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
  776. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  777. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
  778. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  779. package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
  780. package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
  781. package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
  782. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  783. package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
  784. package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
  785. package/ShadersWGSL/lightingVolume.compute.js +2 -2
  786. package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
  787. package/ShadersWGSL/picking.fragment.js +22 -1
  788. package/ShadersWGSL/picking.fragment.js.map +1 -1
  789. package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
  790. package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
  791. package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
  792. package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
  793. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
  794. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
  795. package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
  796. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
  797. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
  798. package/XR/features/WebXRLayers.pure.d.ts +8 -0
  799. package/XR/features/WebXRLayers.pure.js +43 -6
  800. package/XR/features/WebXRLayers.pure.js.map +1 -1
  801. package/XR/native/nativeXRRenderTarget.d.ts +2 -2
  802. package/XR/native/nativeXRRenderTarget.js +2 -2
  803. package/XR/native/nativeXRRenderTarget.js.map +1 -1
  804. package/XR/webXRExperienceHelper.js +10 -1
  805. package/XR/webXRExperienceHelper.js.map +1 -1
  806. package/XR/webXRGraphicsBinding.d.ts +90 -0
  807. package/XR/webXRGraphicsBinding.js +85 -0
  808. package/XR/webXRGraphicsBinding.js.map +1 -0
  809. package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
  810. package/XR/webXRLayerRenderTargetTexture.js +30 -0
  811. package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
  812. package/XR/webXRManagedOutputCanvas.d.ts +14 -0
  813. package/XR/webXRManagedOutputCanvas.js +24 -5
  814. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  815. package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
  816. package/XR/webXRRenderTargetTextureProvider.js +33 -35
  817. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  818. package/XR/webXRSessionManager.d.ts +11 -0
  819. package/XR/webXRSessionManager.js +37 -0
  820. package/XR/webXRSessionManager.js.map +1 -1
  821. package/XR/webXRTypes.d.ts +9 -6
  822. package/XR/webXRTypes.js.map +1 -1
  823. package/XR/webXRWebGLLayer.d.ts +2 -2
  824. package/XR/webXRWebGLLayer.js +2 -2
  825. package/XR/webXRWebGLLayer.js.map +1 -1
  826. package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
  827. package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
  828. package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
  829. package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
  830. package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
  831. package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
  832. package/index.d.ts +1 -0
  833. package/index.js +1 -0
  834. package/index.js.map +1 -1
  835. package/node.js +878 -845
  836. package/node.js.map +1 -1
  837. package/package.json +8 -14
  838. package/scene.pure.d.ts +12 -0
  839. package/scene.pure.js +36 -0
  840. package/scene.pure.js.map +1 -1
  841. package/tslib.es6.js +304 -150
@@ -1,5 +1,5 @@
1
1
  /** This file must only contain pure code and pure imports */
2
- import { __decorate } from "../../../tslib.es6.js";
2
+ import { __esDecorate, __runInitializers } from "../../../tslib.es6.js";
3
3
  import { serialize } from "../../../Misc/decorators.js";
4
4
  import { Observable } from "../../../Misc/observable.pure.js";
5
5
  import { VertexBuffer } from "../../../Buffers/buffer.pure.js";
@@ -17,659 +17,687 @@ import { RegisterClass } from "../../../Misc/typeStore.js";
17
17
  * This is the base class of any Procedural texture and contains most of the shareable code.
18
18
  * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/proceduralTextures
19
19
  */
20
- export class ProceduralTexture extends Texture {
21
- /**
22
- * Gets the shader language type used to generate vertex and fragment source code.
23
- */
24
- get shaderLanguage() {
25
- return this._shaderLanguage;
26
- }
27
- /**
28
- * Instantiates a new procedural texture.
29
- * Procedural texturing is a way to programmatically create a texture. There are 2 types of procedural textures: code-only, and code that references some classic 2D images, sometimes called 'refMaps' or 'sampler' images.
30
- * This is the base class of any Procedural texture and contains most of the shareable code.
31
- * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/proceduralTextures
32
- * @param name Define the name of the texture
33
- * @param size Define the size of the texture to create
34
- * @param fragment Define the fragment shader to use to generate the texture or null if it is defined later:
35
- * * object: \{ fragmentElement: "fragmentShaderCode" \}, used with shader code in script tags
36
- * * object: \{ fragmentSource: "fragment shader code string" \}, the string contains the shader code
37
- * * string: the string contains a name "XXX" to lookup in Effect.ShadersStore["XXXFragmentShader"]
38
- * @param scene Define the scene the texture belongs to
39
- * @param fallbackTexture Define a fallback texture in case there were issues to create the custom texture
40
- * @param generateMipMaps Define if the texture should creates mip maps or not
41
- * @param isCube Define if the texture is a cube texture or not (this will render each faces of the cube)
42
- * @param textureType The FBO internal texture type
43
- */
44
- constructor(name, size, fragment, scene, fallbackTexture = null, generateMipMaps = true, isCube = false, textureType = 0) {
45
- super(null, scene, !generateMipMaps);
46
- /**
47
- * Define if the texture is enabled or not (disabled texture will not render)
48
- */
49
- this.isEnabled = true;
50
- /**
51
- * Define if the texture must be cleared before rendering (default is true)
52
- */
53
- this.autoClear = true;
54
- /**
55
- * Event raised when the texture is generated
56
- */
57
- this.onGeneratedObservable = new Observable();
58
- /**
59
- * Event raised before the texture is generated
60
- */
61
- this.onBeforeGenerationObservable = new Observable();
62
- /**
63
- * Gets or sets the node material used to create this texture (null if the texture was manually created)
64
- */
65
- this.nodeMaterialSource = null;
66
- /**
67
- * Define the list of custom preprocessor defines used in the shader
68
- */
69
- this.defines = "";
70
- /** @internal */
71
- this._textures = {};
72
- this._currentRefreshId = -1;
73
- this._frameId = -1;
74
- this._refreshRate = 1;
75
- this._vertexBuffers = {};
76
- this._uniforms = new Array();
77
- this._samplers = new Array();
78
- this._floats = {};
79
- this._ints = {};
80
- this._floatsArrays = {};
81
- this._colors3 = {};
82
- this._colors4 = {};
83
- this._vectors2 = {};
84
- this._vectors3 = {};
85
- this._vectors4 = {};
86
- this._matrices = {};
87
- this._fallbackTextureUsed = false;
88
- this._cachedDefines = null;
89
- this._contentUpdateId = -1;
90
- this._rtWrapper = null;
91
- if (fallbackTexture !== null && !(fallbackTexture instanceof Texture)) {
92
- this._options = fallbackTexture;
93
- this._fallbackTexture = fallbackTexture.fallbackTexture ?? null;
94
- }
95
- else {
96
- this._options = {};
97
- this._fallbackTexture = fallbackTexture;
98
- }
99
- this._shaderLanguage = this._options.shaderLanguage ?? 0 /* ShaderLanguage.GLSL */;
100
- scene = this.getScene() || EngineStore.LastCreatedScene;
101
- let component = scene._getComponent(SceneComponentConstants.NAME_PROCEDURALTEXTURE);
102
- if (!component) {
103
- component = new ProceduralTextureSceneComponent(scene);
104
- scene._addComponent(component);
105
- }
106
- if (!this._options.skipSceneRegistration) {
107
- scene.proceduralTextures.push(this);
108
- }
109
- this._fullEngine = scene.getEngine();
110
- this.name = name;
111
- this.isRenderTarget = true;
112
- this._size = size;
113
- this._textureType = textureType;
114
- this._generateMipMaps = generateMipMaps;
115
- this._drawWrapper = new DrawWrapper(this._fullEngine);
116
- this.setFragment(fragment);
117
- const rtWrapper = this._createRtWrapper(isCube, size, generateMipMaps, textureType);
118
- this._texture = rtWrapper.texture;
119
- // VBO
120
- const vertices = [];
121
- vertices.push(1, 1);
122
- vertices.push(-1, 1);
123
- vertices.push(-1, -1);
124
- vertices.push(1, -1);
125
- this._vertexBuffers[VertexBuffer.PositionKind] = new VertexBuffer(this._fullEngine, vertices, VertexBuffer.PositionKind, false, false, 2);
126
- this._createIndexBuffer();
127
- }
128
- _createRtWrapper(isCube, size, generateMipMaps, textureType) {
129
- if (isCube) {
130
- this._rtWrapper = this._fullEngine.createRenderTargetCubeTexture(size, {
131
- generateMipMaps: generateMipMaps,
132
- generateDepthBuffer: false,
133
- generateStencilBuffer: false,
134
- type: textureType,
135
- ...this._options,
136
- });
137
- this.setFloat("face", 0);
138
- }
139
- else {
140
- this._rtWrapper = this._fullEngine.createRenderTargetTexture(size, {
141
- generateMipMaps: generateMipMaps,
142
- generateDepthBuffer: false,
143
- generateStencilBuffer: false,
144
- type: textureType,
145
- ...this._options,
146
- });
147
- if (this._rtWrapper.is3D) {
148
- this.setFloat("layer", 0);
149
- this.setInt("layerNum", 0);
150
- }
151
- }
152
- return this._rtWrapper;
153
- }
154
- /**
155
- * The effect that is created when initializing the post process.
156
- * @returns The created effect corresponding the postprocess.
157
- */
158
- getEffect() {
159
- return this._drawWrapper.effect;
160
- }
161
- /**
162
- * @internal
163
- */
164
- _setEffect(effect) {
165
- this._drawWrapper.effect = effect;
166
- }
167
- /**
168
- * Gets texture content (Use this function wisely as reading from a texture can be slow)
169
- * @returns an ArrayBufferView promise (Uint8Array or Float32Array)
170
- */
171
- getContent() {
172
- if (this._contentData && this._frameId === this._contentUpdateId) {
173
- return this._contentData;
174
- }
175
- if (this._contentData) {
176
- // eslint-disable-next-line @typescript-eslint/no-floating-promises, github/no-then
177
- this._contentData.then((buffer) => {
178
- this._contentData = this.readPixels(0, 0, buffer);
179
- this._contentUpdateId = this._frameId;
180
- });
181
- }
182
- else {
183
- this._contentData = this.readPixels(0, 0);
184
- this._contentUpdateId = this._frameId;
185
- }
186
- return this._contentData;
187
- }
188
- _createIndexBuffer() {
189
- const engine = this._fullEngine;
190
- // Indices
191
- const indices = [];
192
- indices.push(0);
193
- indices.push(1);
194
- indices.push(2);
195
- indices.push(0);
196
- indices.push(2);
197
- indices.push(3);
198
- this._indexBuffer = engine.createIndexBuffer(indices);
199
- }
200
- /** @internal */
201
- _rebuild() {
202
- const vb = this._vertexBuffers[VertexBuffer.PositionKind];
203
- if (vb) {
204
- vb._rebuild();
205
- }
206
- this._createIndexBuffer();
207
- if (this.refreshRate === RenderTargetTexture.REFRESHRATE_RENDER_ONCE) {
208
- this.refreshRate = RenderTargetTexture.REFRESHRATE_RENDER_ONCE;
209
- }
210
- }
211
- /**
212
- * Resets the texture in order to recreate its associated resources.
213
- * This can be called in case of context loss or if you change the shader code and need to regenerate the texture with the new code
214
- */
215
- reset() {
216
- this._drawWrapper.effect?.dispose();
217
- this._drawWrapper.effect = null;
218
- this._cachedDefines = null;
219
- }
220
- _getDefines() {
221
- return this.defines;
222
- }
223
- /**
224
- * Executes a function when the texture will be ready to be drawn.
225
- * @param func The callback to be used.
226
- */
227
- executeWhenReady(func) {
228
- if (this.isReady()) {
229
- func(this);
230
- return;
231
- }
232
- const effect = this.getEffect();
233
- if (effect) {
234
- effect.executeWhenCompiled(() => {
235
- func(this);
236
- });
237
- }
238
- }
239
- /**
240
- * Is the texture ready to be used ? (rendered at least once)
241
- * @returns true if ready, otherwise, false.
242
- */
243
- isReady() {
244
- const engine = this._fullEngine;
245
- if (this.nodeMaterialSource) {
246
- // When sourced from a node material, the effect is created asynchronously once the material
247
- // build completes (some node material blocks load their shader code asynchronously). Until
248
- // then there is no effect yet, so the texture is simply not ready.
249
- return this._drawWrapper.effect?.isReady() ?? false;
250
- }
251
- if (!this._fragment) {
252
- return false;
253
- }
254
- if (this._fallbackTextureUsed) {
255
- return true;
256
- }
257
- if (!this._texture) {
258
- return false;
259
- }
260
- const defines = this._getDefines();
261
- if (this._drawWrapper.effect && defines === this._cachedDefines && this._drawWrapper.effect.isReady()) {
262
- return true;
263
- }
264
- const shaders = {
265
- vertex: "procedural",
266
- fragmentElement: this._fragment.fragmentElement,
267
- fragmentSource: this._fragment.fragmentSource,
268
- fragment: typeof this._fragment === "string" ? this._fragment : undefined,
269
- };
270
- if (this._cachedDefines !== defines) {
271
- this._cachedDefines = defines;
272
- this._drawWrapper.effect = engine.createEffect(shaders, [VertexBuffer.PositionKind], this._uniforms, this._samplers, defines, undefined, undefined, () => {
273
- this._rtWrapper?.dispose();
274
- this._rtWrapper = this._texture = null;
275
- if (this._fallbackTexture) {
276
- this._texture = this._fallbackTexture._texture;
20
+ let ProceduralTexture = (() => {
21
+ var _a;
22
+ let _classSuper = Texture;
23
+ let _instanceExtraInitializers = [];
24
+ let _isEnabled_decorators;
25
+ let _isEnabled_initializers = [];
26
+ let _isEnabled_extraInitializers = [];
27
+ let _autoClear_decorators;
28
+ let _autoClear_initializers = [];
29
+ let _autoClear_extraInitializers = [];
30
+ let __generateMipMaps_decorators;
31
+ let __generateMipMaps_initializers = [];
32
+ let __generateMipMaps_extraInitializers = [];
33
+ let __size_decorators;
34
+ let __size_initializers = [];
35
+ let __size_extraInitializers = [];
36
+ let _get_refreshRate_decorators;
37
+ return _a = class ProceduralTexture extends _classSuper {
38
+ /**
39
+ * Gets the shader language type used to generate vertex and fragment source code.
40
+ */
41
+ get shaderLanguage() {
42
+ return this._shaderLanguage;
43
+ }
44
+ /**
45
+ * Instantiates a new procedural texture.
46
+ * Procedural texturing is a way to programmatically create a texture. There are 2 types of procedural textures: code-only, and code that references some classic 2D images, sometimes called 'refMaps' or 'sampler' images.
47
+ * This is the base class of any Procedural texture and contains most of the shareable code.
48
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/proceduralTextures
49
+ * @param name Define the name of the texture
50
+ * @param size Define the size of the texture to create
51
+ * @param fragment Define the fragment shader to use to generate the texture or null if it is defined later:
52
+ * * object: \{ fragmentElement: "fragmentShaderCode" \}, used with shader code in script tags
53
+ * * object: \{ fragmentSource: "fragment shader code string" \}, the string contains the shader code
54
+ * * string: the string contains a name "XXX" to lookup in Effect.ShadersStore["XXXFragmentShader"]
55
+ * @param scene Define the scene the texture belongs to
56
+ * @param fallbackTexture Define a fallback texture in case there were issues to create the custom texture
57
+ * @param generateMipMaps Define if the texture should creates mip maps or not
58
+ * @param isCube Define if the texture is a cube texture or not (this will render each faces of the cube)
59
+ * @param textureType The FBO internal texture type
60
+ */
61
+ constructor(name, size, fragment, scene, fallbackTexture = null, generateMipMaps = true, isCube = false, textureType = 0) {
62
+ super(null, scene, !generateMipMaps);
63
+ /**
64
+ * Define if the texture is enabled or not (disabled texture will not render)
65
+ */
66
+ this.isEnabled = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _isEnabled_initializers, true));
67
+ /**
68
+ * Define if the texture must be cleared before rendering (default is true)
69
+ */
70
+ this.autoClear = (__runInitializers(this, _isEnabled_extraInitializers), __runInitializers(this, _autoClear_initializers, true));
71
+ /**
72
+ * Callback called when the texture is generated
73
+ */
74
+ this.onGenerated = __runInitializers(this, _autoClear_extraInitializers);
75
+ /**
76
+ * Event raised when the texture is generated
77
+ */
78
+ this.onGeneratedObservable = new Observable();
79
+ /**
80
+ * Event raised before the texture is generated
81
+ */
82
+ this.onBeforeGenerationObservable = new Observable();
83
+ /**
84
+ * Gets or sets the node material used to create this texture (null if the texture was manually created)
85
+ */
86
+ this.nodeMaterialSource = null;
87
+ /**
88
+ * Define the list of custom preprocessor defines used in the shader
89
+ */
90
+ this.defines = "";
91
+ /** @internal */
92
+ this._generateMipMaps = __runInitializers(this, __generateMipMaps_initializers, void 0);
93
+ this._drawWrapper = __runInitializers(this, __generateMipMaps_extraInitializers);
94
+ /** @internal */
95
+ this._textures = {};
96
+ this._size = __runInitializers(this, __size_initializers, void 0);
97
+ this._textureType = __runInitializers(this, __size_extraInitializers);
98
+ this._currentRefreshId = -1;
99
+ this._frameId = -1;
100
+ this._refreshRate = 1;
101
+ this._vertexBuffers = {};
102
+ this._uniforms = new Array();
103
+ this._samplers = new Array();
104
+ this._floats = {};
105
+ this._ints = {};
106
+ this._floatsArrays = {};
107
+ this._colors3 = {};
108
+ this._colors4 = {};
109
+ this._vectors2 = {};
110
+ this._vectors3 = {};
111
+ this._vectors4 = {};
112
+ this._matrices = {};
113
+ this._fallbackTextureUsed = false;
114
+ this._cachedDefines = null;
115
+ this._contentUpdateId = -1;
116
+ this._rtWrapper = null;
117
+ if (fallbackTexture !== null && !(fallbackTexture instanceof Texture)) {
118
+ this._options = fallbackTexture;
119
+ this._fallbackTexture = fallbackTexture.fallbackTexture ?? null;
120
+ }
121
+ else {
122
+ this._options = {};
123
+ this._fallbackTexture = fallbackTexture;
124
+ }
125
+ this._shaderLanguage = this._options.shaderLanguage ?? 0 /* ShaderLanguage.GLSL */;
126
+ scene = this.getScene() || EngineStore.LastCreatedScene;
127
+ let component = scene._getComponent(SceneComponentConstants.NAME_PROCEDURALTEXTURE);
128
+ if (!component) {
129
+ component = new ProceduralTextureSceneComponent(scene);
130
+ scene._addComponent(component);
131
+ }
132
+ if (!this._options.skipSceneRegistration) {
133
+ scene.proceduralTextures.push(this);
134
+ }
135
+ this._fullEngine = scene.getEngine();
136
+ this.name = name;
137
+ this.isRenderTarget = true;
138
+ this._size = size;
139
+ this._textureType = textureType;
140
+ this._generateMipMaps = generateMipMaps;
141
+ this._drawWrapper = new DrawWrapper(this._fullEngine);
142
+ this.setFragment(fragment);
143
+ const rtWrapper = this._createRtWrapper(isCube, size, generateMipMaps, textureType);
144
+ this._texture = rtWrapper.texture;
145
+ // VBO
146
+ const vertices = [];
147
+ vertices.push(1, 1);
148
+ vertices.push(-1, 1);
149
+ vertices.push(-1, -1);
150
+ vertices.push(1, -1);
151
+ this._vertexBuffers[VertexBuffer.PositionKind] = new VertexBuffer(this._fullEngine, vertices, VertexBuffer.PositionKind, false, false, 2);
152
+ this._createIndexBuffer();
153
+ }
154
+ _createRtWrapper(isCube, size, generateMipMaps, textureType) {
155
+ if (isCube) {
156
+ this._rtWrapper = this._fullEngine.createRenderTargetCubeTexture(size, {
157
+ generateMipMaps: generateMipMaps,
158
+ generateDepthBuffer: false,
159
+ generateStencilBuffer: false,
160
+ type: textureType,
161
+ ...this._options,
162
+ });
163
+ this.setFloat("face", 0);
164
+ }
165
+ else {
166
+ this._rtWrapper = this._fullEngine.createRenderTargetTexture(size, {
167
+ generateMipMaps: generateMipMaps,
168
+ generateDepthBuffer: false,
169
+ generateStencilBuffer: false,
170
+ type: textureType,
171
+ ...this._options,
172
+ });
173
+ if (this._rtWrapper.is3D) {
174
+ this.setFloat("layer", 0);
175
+ this.setInt("layerNum", 0);
176
+ }
177
+ }
178
+ return this._rtWrapper;
179
+ }
180
+ /**
181
+ * The effect that is created when initializing the post process.
182
+ * @returns The created effect corresponding the postprocess.
183
+ */
184
+ getEffect() {
185
+ return this._drawWrapper.effect;
186
+ }
187
+ /**
188
+ * @internal
189
+ */
190
+ _setEffect(effect) {
191
+ this._drawWrapper.effect = effect;
192
+ }
193
+ /**
194
+ * Gets texture content (Use this function wisely as reading from a texture can be slow)
195
+ * @returns an ArrayBufferView promise (Uint8Array or Float32Array)
196
+ */
197
+ getContent() {
198
+ if (this._contentData && this._frameId === this._contentUpdateId) {
199
+ return this._contentData;
200
+ }
201
+ if (this._contentData) {
202
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises, github/no-then
203
+ this._contentData.then((buffer) => {
204
+ this._contentData = this.readPixels(0, 0, buffer);
205
+ this._contentUpdateId = this._frameId;
206
+ });
207
+ }
208
+ else {
209
+ this._contentData = this.readPixels(0, 0);
210
+ this._contentUpdateId = this._frameId;
211
+ }
212
+ return this._contentData;
213
+ }
214
+ _createIndexBuffer() {
215
+ const engine = this._fullEngine;
216
+ // Indices
217
+ const indices = [];
218
+ indices.push(0);
219
+ indices.push(1);
220
+ indices.push(2);
221
+ indices.push(0);
222
+ indices.push(2);
223
+ indices.push(3);
224
+ this._indexBuffer = engine.createIndexBuffer(indices);
225
+ }
226
+ /** @internal */
227
+ _rebuild() {
228
+ const vb = this._vertexBuffers[VertexBuffer.PositionKind];
229
+ if (vb) {
230
+ vb._rebuild();
231
+ }
232
+ this._createIndexBuffer();
233
+ if (this.refreshRate === RenderTargetTexture.REFRESHRATE_RENDER_ONCE) {
234
+ this.refreshRate = RenderTargetTexture.REFRESHRATE_RENDER_ONCE;
235
+ }
236
+ }
237
+ /**
238
+ * Resets the texture in order to recreate its associated resources.
239
+ * This can be called in case of context loss or if you change the shader code and need to regenerate the texture with the new code
240
+ */
241
+ reset() {
242
+ this._drawWrapper.effect?.dispose();
243
+ this._drawWrapper.effect = null;
244
+ this._cachedDefines = null;
245
+ }
246
+ _getDefines() {
247
+ return this.defines;
248
+ }
249
+ /**
250
+ * Executes a function when the texture will be ready to be drawn.
251
+ * @param func The callback to be used.
252
+ */
253
+ executeWhenReady(func) {
254
+ if (this.isReady()) {
255
+ func(this);
256
+ return;
257
+ }
258
+ const effect = this.getEffect();
259
+ if (effect) {
260
+ effect.executeWhenCompiled(() => {
261
+ func(this);
262
+ });
263
+ }
264
+ }
265
+ /**
266
+ * Is the texture ready to be used ? (rendered at least once)
267
+ * @returns true if ready, otherwise, false.
268
+ */
269
+ isReady() {
270
+ const engine = this._fullEngine;
271
+ if (this.nodeMaterialSource) {
272
+ // When sourced from a node material, the effect is created asynchronously once the material
273
+ // build completes (some node material blocks load their shader code asynchronously). Until
274
+ // then there is no effect yet, so the texture is simply not ready.
275
+ return this._drawWrapper.effect?.isReady() ?? false;
276
+ }
277
+ if (!this._fragment) {
278
+ return false;
279
+ }
280
+ if (this._fallbackTextureUsed) {
281
+ return true;
282
+ }
283
+ if (!this._texture) {
284
+ return false;
285
+ }
286
+ const defines = this._getDefines();
287
+ if (this._drawWrapper.effect && defines === this._cachedDefines && this._drawWrapper.effect.isReady()) {
288
+ return true;
289
+ }
290
+ const shaders = {
291
+ vertex: "procedural",
292
+ fragmentElement: this._fragment.fragmentElement,
293
+ fragmentSource: this._fragment.fragmentSource,
294
+ fragment: typeof this._fragment === "string" ? this._fragment : undefined,
295
+ };
296
+ if (this._cachedDefines !== defines) {
297
+ this._cachedDefines = defines;
298
+ this._drawWrapper.effect = engine.createEffect(shaders, [VertexBuffer.PositionKind], this._uniforms, this._samplers, defines, undefined, undefined, () => {
299
+ this._rtWrapper?.dispose();
300
+ this._rtWrapper = this._texture = null;
301
+ if (this._fallbackTexture) {
302
+ this._texture = this._fallbackTexture._texture;
303
+ if (this._texture) {
304
+ this._texture.incrementReferences();
305
+ }
306
+ }
307
+ this._fallbackTextureUsed = true;
308
+ }, undefined, this._shaderLanguage, async () => {
309
+ if (this._options.extraInitializationsAsync) {
310
+ if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {
311
+ await Promise.all([import("../../../ShadersWGSL/procedural.vertex.js"), this._options.extraInitializationsAsync()]);
312
+ }
313
+ else {
314
+ await Promise.all([import("../../../Shaders/procedural.vertex.js"), this._options.extraInitializationsAsync()]);
315
+ }
316
+ }
317
+ else {
318
+ if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {
319
+ await import("../../../ShadersWGSL/procedural.vertex.js");
320
+ }
321
+ else {
322
+ await import("../../../Shaders/procedural.vertex.js");
323
+ }
324
+ }
325
+ });
326
+ }
327
+ return this._drawWrapper.effect.isReady();
328
+ }
329
+ /**
330
+ * Resets the refresh counter of the texture and start bak from scratch.
331
+ * Could be useful to regenerate the texture if it is setup to render only once.
332
+ */
333
+ resetRefreshCounter() {
334
+ this._currentRefreshId = -1;
335
+ }
336
+ /**
337
+ * Set the fragment shader to use in order to render the texture.
338
+ * @param fragment This can be set to a path (into the shader store) or to a json object containing a fragmentElement property.
339
+ */
340
+ setFragment(fragment) {
341
+ this._fragment = fragment;
342
+ }
343
+ /**
344
+ * Define the refresh rate of the texture or the rendering frequency.
345
+ * Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...
346
+ */
347
+ get refreshRate() {
348
+ return this._refreshRate;
349
+ }
350
+ set refreshRate(value) {
351
+ this._refreshRate = value;
352
+ this.resetRefreshCounter();
353
+ }
354
+ /** @internal */
355
+ _shouldRender() {
356
+ if (!this.isEnabled || !this.isReady() || !this._texture) {
277
357
  if (this._texture) {
278
- this._texture.incrementReferences();
358
+ this._texture.isReady = false;
279
359
  }
360
+ return false;
361
+ }
362
+ if (this._fallbackTextureUsed) {
363
+ return false;
364
+ }
365
+ if (this._currentRefreshId === -1) {
366
+ // At least render once
367
+ this._currentRefreshId = 1;
368
+ this._frameId++;
369
+ return true;
370
+ }
371
+ if (this.refreshRate === this._currentRefreshId) {
372
+ this._currentRefreshId = 1;
373
+ this._frameId++;
374
+ return true;
375
+ }
376
+ this._currentRefreshId++;
377
+ return false;
378
+ }
379
+ /**
380
+ * Get the size the texture is rendering at.
381
+ * @returns the size (on cube texture it is always squared)
382
+ */
383
+ getRenderSize() {
384
+ return this._size;
385
+ }
386
+ /**
387
+ * Resize the texture to new value.
388
+ * @param size Define the new size the texture should have
389
+ * @param generateMipMaps Define whether the new texture should create mip maps
390
+ */
391
+ resize(size, generateMipMaps) {
392
+ if (this._fallbackTextureUsed || !this._rtWrapper || !this._texture) {
393
+ return;
394
+ }
395
+ const isCube = this._texture.isCube;
396
+ this._rtWrapper.dispose();
397
+ const rtWrapper = this._createRtWrapper(isCube, size, generateMipMaps, this._textureType);
398
+ this._texture = rtWrapper.texture;
399
+ // Update properties
400
+ this._size = size;
401
+ this._generateMipMaps = generateMipMaps;
402
+ }
403
+ _checkUniform(uniformName) {
404
+ if (this._uniforms.indexOf(uniformName) === -1) {
405
+ this._uniforms.push(uniformName);
406
+ }
407
+ }
408
+ /**
409
+ * Set a texture in the shader program used to render.
410
+ * @param name Define the name of the uniform samplers as defined in the shader
411
+ * @param texture Define the texture to bind to this sampler
412
+ * @returns the texture itself allowing "fluent" like uniform updates
413
+ */
414
+ setTexture(name, texture) {
415
+ if (this._samplers.indexOf(name) === -1) {
416
+ this._samplers.push(name);
417
+ }
418
+ this._textures[name] = texture;
419
+ return this;
420
+ }
421
+ /**
422
+ * Set a float in the shader.
423
+ * @param name Define the name of the uniform as defined in the shader
424
+ * @param value Define the value to give to the uniform
425
+ * @returns the texture itself allowing "fluent" like uniform updates
426
+ */
427
+ setFloat(name, value) {
428
+ this._checkUniform(name);
429
+ this._floats[name] = value;
430
+ return this;
431
+ }
432
+ /**
433
+ * Set a int in the shader.
434
+ * @param name Define the name of the uniform as defined in the shader
435
+ * @param value Define the value to give to the uniform
436
+ * @returns the texture itself allowing "fluent" like uniform updates
437
+ */
438
+ setInt(name, value) {
439
+ this._checkUniform(name);
440
+ this._ints[name] = value;
441
+ return this;
442
+ }
443
+ /**
444
+ * Set an array of floats in the shader.
445
+ * @param name Define the name of the uniform as defined in the shader
446
+ * @param value Define the value to give to the uniform
447
+ * @returns the texture itself allowing "fluent" like uniform updates
448
+ */
449
+ setFloats(name, value) {
450
+ this._checkUniform(name);
451
+ this._floatsArrays[name] = value;
452
+ return this;
453
+ }
454
+ /**
455
+ * Set a vec3 in the shader from a Color3.
456
+ * @param name Define the name of the uniform as defined in the shader
457
+ * @param value Define the value to give to the uniform
458
+ * @returns the texture itself allowing "fluent" like uniform updates
459
+ */
460
+ setColor3(name, value) {
461
+ this._checkUniform(name);
462
+ this._colors3[name] = value;
463
+ return this;
464
+ }
465
+ /**
466
+ * Set a vec4 in the shader from a Color4.
467
+ * @param name Define the name of the uniform as defined in the shader
468
+ * @param value Define the value to give to the uniform
469
+ * @returns the texture itself allowing "fluent" like uniform updates
470
+ */
471
+ setColor4(name, value) {
472
+ this._checkUniform(name);
473
+ this._colors4[name] = value;
474
+ return this;
475
+ }
476
+ /**
477
+ * Set a vec2 in the shader from a Vector2.
478
+ * @param name Define the name of the uniform as defined in the shader
479
+ * @param value Define the value to give to the uniform
480
+ * @returns the texture itself allowing "fluent" like uniform updates
481
+ */
482
+ setVector2(name, value) {
483
+ this._checkUniform(name);
484
+ this._vectors2[name] = value;
485
+ return this;
486
+ }
487
+ /**
488
+ * Set a vec3 in the shader from a Vector3.
489
+ * @param name Define the name of the uniform as defined in the shader
490
+ * @param value Define the value to give to the uniform
491
+ * @returns the texture itself allowing "fluent" like uniform updates
492
+ */
493
+ setVector3(name, value) {
494
+ this._checkUniform(name);
495
+ this._vectors3[name] = value;
496
+ return this;
497
+ }
498
+ /**
499
+ * Set a vec4 in the shader from a Vector4.
500
+ * @param name Define the name of the uniform as defined in the shader
501
+ * @param value Define the value to give to the uniform
502
+ * @returns the texture itself allowing "fluent" like uniform updates
503
+ */
504
+ setVector4(name, value) {
505
+ this._checkUniform(name);
506
+ this._vectors4[name] = value;
507
+ return this;
508
+ }
509
+ /**
510
+ * Set a mat4 in the shader from a MAtrix.
511
+ * @param name Define the name of the uniform as defined in the shader
512
+ * @param value Define the value to give to the uniform
513
+ * @returns the texture itself allowing "fluent" like uniform updates
514
+ */
515
+ setMatrix(name, value) {
516
+ this._checkUniform(name);
517
+ this._matrices[name] = value;
518
+ return this;
519
+ }
520
+ /**
521
+ * Render the texture to its associated render target.
522
+ * @param useCameraPostProcess Define if camera post process should be applied to the texture
523
+ */
524
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
525
+ render(useCameraPostProcess) {
526
+ const scene = this.getScene();
527
+ if (!scene) {
528
+ return;
280
529
  }
281
- this._fallbackTextureUsed = true;
282
- }, undefined, this._shaderLanguage, async () => {
283
- if (this._options.extraInitializationsAsync) {
284
- if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {
285
- await Promise.all([import("../../../ShadersWGSL/procedural.vertex.js"), this._options.extraInitializationsAsync()]);
530
+ const engine = this._fullEngine;
531
+ // Render
532
+ engine.enableEffect(this._drawWrapper);
533
+ this.onBeforeGenerationObservable.notifyObservers(this);
534
+ engine.setState(false);
535
+ if (!this.nodeMaterialSource) {
536
+ // Texture
537
+ for (const name in this._textures) {
538
+ this._drawWrapper.effect.setTexture(name, this._textures[name]);
539
+ }
540
+ // Float
541
+ for (const name in this._ints) {
542
+ this._drawWrapper.effect.setInt(name, this._ints[name]);
543
+ }
544
+ // Float
545
+ for (const name in this._floats) {
546
+ this._drawWrapper.effect.setFloat(name, this._floats[name]);
547
+ }
548
+ // Floats
549
+ for (const name in this._floatsArrays) {
550
+ this._drawWrapper.effect.setArray(name, this._floatsArrays[name]);
551
+ }
552
+ // Color3
553
+ for (const name in this._colors3) {
554
+ this._drawWrapper.effect.setColor3(name, this._colors3[name]);
286
555
  }
287
- else {
288
- await Promise.all([import("../../../Shaders/procedural.vertex.js"), this._options.extraInitializationsAsync()]);
556
+ // Color4
557
+ for (const name in this._colors4) {
558
+ const color = this._colors4[name];
559
+ this._drawWrapper.effect.setFloat4(name, color.r, color.g, color.b, color.a);
560
+ }
561
+ // Vector2
562
+ for (const name in this._vectors2) {
563
+ this._drawWrapper.effect.setVector2(name, this._vectors2[name]);
564
+ }
565
+ // Vector3
566
+ for (const name in this._vectors3) {
567
+ this._drawWrapper.effect.setVector3(name, this._vectors3[name]);
568
+ }
569
+ // Vector4
570
+ for (const name in this._vectors4) {
571
+ this._drawWrapper.effect.setVector4(name, this._vectors4[name]);
572
+ }
573
+ // Matrix
574
+ for (const name in this._matrices) {
575
+ this._drawWrapper.effect.setMatrix(name, this._matrices[name]);
576
+ }
577
+ }
578
+ if (!this._texture || !this._rtWrapper) {
579
+ return;
580
+ }
581
+ if (engine._enableGPUDebugMarkers) {
582
+ engine._debugPushGroup?.(`procedural texture generation for ${this.name}`);
583
+ }
584
+ const viewPort = engine.currentViewport;
585
+ if (this.isCube) {
586
+ for (let face = 0; face < 6; face++) {
587
+ engine.bindFramebuffer(this._rtWrapper, face, undefined, undefined, true);
588
+ // VBOs
589
+ engine.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect);
590
+ this._drawWrapper.effect.setFloat("face", face);
591
+ // Clear
592
+ if (this.autoClear) {
593
+ engine.clear(scene.clearColor, true, false, false);
594
+ }
595
+ // Draw order
596
+ engine.drawElementsType(Material.TriangleFillMode, 0, 6);
597
+ // Unbind and restore viewport
598
+ engine.unBindFramebuffer(this._rtWrapper, true);
289
599
  }
290
600
  }
291
601
  else {
292
- if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {
293
- await import("../../../ShadersWGSL/procedural.vertex.js");
602
+ let numLayers = 1;
603
+ if (this._rtWrapper.is3D) {
604
+ numLayers = this._rtWrapper.depth;
294
605
  }
295
- else {
296
- await import("../../../Shaders/procedural.vertex.js");
606
+ else if (this._rtWrapper.is2DArray) {
607
+ numLayers = this._rtWrapper.layers;
297
608
  }
298
- }
299
- });
300
- }
301
- return this._drawWrapper.effect.isReady();
302
- }
303
- /**
304
- * Resets the refresh counter of the texture and start bak from scratch.
305
- * Could be useful to regenerate the texture if it is setup to render only once.
306
- */
307
- resetRefreshCounter() {
308
- this._currentRefreshId = -1;
309
- }
310
- /**
311
- * Set the fragment shader to use in order to render the texture.
312
- * @param fragment This can be set to a path (into the shader store) or to a json object containing a fragmentElement property.
313
- */
314
- setFragment(fragment) {
315
- this._fragment = fragment;
316
- }
317
- /**
318
- * Define the refresh rate of the texture or the rendering frequency.
319
- * Use 0 to render just once, 1 to render on every frame, 2 to render every two frames and so on...
320
- */
321
- get refreshRate() {
322
- return this._refreshRate;
323
- }
324
- set refreshRate(value) {
325
- this._refreshRate = value;
326
- this.resetRefreshCounter();
327
- }
328
- /** @internal */
329
- _shouldRender() {
330
- if (!this.isEnabled || !this.isReady() || !this._texture) {
331
- if (this._texture) {
332
- this._texture.isReady = false;
333
- }
334
- return false;
335
- }
336
- if (this._fallbackTextureUsed) {
337
- return false;
338
- }
339
- if (this._currentRefreshId === -1) {
340
- // At least render once
341
- this._currentRefreshId = 1;
342
- this._frameId++;
343
- return true;
344
- }
345
- if (this.refreshRate === this._currentRefreshId) {
346
- this._currentRefreshId = 1;
347
- this._frameId++;
348
- return true;
349
- }
350
- this._currentRefreshId++;
351
- return false;
352
- }
353
- /**
354
- * Get the size the texture is rendering at.
355
- * @returns the size (on cube texture it is always squared)
356
- */
357
- getRenderSize() {
358
- return this._size;
359
- }
360
- /**
361
- * Resize the texture to new value.
362
- * @param size Define the new size the texture should have
363
- * @param generateMipMaps Define whether the new texture should create mip maps
364
- */
365
- resize(size, generateMipMaps) {
366
- if (this._fallbackTextureUsed || !this._rtWrapper || !this._texture) {
367
- return;
368
- }
369
- const isCube = this._texture.isCube;
370
- this._rtWrapper.dispose();
371
- const rtWrapper = this._createRtWrapper(isCube, size, generateMipMaps, this._textureType);
372
- this._texture = rtWrapper.texture;
373
- // Update properties
374
- this._size = size;
375
- this._generateMipMaps = generateMipMaps;
376
- }
377
- _checkUniform(uniformName) {
378
- if (this._uniforms.indexOf(uniformName) === -1) {
379
- this._uniforms.push(uniformName);
380
- }
381
- }
382
- /**
383
- * Set a texture in the shader program used to render.
384
- * @param name Define the name of the uniform samplers as defined in the shader
385
- * @param texture Define the texture to bind to this sampler
386
- * @returns the texture itself allowing "fluent" like uniform updates
387
- */
388
- setTexture(name, texture) {
389
- if (this._samplers.indexOf(name) === -1) {
390
- this._samplers.push(name);
391
- }
392
- this._textures[name] = texture;
393
- return this;
394
- }
395
- /**
396
- * Set a float in the shader.
397
- * @param name Define the name of the uniform as defined in the shader
398
- * @param value Define the value to give to the uniform
399
- * @returns the texture itself allowing "fluent" like uniform updates
400
- */
401
- setFloat(name, value) {
402
- this._checkUniform(name);
403
- this._floats[name] = value;
404
- return this;
405
- }
406
- /**
407
- * Set a int in the shader.
408
- * @param name Define the name of the uniform as defined in the shader
409
- * @param value Define the value to give to the uniform
410
- * @returns the texture itself allowing "fluent" like uniform updates
411
- */
412
- setInt(name, value) {
413
- this._checkUniform(name);
414
- this._ints[name] = value;
415
- return this;
416
- }
417
- /**
418
- * Set an array of floats in the shader.
419
- * @param name Define the name of the uniform as defined in the shader
420
- * @param value Define the value to give to the uniform
421
- * @returns the texture itself allowing "fluent" like uniform updates
422
- */
423
- setFloats(name, value) {
424
- this._checkUniform(name);
425
- this._floatsArrays[name] = value;
426
- return this;
427
- }
428
- /**
429
- * Set a vec3 in the shader from a Color3.
430
- * @param name Define the name of the uniform as defined in the shader
431
- * @param value Define the value to give to the uniform
432
- * @returns the texture itself allowing "fluent" like uniform updates
433
- */
434
- setColor3(name, value) {
435
- this._checkUniform(name);
436
- this._colors3[name] = value;
437
- return this;
438
- }
439
- /**
440
- * Set a vec4 in the shader from a Color4.
441
- * @param name Define the name of the uniform as defined in the shader
442
- * @param value Define the value to give to the uniform
443
- * @returns the texture itself allowing "fluent" like uniform updates
444
- */
445
- setColor4(name, value) {
446
- this._checkUniform(name);
447
- this._colors4[name] = value;
448
- return this;
449
- }
450
- /**
451
- * Set a vec2 in the shader from a Vector2.
452
- * @param name Define the name of the uniform as defined in the shader
453
- * @param value Define the value to give to the uniform
454
- * @returns the texture itself allowing "fluent" like uniform updates
455
- */
456
- setVector2(name, value) {
457
- this._checkUniform(name);
458
- this._vectors2[name] = value;
459
- return this;
460
- }
461
- /**
462
- * Set a vec3 in the shader from a Vector3.
463
- * @param name Define the name of the uniform as defined in the shader
464
- * @param value Define the value to give to the uniform
465
- * @returns the texture itself allowing "fluent" like uniform updates
466
- */
467
- setVector3(name, value) {
468
- this._checkUniform(name);
469
- this._vectors3[name] = value;
470
- return this;
471
- }
472
- /**
473
- * Set a vec4 in the shader from a Vector4.
474
- * @param name Define the name of the uniform as defined in the shader
475
- * @param value Define the value to give to the uniform
476
- * @returns the texture itself allowing "fluent" like uniform updates
477
- */
478
- setVector4(name, value) {
479
- this._checkUniform(name);
480
- this._vectors4[name] = value;
481
- return this;
482
- }
483
- /**
484
- * Set a mat4 in the shader from a MAtrix.
485
- * @param name Define the name of the uniform as defined in the shader
486
- * @param value Define the value to give to the uniform
487
- * @returns the texture itself allowing "fluent" like uniform updates
488
- */
489
- setMatrix(name, value) {
490
- this._checkUniform(name);
491
- this._matrices[name] = value;
492
- return this;
493
- }
494
- /**
495
- * Render the texture to its associated render target.
496
- * @param useCameraPostProcess Define if camera post process should be applied to the texture
497
- */
498
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
499
- render(useCameraPostProcess) {
500
- const scene = this.getScene();
501
- if (!scene) {
502
- return;
503
- }
504
- const engine = this._fullEngine;
505
- // Render
506
- engine.enableEffect(this._drawWrapper);
507
- this.onBeforeGenerationObservable.notifyObservers(this);
508
- engine.setState(false);
509
- if (!this.nodeMaterialSource) {
510
- // Texture
511
- for (const name in this._textures) {
512
- this._drawWrapper.effect.setTexture(name, this._textures[name]);
513
- }
514
- // Float
515
- for (const name in this._ints) {
516
- this._drawWrapper.effect.setInt(name, this._ints[name]);
517
- }
518
- // Float
519
- for (const name in this._floats) {
520
- this._drawWrapper.effect.setFloat(name, this._floats[name]);
521
- }
522
- // Floats
523
- for (const name in this._floatsArrays) {
524
- this._drawWrapper.effect.setArray(name, this._floatsArrays[name]);
525
- }
526
- // Color3
527
- for (const name in this._colors3) {
528
- this._drawWrapper.effect.setColor3(name, this._colors3[name]);
529
- }
530
- // Color4
531
- for (const name in this._colors4) {
532
- const color = this._colors4[name];
533
- this._drawWrapper.effect.setFloat4(name, color.r, color.g, color.b, color.a);
534
- }
535
- // Vector2
536
- for (const name in this._vectors2) {
537
- this._drawWrapper.effect.setVector2(name, this._vectors2[name]);
538
- }
539
- // Vector3
540
- for (const name in this._vectors3) {
541
- this._drawWrapper.effect.setVector3(name, this._vectors3[name]);
542
- }
543
- // Vector4
544
- for (const name in this._vectors4) {
545
- this._drawWrapper.effect.setVector4(name, this._vectors4[name]);
546
- }
547
- // Matrix
548
- for (const name in this._matrices) {
549
- this._drawWrapper.effect.setMatrix(name, this._matrices[name]);
550
- }
551
- }
552
- if (!this._texture || !this._rtWrapper) {
553
- return;
554
- }
555
- if (engine._enableGPUDebugMarkers) {
556
- engine._debugPushGroup?.(`procedural texture generation for ${this.name}`);
557
- }
558
- const viewPort = engine.currentViewport;
559
- if (this.isCube) {
560
- for (let face = 0; face < 6; face++) {
561
- engine.bindFramebuffer(this._rtWrapper, face, undefined, undefined, true);
562
- // VBOs
563
- engine.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect);
564
- this._drawWrapper.effect.setFloat("face", face);
565
- // Clear
566
- if (this.autoClear) {
567
- engine.clear(scene.clearColor, true, false, false);
568
- }
569
- // Draw order
570
- engine.drawElementsType(Material.TriangleFillMode, 0, 6);
571
- // Unbind and restore viewport
572
- engine.unBindFramebuffer(this._rtWrapper, true);
573
- }
574
- }
575
- else {
576
- let numLayers = 1;
577
- if (this._rtWrapper.is3D) {
578
- numLayers = this._rtWrapper.depth;
579
- }
580
- else if (this._rtWrapper.is2DArray) {
581
- numLayers = this._rtWrapper.layers;
582
- }
583
- for (let layer = 0; layer < numLayers; layer++) {
584
- engine.bindFramebuffer(this._rtWrapper, 0, undefined, undefined, true, 0, layer);
585
- // VBOs
586
- engine.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect);
587
- if (this._rtWrapper.is3D || this._rtWrapper.is2DArray) {
588
- this._drawWrapper.effect?.setFloat("layer", numLayers !== 1 ? layer / (numLayers - 1) : 0);
589
- this._drawWrapper.effect?.setInt("layerNum", layer);
590
- for (const name in this._textures) {
591
- this._drawWrapper.effect.setTexture(name, this._textures[name]);
609
+ for (let layer = 0; layer < numLayers; layer++) {
610
+ engine.bindFramebuffer(this._rtWrapper, 0, undefined, undefined, true, 0, layer);
611
+ // VBOs
612
+ engine.bindBuffers(this._vertexBuffers, this._indexBuffer, this._drawWrapper.effect);
613
+ if (this._rtWrapper.is3D || this._rtWrapper.is2DArray) {
614
+ this._drawWrapper.effect?.setFloat("layer", numLayers !== 1 ? layer / (numLayers - 1) : 0);
615
+ this._drawWrapper.effect?.setInt("layerNum", layer);
616
+ for (const name in this._textures) {
617
+ this._drawWrapper.effect.setTexture(name, this._textures[name]);
618
+ }
619
+ }
620
+ // Clear
621
+ if (this.autoClear) {
622
+ engine.clear(scene.clearColor, true, false, false);
623
+ }
624
+ // Draw order
625
+ engine.drawElementsType(Material.TriangleFillMode, 0, 6);
626
+ // Unbind and restore viewport
627
+ engine.unBindFramebuffer(this._rtWrapper, !this._generateMipMaps);
592
628
  }
593
629
  }
594
- // Clear
595
- if (this.autoClear) {
596
- engine.clear(scene.clearColor, true, false, false);
597
- }
598
- // Draw order
599
- engine.drawElementsType(Material.TriangleFillMode, 0, 6);
600
- // Unbind and restore viewport
601
- engine.unBindFramebuffer(this._rtWrapper, !this._generateMipMaps);
602
- }
603
- }
604
- if (viewPort) {
605
- engine.setViewport(viewPort);
606
- }
607
- // Mipmaps
608
- if (this.isCube) {
609
- engine.generateMipMapsForCubemap(this._texture, true);
610
- }
611
- if (engine._enableGPUDebugMarkers) {
612
- engine._debugPopGroup?.();
613
- }
614
- if (this.onGenerated) {
615
- this.onGenerated();
616
- }
617
- this.onGeneratedObservable.notifyObservers(this);
618
- }
619
- /**
620
- * Clone the texture.
621
- * @returns the cloned texture
622
- */
623
- clone() {
624
- const textureSize = this.getSize();
625
- const newTexture = new ProceduralTexture(this.name, textureSize.width, this._fragment, this.getScene(), this._fallbackTexture, this._generateMipMaps);
626
- // Base texture
627
- newTexture.hasAlpha = this.hasAlpha;
628
- newTexture.level = this.level;
629
- // RenderTarget Texture
630
- newTexture.coordinatesMode = this.coordinatesMode;
631
- return newTexture;
632
- }
633
- /**
634
- * Dispose the texture and release its associated resources.
635
- */
636
- dispose() {
637
- const scene = this.getScene();
638
- if (!scene) {
639
- return;
640
- }
641
- const index = scene.proceduralTextures.indexOf(this);
642
- if (index >= 0) {
643
- scene.proceduralTextures.splice(index, 1);
644
- }
645
- const vertexBuffer = this._vertexBuffers[VertexBuffer.PositionKind];
646
- if (vertexBuffer) {
647
- vertexBuffer.dispose();
648
- this._vertexBuffers[VertexBuffer.PositionKind] = null;
649
- }
650
- if (this._indexBuffer && this._fullEngine._releaseBuffer(this._indexBuffer)) {
651
- this._indexBuffer = null;
652
- }
653
- this.onGeneratedObservable.clear();
654
- this.onBeforeGenerationObservable.clear();
655
- super.dispose();
656
- }
657
- }
658
- __decorate([
659
- serialize()
660
- ], ProceduralTexture.prototype, "isEnabled", void 0);
661
- __decorate([
662
- serialize()
663
- ], ProceduralTexture.prototype, "autoClear", void 0);
664
- __decorate([
665
- serialize()
666
- ], ProceduralTexture.prototype, "_generateMipMaps", void 0);
667
- __decorate([
668
- serialize()
669
- ], ProceduralTexture.prototype, "_size", void 0);
670
- __decorate([
671
- serialize()
672
- ], ProceduralTexture.prototype, "refreshRate", null);
630
+ if (viewPort) {
631
+ engine.setViewport(viewPort);
632
+ }
633
+ // Mipmaps
634
+ if (this.isCube) {
635
+ engine.generateMipMapsForCubemap(this._texture, true);
636
+ }
637
+ if (engine._enableGPUDebugMarkers) {
638
+ engine._debugPopGroup?.();
639
+ }
640
+ if (this.onGenerated) {
641
+ this.onGenerated();
642
+ }
643
+ this.onGeneratedObservable.notifyObservers(this);
644
+ }
645
+ /**
646
+ * Clone the texture.
647
+ * @returns the cloned texture
648
+ */
649
+ clone() {
650
+ const textureSize = this.getSize();
651
+ const newTexture = new _a(this.name, textureSize.width, this._fragment, this.getScene(), this._fallbackTexture, this._generateMipMaps);
652
+ // Base texture
653
+ newTexture.hasAlpha = this.hasAlpha;
654
+ newTexture.level = this.level;
655
+ // RenderTarget Texture
656
+ newTexture.coordinatesMode = this.coordinatesMode;
657
+ return newTexture;
658
+ }
659
+ /**
660
+ * Dispose the texture and release its associated resources.
661
+ */
662
+ dispose() {
663
+ const scene = this.getScene();
664
+ if (!scene) {
665
+ return;
666
+ }
667
+ const index = scene.proceduralTextures.indexOf(this);
668
+ if (index >= 0) {
669
+ scene.proceduralTextures.splice(index, 1);
670
+ }
671
+ const vertexBuffer = this._vertexBuffers[VertexBuffer.PositionKind];
672
+ if (vertexBuffer) {
673
+ vertexBuffer.dispose();
674
+ this._vertexBuffers[VertexBuffer.PositionKind] = null;
675
+ }
676
+ if (this._indexBuffer && this._fullEngine._releaseBuffer(this._indexBuffer)) {
677
+ this._indexBuffer = null;
678
+ }
679
+ this.onGeneratedObservable.clear();
680
+ this.onBeforeGenerationObservable.clear();
681
+ super.dispose();
682
+ }
683
+ },
684
+ (() => {
685
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
686
+ _isEnabled_decorators = [serialize()];
687
+ _autoClear_decorators = [serialize()];
688
+ __generateMipMaps_decorators = [serialize()];
689
+ __size_decorators = [serialize()];
690
+ _get_refreshRate_decorators = [serialize()];
691
+ __esDecorate(_a, null, _get_refreshRate_decorators, { kind: "getter", name: "refreshRate", static: false, private: false, access: { has: obj => "refreshRate" in obj, get: obj => obj.refreshRate }, metadata: _metadata }, null, _instanceExtraInitializers);
692
+ __esDecorate(null, null, _isEnabled_decorators, { kind: "field", name: "isEnabled", static: false, private: false, access: { has: obj => "isEnabled" in obj, get: obj => obj.isEnabled, set: (obj, value) => { obj.isEnabled = value; } }, metadata: _metadata }, _isEnabled_initializers, _isEnabled_extraInitializers);
693
+ __esDecorate(null, null, _autoClear_decorators, { kind: "field", name: "autoClear", static: false, private: false, access: { has: obj => "autoClear" in obj, get: obj => obj.autoClear, set: (obj, value) => { obj.autoClear = value; } }, metadata: _metadata }, _autoClear_initializers, _autoClear_extraInitializers);
694
+ __esDecorate(null, null, __generateMipMaps_decorators, { kind: "field", name: "_generateMipMaps", static: false, private: false, access: { has: obj => "_generateMipMaps" in obj, get: obj => obj._generateMipMaps, set: (obj, value) => { obj._generateMipMaps = value; } }, metadata: _metadata }, __generateMipMaps_initializers, __generateMipMaps_extraInitializers);
695
+ __esDecorate(null, null, __size_decorators, { kind: "field", name: "_size", static: false, private: false, access: { has: obj => "_size" in obj, get: obj => obj._size, set: (obj, value) => { obj._size = value; } }, metadata: _metadata }, __size_initializers, __size_extraInitializers);
696
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
697
+ })(),
698
+ _a;
699
+ })();
700
+ export { ProceduralTexture };
673
701
  let _Registered = false;
674
702
  /**
675
703
  * Register side effects for proceduralTexture.