@babylonjs/core 9.2.0 → 9.2.2

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 (200) hide show
  1. package/Animations/animation.d.ts +9 -0
  2. package/Animations/animation.js +9 -0
  3. package/Animations/animation.js.map +1 -1
  4. package/Animations/runtimeAnimation.js +28 -0
  5. package/Animations/runtimeAnimation.js.map +1 -1
  6. package/Cameras/Inputs/geospatialCameraPointersInput.js +10 -8
  7. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
  8. package/Cameras/geospatialCameraMovement.js +21 -21
  9. package/Cameras/geospatialCameraMovement.js.map +1 -1
  10. package/Debug/physicsViewer.js +2 -12
  11. package/Debug/physicsViewer.js.map +1 -1
  12. package/Engines/abstractEngine.js +2 -2
  13. package/Engines/abstractEngine.js.map +1 -1
  14. package/Engines/webgpuEngine.js +2 -0
  15. package/Engines/webgpuEngine.js.map +1 -1
  16. package/FlowGraph/Blocks/flowGraphBlockFactory.js +14 -1
  17. package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -1
  18. package/FlowGraph/flowGraph.js +6 -0
  19. package/FlowGraph/flowGraph.js.map +1 -1
  20. package/FlowGraph/flowGraphEventBlock.d.ts +10 -0
  21. package/FlowGraph/flowGraphEventBlock.js +24 -0
  22. package/FlowGraph/flowGraphEventBlock.js.map +1 -1
  23. package/FlowGraph/flowGraphParser.js +23 -4
  24. package/FlowGraph/flowGraphParser.js.map +1 -1
  25. package/FlowGraph/serialization.js +36 -14
  26. package/FlowGraph/serialization.js.map +1 -1
  27. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.d.ts +105 -0
  28. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.js +318 -0
  29. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.js.map +1 -0
  30. package/FrameGraph/Node/Blocks/index.d.ts +1 -0
  31. package/FrameGraph/Node/Blocks/index.js +1 -0
  32. package/FrameGraph/Node/Blocks/index.js.map +1 -1
  33. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +34 -0
  34. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +144 -0
  35. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -0
  36. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +26 -0
  37. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +82 -0
  38. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -0
  39. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +61 -0
  40. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +207 -0
  41. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -0
  42. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +104 -0
  43. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +218 -0
  44. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -0
  45. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +217 -0
  46. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +640 -0
  47. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -0
  48. package/FrameGraph/frameGraph.js +1 -0
  49. package/FrameGraph/frameGraph.js.map +1 -1
  50. package/FrameGraph/index.d.ts +1 -0
  51. package/FrameGraph/index.js +1 -0
  52. package/FrameGraph/index.js.map +1 -1
  53. package/Gizmos/boundingBoxGizmo.js +4 -0
  54. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  55. package/Layers/thinEffectLayer.js +8 -1
  56. package/Layers/thinEffectLayer.js.map +1 -1
  57. package/Lights/Clustered/clusteredLightContainer.js +8 -5
  58. package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
  59. package/Loading/Plugins/babylonFileLoader.js +26 -0
  60. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  61. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js +15 -2
  62. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js.map +1 -1
  63. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +3 -1
  64. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  65. package/Materials/PBR/openpbrMaterial.d.ts +13 -2
  66. package/Materials/PBR/openpbrMaterial.js +47 -16
  67. package/Materials/PBR/openpbrMaterial.js.map +1 -1
  68. package/Materials/PBR/pbrBRDFConfiguration.js +1 -1
  69. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  70. package/Materials/Textures/Filtering/hdrFiltering.js +6 -0
  71. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  72. package/Materials/Textures/envCubeTexture.js +13 -13
  73. package/Materials/Textures/envCubeTexture.js.map +1 -1
  74. package/Materials/materialHelper.functions.js +1 -1
  75. package/Materials/materialHelper.functions.js.map +1 -1
  76. package/Meshes/GaussianSplatting/gaussianSplattingCompoundMesh.d.ts +18 -4
  77. package/Meshes/GaussianSplatting/gaussianSplattingCompoundMesh.js +29 -4
  78. package/Meshes/GaussianSplatting/gaussianSplattingCompoundMesh.js.map +1 -1
  79. package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +48 -8
  80. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +373 -84
  81. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  82. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.d.ts +39 -4
  83. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.js +152 -47
  84. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.js.map +1 -1
  85. package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.d.ts +61 -7
  86. package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.js +94 -11
  87. package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.js.map +1 -1
  88. package/Meshes/mesh.d.ts +15 -0
  89. package/Meshes/mesh.js +40 -1
  90. package/Meshes/mesh.js.map +1 -1
  91. package/Meshes/transformNode.js +2 -2
  92. package/Meshes/transformNode.js.map +1 -1
  93. package/Misc/sceneSerializer.js +2 -1
  94. package/Misc/sceneSerializer.js.map +1 -1
  95. package/Misc/textureTools.d.ts +3 -1
  96. package/Misc/textureTools.js +74 -13
  97. package/Misc/textureTools.js.map +1 -1
  98. package/Misc/tools.js +1 -1
  99. package/Misc/tools.js.map +1 -1
  100. package/Particles/baseParticleSystem.d.ts +47 -1
  101. package/Particles/baseParticleSystem.js +88 -0
  102. package/Particles/baseParticleSystem.js.map +1 -1
  103. package/Particles/computeShaderParticleSystem.js +12 -0
  104. package/Particles/computeShaderParticleSystem.js.map +1 -1
  105. package/Particles/gpuParticleSystem.d.ts +61 -25
  106. package/Particles/gpuParticleSystem.js +249 -75
  107. package/Particles/gpuParticleSystem.js.map +1 -1
  108. package/Particles/particleSystem.d.ts +0 -6
  109. package/Particles/particleSystem.js +3 -14
  110. package/Particles/particleSystem.js.map +1 -1
  111. package/Particles/thinParticleSystem.d.ts +1 -17
  112. package/Particles/thinParticleSystem.js +1 -50
  113. package/Particles/thinParticleSystem.js.map +1 -1
  114. package/Particles/webgl2ParticleSystem.d.ts +1 -0
  115. package/Particles/webgl2ParticleSystem.js +18 -2
  116. package/Particles/webgl2ParticleSystem.js.map +1 -1
  117. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +1 -1
  118. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
  119. package/Rendering/IBLShadows/iblShadowsPluginMaterial.d.ts +3 -1
  120. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +11 -1
  121. package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
  122. package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -19
  123. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +21 -65
  124. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  125. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +15 -52
  126. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +129 -220
  127. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
  128. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +3 -0
  129. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
  130. package/Rendering/depthRenderer.js +6 -0
  131. package/Rendering/depthRenderer.js.map +1 -1
  132. package/Rendering/geometryBufferRenderer.d.ts +14 -5
  133. package/Rendering/geometryBufferRenderer.js +6 -2
  134. package/Rendering/geometryBufferRenderer.js.map +1 -1
  135. package/Rendering/geometryBufferRendererSceneComponent.d.ts +4 -6
  136. package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
  137. package/Rendering/iblCdfGenerator.d.ts +10 -0
  138. package/Rendering/iblCdfGenerator.js +52 -17
  139. package/Rendering/iblCdfGenerator.js.map +1 -1
  140. package/Rendering/index.d.ts +0 -6
  141. package/Rendering/index.js +0 -6
  142. package/Rendering/index.js.map +1 -1
  143. package/Shaders/ShadersInclude/gaussianSplatting.js +25 -4
  144. package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
  145. package/Shaders/ShadersInclude/openpbrDirectLighting.js +6 -1
  146. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  147. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +1 -1
  148. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  149. package/Shaders/gaussianSplatting.vertex.js +3 -0
  150. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  151. package/Shaders/gpuRenderParticles.vertex.js +14 -2
  152. package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
  153. package/Shaders/gpuUpdateParticles.vertex.js +24 -6
  154. package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
  155. package/Shaders/iblShadowVoxelTracing.fragment.js +5 -1
  156. package/Shaders/iblShadowVoxelTracing.fragment.js.map +1 -1
  157. package/Shaders/iblVoxelGrid.fragment.d.ts +1 -0
  158. package/Shaders/iblVoxelGrid.fragment.js +33 -5
  159. package/Shaders/iblVoxelGrid.fragment.js.map +1 -1
  160. package/Shaders/{iblVoxelSlabDebug.fragment.d.ts → lod3D.fragment.d.ts} +1 -1
  161. package/Shaders/lod3D.fragment.js +13 -0
  162. package/Shaders/lod3D.fragment.js.map +1 -0
  163. package/Shaders/openpbr.fragment.js +5 -0
  164. package/Shaders/openpbr.fragment.js.map +1 -1
  165. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +37 -5
  166. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
  167. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +6 -1
  168. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -1
  169. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +1 -1
  170. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  171. package/ShadersWGSL/gaussianSplatting.vertex.js +3 -0
  172. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  173. package/ShadersWGSL/gpuUpdateParticles.compute.js +29 -8
  174. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  175. package/ShadersWGSL/iblShadowVoxelTracing.fragment.js +5 -1
  176. package/ShadersWGSL/iblShadowVoxelTracing.fragment.js.map +1 -1
  177. package/ShadersWGSL/iblVoxelGrid.fragment.js +1 -1
  178. package/ShadersWGSL/iblVoxelGrid.fragment.js.map +1 -1
  179. package/{Shaders/iblVoxelSlabDebug.vertex.d.ts → ShadersWGSL/lod3D.fragment.d.ts} +1 -1
  180. package/ShadersWGSL/lod3D.fragment.js +13 -0
  181. package/ShadersWGSL/lod3D.fragment.js.map +1 -0
  182. package/ShadersWGSL/openpbr.fragment.js +5 -0
  183. package/ShadersWGSL/openpbr.fragment.js.map +1 -1
  184. package/package.json +1 -1
  185. package/Shaders/iblVoxelGrid3dDebug.fragment.d.ts +0 -5
  186. package/Shaders/iblVoxelGrid3dDebug.fragment.js +0 -24
  187. package/Shaders/iblVoxelGrid3dDebug.fragment.js.map +0 -1
  188. package/Shaders/iblVoxelSlabDebug.fragment.js +0 -13
  189. package/Shaders/iblVoxelSlabDebug.fragment.js.map +0 -1
  190. package/Shaders/iblVoxelSlabDebug.vertex.js +0 -11
  191. package/Shaders/iblVoxelSlabDebug.vertex.js.map +0 -1
  192. package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.d.ts +0 -5
  193. package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js +0 -23
  194. package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js.map +0 -1
  195. package/ShadersWGSL/iblVoxelSlabDebug.fragment.d.ts +0 -5
  196. package/ShadersWGSL/iblVoxelSlabDebug.fragment.js +0 -14
  197. package/ShadersWGSL/iblVoxelSlabDebug.fragment.js.map +0 -1
  198. package/ShadersWGSL/iblVoxelSlabDebug.vertex.d.ts +0 -5
  199. package/ShadersWGSL/iblVoxelSlabDebug.vertex.js +0 -12
  200. package/ShadersWGSL/iblVoxelSlabDebug.vertex.js.map +0 -1
