@babylonjs/core 8.37.0 → 8.37.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 (193) hide show
  1. package/Animations/animationGroup.js +1 -4
  2. package/Animations/animationGroup.js.map +1 -1
  3. package/Behaviors/Cameras/interpolatingBehavior.d.ts +58 -0
  4. package/Behaviors/Cameras/interpolatingBehavior.js +157 -0
  5. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -0
  6. package/Cameras/Inputs/arcRotateCameraPointersInput.d.ts +5 -20
  7. package/Cameras/Inputs/arcRotateCameraPointersInput.js +9 -69
  8. package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
  9. package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +81 -0
  10. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +223 -0
  11. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -0
  12. package/Cameras/Inputs/geospatialCameraMouseWheelInput.js +1 -1
  13. package/Cameras/Inputs/geospatialCameraMouseWheelInput.js.map +1 -1
  14. package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +17 -21
  15. package/Cameras/Inputs/geospatialCameraPointersInput.js +49 -71
  16. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
  17. package/Cameras/Inputs/orbitCameraPointersInput.d.ts +49 -0
  18. package/Cameras/Inputs/orbitCameraPointersInput.js +105 -0
  19. package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -0
  20. package/Cameras/Limits/geospatialLimits.d.ts +60 -0
  21. package/Cameras/Limits/geospatialLimits.js +89 -0
  22. package/Cameras/Limits/geospatialLimits.js.map +1 -0
  23. package/Cameras/cameraMovement.d.ts +150 -0
  24. package/Cameras/cameraMovement.js +190 -0
  25. package/Cameras/cameraMovement.js.map +1 -0
  26. package/Cameras/geospatialCamera.d.ts +78 -49
  27. package/Cameras/geospatialCamera.js +210 -191
  28. package/Cameras/geospatialCamera.js.map +1 -1
  29. package/Cameras/geospatialCameraInputsManager.d.ts +5 -0
  30. package/Cameras/geospatialCameraInputsManager.js +9 -0
  31. package/Cameras/geospatialCameraInputsManager.js.map +1 -1
  32. package/Cameras/geospatialCameraMovement.d.ts +66 -0
  33. package/Cameras/geospatialCameraMovement.js +199 -0
  34. package/Cameras/geospatialCameraMovement.js.map +1 -0
  35. package/Decorators/nodeDecorator.d.ts +9 -7
  36. package/Decorators/nodeDecorator.js +9 -7
  37. package/Decorators/nodeDecorator.js.map +1 -1
  38. package/Engines/Native/nativeInterfaces.d.ts +14 -6
  39. package/Engines/Native/nativeInterfaces.js +6 -1
  40. package/Engines/Native/nativeInterfaces.js.map +1 -1
  41. package/Engines/WebGPU/webgpuTextureManager.js +2 -2
  42. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  43. package/Engines/abstractEngine.js +2 -2
  44. package/Engines/abstractEngine.js.map +1 -1
  45. package/Engines/nativeEngine.js +2 -2
  46. package/Engines/nativeEngine.js.map +1 -1
  47. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js +1 -1
  48. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js.map +1 -1
  49. package/FlowGraph/flowGraphMath.d.ts +25 -0
  50. package/FlowGraph/flowGraphMath.js +40 -0
  51. package/FlowGraph/flowGraphMath.js.map +1 -0
  52. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js +1 -1
  53. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js.map +1 -1
  54. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.js +1 -1
  55. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.js.map +1 -1
  56. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +1 -1
  57. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +1 -1
  58. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.js +1 -1
  59. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.js +1 -1
  60. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.js +1 -1
  61. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.js +1 -1
  62. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.js +1 -1
  63. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.js +1 -1
  64. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.js.map +1 -1
  65. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.js +1 -1
  66. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.js.map +1 -1
  67. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.d.ts +6 -0
  68. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +26 -0
  69. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  70. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +6 -0
  71. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +48 -22
  72. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
  73. package/FrameGraph/Node/Blocks/Textures/clearBlock.js +3 -3
  74. package/FrameGraph/Node/Blocks/Textures/clearBlock.js.map +1 -1
  75. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js +1 -1
  76. package/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.js +1 -1
  77. package/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.js.map +1 -1
  78. package/FrameGraph/Node/nodeRenderGraph.js +2 -1
  79. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  80. package/FrameGraph/Passes/{cullPass.d.ts → objectListPass.d.ts} +8 -8
  81. package/FrameGraph/Passes/{cullPass.js → objectListPass.js} +9 -9
  82. package/FrameGraph/Passes/objectListPass.js.map +1 -0
  83. package/FrameGraph/Passes/renderPass.d.ts +6 -2
  84. package/FrameGraph/Passes/renderPass.js +14 -2
  85. package/FrameGraph/Passes/renderPass.js.map +1 -1
  86. package/FrameGraph/Tasks/Misc/cullObjectsTask.js +2 -2
  87. package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -1
  88. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +8 -0
  89. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +10 -0
  90. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  91. package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +8 -0
  92. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +13 -0
  93. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  94. package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +1 -1
  95. package/FrameGraph/Tasks/Texture/clearTextureTask.js +7 -5
  96. package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
  97. package/FrameGraph/frameGraph.d.ts +10 -4
  98. package/FrameGraph/frameGraph.js +22 -9
  99. package/FrameGraph/frameGraph.js.map +1 -1
  100. package/FrameGraph/frameGraphTask.js +3 -3
  101. package/FrameGraph/frameGraphTask.js.map +1 -1
  102. package/FrameGraph/index.d.ts +1 -1
  103. package/FrameGraph/index.js +1 -1
  104. package/FrameGraph/index.js.map +1 -1
  105. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js +1 -1
  106. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js.map +1 -1
  107. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js +5 -1
  108. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js.map +1 -1
  109. package/Materials/Node/Blocks/GaussianSplatting/splatReaderBlock.js +6 -5
  110. package/Materials/Node/Blocks/GaussianSplatting/splatReaderBlock.js.map +1 -1
  111. package/Materials/shaderMaterial.d.ts +9 -0
  112. package/Materials/shaderMaterial.js +39 -2
  113. package/Materials/shaderMaterial.js.map +1 -1
  114. package/Maths/math.vector.functions.d.ts +5 -24
  115. package/Maths/math.vector.functions.js +32 -35
  116. package/Maths/math.vector.functions.js.map +1 -1
  117. package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +1 -0
  118. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +51 -16
  119. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  120. package/Meshes/csg2.js +1 -1
  121. package/Meshes/csg2.js.map +1 -1
  122. package/Meshes/thinInstanceMesh.js +15 -0
  123. package/Meshes/thinInstanceMesh.js.map +1 -1
  124. package/Misc/fileTools.js.map +1 -1
  125. package/Misc/tools.d.ts +3 -0
  126. package/Misc/tools.js +43 -4
  127. package/Misc/tools.js.map +1 -1
  128. package/Particles/EmitterTypes/coneParticleEmitter.d.ts +3 -1
  129. package/Particles/EmitterTypes/coneParticleEmitter.js +7 -1
  130. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  131. package/Particles/Node/Blocks/Emitters/coneShapeBlock.d.ts +9 -0
  132. package/Particles/Node/Blocks/Emitters/coneShapeBlock.js +43 -12
  133. package/Particles/Node/Blocks/Emitters/coneShapeBlock.js.map +1 -1
  134. package/Particles/Node/Blocks/Update/basicColorUpdateBlock.d.ts +1 -1
  135. package/Particles/Node/Blocks/Update/basicColorUpdateBlock.js +1 -1
  136. package/Particles/Node/Blocks/Update/basicColorUpdateBlock.js.map +1 -1
  137. package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.d.ts +1 -1
  138. package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js +3 -3
  139. package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js.map +1 -1
  140. package/Particles/Node/Blocks/Update/updateSizeBlock.d.ts +35 -0
  141. package/Particles/Node/Blocks/Update/updateSizeBlock.js +73 -0
  142. package/Particles/Node/Blocks/Update/updateSizeBlock.js.map +1 -0
  143. package/Particles/Node/Blocks/index.d.ts +1 -0
  144. package/Particles/Node/Blocks/index.js +1 -0
  145. package/Particles/Node/Blocks/index.js.map +1 -1
  146. package/Particles/Node/Blocks/particleInputBlock.js +2 -0
  147. package/Particles/Node/Blocks/particleInputBlock.js.map +1 -1
  148. package/Particles/Node/Blocks/particleRandomBlock.d.ts +5 -2
  149. package/Particles/Node/Blocks/particleRandomBlock.js +32 -14
  150. package/Particles/Node/Blocks/particleRandomBlock.js.map +1 -1
  151. package/Particles/Node/Blocks/systemBlock.d.ts +20 -12
  152. package/Particles/Node/Blocks/systemBlock.js +26 -22
  153. package/Particles/Node/Blocks/systemBlock.js.map +1 -1
  154. package/Particles/Node/Enums/nodeParticleContextualSources.d.ts +5 -1
  155. package/Particles/Node/Enums/nodeParticleContextualSources.js +4 -0
  156. package/Particles/Node/Enums/nodeParticleContextualSources.js.map +1 -1
  157. package/Particles/Node/nodeParticleBuildState.d.ts +5 -5
  158. package/Particles/Node/nodeParticleBuildState.js +11 -7
  159. package/Particles/Node/nodeParticleBuildState.js.map +1 -1
  160. package/Particles/Node/nodeParticleSystemSet.helper.d.ts +0 -2
  161. package/Particles/Node/nodeParticleSystemSet.helper.js +524 -147
  162. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  163. package/Particles/particle.d.ts +4 -0
  164. package/Particles/particle.js +2 -0
  165. package/Particles/particle.js.map +1 -1
  166. package/Particles/thinParticleSystem.d.ts +3 -7
  167. package/Particles/thinParticleSystem.function.d.ts +1 -1
  168. package/Particles/thinParticleSystem.function.js +9 -6
  169. package/Particles/thinParticleSystem.function.js.map +1 -1
  170. package/Particles/thinParticleSystem.js +5 -7
  171. package/Particles/thinParticleSystem.js.map +1 -1
  172. package/Shaders/ShadersInclude/gaussianSplatting.js +5 -1
  173. package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
  174. package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js +2 -1
  175. package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -1
  176. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +1 -1
  177. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
  178. package/Shaders/gaussianSplatting.vertex.js +3 -3
  179. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  180. package/Shaders/gaussianSplattingDepth.vertex.js +2 -2
  181. package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
  182. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +35 -1
  183. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
  184. package/ShadersWGSL/ShadersInclude/gaussianSplattingUboDeclaration.js +2 -1
  185. package/ShadersWGSL/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -1
  186. package/ShadersWGSL/ShadersInclude/gaussianSplattingVertexDeclaration.js +1 -2
  187. package/ShadersWGSL/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
  188. package/ShadersWGSL/gaussianSplatting.vertex.js +3 -3
  189. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  190. package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
  191. package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
  192. package/package.json +1 -1
  193. package/FrameGraph/Passes/cullPass.js.map +0 -1
