@babylonjs/core 8.44.1 → 8.45.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 (131) hide show
  1. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +6 -10
  2. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  3. package/Cameras/Inputs/geospatialCameraMouseWheelInput.js +1 -1
  4. package/Cameras/Inputs/geospatialCameraMouseWheelInput.js.map +1 -1
  5. package/Cameras/Limits/geospatialLimits.d.ts +4 -22
  6. package/Cameras/Limits/geospatialLimits.js +4 -36
  7. package/Cameras/Limits/geospatialLimits.js.map +1 -1
  8. package/Cameras/geospatialCamera.d.ts +15 -4
  9. package/Cameras/geospatialCamera.js +90 -37
  10. package/Cameras/geospatialCamera.js.map +1 -1
  11. package/Cameras/geospatialCameraMovement.d.ts +1 -3
  12. package/Cameras/geospatialCameraMovement.js +15 -51
  13. package/Cameras/geospatialCameraMovement.js.map +1 -1
  14. package/Collisions/collisionCoordinator.d.ts +2 -2
  15. package/Collisions/collisionCoordinator.js +1 -0
  16. package/Collisions/collisionCoordinator.js.map +1 -1
  17. package/Engines/Extensions/engine.debugging.d.ts +3 -5
  18. package/Engines/Extensions/engine.debugging.js +3 -4
  19. package/Engines/Extensions/engine.debugging.js.map +1 -1
  20. package/Engines/WebGPU/Extensions/engine.debugging.js +15 -65
  21. package/Engines/WebGPU/Extensions/engine.debugging.js.map +1 -1
  22. package/Engines/WebGPU/webgpuTextureManager.js +9 -9
  23. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  24. package/Engines/abstractEngine.d.ts +2 -0
  25. package/Engines/abstractEngine.js +4 -2
  26. package/Engines/abstractEngine.js.map +1 -1
  27. package/Engines/thinWebGPUEngine.d.ts +0 -2
  28. package/Engines/thinWebGPUEngine.js +0 -8
  29. package/Engines/thinWebGPUEngine.js.map +1 -1
  30. package/Engines/webgpuEngine.d.ts +1 -3
  31. package/Engines/webgpuEngine.js +4 -10
  32. package/Engines/webgpuEngine.js.map +1 -1
  33. package/FrameGraph/Passes/renderPass.js +4 -9
  34. package/FrameGraph/Passes/renderPass.js.map +1 -1
  35. package/FrameGraph/Tasks/PostProcesses/postProcessTask.js +3 -0
  36. package/FrameGraph/Tasks/PostProcesses/postProcessTask.js.map +1 -1
  37. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +1 -1
  38. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +4 -1
  39. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  40. package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +2 -1
  41. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +31 -7
  42. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  43. package/FrameGraph/frameGraph.js +2 -2
  44. package/FrameGraph/frameGraph.js.map +1 -1
  45. package/FrameGraph/frameGraphContext.d.ts +9 -0
  46. package/FrameGraph/frameGraphContext.js +13 -2
  47. package/FrameGraph/frameGraphContext.js.map +1 -1
  48. package/FrameGraph/frameGraphObjectList.js.map +1 -1
  49. package/FrameGraph/frameGraphRenderContext.d.ts +9 -8
  50. package/FrameGraph/frameGraphRenderContext.js +23 -20
  51. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  52. package/FrameGraph/frameGraphTask.d.ts +2 -0
  53. package/FrameGraph/frameGraphTask.js +14 -4
  54. package/FrameGraph/frameGraphTask.js.map +1 -1
  55. package/Lights/Shadows/cascadedShadowGenerator.js +4 -1
  56. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  57. package/Lights/Shadows/shadowGenerator.js +8 -3
  58. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  59. package/Lights/areaLight.d.ts +2 -1
  60. package/Lights/areaLight.js +3 -2
  61. package/Lights/areaLight.js.map +1 -1
  62. package/Lights/directionalLight.d.ts +2 -1
  63. package/Lights/directionalLight.js +3 -2
  64. package/Lights/directionalLight.js.map +1 -1
  65. package/Lights/hemisphericLight.d.ts +2 -1
  66. package/Lights/hemisphericLight.js +3 -2
  67. package/Lights/hemisphericLight.js.map +1 -1
  68. package/Lights/light.d.ts +2 -1
  69. package/Lights/light.js +8 -3
  70. package/Lights/light.js.map +1 -1
  71. package/Lights/lightingVolume.js +11 -6
  72. package/Lights/lightingVolume.js.map +1 -1
  73. package/Lights/pointLight.d.ts +2 -1
  74. package/Lights/pointLight.js +3 -2
  75. package/Lights/pointLight.js.map +1 -1
  76. package/Lights/rectAreaLight.d.ts +2 -1
  77. package/Lights/rectAreaLight.js +3 -2
  78. package/Lights/rectAreaLight.js.map +1 -1
  79. package/Lights/spotLight.d.ts +2 -1
  80. package/Lights/spotLight.js +3 -2
  81. package/Lights/spotLight.js.map +1 -1
  82. package/Loading/Plugins/babylonFileLoader.js +17 -0
  83. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  84. package/Materials/Node/Blocks/Input/inputBlock.js +3 -0
  85. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  86. package/Materials/Node/nodeMaterial.d.ts +1 -0
  87. package/Materials/Node/nodeMaterial.js +4 -0
  88. package/Materials/Node/nodeMaterial.js.map +1 -1
  89. package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +6 -0
  90. package/Materials/Node/nodeMaterialBuildStateSharedData.js +4 -0
  91. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  92. package/Materials/Textures/Loaders/iesTextureLoader.js +1 -1
  93. package/Materials/Textures/Loaders/iesTextureLoader.js.map +1 -1
  94. package/Materials/Textures/Procedurals/proceduralTexture.js +7 -2
  95. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  96. package/Materials/Textures/internalTexture.d.ts +6 -4
  97. package/Materials/Textures/internalTexture.js +6 -4
  98. package/Materials/Textures/internalTexture.js.map +1 -1
  99. package/Materials/Textures/renderTargetTexture.js +2 -2
  100. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  101. package/Materials/Textures/textureSampler.d.ts +3 -3
  102. package/Materials/Textures/textureSampler.js.map +1 -1
  103. package/Misc/minMaxReducer.js +2 -2
  104. package/Misc/minMaxReducer.js.map +1 -1
  105. package/Misc/screenshotTools.d.ts +3 -1
  106. package/Misc/screenshotTools.js +5 -2
  107. package/Misc/screenshotTools.js.map +1 -1
  108. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.d.ts +4 -0
  109. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.js +10 -0
  110. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.js.map +1 -1
  111. package/Particles/Node/Blocks/systemBlock.d.ts +4 -0
  112. package/Particles/Node/Blocks/systemBlock.js +32 -1
  113. package/Particles/Node/Blocks/systemBlock.js.map +1 -1
  114. package/Particles/Node/nodeParticleSystemSet.helper.js +65 -46
  115. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  116. package/Particles/thinParticleSystem.js +10 -6
  117. package/Particles/thinParticleSystem.js.map +1 -1
  118. package/PostProcesses/RenderPipeline/Pipelines/taaMaterialManager.js +4 -1
  119. package/PostProcesses/RenderPipeline/Pipelines/taaMaterialManager.js.map +1 -1
  120. package/Probes/reflectionProbe.js +9 -2
  121. package/Probes/reflectionProbe.js.map +1 -1
  122. package/Rendering/depthRenderer.js +7 -2
  123. package/Rendering/depthRenderer.js.map +1 -1
  124. package/Shaders/particles.vertex.js +8 -1
  125. package/Shaders/particles.vertex.js.map +1 -1
  126. package/ShadersWGSL/particles.vertex.js +6 -0
  127. package/ShadersWGSL/particles.vertex.js.map +1 -1
  128. package/package.json +1 -1
  129. package/scene.d.ts +10 -0
  130. package/scene.js +30 -5
  131. package/scene.js.map +1 -1