@@ -6,6 +6,7 @@ import { Color4 } from "../Maths/math.color.js";
6
6
  import { VertexBuffer } from "../Buffers/buffer.js";
7
7
  import { type IParticleSystem } from "./IParticleSystem.js";
8
8
  import { BaseParticleSystem } from "./baseParticleSystem.js";
9
+ import { Attractor } from "./attractor.js";
9
10
  import { BoxParticleEmitter } from "../Particles/EmitterTypes/boxParticleEmitter.js";
10
11
  import { type IDisposable, Scene } from "../scene.js";
11
12
  import { type Effect } from "../Materials/effect.js";
@@ -70,6 +71,22 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
70
71
  private readonly _rawTextureWidth;
71
72
  private _platform;
72
73
  private _rebuildingAfterContextLost;
74
+ /**
75
+ * Whether the particle buffer needs to store the initial emission direction.
76
+ * True when particles are not billboarded (they orient by direction) or when
77
+ * using stretched-local billboard mode (stretches along initial direction).
78
+ * @internal
79
+ */
80
+ get _needsInitialDirection(): boolean;
81
+ private _currentEmitRateGradient;
82
+ private _currentEmitRate1;
83
+ private _currentEmitRate2;
84
+ private _currentStartSizeGradient;
85
+ private _currentStartSize1;
86
+ private _currentStartSize2;
87
+ private _startSizeGradientFactor;
88
+ private _lifeTimeGradientMin;
89
+ private _lifeTimeGradientMax;
73
90
  /**
74
91
  * Specifies if the particle system should be serialized
75
92
  */
