@babylonjs/core 7.43.0 → 7.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/Actions/actionEvent.d.ts +4 -4
  2. package/Buffers/bufferUtils.d.ts +8 -1
  3. package/Buffers/bufferUtils.js +15 -0
  4. package/Buffers/bufferUtils.js.map +1 -1
  5. package/Culling/Helper/boundingInfoHelper.d.ts +2 -9
  6. package/Culling/Helper/boundingInfoHelper.js +2 -9
  7. package/Culling/Helper/boundingInfoHelper.js.map +1 -1
  8. package/Debug/debugLayer.d.ts +4 -0
  9. package/Debug/debugLayer.js +9 -0
  10. package/Debug/debugLayer.js.map +1 -1
  11. package/Engines/Extensions/engine.renderTarget.js +2 -4
  12. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  13. package/Engines/WebGPU/Extensions/engine.renderTarget.js +2 -4
  14. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  15. package/Engines/abstractEngine.d.ts +19 -1
  16. package/Engines/abstractEngine.js +48 -9
  17. package/Engines/abstractEngine.js.map +1 -1
  18. package/Engines/engine.d.ts +6 -3
  19. package/Engines/engine.js +2 -20
  20. package/Engines/engine.js.map +1 -1
  21. package/Engines/renderTargetWrapper.js +2 -2
  22. package/Engines/renderTargetWrapper.js.map +1 -1
  23. package/Engines/thinEngine.js +1 -5
  24. package/Engines/thinEngine.js.map +1 -1
  25. package/Engines/webgpuEngine.js +1 -0
  26. package/Engines/webgpuEngine.js.map +1 -1
  27. package/FlowGraph/flowGraphConnection.d.ts +1 -1
  28. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.d.ts +16 -12
  29. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js +63 -27
  30. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js.map +1 -1
  31. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.d.ts +72 -0
  32. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.js +197 -0
  33. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.js.map +1 -0
  34. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.d.ts +42 -0
  35. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +78 -0
  36. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -0
  37. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.d.ts +3 -19
  38. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.js +3 -49
  39. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.js.map +1 -1
  40. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.d.ts +3 -19
  41. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.js +3 -49
  42. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.js.map +1 -1
  43. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.d.ts +3 -19
  44. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.js +3 -49
  45. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.js.map +1 -1
  46. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.d.ts +2 -17
  47. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.js +3 -45
  48. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.js.map +1 -1
  49. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.d.ts +2 -17
  50. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.js +3 -44
  51. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.js.map +1 -1
  52. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.d.ts +3 -19
  53. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.js +3 -49
  54. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.js.map +1 -1
  55. package/FrameGraph/Node/Blocks/PostProcesses/passPostProcessBlock.d.ts +47 -0
  56. package/FrameGraph/Node/Blocks/PostProcesses/passPostProcessBlock.js +65 -0
  57. package/FrameGraph/Node/Blocks/PostProcesses/passPostProcessBlock.js.map +1 -0
  58. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.d.ts +4 -0
  59. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +9 -0
  60. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  61. package/FrameGraph/Node/Blocks/index.d.ts +2 -0
  62. package/FrameGraph/Node/Blocks/index.js +2 -0
  63. package/FrameGraph/Node/Blocks/index.js.map +1 -1
  64. package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +4 -2
  65. package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +2 -0
  66. package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
  67. package/FrameGraph/Node/nodeRenderGraph.d.ts +3 -2
  68. package/FrameGraph/Node/nodeRenderGraph.js +4 -3
  69. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  70. package/FrameGraph/Node/nodeRenderGraphBlock.js +4 -4
  71. package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
  72. package/FrameGraph/Node/nodeRenderGraphBlockConnectionPoint.d.ts +8 -0
  73. package/FrameGraph/Node/nodeRenderGraphBlockConnectionPoint.js +10 -0
  74. package/FrameGraph/Node/nodeRenderGraphBlockConnectionPoint.js.map +1 -1
  75. package/FrameGraph/Node/nodeRenderGraphConnectionPointCustomObject.d.ts +21 -0
  76. package/FrameGraph/Node/nodeRenderGraphConnectionPointCustomObject.js +31 -0
  77. package/FrameGraph/Node/nodeRenderGraphConnectionPointCustomObject.js.map +1 -0
  78. package/FrameGraph/Passes/pass.d.ts +1 -0
  79. package/FrameGraph/Passes/pass.js +4 -1
  80. package/FrameGraph/Passes/pass.js.map +1 -1
  81. package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +81 -0
  82. package/FrameGraph/Tasks/Layers/baseLayerTask.js +304 -0
  83. package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -0
  84. package/FrameGraph/Tasks/Layers/glowLayerTask.d.ts +3 -40
  85. package/FrameGraph/Tasks/Layers/glowLayerTask.js +4 -158
  86. package/FrameGraph/Tasks/Layers/glowLayerTask.js.map +1 -1
  87. package/FrameGraph/Tasks/Layers/highlightLayerTask.d.ts +21 -0
  88. package/FrameGraph/Tasks/Layers/highlightLayerTask.js +32 -0
  89. package/FrameGraph/Tasks/Layers/highlightLayerTask.js.map +1 -0
  90. package/FrameGraph/Tasks/Misc/executeTask.d.ts +2 -2
  91. package/FrameGraph/Tasks/Misc/executeTask.js +1 -0
  92. package/FrameGraph/Tasks/Misc/executeTask.js.map +1 -1
  93. package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js +1 -1
  94. package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js.map +1 -1
  95. package/FrameGraph/Tasks/PostProcesses/bloomTask.js +1 -1
  96. package/FrameGraph/Tasks/PostProcesses/bloomTask.js.map +1 -1
  97. package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js +5 -4
  98. package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js.map +1 -1
  99. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +5 -4
  100. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
  101. package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js +2 -4
  102. package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js.map +1 -1
  103. package/FrameGraph/Tasks/PostProcesses/passTask.d.ts +29 -0
  104. package/FrameGraph/Tasks/PostProcesses/passTask.js +31 -0
  105. package/FrameGraph/Tasks/PostProcesses/passTask.js.map +1 -0
  106. package/FrameGraph/Tasks/PostProcesses/postProcessTask.js +4 -2
  107. package/FrameGraph/Tasks/PostProcesses/postProcessTask.js.map +1 -1
  108. package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +2 -2
  109. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +1 -0
  110. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  111. package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.d.ts +2 -2
  112. package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.js +1 -0
  113. package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.js.map +1 -1
  114. package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +2 -2
  115. package/FrameGraph/Tasks/Texture/clearTextureTask.js +1 -0
  116. package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
  117. package/FrameGraph/Tasks/Texture/copyToTextureTask.js +1 -1
  118. package/FrameGraph/Tasks/Texture/copyToTextureTask.js.map +1 -1
  119. package/FrameGraph/frameGraph.d.ts +8 -2
  120. package/FrameGraph/frameGraph.js +31 -5
  121. package/FrameGraph/frameGraph.js.map +1 -1
  122. package/FrameGraph/frameGraphRenderContext.d.ts +10 -0
  123. package/FrameGraph/frameGraphRenderContext.js +14 -0
  124. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  125. package/FrameGraph/frameGraphTask.d.ts +3 -2
  126. package/FrameGraph/frameGraphTask.js +12 -2
  127. package/FrameGraph/frameGraphTask.js.map +1 -1
  128. package/FrameGraph/frameGraphTextureManager.d.ts +1 -1
  129. package/FrameGraph/frameGraphTypes.d.ts +4 -0
  130. package/FrameGraph/frameGraphTypes.js.map +1 -1
  131. package/FrameGraph/index.d.ts +2 -0
  132. package/FrameGraph/index.js +2 -0
  133. package/FrameGraph/index.js.map +1 -1
  134. package/Gizmos/planeRotationGizmo.js +10 -0
  135. package/Gizmos/planeRotationGizmo.js.map +1 -1
  136. package/Helpers/environmentHelper.js +7 -6
  137. package/Helpers/environmentHelper.js.map +1 -1
  138. package/Inputs/scene.inputManager.js +2 -2
  139. package/Inputs/scene.inputManager.js.map +1 -1
  140. package/Layers/effectLayer.d.ts +1 -1
  141. package/Layers/effectLayer.js.map +1 -1
  142. package/Layers/glowLayer.d.ts +2 -14
  143. package/Layers/glowLayer.js +34 -36
  144. package/Layers/glowLayer.js.map +1 -1
  145. package/Layers/highlightLayer.d.ts +13 -74
  146. package/Layers/highlightLayer.js +123 -309
  147. package/Layers/highlightLayer.js.map +1 -1
  148. package/Layers/index.d.ts +1 -0
  149. package/Layers/index.js +1 -0
  150. package/Layers/index.js.map +1 -1
  151. package/Layers/thinEffectLayer.d.ts +55 -2
  152. package/Layers/thinEffectLayer.js +66 -0
  153. package/Layers/thinEffectLayer.js.map +1 -1
  154. package/Layers/thinGlowLayer.d.ts +3 -6
  155. package/Layers/thinGlowLayer.js +4 -1
  156. package/Layers/thinGlowLayer.js.map +1 -1
  157. package/Layers/thinHighlightLayer.d.ts +197 -0
  158. package/Layers/thinHighlightLayer.js +417 -0
  159. package/Layers/thinHighlightLayer.js.map +1 -0
  160. package/Materials/GreasedLine/greasedLinePluginMaterial.d.ts +6 -2
  161. package/Materials/GreasedLine/greasedLinePluginMaterial.js +8 -2
  162. package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
  163. package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js +11 -3
  164. package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js.map +1 -1
  165. package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +1 -0
  166. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +1 -0
  167. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  168. package/Materials/Node/Blocks/PBR/reflectionBlock.js +1 -3
  169. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  170. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +3 -3
  171. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  172. package/Materials/Node/nodeMaterial.d.ts +4 -2
  173. package/Materials/Node/nodeMaterial.js +9 -6
  174. package/Materials/Node/nodeMaterial.js.map +1 -1
  175. package/Materials/PBR/pbrBaseMaterial.js +1 -0
  176. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  177. package/Materials/Textures/Filtering/hdrFiltering.js +1 -0
  178. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  179. package/Materials/Textures/Filtering/hdrIrradianceFiltering.d.ts +69 -0
  180. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +187 -0
  181. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -0
  182. package/Materials/Textures/hdrCubeTexture.d.ts +5 -1
  183. package/Materials/Textures/hdrCubeTexture.js +29 -3
  184. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  185. package/Materials/Textures/index.d.ts +4 -0
  186. package/Materials/Textures/index.js +4 -0
  187. package/Materials/Textures/index.js.map +1 -1
  188. package/Materials/effect.d.ts +5 -0
  189. package/Materials/effect.js +15 -0
  190. package/Materials/effect.js.map +1 -1
  191. package/Materials/standardMaterial.d.ts +1 -2
  192. package/Materials/standardMaterial.js +0 -2
  193. package/Materials/standardMaterial.js.map +1 -1
  194. package/Meshes/Builders/planeBuilder.js +2 -2
  195. package/Meshes/Builders/planeBuilder.js.map +1 -1
  196. package/Meshes/Compression/dracoCodec.d.ts +4 -4
  197. package/Meshes/Compression/dracoCodec.js.map +1 -1
  198. package/Meshes/Compression/dracoCompression.d.ts +5 -3
  199. package/Meshes/Compression/dracoCompression.js +24 -11
  200. package/Meshes/Compression/dracoCompression.js.map +1 -1
  201. package/Meshes/Compression/dracoCompressionWorker.d.ts +16 -30
  202. package/Meshes/Compression/dracoCompressionWorker.js +128 -22
  203. package/Meshes/Compression/dracoCompressionWorker.js.map +1 -1
  204. package/Meshes/Compression/dracoDecoder.d.ts +4 -9
  205. package/Meshes/Compression/dracoDecoder.js +5 -5
  206. package/Meshes/Compression/dracoDecoder.js.map +1 -1
  207. package/Meshes/Compression/dracoDecoder.types.d.ts +52 -0
  208. package/Meshes/Compression/dracoDecoder.types.js +2 -0
  209. package/Meshes/Compression/dracoDecoder.types.js.map +1 -0
  210. package/Meshes/Compression/dracoEncoder.d.ts +95 -0
  211. package/Meshes/Compression/dracoEncoder.js +245 -0
  212. package/Meshes/Compression/dracoEncoder.js.map +1 -0
  213. package/Meshes/Compression/dracoEncoder.types.d.ts +82 -0
  214. package/Meshes/Compression/dracoEncoder.types.js +2 -0
  215. package/Meshes/Compression/dracoEncoder.types.js.map +1 -0
  216. package/Meshes/Compression/index.d.ts +1 -0
  217. package/Meshes/Compression/index.js +1 -0
  218. package/Meshes/Compression/index.js.map +1 -1
  219. package/Meshes/Compression/meshoptCompression.js +17 -2
  220. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  221. package/Meshes/Compression/test/integration/draco.test.d.ts +1 -0
  222. package/Meshes/Compression/test/integration/draco.test.js +30 -0
  223. package/Meshes/Compression/test/integration/draco.test.js.map +1 -0
  224. package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +92 -2
  225. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +286 -10
  226. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  227. package/Meshes/GreasedLine/greasedLineBaseMesh.js +4 -2
  228. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  229. package/Meshes/GreasedLine/greasedLineRibbonMesh.js +1 -1
  230. package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
  231. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.d.ts +1 -1
  232. package/Meshes/csg.js +4 -0
  233. package/Meshes/csg.js.map +1 -1
  234. package/Meshes/mesh.d.ts +2 -2
  235. package/Meshes/transformNode.d.ts +4 -1
  236. package/Meshes/transformNode.js +6 -1
  237. package/Meshes/transformNode.js.map +1 -1
  238. package/Misc/copyTextureToTexture.js +1 -1
  239. package/Misc/copyTextureToTexture.js.map +1 -1
  240. package/Misc/decorators.serialization.js +2 -0
  241. package/Misc/decorators.serialization.js.map +1 -1
  242. package/Misc/greasedLineTools.d.ts +1 -1
  243. package/Misc/logger.d.ts +2 -1
  244. package/Misc/logger.js +2 -1
  245. package/Misc/logger.js.map +1 -1
  246. package/Misc/screenshotTools.js +58 -5
  247. package/Misc/screenshotTools.js.map +1 -1
  248. package/Misc/tools.d.ts +21 -1
  249. package/Misc/tools.js +33 -0
  250. package/Misc/tools.js.map +1 -1
  251. package/Morph/morphTargetManager.d.ts +1 -0
  252. package/Morph/morphTargetManager.js +6 -1
  253. package/Morph/morphTargetManager.js.map +1 -1
  254. package/Particles/particleHelper.js +2 -1
  255. package/Particles/particleHelper.js.map +1 -1
  256. package/Particles/particleSystemSet.d.ts +1 -0
  257. package/Particles/particleSystemSet.js +1 -0
  258. package/Particles/particleSystemSet.js.map +1 -1
  259. package/Particles/pointsCloudSystem.d.ts +3 -3
  260. package/Particles/webgl2ParticleSystem.d.ts +1 -1
  261. package/Particles/webgl2ParticleSystem.js +1 -2
  262. package/Particles/webgl2ParticleSystem.js.map +1 -1
  263. package/Physics/v2/Plugins/havokPlugin.d.ts +2 -2
  264. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +2 -1
  265. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  266. package/PostProcesses/index.d.ts +1 -0
  267. package/PostProcesses/index.js +1 -0
  268. package/PostProcesses/index.js.map +1 -1
  269. package/PostProcesses/passPostProcess.d.ts +2 -3
  270. package/PostProcesses/passPostProcess.js +36 -48
  271. package/PostProcesses/passPostProcess.js.map +1 -1
  272. package/PostProcesses/thinPassPostProcess.d.ts +48 -0
  273. package/PostProcesses/thinPassPostProcess.js +113 -0
  274. package/PostProcesses/thinPassPostProcess.js.map +1 -0
  275. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +1 -1
  276. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
  277. package/Rendering/depthRenderer.js +1 -1
  278. package/Rendering/depthRenderer.js.map +1 -1
  279. package/Rendering/iblCdfGenerator.d.ts +13 -5
  280. package/Rendering/iblCdfGenerator.js +67 -10
  281. package/Rendering/iblCdfGenerator.js.map +1 -1
  282. package/Rendering/objectRenderer.d.ts +5 -3
  283. package/Rendering/objectRenderer.js +5 -3
  284. package/Rendering/objectRenderer.js.map +1 -1
  285. package/Rendering/renderingManager.d.ts +4 -0
  286. package/Rendering/renderingManager.js +1 -0
  287. package/Rendering/renderingManager.js.map +1 -1
  288. package/Shaders/ShadersInclude/gaussianSplatting.js +6 -6
  289. package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
  290. package/Shaders/ShadersInclude/intersectionFunctions.d.ts +5 -0
  291. package/Shaders/ShadersInclude/intersectionFunctions.js +14 -0
  292. package/Shaders/ShadersInclude/intersectionFunctions.js.map +1 -0
  293. package/Shaders/ShadersInclude/pbrBlockReflection.js +13 -8
  294. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  295. package/Shaders/background.fragment.d.ts +1 -0
  296. package/Shaders/background.fragment.js +3 -5
  297. package/Shaders/background.fragment.js.map +1 -1
  298. package/Shaders/gaussianSplatting.vertex.js +2 -1
  299. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  300. package/Shaders/hdrIrradianceFiltering.fragment.d.ts +9 -0
  301. package/Shaders/hdrIrradianceFiltering.fragment.js +25 -0
  302. package/Shaders/hdrIrradianceFiltering.fragment.js.map +1 -0
  303. package/Shaders/hdrIrradianceFiltering.vertex.d.ts +5 -0
  304. package/Shaders/hdrIrradianceFiltering.vertex.js +15 -0
  305. package/Shaders/hdrIrradianceFiltering.vertex.js.map +1 -0
  306. package/Shaders/pbr.fragment.js +1 -3
  307. package/Shaders/pbr.fragment.js.map +1 -1
  308. package/ShadersWGSL/ShadersInclude/intersectionFunctions.d.ts +5 -0
  309. package/ShadersWGSL/ShadersInclude/intersectionFunctions.js +14 -0
  310. package/ShadersWGSL/ShadersInclude/intersectionFunctions.js.map +1 -0
  311. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +13 -8
  312. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -1
  313. package/ShadersWGSL/background.fragment.d.ts +1 -0
  314. package/ShadersWGSL/background.fragment.js +3 -5
  315. package/ShadersWGSL/background.fragment.js.map +1 -1
  316. package/ShadersWGSL/greasedLine.fragment.js +9 -3
  317. package/ShadersWGSL/greasedLine.fragment.js.map +1 -1
  318. package/ShadersWGSL/greasedLine.vertex.js +12 -2
  319. package/ShadersWGSL/greasedLine.vertex.js.map +1 -1
  320. package/ShadersWGSL/hdrIrradianceFiltering.fragment.d.ts +9 -0
  321. package/ShadersWGSL/hdrIrradianceFiltering.fragment.js +26 -0
  322. package/ShadersWGSL/hdrIrradianceFiltering.fragment.js.map +1 -0
  323. package/ShadersWGSL/hdrIrradianceFiltering.vertex.d.ts +5 -0
  324. package/ShadersWGSL/hdrIrradianceFiltering.vertex.js +16 -0
  325. package/ShadersWGSL/hdrIrradianceFiltering.vertex.js.map +1 -0
  326. package/ShadersWGSL/outline.fragment.js +1 -1
  327. package/ShadersWGSL/outline.fragment.js.map +1 -1
  328. package/ShadersWGSL/passCube.fragment.js +1 -1
  329. package/ShadersWGSL/passCube.fragment.js.map +1 -1
  330. package/ShadersWGSL/pbr.fragment.js +1 -3
  331. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  332. package/XR/features/WebXRDepthSensing.d.ts +24 -2
  333. package/XR/features/WebXRDepthSensing.js +320 -26
  334. package/XR/features/WebXRDepthSensing.js.map +1 -1
  335. package/XR/features/WebXRHandTracking.js +8 -7
  336. package/XR/features/WebXRHandTracking.js.map +1 -1
  337. package/package.json +1 -1
  338. package/scene.js +9 -5
  339. package/scene.js.map +1 -1
  340. package/types.d.ts +4 -0
  341. package/types.js.map +1 -1
