@babylonjs/core 7.49.0 → 7.51.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 (189) hide show
  1. package/Behaviors/Cameras/framingBehavior.js +3 -0
  2. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  3. package/Behaviors/Meshes/baseSixDofDragBehavior.js +10 -9
  4. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  5. package/Behaviors/Meshes/pointerDragBehavior.js +4 -1
  6. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  7. package/Buffers/bufferUtils.d.ts +9 -10
  8. package/Buffers/bufferUtils.js +16 -0
  9. package/Buffers/bufferUtils.js.map +1 -1
  10. package/Culling/Helper/transformFeedbackBoundingHelper.js +2 -1
  11. package/Culling/Helper/transformFeedbackBoundingHelper.js.map +1 -1
  12. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +2 -3
  13. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -1
  14. package/Engines/WebGPU/webgpuBufferManager.js +23 -22
  15. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  16. package/Engines/abstractEngine.js +2 -2
  17. package/Engines/abstractEngine.js.map +1 -1
  18. package/Engines/thinEngine.functions.js +5 -3
  19. package/Engines/thinEngine.functions.js.map +1 -1
  20. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.d.ts +43 -0
  21. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.js +83 -0
  22. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.js.map +1 -0
  23. package/FrameGraph/Node/Blocks/index.d.ts +1 -0
  24. package/FrameGraph/Node/Blocks/index.js +1 -0
  25. package/FrameGraph/Node/Blocks/index.js.map +1 -1
  26. package/FrameGraph/Tasks/Rendering/utilityLayerRendererTask.d.ts +35 -0
  27. package/FrameGraph/Tasks/Rendering/utilityLayerRendererTask.js +40 -0
  28. package/FrameGraph/Tasks/Rendering/utilityLayerRendererTask.js.map +1 -0
  29. package/FrameGraph/frameGraph.d.ts +4 -0
  30. package/FrameGraph/frameGraph.js +6 -0
  31. package/FrameGraph/frameGraph.js.map +1 -1
  32. package/FrameGraph/frameGraphRenderContext.d.ts +2 -2
  33. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  34. package/FrameGraph/index.d.ts +1 -0
  35. package/FrameGraph/index.js +1 -0
  36. package/FrameGraph/index.js.map +1 -1
  37. package/Layers/thinEffectLayer.js +3 -1
  38. package/Layers/thinEffectLayer.js.map +1 -1
  39. package/Lights/Shadows/shadowGenerator.js +3 -1
  40. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  41. package/Loading/loadingScreen.js +4 -1
  42. package/Loading/loadingScreen.js.map +1 -1
  43. package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js +9 -20
  44. package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js.map +1 -1
  45. package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js +8 -19
  46. package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js.map +1 -1
  47. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.d.ts +8 -0
  48. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js +36 -0
  49. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.js.map +1 -1
  50. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +6 -3
  51. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  52. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.d.ts +8 -0
  53. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +48 -0
  54. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  55. package/Materials/Node/nodeMaterial.d.ts +2 -0
  56. package/Materials/Node/nodeMaterial.js +14 -0
  57. package/Materials/Node/nodeMaterial.js.map +1 -1
  58. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -0
  59. package/Materials/PBR/pbrBaseMaterial.js +2 -0
  60. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  61. package/Materials/materialHelper.functions.d.ts +2 -1
  62. package/Materials/materialHelper.functions.js +17 -1
  63. package/Materials/materialHelper.functions.js.map +1 -1
  64. package/Materials/shaderMaterial.js +3 -1
  65. package/Materials/shaderMaterial.js.map +1 -1
  66. package/Materials/standardMaterial.d.ts +2 -0
  67. package/Materials/standardMaterial.js +2 -0
  68. package/Materials/standardMaterial.js.map +1 -1
  69. package/Meshes/Compression/dracoCompressionWorker.js.map +1 -1
  70. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.d.ts +4 -0
  71. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js +11 -2
  72. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js.map +1 -1
  73. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.d.ts +4 -0
  74. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js +11 -2
  75. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js.map +1 -1
  76. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.d.ts +4 -0
  77. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +11 -2
  78. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
  79. package/Meshes/Node/Blocks/Sources/boxBlock.js +4 -4
  80. package/Meshes/Node/Blocks/Sources/boxBlock.js.map +1 -1
  81. package/Meshes/Node/Blocks/Sources/gridBlock.js +3 -3
  82. package/Meshes/Node/Blocks/Sources/gridBlock.js.map +1 -1
  83. package/Meshes/Node/Blocks/Sources/planeBlock.js +3 -3
  84. package/Meshes/Node/Blocks/Sources/planeBlock.js.map +1 -1
  85. package/Meshes/Node/Blocks/subdivideBlock.d.ts +45 -0
  86. package/Meshes/Node/Blocks/subdivideBlock.js +98 -0
  87. package/Meshes/Node/Blocks/subdivideBlock.js.map +1 -0
  88. package/Meshes/Node/index.d.ts +1 -0
  89. package/Meshes/Node/index.js +1 -0
  90. package/Meshes/Node/index.js.map +1 -1
  91. package/Meshes/abstractMesh.js +6 -0
  92. package/Meshes/abstractMesh.js.map +1 -1
  93. package/Meshes/csg2.js +18 -1
  94. package/Meshes/csg2.js.map +1 -1
  95. package/Meshes/geometry.js +1 -0
  96. package/Meshes/geometry.js.map +1 -1
  97. package/Meshes/index.d.ts +1 -0
  98. package/Meshes/index.js +1 -0
  99. package/Meshes/index.js.map +1 -1
  100. package/Meshes/mesh.d.ts +47 -1
  101. package/Meshes/mesh.js +28 -1
  102. package/Meshes/mesh.js.map +1 -1
  103. package/Meshes/mesh.vertexData.js +1 -1
  104. package/Meshes/mesh.vertexData.js.map +1 -1
  105. package/Meshes/mesh.vertexData.subdivide.d.ts +28 -0
  106. package/Meshes/mesh.vertexData.subdivide.js +400 -0
  107. package/Meshes/mesh.vertexData.subdivide.js.map +1 -0
  108. package/Misc/index.d.ts +1 -0
  109. package/Misc/index.js +1 -0
  110. package/Misc/index.js.map +1 -1
  111. package/Misc/screenshotTools.js +3 -0
  112. package/Misc/screenshotTools.js.map +1 -1
  113. package/Misc/urlTools.d.ts +6 -0
  114. package/Misc/urlTools.js +12 -0
  115. package/Misc/urlTools.js.map +1 -0
  116. package/Morph/morphTarget.d.ts +12 -0
  117. package/Morph/morphTarget.js +35 -1
  118. package/Morph/morphTarget.js.map +1 -1
  119. package/Morph/morphTargetManager.d.ts +13 -0
  120. package/Morph/morphTargetManager.js +30 -1
  121. package/Morph/morphTargetManager.js.map +1 -1
  122. package/PostProcesses/volumetricLightScatteringPostProcess.js +3 -1
  123. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  124. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +5 -3
  125. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
  126. package/Rendering/depthRenderer.js +3 -1
  127. package/Rendering/depthRenderer.js.map +1 -1
  128. package/Rendering/geometryBufferRenderer.js +3 -1
  129. package/Rendering/geometryBufferRenderer.js.map +1 -1
  130. package/Rendering/outlineRenderer.js +3 -1
  131. package/Rendering/outlineRenderer.js.map +1 -1
  132. package/Rendering/utilityLayerRenderer.d.ts +3 -1
  133. package/Rendering/utilityLayerRenderer.js +16 -7
  134. package/Rendering/utilityLayerRenderer.js.map +1 -1
  135. package/Shaders/ShadersInclude/lightFragment.js +1 -1
  136. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  137. package/Shaders/ShadersInclude/morphTargetsVertex.js +9 -0
  138. package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
  139. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +3 -0
  140. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  141. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +5 -1
  142. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  143. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +2 -1
  144. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  145. package/Shaders/ShadersInclude/vertexColorMixing.js +2 -2
  146. package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
  147. package/Shaders/background.vertex.js +1 -1
  148. package/Shaders/background.vertex.js.map +1 -1
  149. package/Shaders/color.vertex.js +3 -0
  150. package/Shaders/color.vertex.js.map +1 -1
  151. package/Shaders/default.vertex.js +3 -0
  152. package/Shaders/default.vertex.js.map +1 -1
  153. package/Shaders/greasedLine.vertex.js +1 -2
  154. package/Shaders/greasedLine.vertex.js.map +1 -1
  155. package/Shaders/pbr.vertex.js +3 -0
  156. package/Shaders/pbr.vertex.js.map +1 -1
  157. package/ShadersWGSL/ShadersInclude/lightFragment.js +1 -1
  158. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  159. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +6 -0
  160. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
  161. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +3 -0
  162. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  163. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js +5 -1
  164. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  165. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +2 -1
  166. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  167. package/ShadersWGSL/boundingInfo.compute.js +3 -0
  168. package/ShadersWGSL/boundingInfo.compute.js.map +1 -1
  169. package/ShadersWGSL/color.vertex.js +3 -0
  170. package/ShadersWGSL/color.vertex.js.map +1 -1
  171. package/ShadersWGSL/default.vertex.js +3 -0
  172. package/ShadersWGSL/default.vertex.js.map +1 -1
  173. package/ShadersWGSL/greasedLine.vertex.js +2 -3
  174. package/ShadersWGSL/greasedLine.vertex.js.map +1 -1
  175. package/ShadersWGSL/pbr.fragment.js +1 -1
  176. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  177. package/ShadersWGSL/pbr.vertex.js +3 -0
  178. package/ShadersWGSL/pbr.vertex.js.map +1 -1
  179. package/XR/features/WebXRAnchorSystem.d.ts +4 -0
  180. package/XR/features/WebXRAnchorSystem.js +8 -5
  181. package/XR/features/WebXRAnchorSystem.js.map +1 -1
  182. package/XR/features/WebXRControllerPointerSelection.js +1 -0
  183. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  184. package/package.json +1 -1
  185. package/scene.d.ts +2 -0
  186. package/scene.js +13 -9
  187. package/scene.js.map +1 -1
  188. package/types.d.ts +22 -0
  189. package/types.js.map +1 -1