@@ -129,6 +146,18 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
129
146
  isLocal: boolean;
130
147
  /** Indicates that the particle system is GPU based */
131
148
  readonly isGPU = true;
149
+ /** Attractors */
150
+ /**
151
+ * Maximum number of attractors for this GPU particle system instance.
152
+ * Determined at construction time via the `maxAttractors` option (default 8).
153
+ * Limited by the fixed-size uniform arrays in the update shaders.
154
+ */
155
+ readonly maxAttractors: number;
156
+ /**
157
+ * Add an attractor to the particle system. Attractors are used to change the direction of the particles in the system.
158
+ * @param attractor - The attractor to add to the particle system
159
+ */
160
+ addAttractor(attractor: Attractor): void;
132
161
  /** Gets or sets a matrix to use to compute projection */
133
162
  defaultProjectionMatrix: Matrix;
134
163
  /**
@@ -321,14 +350,14 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
321
350
  _limitVelocityGradientsTexture: RawTexture;
322
351
  /** @internal */
323
352
  _dragGradientsTexture: RawTexture;
324
- private _addFactorGradient;
325
353
  /**
326
354
  * Adds a new size gradient
327
355
  * @param gradient defines the gradient to use (between 0 and 1)
328
356
  * @param factor defines the size factor to affect to the specified gradient
357
+ * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
329
358
  * @returns the current particle system
330
359
  */
