@babylonjs/core 5.29.0 → 5.31.0

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 (149) hide show
  1. package/Cameras/cameraInputsManager.d.ts +2 -2
  2. package/Cameras/cameraInputsManager.js +5 -4
  3. package/Cameras/cameraInputsManager.js.map +1 -1
  4. package/Collisions/pickingInfo.d.ts +1 -0
  5. package/Collisions/pickingInfo.js +7 -2
  6. package/Collisions/pickingInfo.js.map +1 -1
  7. package/Culling/ray.d.ts +1 -1
  8. package/Culling/ray.js +0 -6
  9. package/Culling/ray.js.map +1 -1
  10. package/Debug/debugLayer.d.ts +5 -0
  11. package/Debug/debugLayer.js.map +1 -1
  12. package/Engines/Extensions/engine.renderTarget.js +5 -1
  13. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  14. package/Engines/Processors/iShaderProcessor.d.ts +4 -0
  15. package/Engines/Processors/iShaderProcessor.js.map +1 -1
  16. package/Engines/Processors/shaderCodeNode.js +11 -2
  17. package/Engines/Processors/shaderCodeNode.js.map +1 -1
  18. package/Engines/Processors/shaderProcessor.js +4 -1
  19. package/Engines/Processors/shaderProcessor.js.map +1 -1
  20. package/Engines/WebGPU/Extensions/engine.renderTarget.js +4 -1
  21. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  22. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +2 -0
  23. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  24. package/Engines/WebGPU/webgpuShaderProcessor.js +3 -7
  25. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  26. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +6 -0
  27. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +36 -8
  28. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  29. package/Engines/WebGPU/webgpuTextureHelper.js +2 -0
  30. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  31. package/Engines/WebGPU/webgpuTintWASM.d.ts +1 -0
  32. package/Engines/WebGPU/webgpuTintWASM.js +7 -1
  33. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  34. package/Engines/constants.d.ts +4 -0
  35. package/Engines/constants.js +4 -0
  36. package/Engines/constants.js.map +1 -1
  37. package/Engines/engine.d.ts +45 -12
  38. package/Engines/nativeEngine.js +1 -0
  39. package/Engines/nativeEngine.js.map +1 -1
  40. package/Engines/thinEngine.js +6 -3
  41. package/Engines/thinEngine.js.map +1 -1
  42. package/Engines/webgpuEngine.d.ts +0 -2
  43. package/Engines/webgpuEngine.js +15 -14
  44. package/Engines/webgpuEngine.js.map +1 -1
  45. package/IAccessibilityTag.d.ts +29 -0
  46. package/IAccessibilityTag.js +2 -0
  47. package/IAccessibilityTag.js.map +1 -0
  48. package/Inputs/scene.inputManager.d.ts +1 -1
  49. package/Inputs/scene.inputManager.js +9 -2
  50. package/Inputs/scene.inputManager.js.map +1 -1
  51. package/Layers/effectLayer.js +1 -1
  52. package/Layers/effectLayer.js.map +1 -1
  53. package/Lights/Shadows/cascadedShadowGenerator.d.ts +3 -1
  54. package/Lights/Shadows/cascadedShadowGenerator.js +19 -16
  55. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  56. package/Lights/Shadows/shadowGenerator.d.ts +6 -2
  57. package/Lights/Shadows/shadowGenerator.js +32 -7
  58. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  59. package/Lights/Shadows/shadowGeneratorSceneComponent.js +16 -8
  60. package/Lights/Shadows/shadowGeneratorSceneComponent.js.map +1 -1
  61. package/Lights/light.d.ts +10 -3
  62. package/Lights/light.js +28 -6
  63. package/Lights/light.js.map +1 -1
  64. package/Lights/pointLight.js +6 -2
  65. package/Lights/pointLight.js.map +1 -1
  66. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.d.ts +24 -3
  67. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +92 -21
  68. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
  69. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.d.ts +3 -1
  70. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +8 -2
  71. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  72. package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +4 -0
  73. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +11 -1
  74. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  75. package/Materials/Node/Blocks/PBR/clearCoatBlock.d.ts +1 -0
  76. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +7 -1
  77. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  78. package/Materials/materialHelper.js +2 -1
  79. package/Materials/materialHelper.js.map +1 -1
  80. package/Materials/uniformBuffer.js +1 -1
  81. package/Materials/uniformBuffer.js.map +1 -1
  82. package/Maths/math.vector.d.ts +88 -20
  83. package/Maths/math.vector.js +88 -31
  84. package/Maths/math.vector.js.map +1 -1
  85. package/Meshes/abstractMesh.js +11 -7
  86. package/Meshes/abstractMesh.js.map +1 -1
  87. package/Meshes/mesh.d.ts +3 -3
  88. package/Meshes/mesh.js +28 -19
  89. package/Meshes/mesh.js.map +1 -1
  90. package/Meshes/transformNode.d.ts +1 -1
  91. package/Meshes/transformNode.js +1 -1
  92. package/Meshes/transformNode.js.map +1 -1
  93. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +17 -4
  94. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +49 -9
  95. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  96. package/Misc/iInspectable.d.ts +5 -1
  97. package/Misc/iInspectable.js +4 -0
  98. package/Misc/iInspectable.js.map +1 -1
  99. package/Misc/index.d.ts +1 -1
  100. package/Misc/index.js +1 -1
  101. package/Misc/index.js.map +1 -1
  102. package/Misc/khronosTextureContainer2.js +41 -46
  103. package/Misc/khronosTextureContainer2.js.map +1 -1
  104. package/Misc/observable.js +4 -4
  105. package/Misc/observable.js.map +1 -1
  106. package/Misc/pressureObserverWrapper.d.ts +36 -0
  107. package/Misc/pressureObserverWrapper.js +68 -0
  108. package/Misc/pressureObserverWrapper.js.map +1 -0
  109. package/Misc/sceneRecorder.js +10 -4
  110. package/Misc/sceneRecorder.js.map +1 -1
  111. package/Misc/screenshotTools.js +0 -1
  112. package/Misc/screenshotTools.js.map +1 -1
  113. package/Particles/particleSystem.d.ts +4 -0
  114. package/Particles/particleSystem.js +12 -4
  115. package/Particles/particleSystem.js.map +1 -1
  116. package/PostProcesses/postProcess.js +4 -4
  117. package/PostProcesses/postProcess.js.map +1 -1
  118. package/Rendering/depthPeelingRenderer.js +4 -0
  119. package/Rendering/depthPeelingRenderer.js.map +1 -1
  120. package/Rendering/renderingManager.d.ts +3 -0
  121. package/Rendering/renderingManager.js +3 -0
  122. package/Rendering/renderingManager.js.map +1 -1
  123. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +3 -3
  124. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  125. package/Shaders/ShadersInclude/helperFunctions.js +2 -2
  126. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  127. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +1 -1
  128. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
  129. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +20 -15
  130. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  131. package/Shaders/fxaa.fragment.js +10 -5
  132. package/Shaders/fxaa.fragment.js.map +1 -1
  133. package/Shaders/particles.vertex.js +4 -1
  134. package/Shaders/particles.vertex.js.map +1 -1
  135. package/Shaders/spriteMap.fragment.js +7 -2
  136. package/Shaders/spriteMap.fragment.js.map +1 -1
  137. package/XR/features/WebXRControllerPointerSelection.js +1 -0
  138. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  139. package/XR/features/WebXRNearInteraction.js.map +1 -1
  140. package/node.d.ts +8 -0
  141. package/node.js +13 -1
  142. package/node.js.map +1 -1
  143. package/package.json +1 -1
  144. package/scene.d.ts +1 -8
  145. package/scene.js +1 -24
  146. package/scene.js.map +1 -1
  147. package/Misc/computePressure.d.ts +0 -57
  148. package/Misc/computePressure.js +0 -48
  149. package/Misc/computePressure.js.map +0 -1