package/Meshes/mesh.d.ts CHANGED
@@ -33,16 +33,49 @@ import type { AbstractEngine } from "../Engines/abstractEngine.js";
33
33
  * @internal
34
34
  **/
35
35
  export declare class _CreationDataStorage {
36
+ /**
37
+ *
38
+ */
36
39
  closePath?: boolean;
40
+ /**
41
+ *
42
+ */
37
43
  closeArray?: boolean;
44
+ /**
45
+ *
46
+ */
38
47
  idx: number[];
48
+ /**
49
+ *
50
+ */
39
51
  dashSize: number;
52
+ /**
53
+ *
54
+ */
40
55
  gapSize: number;
56
+ /**
57
+ *
58
+ */
41
59
  path3D: Path3D;
60
+ /**
61
+ *
62
+ */
42
63
  pathArray: Vector3[][];
64
+ /**
65
+ *
66
+ */
43
67
  arc: number;
68
+ /**
69
+ *
70
+ */
44
71
  radius: number;
72
+ /**
73
+ *
74
+ */
45
75
  cap: number;
76
+ /**
77
+ *
78
+ */
46
79
  tessellation: number;
47
80
  }
48
81
  /**
@@ -72,9 +105,21 @@ declare class _InstanceDataStorage {
72
105
  * @internal
73
106
  **/