@@ -13,6 +13,7 @@ import type { StorageBuffer } from "../Buffers/storageBuffer.js";
13
13
  import { PushMaterial } from "./pushMaterial.js";
14
14
  import type { ExternalTexture } from "./Textures/externalTexture.js";
15
15
  import type { IColor3Like, IColor4Like, IVector2Like, IVector3Like, IVector4Like } from "../Maths/math.like.js";
16
+ import type { InternalTexture } from "./Textures/internalTexture.js";
16
17
  /**
17
18
  * Defines the options associated with the creation of a shader material.
18
19
  */
@@ -81,6 +82,7 @@ export declare class ShaderMaterial extends PushMaterial {
81
82
  private _shaderPath;
82
83
  private _options;
83
84
  private _textures;
85
+ private _internalTextures;
84
86
  private _textureArrays;
85
87
  private _externalTextures;
86
88
  private _floats;
@@ -172,6 +174,13 @@ export declare class ShaderMaterial extends PushMaterial {
172
174
  * @returns the material itself allowing "fluent" like uniform updates
173
175
  */
174
176
  setTexture(name: string, texture: BaseTexture): ShaderMaterial;
177
+ /**
178
+ * Set an internal texture in the shader.
179
+ * @param name Define the name of the uniform samplers as defined in the shader
180
+ * @param texture Define the texture to bind to this sampler
181
+ * @returns the material itself allowing "fluent" like uniform updates
182
+ */
183
+ setInternalTexture(name: string, texture: InternalTexture): ShaderMaterial;
175
184
  /**
176
185
  * Remove a texture from the material.
177
186
  * @param name Define the name of the texture to remove
@@ -10,7 +10,7 @@ import { PushMaterial } from "./pushMaterial.js";
10
10
  import { EngineStore } from "../Engines/engineStore.js";
11
11
 
12
12
  import { AddClipPlaneUniforms, BindClipPlane, PrepareStringDefinesForClipPlanes } from "./clipPlaneMaterialHelper.js";
13
- import { BindBonesParameters, BindFogParameters, BindLogDepth, BindMorphTargetParameters, BindSceneUniformBuffer, PrepareAttributesForBakedVertexAnimation, PrepareDefinesAndAttributesForMorphTargets, PushAttributesForInstances, } from "./materialHelper.functions.js";
13
+ import { BindBonesParameters, BindFogParameters, BindLogDepth, BindMorphTargetParameters, BindSceneUniformBuffer, PrepareDefinesAndAttributesForMorphTargets, PushAttributesForInstances, } from "./materialHelper.functions.js";
14
14
  const OnCreatedEffectParameters = { effect: null, subMesh: null };
15
15
  /**
16
16
  * 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.
@@ -34,6 +34,7 @@ export class ShaderMaterial extends PushMaterial {
34
34
  constructor(name, scene, shaderPath, options = {}, storeEffectOnSubMeshes = true) {
35
35
  super(name, scene, storeEffectOnSubMeshes);
36
36
  this._textures = {};
37
+ this._internalTextures = {};
37
38
  this._textureArrays = {};
38
39
  this._externalTextures = {};
39
40
  this._floats = {};
@@ -149,6 +150,19 @@ export class ShaderMaterial extends PushMaterial {
149
150
  this._textures[name] = texture;
150
151
  return this;
151
152
  }
153
+ /**
154
+ * Set an internal texture in the shader.
155
+ * @param name Define the name of the uniform samplers as defined in the shader
156
+ * @param texture Define the texture to bind to this sampler
157
+ * @returns the material itself allowing "fluent" like uniform updates
158
+ */
159
+ setInternalTexture(name, texture) {
160
+ if (this._options.samplers.indexOf(name) === -1) {
161
+ this._options.samplers.push(name);
162
+ }
163
+ this._internalTextures[name] = texture;
164
+ return this;
165
+ }
152
166
  /**
153
167
  * Remove a texture from the material.
154
168
  * @param name Define the name of the texture to remove
@@ -626,8 +640,10 @@ export class ShaderMaterial extends PushMaterial {
626
640
  if (this._options.samplers.indexOf("bakedVertexAnimationTexture") === -1) {
627
641
  this._options.samplers.push("bakedVertexAnimationTexture");
628
642
  }
643
+ if (useInstances) {
644
+ attribs.push("bakedVertexAnimationSettingsInstanced");
645
+ }
629
646
  }
630
- PrepareAttributesForBakedVertexAnimation(attribs, mesh, defines);
631
647
  }
632
648
  // Textures
633
649
  for (const name in this._textures) {
@@ -635,6 +651,11 @@ export class ShaderMaterial extends PushMaterial {
635
651
  return false;
636
652
  }
637
653
  }
654
+ for (const name in this._internalTextures) {
655
+ if (!this._internalTextures[name].isReady) {
656
+ return false;
657
+ }
658
+ }
638
659
  // Alpha test
639
660
  if (mesh && this.needAlphaTestingForMesh(mesh)) {
640
661
  defines.push("#define ALPHATEST");
@@ -829,6 +850,9 @@ export class ShaderMaterial extends PushMaterial {
829
850
  for (name in this._textures) {
830
851
  effect.setTexture(name, this._textures[name]);
831
852
  }
853
+ for (name in this._internalTextures) {
854
+ effect._bindTexture(name, this._internalTextures[name]);
855
+ }
832
856
  // Texture arrays
833
857
  for (name in this._textureArrays) {
834
858
  effect.setTextureArray(name, this._textureArrays[name]);
@@ -989,6 +1013,12 @@ export class ShaderMaterial extends PushMaterial {
989
1013
  return true;
990
1014
  }
991
1015
  }
1016
+ const internalTexture = texture.getInternalTexture();
1017
+ for (const name in this._internalTextures) {
1018
+ if (this._internalTextures[name] === internalTexture) {
1019
+ return true;
1020
+ }
1021
+ }
992
1022
  for (const name in this._textureArrays) {
993
1023
  const array = this._textureArrays[name];
994
1024
  for (let index = 0; index < array.length; index++) {
@@ -1027,6 +1057,9 @@ export class ShaderMaterial extends PushMaterial {
1027
1057
  for (const key in this._textures) {
1028
1058
  result.setTexture(key, this._textures[key]);
1029
1059
  }
1060
+ for (const key in this._internalTextures) {
1061
+ result.setInternalTexture(key, this._internalTextures[key]);
1062
+ }
1030
1063
  // TextureArray
1031
1064
  for (const key in this._textureArrays) {
1032
1065
  result.setTextureArray(key, this._textureArrays[key]);
@@ -1141,6 +1174,9 @@ export class ShaderMaterial extends PushMaterial {
1141
1174
  for (name in this._textures) {
1142
1175
  this._textures[name].dispose();
1143
1176
  }
1177
+ for (name in this._internalTextures) {
1178
+ this._internalTextures[name].dispose();
1179
+ }
1144
1180
  for (name in this._textureArrays) {
1145
1181
  const array = this._textureArrays[name];
1146
1182
  for (let index = 0; index < array.length; index++) {
@@ -1149,6 +1185,7 @@ export class ShaderMaterial extends PushMaterial {
1149
1185
  }
1150
1186
  }
1151
1187
  this._textures = {};
1188
+ this._internalTextures = {};
1152
1189
  super.dispose(forceDisposeEffect, forceDisposeTextures, notBoundToMesh);
1153
1190
  }
1154
1191
  /**