@@ -510,8 +510,22 @@ export declare abstract class AbstractEngine {
510
510
  abstract get performanceMonitor(): PerformanceMonitor;
511
511
  /** @internal */
512
512
  _boundRenderFunction: any;
513
+ protected _maxFPS: number | undefined;
514
+ protected _minFrameTime: number;
515
+ protected _lastFrameTime: number;
516
+ /**
517
+ * Skip frame rendering but keep the frame heartbeat (begin/end frame).
518
+ * This is useful if you need all the plumbing but not the rendering work.
519
+ * (for instance when capturing a screenshot where you do not want to mix rendering to the screen and to the screenshot)
520
+ */
521
+ skipFrameRender: boolean;
522
+ /** Gets or sets max frame per second allowed. Will return undefined if not capped */
523
+ get maxFPS(): number | undefined;
524
+ set maxFPS(value: number | undefined);
525
+ protected _isOverFrameTime(timestamp?: number): boolean;
526
+ protected _processFrame(timestamp?: number): void;
513
527
  /** @internal */
514
- _renderLoop(): void;
528
+ _renderLoop(timestamp: number | undefined): void;
515
529
  /** @internal */
516
530
  _renderFrame(): void;
517
531
  /** @internal */
@@ -1301,6 +1315,10 @@ export declare abstract class AbstractEngine {
1301
1315
  * An event triggered when the engine is disposed.
1302
1316
  */
1303
1317
  readonly onDisposeObservable: Observable<AbstractEngine>;
1318
+ /**
1319
+ * An event triggered when a global cleanup of all effects is required
1320
+ */
1321
+ readonly onReleaseEffectsObservable: Observable<AbstractEngine>;
1304
1322
  /**
1305
1323
  * Dispose and release all associated resources
1306
1324
  */
@@ -361,20 +361,44 @@ export class AbstractEngine {
361
361
  this._frameId++;
362
362
  this.onEndFrameObservable.notifyObservers(this);
363
363
  }
364
- /** @internal */
365
- _renderLoop() {
366
- // Reset the frame handler before rendering a frame to determine if a new frame has been queued.
364
+ /** Gets or sets max frame per second allowed. Will return undefined if not capped */
365
+ get maxFPS() {
366
+ return this._maxFPS;
367
+ }
368
+ set maxFPS(value) {
369
+ this._maxFPS = value;
370
+ if (value === undefined) {
371
+ return;
372
+ }
373
+ if (value <= 0) {
374
+ this._minFrameTime = Number.MAX_VALUE;
375
+ return;
376
+ }
377
+ this._minFrameTime = 1000 / (value + 1); // We need to provide a bit of leeway to ensure we don't go under because of vbl sync
378
+ }
379
+ _isOverFrameTime(timestamp) {
380
+ if (!timestamp) {
381
+ return false;
382
+ }
383
+ const elapsedTime = timestamp - this._lastFrameTime;
384
+ if (this._maxFPS === undefined || elapsedTime >= this._minFrameTime) {
385
+ this._lastFrameTime = timestamp;
386
+ return false;
387
+ }
388
+ return true;
389
+ }
390
+ _processFrame(timestamp) {
367
391
  this._frameHandler = 0;
368
- if (!this._contextWasLost) {
392
+ if (!this._contextWasLost && !this._isOverFrameTime(timestamp)) {
369
393
  let shouldRender = true;
370
- if (this._isDisposed || (!this.renderEvenInBackground && this._windowIsBackground)) {
394
+ if (this.isDisposed || (!this.renderEvenInBackground && this._windowIsBackground)) {
371
395
  shouldRender = false;
372
396
  }
373
397
  if (shouldRender) {
374
398
  // Start new frame
375
399
  this.beginFrame();
376
400
  // Child canvases
377
- if (!this._renderViews()) {
401
+ if (!this.skipFrameRender && !this._renderViews()) {
378
402
  // Main frame
379
403
  this._renderFrame();
380
404
  }
@@ -382,6 +406,10 @@ export class AbstractEngine {
382
406
  this.endFrame();
383
407
  }
384
408
  }
409
+ }
410
+ /** @internal */
411
+ _renderLoop(timestamp) {
412
+ this._processFrame(timestamp);
385
413
  // The first condition prevents queuing another frame if we no longer have active render loops (e.g., if
386
414
  // `stopRenderLoop` is called mid frame). The second condition prevents queuing another frame if one has
387
415
  // already been queued (e.g., if `stopRenderLoop` and `runRenderLoop` is called mid frame).
@@ -741,13 +769,13 @@ export class AbstractEngine {
741
769
  */
742
770
  // Not mixed with Version for tooling purpose.
743
771
  static get NpmPackage() {
744
- return "babylonjs@7.43.0";
772
+ return "babylonjs@7.44.1";
745
773
  }
746
774
  /**
747
775
  * Returns the current version of the framework
748
776
  */
749
777
  static get Version() {
750
- return "7.43.0";
778
+ return "7.44.1";
751
779
  }
752
780
  /**
753
781
  * Gets the HTML canvas attached with the current webGL context
@@ -968,7 +996,14 @@ export class AbstractEngine {
968
996
  /** @internal */
969
997
  this._windowIsBackground = false;
970
998
  /** @internal */
971
- this._boundRenderFunction = () => this._renderLoop();
999
+ this._boundRenderFunction = (timestamp) => this._renderLoop(timestamp);
1000
+ this._lastFrameTime = 0;
1001
+ /**
1002
+ * Skip frame rendering but keep the frame heartbeat (begin/end frame).
1003
+ * This is useful if you need all the plumbing but not the rendering work.
1004
+ * (for instance when capturing a screenshot where you do not want to mix rendering to the screen and to the screenshot)
1005
+ */
1006
+ this.skipFrameRender = false;
972
1007
  /**
973
1008
  * Observable raised when the engine is about to compile a shader
974
1009
  */
@@ -1036,6 +1071,10 @@ export class AbstractEngine {
1036
1071
  * An event triggered when the engine is disposed.
1037
1072
  */
1038
1073
  this.onDisposeObservable = new Observable();
1074
+ /**
1075
+ * An event triggered when a global cleanup of all effects is required
1076
+ */
1077
+ this.onReleaseEffectsObservable = new Observable();
1039
1078
  EngineStore.Instances.push(this);
1040
1079
  this.startTime = PrecisionDate.Now;
1041
1080
  this._stencilStateComposer.stencilGlobal = this._stencilState;