74
107
  export declare class _InstancesBatch {
108
+ /**
109
+ *
110
+ */
75
111
  mustReturn: boolean;
112
+ /**
113
+ *
114
+ */
76
115
  visibleInstances: Nullable<InstancedMesh[]>[];
116
+ /**
117
+ *
118
+ */
77
119
  renderSelf: boolean[];
120
+ /**
121
+ *
122
+ */
78
123
  hardwareInstancedRendering: boolean[];
79
124
  }
80
125
  /**
@@ -876,9 +921,10 @@ export declare class Mesh extends AbstractMesh implements IGetSetVerticesData {
876
921
  * Note that, under the hood, this method sets a new VertexBuffer each call.
877
922
  * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/center_origin/bakingTransforms
878
923
  * @param bakeIndependentlyOfChildren indicates whether to preserve all child nodes' World Matrix during baking
924
+ * @param forceUnique indicates whether to force the mesh geometry to be unique
879
925
  * @returns the current mesh
880
926
  */
881
- bakeCurrentTransformIntoVertices(bakeIndependentlyOfChildren?: boolean): Mesh;
927
+ bakeCurrentTransformIntoVertices(bakeIndependentlyOfChildren?: boolean, forceUnique?: boolean): Mesh;
882
928
  /** @internal */
883
929
  get _positions(): Nullable<Vector3[]>;