package/Meshes/mesh.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Observable } from "../Misc/observable";
2
2
  import type { IAnimatable } from "../Animations/animatable.interface";
3
3
  import type { Nullable, FloatArray, IndicesArray } from "../types";
4
- import type { Camera } from "../Cameras/camera";
4
+ import { Camera } from "../Cameras/camera";
5
5
  import type { Scene } from "../scene";
6
6
  import { Matrix, Vector3, Vector2 } from "../Maths/math.vector";
7
7
  import type { Engine } from "../Engines/engine";
@@ -221,7 +221,7 @@ export declare class Mesh extends AbstractMesh implements IGetSetVerticesData {
221
221
  get hasThinInstances(): boolean;
222
222
  /**
223
223
  * Gets the delay loading state of the mesh (when delay loading is turned on)
224
- * @see https://doc.babylonjs.com/how_to/using_the_incremental_loading_system
224
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/importers/incrementalLoading
225
225
  */
226
226
  delayLoadState: number;
227
227
  /**
@@ -366,7 +366,7 @@ export declare class Mesh extends AbstractMesh implements IGetSetVerticesData {
366
366
  removeLODLevel(mesh: Mesh): Mesh;
367
367
  /**
368
368
  * Returns the registered LOD mesh distant from the parameter `camera` position if any, else returns the current mesh.
369
- * @see https://doc.babylonjs.com/how_to/how_to_use_lod
369
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/LOD
370
370
  * @param camera defines the camera to use to compute distance
371
371
  * @param boundingSphere defines a custom bounding sphere to use instead of the one from this mesh
372
372
  * @returns This mesh (for chaining)
package/Meshes/mesh.js CHANGED
@@ -3,6 +3,7 @@ import { Tools, AsyncLoop } from "../Misc/tools.js";
3
3
  import { DeepCopier } from "../Misc/deepCopier.js";
4
4
  import { Tags } from "../Misc/tags.js";
5
5
  import { runCoroutineSync, runCoroutineAsync, createYieldingScheduler } from "../Misc/coroutine.js";
6
+ import { Camera } from "../Cameras/camera.js";
6
7
  import { ScenePerformancePriority } from "../scene.js";
7
8
  import { Quaternion, Matrix, Vector3, Vector2 } from "../Maths/math.vector.js";
8
9
  import { Color3 } from "../Maths/math.color.js";
@@ -104,7 +105,7 @@ export class Mesh extends AbstractMesh {
104
105
  // Members
105
106
  /**
106
107
  * Gets the delay loading state of the mesh (when delay loading is turned on)
107
- * @see https://doc.babylonjs.com/how_to/using_the_incremental_loading_system
108
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/importers/incrementalLoading
108
109
  */
109
110
  this.delayLoadState = 0;
110
111
  /**
@@ -619,7 +620,7 @@ export class Mesh extends AbstractMesh {
619
620
  }
620
621
  /**
621
622
  * Returns the registered LOD mesh distant from the parameter `camera` position if any, else returns the current mesh.
622
- * @see https://doc.babylonjs.com/how_to/how_to_use_lod
623
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/LOD
623
624
  * @param camera defines the camera to use to compute distance
624
625
  * @param boundingSphere defines a custom bounding sphere to use instead of the one from this mesh
625
626
  * @returns This mesh (for chaining)
@@ -637,7 +638,7 @@ export class Mesh extends AbstractMesh {
637
638
  const boundingInfo = this.getBoundingInfo();
638
639
  bSphere = boundingInfo.boundingSphere;
639
640
  }
640
- const distanceToCamera = bSphere.centerWorld.subtract(camera.globalPosition).length();
641
+ const distanceToCamera = camera.mode === Camera.ORTHOGRAPHIC_CAMERA ? camera.minZ : bSphere.centerWorld.subtract(camera.globalPosition).length();
641
642
  const useScreenCoverage = internalDataInfo._useLODScreenCoverage;
642
643
  let compareValue = distanceToCamera;
643
644
  let compareSign = 1;
@@ -904,18 +905,25 @@ export class Mesh extends AbstractMesh {
904
905
  // Shadows
905
906
  const currentRenderPassId = engine.currentRenderPassId;
906
907
  for (const light of this.lightSources) {
907
- const generator = light.getShadowGenerator();
908
- if (generator && (!((_a = generator.getShadowMap()) === null || _a === void 0 ? void 0 : _a.renderList) || (((_b = generator.getShadowMap()) === null || _b === void 0 ? void 0 : _b.renderList) && ((_d = (_c = generator.getShadowMap()) === null || _c === void 0 ? void 0 : _c.renderList) === null || _d === void 0 ? void 0 : _d.indexOf(this)) !== -1))) {
909
- if (generator.getShadowMap()) {
910
- engine.currentRenderPassId = generator.getShadowMap().renderPassId;
911
- }
912
- for (const subMesh of this.subMeshes) {
913
- if (!generator.isReady(subMesh, hardwareInstancedRendering, (_f = (_e = subMesh.getMaterial()) === null || _e === void 0 ? void 0 : _e.needAlphaBlendingForMesh(this)) !== null && _f !== void 0 ? _f : false)) {
914
- engine.currentRenderPassId = currentRenderPassId;
915
- return false;
908
+ const generators = light.getShadowGenerators();
909
+ if (!generators) {
910
+ continue;
911
+ }
912
+ const iterator = generators.values();
913
+ for (let key = iterator.next(); key.done !== true; key = iterator.next()) {
914
+ const generator = key.value;
915
+ if (generator && (!((_a = generator.getShadowMap()) === null || _a === void 0 ? void 0 : _a.renderList) || (((_b = generator.getShadowMap()) === null || _b === void 0 ? void 0 : _b.renderList) && ((_d = (_c = generator.getShadowMap()) === null || _c === void 0 ? void 0 : _c.renderList) === null || _d === void 0 ? void 0 : _d.indexOf(this)) !== -1))) {
916
+ if (generator.getShadowMap()) {
917
+ engine.currentRenderPassId = generator.getShadowMap().renderPassId;
918
+ }
919
+ for (const subMesh of this.subMeshes) {
920
+ if (!generator.isReady(subMesh, hardwareInstancedRendering, (_f = (_e = subMesh.getMaterial()) === null || _e === void 0 ? void 0 : _e.needAlphaBlendingForMesh(this)) !== null && _f !== void 0 ? _f : false)) {
921
+ engine.currentRenderPassId = currentRenderPassId;
922
+ return false;
923
+ }
916
924
  }
925
+ engine.currentRenderPassId = currentRenderPassId;
917
926
  }
918
- engine.currentRenderPassId = currentRenderPassId;
919
927
  }
920
928
  }
921
929
  // LOD
@@ -2147,20 +2155,21 @@ export class Mesh extends AbstractMesh {
2147
2155
  const submeshes = this.subMeshes.splice(0);
2148
2156
  this._resetPointsArrayCache();
2149
2157
  let data = this.getVerticesData(VertexBuffer.PositionKind);
2150
- let temp = new Array();
2158
+ const temp = Vector3.Zero();
2151
2159
  let index;
2152
2160
  for (index = 0; index < data.length; index += 3) {
2153
- Vector3.TransformCoordinates(Vector3.FromArray(data, index), transform).toArray(temp, index);
2161
+ Vector3.TransformCoordinatesFromFloatsToRef(data[index], data[index + 1], data[index + 2], transform, temp).toArray(data, index);
2154
2162
  }
2155
- this.setVerticesData(VertexBuffer.PositionKind, temp, this.getVertexBuffer(VertexBuffer.PositionKind).isUpdatable());
2163
+ this.setVerticesData(VertexBuffer.PositionKind, data, this.getVertexBuffer(VertexBuffer.PositionKind).isUpdatable());
2156
2164
  // Normals
2157
2165
  if (this.isVerticesDataPresent(VertexBuffer.NormalKind)) {
2158
2166
  data = this.getVerticesData(VertexBuffer.NormalKind);
2159
- temp = [];
2160
2167
  for (index = 0; index < data.length; index += 3) {
2161
- Vector3.TransformNormal(Vector3.FromArray(data, index), transform).normalize().toArray(temp, index);
2168
+ Vector3.TransformNormalFromFloatsToRef(data[index], data[index + 1], data[index + 2], transform, temp)
2169
+ .normalize()
2170
+ .toArray(data, index);
2162
2171
  }
2163
- this.setVerticesData(VertexBuffer.NormalKind, temp, this.getVertexBuffer(VertexBuffer.NormalKind).isUpdatable());
2172
+ this.setVerticesData(VertexBuffer.NormalKind, data, this.getVertexBuffer(VertexBuffer.NormalKind).isUpdatable());
2164
2173
  }
2165
2174
  // flip faces?
2166
2175
  if (transform.determinant() < 0) {