@babylonjs/core 9.6.1 → 9.7.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 (228) hide show
  1. package/Animations/animatorAvatar.d.ts +2 -0
  2. package/Animations/animatorAvatar.js +163 -94
  3. package/Animations/animatorAvatar.js.map +1 -1
  4. package/Engines/WebGPU/webgpuSnapshotRendering.js +7 -3
  5. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
  6. package/Engines/abstractEngine.js +2 -2
  7. package/Engines/abstractEngine.js.map +1 -1
  8. package/Engines/constants.d.ts +10 -0
  9. package/Engines/constants.js +10 -0
  10. package/Engines/constants.js.map +1 -1
  11. package/Events/deviceInputEvents.d.ts +5 -0
  12. package/Events/deviceInputEvents.js.map +1 -1
  13. package/FlowGraph/Blocks/Data/flowGraphIsKeyPressedBlock.d.ts +65 -0
  14. package/FlowGraph/Blocks/Data/flowGraphIsKeyPressedBlock.js +74 -0
  15. package/FlowGraph/Blocks/Data/flowGraphIsKeyPressedBlock.js.map +1 -0
  16. package/FlowGraph/Blocks/Data/index.d.ts +1 -0
  17. package/FlowGraph/Blocks/Data/index.js +1 -0
  18. package/FlowGraph/Blocks/Data/index.js.map +1 -1
  19. package/FlowGraph/Blocks/Event/flowGraphKeyDownEventBlock.d.ts +39 -0
  20. package/FlowGraph/Blocks/Event/flowGraphKeyDownEventBlock.js +42 -0
  21. package/FlowGraph/Blocks/Event/flowGraphKeyDownEventBlock.js.map +1 -0
  22. package/FlowGraph/Blocks/Event/flowGraphKeyUpEventBlock.d.ts +19 -0
  23. package/FlowGraph/Blocks/Event/flowGraphKeyUpEventBlock.js +25 -0
  24. package/FlowGraph/Blocks/Event/flowGraphKeyUpEventBlock.js.map +1 -0
  25. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.d.ts +64 -0
  26. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js +50 -0
  27. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js.map +1 -0
  28. package/FlowGraph/Blocks/Event/index.d.ts +3 -0
  29. package/FlowGraph/Blocks/Event/index.js +3 -0
  30. package/FlowGraph/Blocks/Event/index.js.map +1 -1
  31. package/FlowGraph/Blocks/flowGraphBlockFactory.js +7 -0
  32. package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -1
  33. package/FlowGraph/Blocks/flowGraphBlockNames.d.ts +3 -0
  34. package/FlowGraph/Blocks/flowGraphBlockNames.js +3 -0
  35. package/FlowGraph/Blocks/flowGraphBlockNames.js.map +1 -1
  36. package/FlowGraph/flowGraph.d.ts +6 -0
  37. package/FlowGraph/flowGraph.js +10 -1
  38. package/FlowGraph/flowGraph.js.map +1 -1
  39. package/FlowGraph/flowGraphContext.d.ts +8 -0
  40. package/FlowGraph/flowGraphContext.js.map +1 -1
  41. package/FlowGraph/flowGraphEventType.d.ts +2 -0
  42. package/FlowGraph/flowGraphEventType.js +2 -0
  43. package/FlowGraph/flowGraphEventType.js.map +1 -1
  44. package/FlowGraph/flowGraphSceneEventCoordinator.d.ts +14 -0
  45. package/FlowGraph/flowGraphSceneEventCoordinator.js +56 -0
  46. package/FlowGraph/flowGraphSceneEventCoordinator.js.map +1 -1
  47. package/FlowGraph/utils.d.ts +7 -0
  48. package/FlowGraph/utils.js +8 -0
  49. package/FlowGraph/utils.js.map +1 -1
  50. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js +6 -0
  51. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js.map +1 -1
  52. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +6 -3
  53. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  54. package/Materials/PBR/openpbrMaterial.d.ts +8 -0
  55. package/Materials/PBR/openpbrMaterial.js +16 -0
  56. package/Materials/PBR/openpbrMaterial.js.map +1 -1
  57. package/Materials/PBR/pbrBaseMaterial.d.ts +1 -0
  58. package/Materials/PBR/pbrBaseMaterial.js +8 -0
  59. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  60. package/Materials/Textures/Procedurals/proceduralTexture.d.ts +6 -0
  61. package/Materials/Textures/Procedurals/proceduralTexture.js +3 -1
  62. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  63. package/Materials/Textures/index.d.ts +1 -0
  64. package/Materials/Textures/index.js +1 -0
  65. package/Materials/Textures/index.js.map +1 -1
  66. package/Materials/Textures/textureMerger.js +1 -0
  67. package/Materials/Textures/textureMerger.js.map +1 -1
  68. package/Materials/Textures/textureProcessor.d.ts +315 -0
  69. package/Materials/Textures/textureProcessor.js +792 -0
  70. package/Materials/Textures/textureProcessor.js.map +1 -0
  71. package/Materials/material.d.ts +24 -0
  72. package/Materials/material.js +39 -0
  73. package/Materials/material.js.map +1 -1
  74. package/Materials/standardMaterial.d.ts +1 -0
  75. package/Materials/standardMaterial.js +6 -0
  76. package/Materials/standardMaterial.js.map +1 -1
  77. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.js +30 -8
  78. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.js.map +1 -1
  79. package/Misc/snapshotRenderingHelper.d.ts +4 -2
  80. package/Misc/snapshotRenderingHelper.js +33 -22
  81. package/Misc/snapshotRenderingHelper.js.map +1 -1
  82. package/Misc/tools.js +1 -1
  83. package/Misc/tools.js.map +1 -1
  84. package/Particles/thinParticleSystem.d.ts +6 -12
  85. package/Particles/thinParticleSystem.js +23 -21
  86. package/Particles/thinParticleSystem.js.map +1 -1
  87. package/Physics/v2/characterController.d.ts +104 -1
  88. package/Physics/v2/characterController.js +355 -1
  89. package/Physics/v2/characterController.js.map +1 -1
  90. package/Shaders/ShadersInclude/bumpFragment.js +3 -3
  91. package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
  92. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +5 -1
  93. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  94. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +3 -0
  95. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
  96. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  97. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  98. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
  99. package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
  100. package/Shaders/ShadersInclude/openpbrAmbientOcclusionData.js +1 -1
  101. package/Shaders/ShadersInclude/openpbrAmbientOcclusionData.js.map +1 -1
  102. package/Shaders/ShadersInclude/openpbrBackgroundTransmission.js +1 -1
  103. package/Shaders/ShadersInclude/openpbrBackgroundTransmission.js.map +1 -1
  104. package/Shaders/ShadersInclude/openpbrBaseLayerData.js +14 -14
  105. package/Shaders/ShadersInclude/openpbrBaseLayerData.js.map +1 -1
  106. package/Shaders/ShadersInclude/openpbrCoatLayerData.js +6 -6
  107. package/Shaders/ShadersInclude/openpbrCoatLayerData.js.map +1 -1
  108. package/Shaders/ShadersInclude/openpbrDirectLighting.js +1 -1
  109. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  110. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +1 -1
  111. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  112. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js +3 -0
  113. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js.map +1 -1
  114. package/Shaders/ShadersInclude/openpbrFuzzLayerData.js +3 -3
  115. package/Shaders/ShadersInclude/openpbrFuzzLayerData.js.map +1 -1
  116. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js +4 -4
  117. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js.map +1 -1
  118. package/Shaders/ShadersInclude/openpbrSubsurfaceLayerData.js +7 -3
  119. package/Shaders/ShadersInclude/openpbrSubsurfaceLayerData.js.map +1 -1
  120. package/Shaders/ShadersInclude/openpbrThinFilmLayerData.js +2 -2
  121. package/Shaders/ShadersInclude/openpbrThinFilmLayerData.js.map +1 -1
  122. package/Shaders/ShadersInclude/openpbrTransmissionLayerData.js +5 -5
  123. package/Shaders/ShadersInclude/openpbrTransmissionLayerData.js.map +1 -1
  124. package/Shaders/ShadersInclude/openpbrUboDeclaration.js +1 -1
  125. package/Shaders/ShadersInclude/openpbrUboDeclaration.js.map +1 -1
  126. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js +1 -1
  127. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js.map +1 -1
  128. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +1 -1
  129. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  130. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +1 -1
  131. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
  132. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +3 -0
  133. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
  134. package/Shaders/ShadersInclude/pbrHelperFunctions.js +4 -0
  135. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  136. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  137. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  138. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
  139. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  140. package/Shaders/ShadersInclude/textureRepetitionFunctions.d.ts +5 -0
  141. package/Shaders/ShadersInclude/textureRepetitionFunctions.js +52 -0
  142. package/Shaders/ShadersInclude/textureRepetitionFunctions.js.map +1 -0
  143. package/Shaders/default.fragment.d.ts +1 -0
  144. package/Shaders/default.fragment.js +8 -6
  145. package/Shaders/default.fragment.js.map +1 -1
  146. package/Shaders/geometry.fragment.js +3 -3
  147. package/Shaders/geometry.fragment.js.map +1 -1
  148. package/Shaders/openpbr.fragment.d.ts +1 -0
  149. package/Shaders/openpbr.fragment.js +4 -2
  150. package/Shaders/openpbr.fragment.js.map +1 -1
  151. package/Shaders/pbr.fragment.d.ts +1 -0
  152. package/Shaders/pbr.fragment.js +24 -22
  153. package/Shaders/pbr.fragment.js.map +1 -1
  154. package/Shaders/textureProcessor.fragment.d.ts +5 -0
  155. package/Shaders/textureProcessor.fragment.js +156 -0
  156. package/Shaders/textureProcessor.fragment.js.map +1 -0
  157. package/ShadersWGSL/ShadersInclude/bumpFragment.js +3 -3
  158. package/ShadersWGSL/ShadersInclude/bumpFragment.js.map +1 -1
  159. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js +5 -1
  160. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  161. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
  162. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  163. package/ShadersWGSL/ShadersInclude/openpbrAmbientOcclusionData.js +1 -1
  164. package/ShadersWGSL/ShadersInclude/openpbrAmbientOcclusionData.js.map +1 -1
  165. package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js +1 -1
  166. package/ShadersWGSL/ShadersInclude/openpbrBackgroundTransmission.js.map +1 -1
  167. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js +15 -15
  168. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js.map +1 -1
  169. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js +7 -7
  170. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js.map +1 -1
  171. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +1 -1
  172. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  173. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +1 -1
  174. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  175. package/ShadersWGSL/ShadersInclude/openpbrFuzzLayerData.js +4 -4
  176. package/ShadersWGSL/ShadersInclude/openpbrFuzzLayerData.js.map +1 -1
  177. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +3 -3
  178. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  179. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js +4 -4
  180. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js.map +1 -1
  181. package/ShadersWGSL/ShadersInclude/openpbrSubsurfaceLayerData.js +7 -3
  182. package/ShadersWGSL/ShadersInclude/openpbrSubsurfaceLayerData.js.map +1 -1
  183. package/ShadersWGSL/ShadersInclude/openpbrThinFilmLayerData.js +2 -2
  184. package/ShadersWGSL/ShadersInclude/openpbrThinFilmLayerData.js.map +1 -1
  185. package/ShadersWGSL/ShadersInclude/openpbrTransmissionLayerData.js +6 -6
  186. package/ShadersWGSL/ShadersInclude/openpbrTransmissionLayerData.js.map +1 -1
  187. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js +1 -1
  188. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js.map +1 -1
  189. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js +1 -1
  190. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  191. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js +1 -1
  192. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
  193. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +4 -0
  194. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  195. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
  196. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  197. package/ShadersWGSL/ShadersInclude/textureRepetitionFunctions.d.ts +5 -0
  198. package/ShadersWGSL/ShadersInclude/textureRepetitionFunctions.js +52 -0
  199. package/ShadersWGSL/ShadersInclude/textureRepetitionFunctions.js.map +1 -0
  200. package/ShadersWGSL/default.fragment.d.ts +1 -0
  201. package/ShadersWGSL/default.fragment.js +8 -6
  202. package/ShadersWGSL/default.fragment.js.map +1 -1
  203. package/ShadersWGSL/geometry.fragment.js +3 -3
  204. package/ShadersWGSL/geometry.fragment.js.map +1 -1
  205. package/ShadersWGSL/openpbr.fragment.d.ts +1 -0
  206. package/ShadersWGSL/openpbr.fragment.js +5 -3
  207. package/ShadersWGSL/openpbr.fragment.js.map +1 -1
  208. package/ShadersWGSL/openpbr.vertex.js +1 -1
  209. package/ShadersWGSL/openpbr.vertex.js.map +1 -1
  210. package/ShadersWGSL/pbr.fragment.d.ts +1 -0
  211. package/ShadersWGSL/pbr.fragment.js +24 -22
  212. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  213. package/ShadersWGSL/textureProcessor.fragment.d.ts +5 -0
  214. package/ShadersWGSL/textureProcessor.fragment.js +161 -0
  215. package/ShadersWGSL/textureProcessor.fragment.js.map +1 -0
  216. package/SmartAssets/index.d.ts +2 -0
  217. package/SmartAssets/index.js +2 -0
  218. package/SmartAssets/index.js.map +1 -0
  219. package/SmartAssets/smartAssetManager.d.ts +156 -0
  220. package/SmartAssets/smartAssetManager.js +531 -0
  221. package/SmartAssets/smartAssetManager.js.map +1 -0
  222. package/SmartAssets/smartAssetSerializer.d.ts +61 -0
  223. package/SmartAssets/smartAssetSerializer.js +97 -0
  224. package/SmartAssets/smartAssetSerializer.js.map +1 -0
  225. package/index.d.ts +1 -0
  226. package/index.js +1 -0
  227. package/index.js.map +1 -1
  228. package/package.json +1 -1