884
930
  /** @internal */
package/Meshes/mesh.js CHANGED
@@ -43,9 +43,21 @@ class _InstanceDataStorage {
43
43
  **/
44
44
  export class _InstancesBatch {
45
45
  constructor() {
46
+ /**
47
+ *
48
+ */
46
49
  this.mustReturn = false;
50
+ /**
51
+ *
52
+ */
47
53
  this.visibleInstances = new Array();
54
+ /**
55
+ *
56
+ */
48
57
  this.renderSelf = [];
58
+ /**
59
+ *
60
+ */
49
61
  this.hardwareInstancedRendering = [];
50
62
  }
51
63
  }
@@ -2413,9 +2425,13 @@ export class Mesh extends AbstractMesh {
2413
2425
  * Note that, under the hood, this method sets a new VertexBuffer each call.
2414
2426
  * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/center_origin/bakingTransforms
2415
2427
  * @param bakeIndependentlyOfChildren indicates whether to preserve all child nodes' World Matrix during baking
2428
+ * @param forceUnique indicates whether to force the mesh geometry to be unique
2416
2429
  * @returns the current mesh
2417
2430
  */
2418
- bakeCurrentTransformIntoVertices(bakeIndependentlyOfChildren = true) {
2431
+ bakeCurrentTransformIntoVertices(bakeIndependentlyOfChildren = true, forceUnique = false) {
2432
+ if (forceUnique) {
2433
+ this.makeGeometryUnique();
2434
+ }
2419
2435
  this.bakeTransformIntoVertices(this.computeWorldMatrix(true));
2420
2436
  this.resetLocalMatrix(bakeIndependentlyOfChildren);
2421
2437
  return this;
@@ -2700,6 +2716,10 @@ export class Mesh extends AbstractMesh {
2700
2716
  if (uvs) {
2701
2717
  target.setUVs(separateVertices(uvs, 2));
2702
2718
  }
2719
+ const colors = target.getColors();
2720
+ if (colors) {
2721
+ target.setColors(separateVertices(colors, 4));
2722
+ }
2703
2723
  }
2704
2724
  this.morphTargetManager.synchronize();
2705
2725
  }
@@ -3355,6 +3375,10 @@ export class Mesh extends AbstractMesh {
3355
3375
  if (uv2s) {
3356
3376
  this.geometry.setVerticesData(VertexBuffer.UV2Kind + "_" + index, uv2s, false, 2);
3357
3377
  }
3378
+ const colors = morphTarget.getColors();
3379
+ if (colors) {
3380
+ this.geometry.setVerticesData(VertexBuffer.ColorKind + index, colors, false, 4);
3381
+ }
3358
3382
  }
3359
3383
  }
3360
3384
  else {
@@ -3374,6 +3398,9 @@ export class Mesh extends AbstractMesh {
3374
3398
  if (this.geometry.isVerticesDataPresent(VertexBuffer.UV2Kind + index)) {
3375
3399
  this.geometry.removeVerticesData(VertexBuffer.UV2Kind + "_" + index);
3376
3400
  }
3401
+ if (this.geometry.isVerticesDataPresent(VertexBuffer.ColorKind + index)) {
3402
+ this.geometry.removeVerticesData(VertexBuffer.ColorKind + index);
3403
+ }
3377
3404
  index++;
3378
3405
  }
3379
3406
  }