331
- addSizeGradient(gradient: number, factor: number): GPUParticleSystem;
360
+ addSizeGradient(gradient: number, factor: number, factor2?: number): GPUParticleSystem;
332
361
  /**
333
362
  * Remove a specific size gradient
334
363
  * @param gradient defines the gradient to remove
@@ -340,9 +369,10 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
340
369
  * Adds a new angular speed gradient
341
370
  * @param gradient defines the gradient to use (between 0 and 1)
342
371
  * @param factor defines the angular speed to affect to the specified gradient
372
+ * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
343
373
  * @returns the current particle system
344
374
  */
345
- addAngularSpeedGradient(gradient: number, factor: number): GPUParticleSystem;
375
+ addAngularSpeedGradient(gradient: number, factor: number, factor2?: number): GPUParticleSystem;
346
376
  /**
347
377
  * Remove a specific angular speed gradient
348
378
  * @param gradient defines the gradient to remove
@@ -353,9 +383,10 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
353
383
  * Adds a new velocity gradient
354
384
  * @param gradient defines the gradient to use (between 0 and 1)
355
385
  * @param factor defines the velocity to affect to the specified gradient
386
+ * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
356
387
  * @returns the current particle system
357
388
  */
358
- addVelocityGradient(gradient: number, factor: number): GPUParticleSystem;
389
+ addVelocityGradient(gradient: number, factor: number, factor2?: number): GPUParticleSystem;
359
390
  /**
360
391
  * Remove a specific velocity gradient
361
392
  * @param gradient defines the gradient to remove
@@ -366,9 +397,10 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
366
397
  * Adds a new limit velocity gradient
367
398
  * @param gradient defines the gradient to use (between 0 and 1)
368
399
  * @param factor defines the limit velocity value to affect to the specified gradient
400
+ * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
369
401
  * @returns the current particle system
370
402
  */
371
- addLimitVelocityGradient(gradient: number, factor: number): GPUParticleSystem;
403
+ addLimitVelocityGradient(gradient: number, factor: number, factor2?: number): GPUParticleSystem;
372
404
  /**
373
405
  * Remove a specific limit velocity gradient
374
406
  * @param gradient defines the gradient to remove
@@ -379,9 +411,10 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
379
411
  * Adds a new drag gradient
380
412
  * @param gradient defines the gradient to use (between 0 and 1)
381
413
  * @param factor defines the drag value to affect to the specified gradient
414
+ * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
382
415
  * @returns the current particle system
383
416
  */
384
- addDragGradient(gradient: number, factor: number): GPUParticleSystem;
417
+ addDragGradient(gradient: number, factor: number, factor2?: number): GPUParticleSystem;
385
418
  /**
386
419
  * Remove a specific drag gradient
387
420
  * @param gradient defines the gradient to remove
@@ -389,25 +422,19 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
389
422
  */
