@babylonjs/core 5.0.0-alpha.59 → 5.0.0-alpha.62

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 (400) hide show
  1. package/Animations/animation.d.ts +20 -0
  2. package/Animations/animation.js +57 -8
  3. package/Animations/animation.js.map +1 -1
  4. package/Animations/animationKey.d.ts +4 -0
  5. package/Animations/animationKey.js +4 -0
  6. package/Animations/animationKey.js.map +1 -1
  7. package/Audio/sound.js +1 -1
  8. package/Audio/sound.js.map +1 -1
  9. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +130 -0
  10. package/BakedVertexAnimation/bakedVertexAnimationManager.js +134 -0
  11. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -0
  12. package/BakedVertexAnimation/index.d.ts +2 -0
  13. package/BakedVertexAnimation/index.js +3 -0
  14. package/BakedVertexAnimation/index.js.map +1 -0
  15. package/BakedVertexAnimation/vertexAnimationBaker.d.ts +65 -0
  16. package/BakedVertexAnimation/vertexAnimationBaker.js +155 -0
  17. package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -0
  18. package/Behaviors/Cameras/autoRotationBehavior.d.ts +5 -0
  19. package/Behaviors/Cameras/autoRotationBehavior.js +7 -0
  20. package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
  21. package/Behaviors/Cameras/framingBehavior.d.ts +5 -0
  22. package/Behaviors/Cameras/framingBehavior.js +8 -1
  23. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  24. package/Bones/bone.d.ts +3 -1
  25. package/Bones/bone.js +4 -1
  26. package/Bones/bone.js.map +1 -1
  27. package/Cameras/Inputs/BaseCameraPointersInput.js +4 -6
  28. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  29. package/Cameras/Inputs/flyCameraMouseInput.js +4 -4
  30. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  31. package/Cameras/Inputs/freeCameraMouseInput.js +4 -4
  32. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  33. package/Cameras/camera.js +8 -2
  34. package/Cameras/camera.js.map +1 -1
  35. package/Cameras/targetCamera.js +1 -1
  36. package/Cameras/targetCamera.js.map +1 -1
  37. package/Culling/boundingBox.d.ts +4 -0
  38. package/Culling/boundingBox.js +8 -0
  39. package/Culling/boundingBox.js.map +1 -1
  40. package/Debug/physicsViewer.js +1 -1
  41. package/Debug/physicsViewer.js.map +1 -1
  42. package/Debug/skeletonViewer.js +2 -2
  43. package/Debug/skeletonViewer.js.map +1 -1
  44. package/DeviceInput/Implementations/nativeDeviceInputWrapper.d.ts +6 -1
  45. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js +16 -1
  46. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js.map +1 -1
  47. package/DeviceInput/Implementations/webDeviceInputSystem.js +10 -10
  48. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
  49. package/DeviceInput/deviceInputSystem.js +6 -1
  50. package/DeviceInput/deviceInputSystem.js.map +1 -1
  51. package/Engines/Extensions/engine.dynamicTexture.d.ts +2 -1
  52. package/Engines/Extensions/engine.dynamicTexture.js +2 -1
  53. package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
  54. package/Engines/Extensions/engine.multiview.js +17 -6
  55. package/Engines/Extensions/engine.multiview.js.map +1 -1
  56. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +3 -11
  57. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  58. package/Engines/WebGPU/Extensions/engine.multiRender.js +0 -4
  59. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  60. package/Engines/WebGPU/Extensions/engine.query.js +19 -3
  61. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  62. package/Engines/WebGPU/Extensions/engine.renderTarget.js +0 -4
  63. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  64. package/Engines/WebGPU/webgpuBundleList.d.ts +13 -0
  65. package/Engines/WebGPU/webgpuBundleList.js +27 -0
  66. package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
  67. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +42 -61
  68. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  69. package/Engines/WebGPU/webgpuCacheSampler.js +6 -4
  70. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  71. package/Engines/WebGPU/webgpuConstants.d.ts +57 -13
  72. package/Engines/WebGPU/webgpuConstants.js +62 -13
  73. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  74. package/Engines/WebGPU/webgpuHardwareTexture.d.ts +25 -2
  75. package/Engines/WebGPU/webgpuHardwareTexture.js +2 -1
  76. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  77. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +6 -0
  78. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +6 -0
  79. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  80. package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +27 -0
  81. package/Engines/WebGPU/webgpuSnapshotRendering.js +107 -0
  82. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -0
  83. package/Engines/WebGPU/webgpuTextureHelper.d.ts +4 -4
  84. package/Engines/WebGPU/webgpuTextureHelper.js +273 -80
  85. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  86. package/Engines/constants.d.ts +2 -0
  87. package/Engines/constants.js +2 -0
  88. package/Engines/constants.js.map +1 -1
  89. package/Engines/engine.d.ts +94 -40
  90. package/Engines/engine.js +43 -1
  91. package/Engines/engine.js.map +1 -1
  92. package/Engines/engineFeatures.d.ts +2 -0
  93. package/Engines/engineFeatures.js.map +1 -1
  94. package/Engines/index.d.ts +1 -0
  95. package/Engines/index.js +1 -0
  96. package/Engines/index.js.map +1 -1
  97. package/Engines/nativeEngine.js +49 -23
  98. package/Engines/nativeEngine.js.map +1 -1
  99. package/Engines/nullEngine.js +1 -0
  100. package/Engines/nullEngine.js.map +1 -1
  101. package/Engines/thinEngine.d.ts +0 -11
  102. package/Engines/thinEngine.js +12 -40
  103. package/Engines/thinEngine.js.map +1 -1
  104. package/Engines/webgpuEngine.d.ts +6 -6
  105. package/Engines/webgpuEngine.js +28 -71
  106. package/Engines/webgpuEngine.js.map +1 -1
  107. package/Helpers/sceneHelpers.d.ts +3 -3
  108. package/Helpers/sceneHelpers.js +1 -2
  109. package/Helpers/sceneHelpers.js.map +1 -1
  110. package/Inputs/scene.inputManager.js +12 -14
  111. package/Inputs/scene.inputManager.js.map +1 -1
  112. package/Layers/effectLayer.d.ts +13 -1
  113. package/Layers/effectLayer.js +115 -65
  114. package/Layers/effectLayer.js.map +1 -1
  115. package/Layers/highlightLayer.d.ts +2 -1
  116. package/Layers/highlightLayer.js +6 -3
  117. package/Layers/highlightLayer.js.map +1 -1
  118. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -0
  119. package/Lights/Shadows/cascadedShadowGenerator.js +14 -0
  120. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  121. package/Lights/Shadows/shadowGenerator.d.ts +4 -0
  122. package/Lights/Shadows/shadowGenerator.js +31 -3
  123. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  124. package/Lights/light.js +7 -1
  125. package/Lights/light.js.map +1 -1
  126. package/Lights/pointLight.js +1 -1
  127. package/Lights/pointLight.js.map +1 -1
  128. package/Lights/spotLight.js +1 -1
  129. package/Lights/spotLight.js.map +1 -1
  130. package/Loading/Plugins/babylonFileLoader.js +17 -4
  131. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  132. package/Materials/Background/backgroundMaterial.js +1 -0
  133. package/Materials/Background/backgroundMaterial.js.map +1 -1
  134. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +10 -0
  135. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +31 -0
  136. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  137. package/Materials/Node/Blocks/Fragment/index.d.ts +2 -0
  138. package/Materials/Node/Blocks/Fragment/index.js +2 -0
  139. package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
  140. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.d.ts +41 -0
  141. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +128 -0
  142. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -0
  143. package/Materials/Node/Blocks/Fragment/twirlBlock.d.ts +49 -0
  144. package/Materials/Node/Blocks/Fragment/twirlBlock.js +145 -0
  145. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -0
  146. package/Materials/Node/Blocks/Input/inputBlock.js +1 -1
  147. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  148. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.d.ts +1 -0
  149. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +15 -0
  150. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  151. package/Materials/Node/Blocks/customBlock.d.ts +31 -0
  152. package/Materials/Node/Blocks/customBlock.js +144 -0
  153. package/Materials/Node/Blocks/customBlock.js.map +1 -0
  154. package/Materials/Node/Blocks/index.d.ts +2 -0
  155. package/Materials/Node/Blocks/index.js +2 -0
  156. package/Materials/Node/Blocks/index.js.map +1 -1
  157. package/Materials/Node/Blocks/vectorMergerBlock.js +4 -4
  158. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  159. package/Materials/Node/Blocks/voronoiNoiseBlock.d.ts +39 -0
  160. package/Materials/Node/Blocks/voronoiNoiseBlock.js +107 -0
  161. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -0
  162. package/Materials/Node/Blocks/worleyNoise3DBlock.d.ts +8 -0
  163. package/Materials/Node/Blocks/worleyNoise3DBlock.js +34 -2
  164. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  165. package/Materials/Node/nodeMaterial.d.ts +1 -0
  166. package/Materials/Node/nodeMaterial.js +2 -0
  167. package/Materials/Node/nodeMaterial.js.map +1 -1
  168. package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +5 -0
  169. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  170. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -0
  171. package/Materials/PBR/pbrBaseMaterial.js +12 -5
  172. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  173. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +11 -0
  174. package/Materials/PBR/pbrSubSurfaceConfiguration.js +18 -3
  175. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  176. package/Materials/Textures/dynamicTexture.d.ts +2 -1
  177. package/Materials/Textures/dynamicTexture.js +4 -2
  178. package/Materials/Textures/dynamicTexture.js.map +1 -1
  179. package/Materials/Textures/hdrCubeTexture.d.ts +9 -0
  180. package/Materials/Textures/hdrCubeTexture.js +21 -5
  181. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  182. package/Materials/Textures/mirrorTexture.d.ts +2 -0
  183. package/Materials/Textures/mirrorTexture.js +13 -0
  184. package/Materials/Textures/mirrorTexture.js.map +1 -1
  185. package/Materials/Textures/thinRenderTargetTexture.js +1 -1
  186. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  187. package/Materials/Textures/thinTexture.d.ts +1 -2
  188. package/Materials/Textures/thinTexture.js +2 -4
  189. package/Materials/Textures/thinTexture.js.map +1 -1
  190. package/Materials/imageProcessingConfiguration.d.ts +16 -1
  191. package/Materials/imageProcessingConfiguration.js +31 -0
  192. package/Materials/imageProcessingConfiguration.js.map +1 -1
  193. package/Materials/materialHelper.d.ts +15 -1
  194. package/Materials/materialHelper.js +40 -3
  195. package/Materials/materialHelper.js.map +1 -1
  196. package/Materials/pushMaterial.d.ts +2 -2
  197. package/Materials/pushMaterial.js +7 -3
  198. package/Materials/pushMaterial.js.map +1 -1
  199. package/Materials/shaderMaterial.d.ts +6 -5
  200. package/Materials/shaderMaterial.js +70 -28
  201. package/Materials/shaderMaterial.js.map +1 -1
  202. package/Materials/shadowDepthWrapper.js +7 -7
  203. package/Materials/shadowDepthWrapper.js.map +1 -1
  204. package/Materials/standardMaterial.d.ts +2 -0
  205. package/Materials/standardMaterial.js +11 -1
  206. package/Materials/standardMaterial.js.map +1 -1
  207. package/Materials/uniformBuffer.js +1 -2
  208. package/Materials/uniformBuffer.js.map +1 -1
  209. package/Maths/math.color.d.ts +20 -0
  210. package/Maths/math.color.js +45 -2
  211. package/Maths/math.color.js.map +1 -1
  212. package/Maths/math.vector.d.ts +14 -9
  213. package/Maths/math.vector.js +36 -17
  214. package/Maths/math.vector.js.map +1 -1
  215. package/Meshes/Builders/boxBuilder.d.ts +1 -1
  216. package/Meshes/Builders/boxBuilder.js +1 -0
  217. package/Meshes/Builders/boxBuilder.js.map +1 -1
  218. package/Meshes/Builders/cylinderBuilder.d.ts +17 -17
  219. package/Meshes/Builders/cylinderBuilder.js +1 -0
  220. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  221. package/Meshes/Builders/discBuilder.d.ts +1 -1
  222. package/Meshes/Builders/discBuilder.js +1 -0
  223. package/Meshes/Builders/discBuilder.js.map +1 -1
  224. package/Meshes/Builders/groundBuilder.d.ts +8 -8
  225. package/Meshes/Builders/groundBuilder.js +2 -0
  226. package/Meshes/Builders/groundBuilder.js.map +1 -1
  227. package/Meshes/Builders/hemisphereBuilder.d.ts +4 -4
  228. package/Meshes/Builders/hemisphereBuilder.js +1 -0
  229. package/Meshes/Builders/hemisphereBuilder.js.map +1 -1
  230. package/Meshes/Builders/icoSphereBuilder.d.ts +1 -1
  231. package/Meshes/Builders/icoSphereBuilder.js +1 -0
  232. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  233. package/Meshes/Builders/planeBuilder.d.ts +1 -1
  234. package/Meshes/Builders/planeBuilder.js +1 -0
  235. package/Meshes/Builders/planeBuilder.js.map +1 -1
  236. package/Meshes/Builders/polyhedronBuilder.d.ts +1 -1
  237. package/Meshes/Builders/polyhedronBuilder.js +1 -0
  238. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  239. package/Meshes/Builders/sphereBuilder.d.ts +1 -1
  240. package/Meshes/Builders/sphereBuilder.js +1 -0
  241. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  242. package/Meshes/Builders/torusBuilder.d.ts +8 -8
  243. package/Meshes/Builders/torusBuilder.js +1 -0
  244. package/Meshes/Builders/torusBuilder.js.map +1 -1
  245. package/Meshes/Builders/torusKnotBuilder.d.ts +11 -11
  246. package/Meshes/Builders/torusKnotBuilder.js +1 -0
  247. package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
  248. package/Meshes/abstractMesh.d.ts +22 -2
  249. package/Meshes/abstractMesh.js +78 -28
  250. package/Meshes/abstractMesh.js.map +1 -1
  251. package/Meshes/geometry.d.ts +3 -0
  252. package/Meshes/geometry.js +15 -7
  253. package/Meshes/geometry.js.map +1 -1
  254. package/Meshes/linesMesh.d.ts +0 -2
  255. package/Meshes/linesMesh.js +3 -35
  256. package/Meshes/linesMesh.js.map +1 -1
  257. package/Meshes/mesh.d.ts +12 -0
  258. package/Meshes/mesh.js +186 -117
  259. package/Meshes/mesh.js.map +1 -1
  260. package/Meshes/mesh.vertexData.d.ts +6 -1
  261. package/Meshes/mesh.vertexData.js +295 -114
  262. package/Meshes/mesh.vertexData.js.map +1 -1
  263. package/Meshes/thinInstanceMesh.js +6 -5
  264. package/Meshes/thinInstanceMesh.js.map +1 -1
  265. package/Meshes/transformNode.d.ts +8 -8
  266. package/Meshes/transformNode.js +25 -17
  267. package/Meshes/transformNode.js.map +1 -1
  268. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +1 -0
  269. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +13 -8
  270. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  271. package/Misc/PerformanceViewer/performanceViewerCollector.js +1 -1
  272. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  273. package/Misc/basis.d.ts +3 -2
  274. package/Misc/basis.js +31 -15
  275. package/Misc/basis.js.map +1 -1
  276. package/Misc/coroutine.d.ts +45 -0
  277. package/Misc/coroutine.js +123 -0
  278. package/Misc/coroutine.js.map +1 -0
  279. package/Misc/index.d.ts +1 -0
  280. package/Misc/index.js +1 -0
  281. package/Misc/index.js.map +1 -1
  282. package/Misc/observableCoroutine.d.ts +9 -10
  283. package/Misc/observableCoroutine.js +31 -39
  284. package/Misc/observableCoroutine.js.map +1 -1
  285. package/Misc/sceneSerializer.js +0 -3
  286. package/Misc/sceneSerializer.js.map +1 -1
  287. package/Misc/tools.d.ts +2 -4
  288. package/Misc/tools.js +6 -10
  289. package/Misc/tools.js.map +1 -1
  290. package/Particles/particleSystem.js +19 -16
  291. package/Particles/particleSystem.js.map +1 -1
  292. package/Particles/solidParticleSystem.js +29 -5
  293. package/Particles/solidParticleSystem.js.map +1 -1
  294. package/Particles/subEmitter.js +1 -0
  295. package/Particles/subEmitter.js.map +1 -1
  296. package/Physics/Plugins/ammoJSPlugin.js +10 -8
  297. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  298. package/PostProcesses/imageProcessingPostProcess.js +1 -0
  299. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  300. package/Probes/reflectionProbe.d.ts +2 -0
  301. package/Probes/reflectionProbe.js +21 -0
  302. package/Probes/reflectionProbe.js.map +1 -1
  303. package/Rendering/boundingBoxRenderer.d.ts +3 -0
  304. package/Rendering/boundingBoxRenderer.js +49 -14
  305. package/Rendering/boundingBoxRenderer.js.map +1 -1
  306. package/Rendering/depthRenderer.d.ts +1 -1
  307. package/Rendering/depthRenderer.js +2 -2
  308. package/Rendering/depthRenderer.js.map +1 -1
  309. package/Rendering/edgesRenderer.js +3 -1
  310. package/Rendering/edgesRenderer.js.map +1 -1
  311. package/Rendering/geometryBufferRenderer.d.ts +0 -2
  312. package/Rendering/geometryBufferRenderer.js +13 -10
  313. package/Rendering/geometryBufferRenderer.js.map +1 -1
  314. package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
  315. package/Shaders/ShadersInclude/bakedVertexAnimation.js +7 -0
  316. package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -0
  317. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
  318. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
  319. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
  320. package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
  321. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  322. package/Shaders/ShadersInclude/bonesVertex.js +1 -1
  323. package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
  324. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
  325. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  326. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +1 -1
  327. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  328. package/Shaders/background.fragment.js +1 -1
  329. package/Shaders/background.fragment.js.map +1 -1
  330. package/Shaders/background.vertex.d.ts +2 -0
  331. package/Shaders/background.vertex.js +3 -1
  332. package/Shaders/background.vertex.js.map +1 -1
  333. package/Shaders/color.vertex.d.ts +2 -0
  334. package/Shaders/color.vertex.js +3 -1
  335. package/Shaders/color.vertex.js.map +1 -1
  336. package/Shaders/default.vertex.d.ts +2 -0
  337. package/Shaders/default.vertex.js +3 -1
  338. package/Shaders/default.vertex.js.map +1 -1
  339. package/Shaders/depth.vertex.d.ts +2 -0
  340. package/Shaders/depth.vertex.js +3 -1
  341. package/Shaders/depth.vertex.js.map +1 -1
  342. package/Shaders/geometry.vertex.d.ts +2 -0
  343. package/Shaders/geometry.vertex.js +3 -1
  344. package/Shaders/geometry.vertex.js.map +1 -1
  345. package/Shaders/glowMapGeneration.vertex.d.ts +2 -0
  346. package/Shaders/glowMapGeneration.vertex.js +3 -1
  347. package/Shaders/glowMapGeneration.vertex.js.map +1 -1
  348. package/Shaders/outline.vertex.d.ts +2 -0
  349. package/Shaders/outline.vertex.js +3 -1
  350. package/Shaders/outline.vertex.js.map +1 -1
  351. package/Shaders/pbr.vertex.d.ts +2 -0
  352. package/Shaders/pbr.vertex.js +3 -1
  353. package/Shaders/pbr.vertex.js.map +1 -1
  354. package/Shaders/shadowMap.vertex.d.ts +2 -0
  355. package/Shaders/shadowMap.vertex.js +3 -1
  356. package/Shaders/shadowMap.vertex.js.map +1 -1
  357. package/Shaders/volumetricLightScatteringPass.vertex.d.ts +2 -0
  358. package/Shaders/volumetricLightScatteringPass.vertex.js +3 -1
  359. package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
  360. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
  361. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +7 -0
  362. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -0
  363. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
  364. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
  365. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
  366. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
  367. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
  368. package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
  369. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  370. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +5 -0
  371. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +7 -0
  372. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -0
  373. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +5 -0
  374. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +7 -0
  375. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -0
  376. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +5 -0
  377. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +7 -0
  378. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -0
  379. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +5 -0
  380. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +7 -0
  381. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -0
  382. package/Sprites/spriteRenderer.d.ts +1 -0
  383. package/Sprites/spriteRenderer.js +13 -1
  384. package/Sprites/spriteRenderer.js.map +1 -1
  385. package/XR/features/WebXRControllerPointerSelection.d.ts +14 -0
  386. package/XR/features/WebXRControllerPointerSelection.js +38 -10
  387. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  388. package/XR/features/WebXRNearInteraction.d.ts +1 -0
  389. package/XR/features/WebXRNearInteraction.js +2 -0
  390. package/XR/features/WebXRNearInteraction.js.map +1 -1
  391. package/index.d.ts +1 -0
  392. package/index.js +1 -0
  393. package/index.js.map +1 -1
  394. package/node.d.ts +30 -1
  395. package/node.js +12 -0
  396. package/node.js.map +1 -1
  397. package/package.json +52 -1
  398. package/scene.d.ts +10 -0
  399. package/scene.js +27 -0
  400. package/scene.js.map +1 -1