@@ -72,21 +72,6 @@ export class ThinParticleSystem extends BaseParticleSystem {
72
72
  }
73
73
  this._onDisposeObserver = this.onDisposeObservable.add(callback);
74
74
  }
75
- /**
76
- * Gets or sets a boolean indicating that the particle system should always render at full capacity.
77
- * When enabled, the draw call always emits `getCapacity()` quads/instances and inactive slots are zero-filled in the
78
- * vertex buffer (collapsing them to degenerate triangles that produce no fragments).
79
- * This makes the particle system compatible with FAST snapshot rendering, where the recorded draw call parameters
80
- * are baked into the GPU bundle. Activate via `SnapshotRenderingHelper.fixParticleSystem(ps)`.
81
- * Note: vertex shader cost scales with capacity rather than the live particle count, so size capacity realistically.
82
- * This property is runtime-only and is not persisted by `serialize()` / `Parse()`.
83
- */
84
- get useFixedCapacityForSnapshot() {
85
- return this._useFixedCapacityForSnapshot;
86
- }
87
- set useFixedCapacityForSnapshot(value) {
88
- this._useFixedCapacityForSnapshot = value;
89
- }
90
75
  /**
91
76
  * Gets a boolean indicating that the particle system was disposed
92
77
  */
@@ -334,6 +319,7 @@ export class ThinParticleSystem extends BaseParticleSystem {
334
319
  this._scaledGravity = Vector3.Zero();
335
320
  this._currentRenderId = -1;
336
321
  this._useInstancing = false;
322
+ /** @internal */
337
323
  this._useFixedCapacityForSnapshot = false;
338
324
  this._fixedCapacityHighWaterMark = 0;
339
325
  this._isDisposed = false;
@@ -1605,17 +1591,12 @@ export class ThinParticleSystem extends BaseParticleSystem {
1605
1591
  if (this._useFixedCapacityForSnapshot) {
1606
1592
  // The vertex buffer is uploaded at full capacity so the FAST-snapshot bundle's draw call stays valid.
1607
1593
  // Inactive slots must be zeroed so they collapse to degenerate (size=0) quads that emit no fragments.
1608
- // Float32Array starts zeroed and `_appendParticleVertices` overwrites only the active range, so we
1609
- // only need to clear slots that were active in a previous frame and aren't anymore — i.e. the range
1610
- // [currentCount, highWaterMark). When the active count grows we just bump the high-water mark.
1611
1594
  const stride = this._vertexBufferSize * (this._useInstancing ? 1 : 4);
1612
1595
  const currentCount = this._particles.length;
1613
1596
  if (currentCount < this._fixedCapacityHighWaterMark) {
1614
1597
  this._vertexData.fill(0, currentCount * stride, this._fixedCapacityHighWaterMark * stride);
1615
1598
  }
1616
- if (currentCount > this._fixedCapacityHighWaterMark) {
1617
- this._fixedCapacityHighWaterMark = currentCount;
1618
- }
1599
+ this._fixedCapacityHighWaterMark = currentCount;
1619
1600
  this._vertexBuffer.updateDirectly(this._vertexData, 0, this._capacity);
1620
1601
  }
1621
1602
  else {
@@ -1627,6 +1608,27 @@ export class ThinParticleSystem extends BaseParticleSystem {
1627
1608
  this.stop();
1628
1609
  }
1629
1610
  }
1611
+ /** @internal */
1612
+ _initFixedCapacitySnapshotData() {
1613
+ if (this._useFixedCapacityForSnapshot) {
1614
+ return false;
1615
+ }
1616
+ this._useFixedCapacityForSnapshot = true;
1617
+ this._vertexData.fill(0);
1618
+ this._fixedCapacityHighWaterMark = 0;
1619
+ this._vertexBuffer?.updateDirectly(this._vertexData, 0, this._capacity);
1620
+ return true;
1621
+ }
1622
+ /** @internal */
1623
+ _clearFixedCapacitySnapshotData() {
1624
+ if (!this._useFixedCapacityForSnapshot || !this._vertexBuffer || this._fixedCapacityHighWaterMark === 0) {
1625
+ return;
1626
+ }
1627
+ const stride = this._vertexBufferSize * (this._useInstancing ? 1 : 4);
1628
+ this._vertexData.fill(0, 0, this._fixedCapacityHighWaterMark * stride);
1629
+ this._fixedCapacityHighWaterMark = 0;
1630
+ this._vertexBuffer.updateDirectly(this._vertexData, 0, this._capacity);
1631
+ }
1630
1632
  /**
1631
1633
  * Internal only. Calculates the current emit rate based on the gradients if any.
1632
1634
  * @returns The emit rate