390
423
  removeDragGradient(gradient: number): GPUParticleSystem;
391
424
  /**
392
- * Not supported by GPUParticleSystem
393
- * @returns the current particle system
394
- */
395
- addEmitRateGradient(): IParticleSystem;
396
- /**
397
- * Not supported by GPUParticleSystem
398
- * @returns the current particle system
399
- */
400
- removeEmitRateGradient(): IParticleSystem;
401
- /**
402
- * Not supported by GPUParticleSystem
425
+ * Adds a new start size gradient (please note that this will only work if you set the targetStopDuration property)
426
+ * @param gradient defines the gradient to use (between 0 and 1)
427
+ * @param factor defines the start size factor to affect to the specified gradient
428
+ * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
403
429
  * @returns the current particle system
404
430
  */
405
- addStartSizeGradient(): IParticleSystem;
431
+ addStartSizeGradient(gradient: number, factor: number, factor2?: number): IParticleSystem;
406
432
  /**
407
- * Not supported by GPUParticleSystem
433
+ * Remove a specific start size gradient
434
+ * @param gradient defines the gradient to remove
408
435
  * @returns the current particle system
409
436
  */
410
- removeStartSizeGradient(): IParticleSystem;
437
+ removeStartSizeGradient(gradient: number): IParticleSystem;
411
438
  /**
412
439
  * Not supported by GPUParticleSystem
413
440
  * @returns the current particle system
@@ -451,15 +478,19 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
451
478
  get useRampGradients(): boolean;
452
479
  set useRampGradients(value: boolean);
453
480
  /**
454
- * Not supported by GPUParticleSystem
481
+ * Adds a new life time gradient (please note that this will only work if you set the targetStopDuration property)
482
+ * @param gradient defines the gradient to use (between 0 and 1)
483
+ * @param factor defines the life time factor to affect to the specified gradient
484
+ * @param factor2 defines an additional factor used to define a range ([factor, factor2]) with main value to pick the final value from
455
485
  * @returns the current particle system
456
486
  */
457
- addLifeTimeGradient(): IParticleSystem;
487
+ addLifeTimeGradient(gradient: number, factor: number, factor2?: number): IParticleSystem;
458
488
  /**
459
- * Not supported by GPUParticleSystem
489
+ * Remove a specific life time gradient
490
+ * @param gradient defines the gradient to remove
460
491
  * @returns the current particle system
461
492
  */
462
- removeLifeTimeGradient(): IParticleSystem;
493
+ removeLifeTimeGradient(gradient: number): IParticleSystem;
463
494
  /**
464
495
  * Instantiates a GPU particle system.
465
496
  * Particles are often small sprites used to simulate hard-to-reproduce phenomena like fire, smoke, water, or abstract visual effects like magic glitter and faery dust.
@@ -473,10 +504,15 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
473
504
  capacity: number;
474
505
  randomTextureSize: number;
475
506
  emitRateControl: boolean;
507
+ maxAttractors: number;
476
508
  }>, sceneOrEngine: Scene | AbstractEngine, customEffect?: Nullable<Effect>, isAnimationSheetEnabled?: boolean);
477
509
  protected _reset(): void;
478
510
  private _createVertexBuffers;
479
511
  private _initialize;
512
+ /**
513
+ * Forces the update effect to be recreated on the next render.
514
+ */
515
+ private _resetEffect;
480
516
  /** @internal */
481
517
  _recreateUpdateEffect(): boolean;
482
518
  /**
@@ -486,7 +522,7 @@ export declare class GPUParticleSystem extends BaseParticleSystem implements IDi
486
522
  /**
487
523
  * @internal
488
524
  */
489
- static _GetAttributeNamesOrOptions(hasColorGradients?: boolean, isAnimationSheetEnabled?: boolean, isBillboardBased?: boolean, isBillboardStretched?: boolean): string[];
525
+ static _GetAttributeNamesOrOptions(hasColorGradients?: boolean, isAnimationSheetEnabled?: boolean, isBillboardBased?: boolean, isBillboardStretched?: boolean, isBillboardStretchedLocal?: boolean): string[];
490
526
  /**
491
527
  * @internal
492
528
  */