@@ -4,12 +4,12 @@ import { Matrix, Vector3, Vector2, Vector4 } from "../Maths/math.vector.js";
4
4
  import { VertexBuffer } from "../Buffers/buffer.js";
5
5
  import { Texture } from "../Materials/Textures/texture.js";
6
6
  import { MaterialHelper } from "./materialHelper.js";
7
- import { Material } from "./material.js";
8
7
  import { RegisterClass } from '../Misc/typeStore.js';
9
8
  import { Color3, Color4 } from '../Maths/math.color.js';
10
9
  import { EffectFallbacks } from './effectFallbacks.js';
11
10
  import { WebRequest } from '../Misc/webRequest.js';
12
11
  import { Engine } from '../Engines/engine.js';
12
+ import { PushMaterial } from "./pushMaterial.js";
13
13
  var onCreatedEffectParameters = { effect: null, subMesh: null };
14
14
  /**
15
15
  * The ShaderMaterial object has the necessary methods to pass data from your scene to the Vertex and Fragment Shaders and returns a material that can be applied to any mesh.
@@ -33,10 +33,12 @@ var ShaderMaterial = /** @class */ (function (_super) {
33
33
  * * object: { vertexSource: "vertex shader code string", fragmentSource: "fragment shader code string" } using with strings containing the shaders code
34
34
  * * string: "./COMMON_NAME", used with external files COMMON_NAME.vertex.fx and COMMON_NAME.fragment.fx in index.html folder.
35
35
  * @param options Define the options used to create the shader
36
+ * @param storeEffectOnSubMeshes true to store effect on submeshes, false to store the effect directly in the material class.
36
37
  */
37
- function ShaderMaterial(name, scene, shaderPath, options) {
38
+ function ShaderMaterial(name, scene, shaderPath, options, storeEffectOnSubMeshes) {
38
39
  if (options === void 0) { options = {}; }
39
- var _this = _super.call(this, name, scene) || this;
40
+ if (storeEffectOnSubMeshes === void 0) { storeEffectOnSubMeshes = true; }
41
+ var _this = _super.call(this, name, scene, storeEffectOnSubMeshes) || this;
40
42
  _this._textures = {};
41
43
  _this._textureArrays = {};
42
44
  _this._externalTextures = {};
@@ -418,11 +420,19 @@ var ShaderMaterial = /** @class */ (function (_super) {
418
420
  * @returns true if ready, otherwise false
419
421
  */
420
422
  ShaderMaterial.prototype.isReady = function (mesh, useInstances, subMesh) {
421
- var _a, _b;
422
- var effect = this.getEffect();
423
- if (effect && this.isFrozen) {
424
- if (effect._wasPreviouslyReady && this._effectUsesInstances === useInstances) {
425
- return true;
423
+ var _a, _b, _c, _d;
424
+ var storeEffectOnSubMeshes = subMesh && this._storeEffectOnSubMeshes;
425
+ if (this.isFrozen) {
426
+ if (storeEffectOnSubMeshes) {
427
+ if (subMesh.effect && subMesh.effect._wasPreviouslyReady) {
428
+ return true;
429
+ }
430
+ }
431
+ else {
432
+ var effect_1 = this._drawWrapper.effect;
433
+ if (effect_1 && effect_1._wasPreviouslyReady && this._effectUsesInstances === useInstances) {
434
+ return true;
435
+ }
426
436
  }
427
437
  }
428
438
  var scene = this.getScene();
@@ -546,6 +556,26 @@ var ShaderMaterial = /** @class */ (function (_super) {
546
556
  else {
547
557
  defines.push("#define NUM_MORPH_INFLUENCERS 0");
548
558
  }
559
+ // Baked Vertex Animation
560
+ if (mesh) {
561
+ var bvaManager = mesh.bakedVertexAnimationManager;
562
+ if (bvaManager && bvaManager.isEnabled) {
563
+ defines.push("#define BAKED_VERTEX_ANIMATION_TEXTURE");
564
+ if (this._options.uniforms.indexOf("bakedVertexAnimationSettings") === -1) {
565
+ this._options.uniforms.push("bakedVertexAnimationSettings");
566
+ }
567
+ if (this._options.uniforms.indexOf("bakedVertexAnimationTextureSizeInverted") === -1) {
568
+ this._options.uniforms.push("bakedVertexAnimationTextureSizeInverted");
569
+ }
570
+ if (this._options.uniforms.indexOf("bakedVertexAnimationTime") === -1) {
571
+ this._options.uniforms.push("bakedVertexAnimationTime");
572
+ }
573
+ if (this._options.samplers.indexOf("bakedVertexAnimationTexture") === -1) {
574
+ this._options.samplers.push("bakedVertexAnimationTexture");
575
+ }
576
+ }
577
+ MaterialHelper.PrepareAttributesForBakedVertexAnimation(attribs, mesh, defines);
578
+ }
549
579
  // Textures
550
580
  for (var name in this._textures) {
551
581
  if (!this._textures[name].isReady()) {
@@ -599,9 +629,12 @@ var ShaderMaterial = /** @class */ (function (_super) {
599
629
  samplers = samplers.slice();
600
630
  shaderName = this.customShaderNameResolve(shaderName, uniforms, uniformBuffers, samplers, defines, attribs);
601
631
  }
602
- var previousEffect = effect;
632
+ var drawWrapper = storeEffectOnSubMeshes ? subMesh._getDrawWrapper() : this._drawWrapper;
633
+ var previousEffect = (_a = drawWrapper === null || drawWrapper === void 0 ? void 0 : drawWrapper.effect) !== null && _a !== void 0 ? _a : null;
634
+ var previousDefines = (_b = drawWrapper === null || drawWrapper === void 0 ? void 0 : drawWrapper.defines) !== null && _b !== void 0 ? _b : null;
603
635
  var join = defines.join("\n");
604
- if (this._drawWrapper.defines !== join) {
636
+ var effect = previousEffect;
637
+ if (previousDefines !== join) {
605
638
  effect = engine.createEffect(shaderName, {
606
639
  attributes: attribs,
607
640
  uniformsNames: uniforms,
@@ -614,15 +647,20 @@ var ShaderMaterial = /** @class */ (function (_super) {
614
647
  indexParameters: { maxSimultaneousMorphTargets: numInfluencers },
615
648
  shaderLanguage: this._options.shaderLanguage
616
649
  }, engine);
617
- this._drawWrapper.setEffect(effect, join);
650
+ if (storeEffectOnSubMeshes) {
651
+ subMesh.setEffect(effect, join, this._materialContext);
652
+ }
653
+ else if (drawWrapper) {
654
+ drawWrapper.setEffect(effect, join);
655
+ }
618
656
  if (this._onEffectCreatedObservable) {
619
657
  onCreatedEffectParameters.effect = effect;
620
- onCreatedEffectParameters.subMesh = (_a = subMesh !== null && subMesh !== void 0 ? subMesh : mesh === null || mesh === void 0 ? void 0 : mesh.subMeshes[0]) !== null && _a !== void 0 ? _a : null;
658
+ onCreatedEffectParameters.subMesh = (_c = subMesh !== null && subMesh !== void 0 ? subMesh : mesh === null || mesh === void 0 ? void 0 : mesh.subMeshes[0]) !== null && _c !== void 0 ? _c : null;
621
659
  this._onEffectCreatedObservable.notifyObservers(onCreatedEffectParameters);
622
660
  }
623
661
  }
624
662
  this._effectUsesInstances = !!useInstances;
625
- if ((_b = !(effect === null || effect === void 0 ? void 0 : effect.isReady())) !== null && _b !== void 0 ? _b : true) {
663
+ if ((_d = !(effect === null || effect === void 0 ? void 0 : effect.isReady())) !== null && _d !== void 0 ? _d : true) {
626
664
  return false;
627
665
  }
628
666
  if (previousEffect !== effect) {
@@ -662,18 +700,25 @@ var ShaderMaterial = /** @class */ (function (_super) {
662
700
  */
663
701
  ShaderMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
664
702
  var _a;
665
- this.bind(world, mesh, (_a = subMesh._drawWrapperOverride) === null || _a === void 0 ? void 0 : _a.effect);
703
+ this.bind(world, mesh, (_a = subMesh._drawWrapperOverride) === null || _a === void 0 ? void 0 : _a.effect, subMesh);
666
704
  };
667
705
  /**
668
706
  * Binds the material to the mesh
669
707
  * @param world defines the world transformation matrix
670
708
  * @param mesh defines the mesh to bind the material to
671
709
  * @param effectOverride - If provided, use this effect instead of internal effect
710
+ * @param subMesh defines the submesh to bind the material to
672
711
  */
673
- ShaderMaterial.prototype.bind = function (world, mesh, effectOverride) {
712
+ ShaderMaterial.prototype.bind = function (world, mesh, effectOverride, subMesh) {
713
+ var _a;
674
714
  // Std values
715
+ var storeEffectOnSubMeshes = subMesh && this._storeEffectOnSubMeshes;
716
+ var effect = effectOverride !== null && effectOverride !== void 0 ? effectOverride : (storeEffectOnSubMeshes ? subMesh.effect : this.getEffect());
717
+ if (!effect) {
718
+ return;
719
+ }
720
+ this._activeEffect = effect;
675
721
  this.bindOnlyWorldMatrix(world, effectOverride);
676
- var effect = effectOverride !== null && effectOverride !== void 0 ? effectOverride : this.getEffect();
677
722
  var uniformBuffers = this._options.uniformBuffers;
678
723
  var useSceneUBO = false;
679
724
  if (effect && uniformBuffers && uniformBuffers.length > 0 && this.getScene().getEngine().supportsUniformBuffers) {
@@ -694,7 +739,7 @@ var ShaderMaterial = /** @class */ (function (_super) {
694
739
  }
695
740
  }
696
741
  }
697
- var mustRebind = this.getScene().getCachedMaterial() !== this;
742
+ var mustRebind = mesh && storeEffectOnSubMeshes ? this._mustRebind(this.getScene(), effect, mesh.visibility) : this.getScene().getCachedMaterial() !== this;
698
743
  if (effect && mustRebind) {
699
744
  if (!useSceneUBO && this._options.uniforms.indexOf("view") !== -1) {
700
745
  effect.setMatrix("view", this.getScene().getViewMatrix());
@@ -819,16 +864,12 @@ var ShaderMaterial = /** @class */ (function (_super) {
819
864
  if (manager && manager.numInfluencers > 0) {
820
865
  MaterialHelper.BindMorphTargetParameters(mesh, effect);
821
866
  }
867
+ var bvaManager = mesh.bakedVertexAnimationManager;
868
+ if (bvaManager && bvaManager.isEnabled) {
869
+ (_a = mesh.bakedVertexAnimationManager) === null || _a === void 0 ? void 0 : _a.bind(effect, this._effectUsesInstances);
870
+ }
822
871
  }
823
- var seffect = this.getEffect();
824
- this._drawWrapper.effect = effect; // make sure the active effect is the right one if there are some observers for onBind that would need to get the current effect
825
872
  this._afterBind(mesh, effect);
826
- this._drawWrapper.effect = seffect;
827
- };
828
- ShaderMaterial.prototype._afterBind = function (mesh, effect) {
829
- if (effect === void 0) { effect = null; }
830
- _super.prototype._afterBind.call(this, mesh, effect);
831
- this.getScene()._cachedEffect = effect;
832
873
  };
833
874
  /**
834
875
  * Gets the active textures from the material
@@ -878,7 +919,7 @@ var ShaderMaterial = /** @class */ (function (_super) {
878
919
  */
879
920
  ShaderMaterial.prototype.clone = function (name) {
880
921
  var _this = this;
881
- var result = SerializationHelper.Clone(function () { return new ShaderMaterial(name, _this.getScene(), _this._shaderPath, _this._options); }, this);
922
+ var result = SerializationHelper.Clone(function () { return new ShaderMaterial(name, _this.getScene(), _this._shaderPath, _this._options, _this._storeEffectOnSubMeshes); }, this);
882
923
  result.name = name;
883
924
  result.id = name;
884
925
  // Shader code path
@@ -1020,6 +1061,7 @@ var ShaderMaterial = /** @class */ (function (_super) {
1020
1061
  serializationObject.customType = "BABYLON.ShaderMaterial";
1021
1062
  serializationObject.options = this._options;
1022
1063
  serializationObject.shaderPath = this._shaderPath;
1064
+ serializationObject.storeEffectOnSubMeshes = this._storeEffectOnSubMeshes;
1023
1065
  var name;
1024
1066
  // Stencil
1025
1067
  serializationObject.stencil = this.stencil.serialize();
@@ -1132,7 +1174,7 @@ var ShaderMaterial = /** @class */ (function (_super) {
1132
1174
  * @returns a new material
1133
1175
  */
1134
1176
  ShaderMaterial.Parse = function (source, scene, rootUrl) {
1135
- var material = SerializationHelper.Parse(function () { return new ShaderMaterial(source.name, scene, source.shaderPath, source.options); }, source, scene, rootUrl);
1177
+ var material = SerializationHelper.Parse(function () { return new ShaderMaterial(source.name, scene, source.shaderPath, source.options, source.storeEffectOnSubMeshes); }, source, scene, rootUrl);
1136
1178
  var name;
1137
1179
  // Stencil
1138
1180
  if (source.stencil) {
@@ -1304,7 +1346,7 @@ var ShaderMaterial = /** @class */ (function (_super) {
1304
1346
  /** Define the Url to load snippets */
1305
1347
  ShaderMaterial.SnippetUrl = "https://snippet.babylonjs.com";
1306
1348
  return ShaderMaterial;
1307
- }(Material));
1349
+ }(PushMaterial));
1308
1350
  export { ShaderMaterial };
1309
1351
  RegisterClass("BABYLON.ShaderMaterial", ShaderMaterial);
1310
1352
  //# sourceMappingURL=shaderMaterial.js.map