package/scene.js CHANGED
@@ -1460,6 +1460,15 @@ export class Scene {
1460
1460
  data: [],
1461
1461
  length: 0,
1462
1462
  };
1463
+ /**
1464
+ * An event triggered when the scene ready checks has timed out.
1465
+ */
1466
+ this.onReadyTimeoutObservable = new Observable();
1467
+ /**
1468
+ * Duration in milliseconds to wait before triggering the onReadyTimeoutObservable event.
1469
+ */
1470
+ this.onReadyTimeoutDuration = 2 * 60 * 1000; // 2 minutes by default
1471
+ this._timeoutChecksStartTime = 0;
1463
1472
  this._floatingOriginScene = undefined;
1464
1473
  this._preventFreeActiveMeshesAndRenderingGroups = false;
1465
1474
  /** @internal */
@@ -2030,20 +2039,36 @@ export class Scene {
2030
2039
  }, checkRenderTargets);
2031
2040
  });
2032
2041
  }
2042
+ _clearReadynessChecksData() {
2043
+ this._timeoutChecksStartTime = 0;
2044
+ this.onReadyTimeoutObservable.clear();
2045
+ this.onReadyObservable.clear();
2046
+ this._executeWhenReadyTimeoutId = null;
2047
+ }
2033
2048
  /**
2034
2049
  * @internal
2035
2050
  */
2036
2051
  _checkIsReady(checkRenderTargets = false) {
2037
2052
  this._registerTransientComponents();
2053
+ // Starts counting time from the first check for timeout purposes
2054
+ if (this._timeoutChecksStartTime === 0) {
2055
+ this._timeoutChecksStartTime = PrecisionDate.Now;
2056
+ }
2057
+ // Check for timeout
2058
+ else if (this.onReadyTimeoutDuration > 0 && PrecisionDate.Now - this._timeoutChecksStartTime > this.onReadyTimeoutDuration) {
2059
+ this.onReadyTimeoutObservable.notifyObservers(this);
2060
+ this._clearReadynessChecksData();
2061
+ return;
2062
+ }
2063
+ // Check for readyness
2038
2064
  if (this.isReady(checkRenderTargets)) {
2039
2065
  this.onReadyObservable.notifyObservers(this);
2040
- this.onReadyObservable.clear();
2041
- this._executeWhenReadyTimeoutId = null;
2066
+ this._clearReadynessChecksData();
2042
2067
  return;
2043
2068
  }
2069
+ // Clean up if the scene was disposed in the meantime
2044
2070
  if (this._isDisposed) {
2045
- this.onReadyObservable.clear();
2046
- this._executeWhenReadyTimeoutId = null;
2071
+ this._clearReadynessChecksData();
2047
2072
  return;
2048
2073
  }
2049
2074
  this._executeWhenReadyTimeoutId = setTimeout(() => {
@@ -2313,8 +2338,8 @@ export class Scene {
2313
2338
  if (!toRemove.parent) {
2314
2339
  toRemove._removeFromSceneRootNodes();
2315
2340
  }
2341
+ this.onLightRemovedObservable.notifyObservers(toRemove);
2316
2342
  }
2317
- this.onLightRemovedObservable.notifyObservers(toRemove);
2318
2343
  return index;
2319
2344
  }
2320
2345
  /**