@galacean/engine-core 2.0.0-alpha.44 → 2.0.0-alpha.46

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 (238) hide show
  1. package/dist/main.js +105 -30
  2. package/dist/main.js.map +1 -1
  3. package/dist/module.js +105 -30
  4. package/dist/module.js.map +1 -1
  5. package/package.json +3 -3
  6. package/types/2d/atlas/FontAtlas.d.ts +23 -1
  7. package/types/2d/atlas/SpriteAtlas.d.ts +8 -0
  8. package/types/2d/sprite/Sprite.d.ts +27 -1
  9. package/types/2d/sprite/SpriteMask.d.ts +43 -0
  10. package/types/2d/sprite/SpriteRenderer.d.ts +29 -0
  11. package/types/2d/text/CharInfo.d.ts +20 -1
  12. package/types/2d/text/CharRenderInfo.d.ts +15 -1
  13. package/types/2d/text/Font.d.ts +10 -0
  14. package/types/2d/text/SubFont.d.ts +35 -1
  15. package/types/2d/text/TextRenderer.d.ts +53 -0
  16. package/types/2d/text/TextUtils.d.ts +89 -1
  17. package/types/Background.d.ts +17 -0
  18. package/types/BasicResources.d.ts +52 -0
  19. package/types/Camera.d.ts +71 -1
  20. package/types/Canvas.d.ts +13 -0
  21. package/types/Component.d.ts +33 -0
  22. package/types/ComponentsDependencies.d.ts +38 -1
  23. package/types/ComponentsManager.d.ts +17 -0
  24. package/types/Engine.d.ts +106 -2
  25. package/types/Entity.d.ts +91 -1
  26. package/types/Polyfill.d.ts +12 -1
  27. package/types/RenderPipeline/BasicRenderPipeline.d.ts +3 -0
  28. package/types/RenderPipeline/BatcherManager.d.ts +23 -1
  29. package/types/RenderPipeline/CullingResults.d.ts +17 -1
  30. package/types/RenderPipeline/DepthOnlyPass.d.ts +18 -1
  31. package/types/RenderPipeline/InstanceBuffer.d.ts +28 -1
  32. package/types/RenderPipeline/MaskManager.d.ts +36 -1
  33. package/types/RenderPipeline/OpaqueTexturePass.d.ts +16 -1
  34. package/types/RenderPipeline/PipelineUtils.d.ts +11 -1
  35. package/types/RenderPipeline/PrimitiveChunk.d.ts +27 -1
  36. package/types/RenderPipeline/PrimitiveChunkManager.d.ts +16 -1
  37. package/types/RenderPipeline/RenderContext.d.ts +46 -1
  38. package/types/RenderPipeline/RenderElement.d.ts +9 -0
  39. package/types/RenderPipeline/RenderQueue.d.ts +23 -1
  40. package/types/RenderPipeline/RenderTargetPool.d.ts +17 -1
  41. package/types/RenderPipeline/SubPrimitiveChunk.d.ts +14 -1
  42. package/types/RenderPipeline/VertexArea.d.ts +10 -1
  43. package/types/RenderPipeline/VertexMergeBatcher.d.ts +11 -1
  44. package/types/RenderPipeline/enums/RenderQueueMaskType.d.ts +9 -1
  45. package/types/RenderPipeline/index.d.ts +2 -0
  46. package/types/Renderer.d.ts +58 -0
  47. package/types/Scene.d.ts +28 -0
  48. package/types/SceneManager.d.ts +13 -0
  49. package/types/Script.d.ts +40 -0
  50. package/types/SystemInfo.d.ts +10 -0
  51. package/types/Transform.d.ts +19 -0
  52. package/types/UpdateFlag.d.ts +3 -0
  53. package/types/UpdateFlagManager.d.ts +41 -1
  54. package/types/Utils.d.ts +20 -0
  55. package/types/VirtualCamera.d.ts +16 -1
  56. package/types/animation/AnimationClip.d.ts +5 -0
  57. package/types/animation/AnimationClipCurveBinding.d.ts +16 -1
  58. package/types/animation/Animator.d.ts +25 -0
  59. package/types/animation/AnimatorController.d.ts +17 -0
  60. package/types/animation/AnimatorControllerLayer.d.ts +9 -0
  61. package/types/animation/AnimatorControllerParameter.d.ts +4 -0
  62. package/types/animation/AnimatorState.d.ts +44 -0
  63. package/types/animation/AnimatorStateInstance.d.ts +8 -0
  64. package/types/animation/AnimatorStateMachine.d.ts +14 -0
  65. package/types/animation/AnimatorStateTransition.d.ts +9 -0
  66. package/types/animation/AnimatorStateTransitionCollection.d.ts +23 -1
  67. package/types/animation/StateMachineScript.d.ts +2 -0
  68. package/types/animation/animationCurve/AnimationArrayCurve.d.ts +39 -0
  69. package/types/animation/animationCurve/AnimationBoolCurve.d.ts +39 -0
  70. package/types/animation/animationCurve/AnimationColorCurve.d.ts +39 -0
  71. package/types/animation/animationCurve/AnimationCurve.d.ts +8 -0
  72. package/types/animation/animationCurve/AnimationFloatArrayCurve.d.ts +38 -0
  73. package/types/animation/animationCurve/AnimationFloatCurve.d.ts +39 -0
  74. package/types/animation/animationCurve/AnimationQuaternionCurve.d.ts +41 -0
  75. package/types/animation/animationCurve/AnimationRectCurve.d.ts +18 -0
  76. package/types/animation/animationCurve/AnimationRefCurve.d.ts +18 -0
  77. package/types/animation/animationCurve/AnimationStringCurve.d.ts +39 -0
  78. package/types/animation/animationCurve/AnimationVector2Curve.d.ts +39 -0
  79. package/types/animation/animationCurve/AnimationVector3Curve.d.ts +43 -0
  80. package/types/animation/animationCurve/AnimationVector4Curve.d.ts +39 -0
  81. package/types/animation/animationCurve/interfaces/IAnimationCurveCalculator.d.ts +18 -1
  82. package/types/animation/enums/AnimatorStatePlayState.d.ts +8 -1
  83. package/types/animation/internal/AnimationCurveLayerOwner.d.ts +15 -1
  84. package/types/animation/internal/AnimationEventHandler.d.ts +8 -1
  85. package/types/animation/internal/AnimatorLayerData.d.ts +28 -1
  86. package/types/animation/internal/AnimatorStateData.d.ts +14 -1
  87. package/types/animation/internal/AnimatorStatePlayData.d.ts +27 -1
  88. package/types/animation/internal/AnimatorTempValue.d.ts +12 -1
  89. package/types/animation/internal/animationCurveOwner/AnimationCurveOwner.d.ts +39 -0
  90. package/types/animation/internal/animationCurveOwner/assembler/BlendShapeWeightsAnimationCurveOwnerAssembler.d.ts +12 -1
  91. package/types/animation/internal/animationCurveOwner/assembler/IAnimationCurveOwnerAssembler.d.ts +10 -1
  92. package/types/animation/internal/animationCurveOwner/assembler/PositionAnimationCurveOwnerAssembler.d.ts +13 -1
  93. package/types/animation/internal/animationCurveOwner/assembler/RotationAnimationCurveOwnerAssembler.d.ts +13 -1
  94. package/types/animation/internal/animationCurveOwner/assembler/ScaleAnimationCurveOwnerAssembler.d.ts +13 -1
  95. package/types/animation/internal/animationCurveOwner/assembler/UniversalAnimationCurveOwnerAssembler.d.ts +23 -1
  96. package/types/asset/GraphicsResource.d.ts +10 -0
  97. package/types/asset/IReferable.d.ts +8 -0
  98. package/types/asset/ReferResource.d.ts +28 -0
  99. package/types/asset/RenderingStatistics.d.ts +8 -0
  100. package/types/asset/ResourceManager.d.ts +94 -4
  101. package/types/audio/AudioClip.d.ts +8 -0
  102. package/types/audio/AudioManager.d.ts +14 -0
  103. package/types/audio/AudioSource.d.ts +17 -0
  104. package/types/base/EngineObject.d.ts +4 -0
  105. package/types/base/Time.d.ts +13 -0
  106. package/types/clone/CloneDecorators.d.ts +20 -0
  107. package/types/clone/CloneUtil.d.ts +30 -1
  108. package/types/clone/ComponentCloner.d.ts +11 -1
  109. package/types/enums/CameraType.d.ts +9 -1
  110. package/types/env-probe/CubeProbe.d.ts +2 -0
  111. package/types/graphic/Buffer.d.ts +10 -0
  112. package/types/graphic/BufferUtil.d.ts +5 -0
  113. package/types/graphic/IndexBufferBinding.d.ts +4 -0
  114. package/types/graphic/Mesh.d.ts +54 -0
  115. package/types/graphic/Primitive.d.ts +50 -1
  116. package/types/graphic/TransformFeedback.d.ts +46 -1
  117. package/types/graphic/TransformFeedbackPrimitive.d.ts +67 -1
  118. package/types/graphic/TransformFeedbackSimulator.d.ts +55 -1
  119. package/types/graphic/VertexBufferBinding.d.ts +4 -0
  120. package/types/input/InputManager.d.ts +19 -0
  121. package/types/input/enums/PointerButton.d.ts +8 -0
  122. package/types/input/keyboard/KeyboardManager.d.ts +41 -1
  123. package/types/input/pointer/Pointer.d.ts +36 -0
  124. package/types/input/pointer/PointerEventData.d.ts +4 -0
  125. package/types/input/pointer/PointerManager.d.ts +58 -0
  126. package/types/input/pointer/emitter/IHitResult.d.ts +11 -1
  127. package/types/input/pointer/emitter/PhysicsPointerEventEmitter.d.ts +20 -1
  128. package/types/input/wheel/WheelManager.d.ts +34 -1
  129. package/types/lighting/AmbientLight.d.ts +9 -0
  130. package/types/lighting/DirectLight.d.ts +17 -0
  131. package/types/lighting/Light.d.ts +2 -0
  132. package/types/lighting/LightManager.d.ts +57 -0
  133. package/types/lighting/PointLight.d.ts +17 -0
  134. package/types/lighting/SpotLight.d.ts +17 -0
  135. package/types/lighting/ambientOcclusion/AmbientOcclusion.d.ts +4 -0
  136. package/types/lighting/ambientOcclusion/ScalableAmbientObscurancePass.d.ts +38 -1
  137. package/types/material/BaseMaterial.d.ts +4 -0
  138. package/types/material/Material.d.ts +2 -0
  139. package/types/mesh/BlendShape.d.ts +13 -0
  140. package/types/mesh/BlendShapeFrame.d.ts +7 -0
  141. package/types/mesh/BlendShapeManager.d.ts +101 -1
  142. package/types/mesh/MeshRenderer.d.ts +37 -0
  143. package/types/mesh/ModelMesh.d.ts +18 -0
  144. package/types/mesh/PrimitiveMesh.d.ts +28 -0
  145. package/types/mesh/PrimitiveMeshRestorer.d.ts +107 -0
  146. package/types/mesh/Skin.d.ts +10 -0
  147. package/types/mesh/SkinnedMeshRenderer.d.ts +21 -0
  148. package/types/particle/ParticleBufferUtils.d.ts +26 -1
  149. package/types/particle/ParticleGenerator.d.ts +102 -0
  150. package/types/particle/ParticleRenderer.d.ts +55 -0
  151. package/types/particle/ParticleTransformFeedbackSimulator.d.ts +52 -1
  152. package/types/particle/enums/ParticleRandomSubSeeds.d.ts +25 -1
  153. package/types/particle/enums/attributes/BillboardParticleVertexAttribute.d.ts +6 -1
  154. package/types/particle/enums/attributes/ParticleFeedbackVertexAttribute.d.ts +8 -1
  155. package/types/particle/enums/attributes/ParticleInstanceVertexAttribute.d.ts +17 -1
  156. package/types/particle/modules/ColorOverLifetimeModule.d.ts +12 -0
  157. package/types/particle/modules/CustomDataModule.d.ts +5 -0
  158. package/types/particle/modules/EmissionModule.d.ts +28 -0
  159. package/types/particle/modules/ForceOverLifetimeModule.d.ts +16 -1
  160. package/types/particle/modules/LimitVelocityOverLifetimeModule.d.ts +20 -1
  161. package/types/particle/modules/MainModule.d.ts +33 -1
  162. package/types/particle/modules/NoiseModule.d.ts +12 -1
  163. package/types/particle/modules/ParticleCompositeCurve.d.ts +37 -0
  164. package/types/particle/modules/ParticleCurve.d.ts +28 -0
  165. package/types/particle/modules/ParticleGeneratorModule.d.ts +7 -0
  166. package/types/particle/modules/ParticleGradient.d.ts +16 -0
  167. package/types/particle/modules/RotationOverLifetimeModule.d.ts +12 -0
  168. package/types/particle/modules/SizeOverLifetimeModule.d.ts +16 -0
  169. package/types/particle/modules/SubEmitter.d.ts +3 -0
  170. package/types/particle/modules/SubEmittersModule.d.ts +17 -0
  171. package/types/particle/modules/TextureSheetAnimationModule.d.ts +14 -1
  172. package/types/particle/modules/VelocityOverLifetimeModule.d.ts +28 -1
  173. package/types/particle/modules/shape/BaseShape.d.ts +33 -1
  174. package/types/particle/modules/shape/BoxShape.d.ts +13 -1
  175. package/types/particle/modules/shape/CircleShape.d.ts +13 -0
  176. package/types/particle/modules/shape/ConeShape.d.ts +13 -0
  177. package/types/particle/modules/shape/HemisphereShape.d.ts +13 -0
  178. package/types/particle/modules/shape/MeshShape.d.ts +17 -0
  179. package/types/particle/modules/shape/ShapeUtils.d.ts +13 -1
  180. package/types/particle/modules/shape/SphereShape.d.ts +13 -0
  181. package/types/physics/CharacterController.d.ts +21 -0
  182. package/types/physics/Collider.d.ts +39 -0
  183. package/types/physics/Collision.d.ts +3 -0
  184. package/types/physics/DynamicCollider.d.ts +14 -0
  185. package/types/physics/PhysicsMaterial.d.ts +3 -0
  186. package/types/physics/PhysicsScene.d.ts +51 -0
  187. package/types/physics/StaticCollider.d.ts +5 -0
  188. package/types/physics/enums/ColliderShapeChangeFlag.d.ts +8 -1
  189. package/types/physics/enums/HingeJointFlag.d.ts +14 -1
  190. package/types/physics/joint/HingeJoint.d.ts +4 -0
  191. package/types/physics/joint/Joint.d.ts +20 -0
  192. package/types/physics/joint/JointLimits.d.ts +3 -0
  193. package/types/physics/joint/JointMotor.d.ts +3 -0
  194. package/types/physics/shape/ColliderShape.d.ts +17 -0
  195. package/types/physics/shape/MeshColliderShape.d.ts +4 -0
  196. package/types/postProcess/FinalPass.d.ts +19 -1
  197. package/types/postProcess/PostProcess.d.ts +2 -0
  198. package/types/postProcess/PostProcessEffect.d.ts +4 -0
  199. package/types/postProcess/PostProcessEffectParameter.d.ts +4 -0
  200. package/types/postProcess/PostProcessManager.d.ts +43 -0
  201. package/types/postProcess/effects/BloomEffect.d.ts +25 -0
  202. package/types/postProcess/effects/TonemappingEffect.d.ts +3 -0
  203. package/types/renderingHardwareInterface/IPlatformTransformFeedback.d.ts +36 -1
  204. package/types/renderingHardwareInterface/IPlatformTransformFeedbackPrimitive.d.ts +40 -1
  205. package/types/shader/Shader.d.ts +22 -0
  206. package/types/shader/ShaderBlockProperty.d.ts +19 -1
  207. package/types/shader/ShaderData.d.ts +29 -0
  208. package/types/shader/ShaderFactory.d.ts +23 -0
  209. package/types/shader/ShaderMacro.d.ts +15 -0
  210. package/types/shader/ShaderMacroCollection.d.ts +57 -1
  211. package/types/shader/ShaderMacroProcessor.d.ts +72 -1
  212. package/types/shader/ShaderPass.d.ts +38 -0
  213. package/types/shader/ShaderProgram.d.ts +91 -1
  214. package/types/shader/ShaderProgramMap.d.ts +20 -1
  215. package/types/shader/ShaderProperty.d.ts +17 -0
  216. package/types/shader/ShaderTagKey.d.ts +2 -0
  217. package/types/shader/ShaderUniform.d.ts +49 -1
  218. package/types/shader/ShaderUniformBlock.d.ts +9 -1
  219. package/types/shader/enums/ConstantBufferBindingPoint.d.ts +7 -1
  220. package/types/shader/state/BlendState.d.ts +14 -0
  221. package/types/shader/state/DepthState.d.ts +14 -0
  222. package/types/shader/state/RasterState.d.ts +17 -0
  223. package/types/shader/state/RenderState.d.ts +11 -0
  224. package/types/shader/state/StencilState.d.ts +13 -0
  225. package/types/shadow/CascadedShadowCasterPass.d.ts +5 -0
  226. package/types/shadow/ShadowSliceData.d.ts +13 -1
  227. package/types/shadow/ShadowUtils.d.ts +43 -1
  228. package/types/sky/Sky.d.ts +9 -0
  229. package/types/texture/RenderTarget.d.ts +21 -0
  230. package/types/texture/Texture.d.ts +21 -0
  231. package/types/texture/Texture2D.d.ts +4 -0
  232. package/types/texture/Texture2DArray.d.ts +4 -0
  233. package/types/texture/TextureCube.d.ts +4 -0
  234. package/types/texture/TextureUtils.d.ts +16 -1
  235. package/types/trail/TrailRenderer.d.ts +5 -0
  236. package/types/ui/IUICanvas.d.ts +16 -1
  237. package/types/utils/DisorderedArray.d.ts +2 -0
  238. package/types/xr/XRManager.d.ts +28 -0
@@ -1,6 +1,8 @@
1
1
  import { BoundingBox, Vector3 } from "@galacean/engine-math";
2
+ import { Entity } from "../Entity";
2
3
  import { RenderContext } from "../RenderPipeline/RenderContext";
3
4
  import { Renderer } from "../Renderer";
5
+ import { TransformModifyFlags } from "../Transform";
4
6
  import { ModelMesh } from "../mesh/ModelMesh";
5
7
  import { ParticleGenerator } from "./ParticleGenerator";
6
8
  import { ParticleRenderMode } from "./enums/ParticleRenderMode";
@@ -25,6 +27,10 @@ export declare class ParticleRenderer extends Renderer {
25
27
  lengthScale: number;
26
28
  /** The pivot of particle. */
27
29
  pivot: Vector3;
30
+ /** @internal */
31
+ _generatorBounds: BoundingBox;
32
+ /** @internal */
33
+ _transformedBounds: BoundingBox;
28
34
  private _mesh;
29
35
  private _renderMode;
30
36
  private _currentRenderModeMacro;
@@ -40,6 +46,26 @@ export declare class ParticleRenderer extends Renderer {
40
46
  */
41
47
  get mesh(): ModelMesh;
42
48
  set mesh(value: ModelMesh);
49
+ /**
50
+ * @internal
51
+ */
52
+ constructor(entity: Entity);
53
+ /**
54
+ * @internal
55
+ */
56
+ _onEnable(): void;
57
+ /**
58
+ * @internal
59
+ */
60
+ _onDisable(): void;
61
+ /**
62
+ * @internal
63
+ */
64
+ _prepareRender(context: RenderContext): void;
65
+ /**
66
+ * @internal
67
+ */
68
+ _updateTransformShaderData(context: RenderContext, onlyMVP: boolean): void;
43
69
  protected _updateBounds(worldBounds: BoundingBox): void;
44
70
  protected _update(context: RenderContext): void;
45
71
  protected _render(context: RenderContext): void;
@@ -48,4 +74,33 @@ export declare class ParticleRenderer extends Renderer {
48
74
  * @inheritdoc
49
75
  */
50
76
  _onClone(target: ParticleRenderer): void;
77
+ /**
78
+ * @internal
79
+ */
80
+ _isContainDirtyFlag(type: number): boolean;
81
+ /**
82
+ * @internal
83
+ */
84
+ _setDirtyFlagFalse(type: number): void;
85
+ /**
86
+ * @internal
87
+ */
88
+ _onWorldVolumeChanged(): void;
89
+ /**
90
+ * @internal
91
+ */
92
+ _onGeneratorParamsChanged(): void;
93
+ /**
94
+ * @internal
95
+ */
96
+ _onTransformChanged(type: TransformModifyFlags): void;
97
+ }
98
+ /**
99
+ * @internal
100
+ */
101
+ export declare enum ParticleUpdateFlags {
102
+ /** On World Transform Changed */
103
+ TransformVolume = 2,
104
+ /** On Generator Bounds Related Params Changed */
105
+ GeneratorVolume = 4
51
106
  }
@@ -1 +1,52 @@
1
- export {};
1
+ import { Vector3 } from "@galacean/engine-math";
2
+ import { Engine } from "../Engine";
3
+ import { VertexBufferBinding } from "../graphic/VertexBufferBinding";
4
+ import { ShaderData } from "../shader/ShaderData";
5
+ /**
6
+ * @internal
7
+ * Particle-specific Transform Feedback simulation.
8
+ */
9
+ export declare class ParticleTransformFeedbackSimulator {
10
+ private static readonly _deltaTimeProperty;
11
+ /** @internal */
12
+ _instanceBinding: VertexBufferBinding;
13
+ private _simulator;
14
+ private _particleInitData;
15
+ private _oldReadBuffer;
16
+ private _oldWriteBuffer;
17
+ /**
18
+ * The current read buffer binding for the render pass.
19
+ */
20
+ get readBinding(): VertexBufferBinding;
21
+ constructor(engine: Engine);
22
+ /**
23
+ * Resize feedback buffers.
24
+ * Saves pre-resize buffers internally for subsequent `copyOldBufferData` / `destroyOldBuffers` calls.
25
+ * @param particleCount - Number of particles to allocate
26
+ * @param instanceBinding - New instance vertex buffer binding
27
+ */
28
+ resize(particleCount: number, instanceBinding: VertexBufferBinding): void;
29
+ /**
30
+ * Write initial position and velocity for a newly emitted particle.
31
+ */
32
+ writeParticleData(index: number, position: Vector3, vx: number, vy: number, vz: number): void;
33
+ /**
34
+ * Copy data from pre-resize buffers to current buffers.
35
+ * Must be called after `resize` which saves the old buffers.
36
+ */
37
+ copyOldBufferData(srcByteOffset: number, dstByteOffset: number, byteLength: number): void;
38
+ /**
39
+ * Destroy pre-resize buffers saved during `resize`.
40
+ */
41
+ destroyOldBuffers(): void;
42
+ /**
43
+ * Run one simulation step.
44
+ * @param shaderData - Shader data with current macros and uniforms
45
+ * @param particleCount - Total particle slot count
46
+ * @param firstActive - First active particle index in ring buffer
47
+ * @param firstFree - First free particle index in ring buffer
48
+ * @param deltaTime - Frame delta time
49
+ */
50
+ update(shaderData: ShaderData, particleCount: number, firstActive: number, firstFree: number, deltaTime: number): void;
51
+ destroy(): void;
52
+ }
@@ -1 +1,25 @@
1
- export {};
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare enum ParticleRandomSubSeeds {
5
+ Burst = 592910910,
6
+ StartDelay = 322376503,
7
+ StartColor = 306581307,
8
+ StartSize = 1793934638,
9
+ StartRotation = 3737431713,
10
+ randomizeRotationDirection = 2527743459,
11
+ StartLifetime = 2368504881,
12
+ StartSpeed = 4085612399,
13
+ VelocityOverLifetime = 3774601268,
14
+ ColorOverLifetime = 326370691,
15
+ SizeOverLifetime = 1494990940,
16
+ RotationOverLifetime = 1089181156,
17
+ TextureSheetAnimation = 197469413,
18
+ Shape = 2941263940,
19
+ GravityModifier = 2759560269,
20
+ ForceOverLifetime = 3875246972,
21
+ LimitVelocityOverLifetime = 3047300990,
22
+ Noise = 4105357473,
23
+ SubEmitter = 2622110509,
24
+ EmissionRate = 2625893077
25
+ }
@@ -1 +1,6 @@
1
- export {};
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare enum ParticleBillboardVertexAttribute {
5
+ cornerTextureCoordinate = "a_CornerTextureCoordinate"
6
+ }
@@ -1 +1,8 @@
1
- export {};
1
+ /**
2
+ * @internal
3
+ * Vertex attributes for the Transform Feedback buffer.
4
+ */
5
+ export declare enum ParticleFeedbackVertexAttribute {
6
+ Position = "a_FeedbackPosition",
7
+ Velocity = "a_FeedbackVelocity"
8
+ }
@@ -1 +1,17 @@
1
- export {};
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare enum ParticleInstanceVertexAttribute {
5
+ ShapePositionStartLifeTime = "a_ShapePositionStartLifeTime",
6
+ DirectionTime = "a_DirectionTime",
7
+ StartColor = "a_StartColor",
8
+ StartSize = "a_StartSize",
9
+ StartRotation0 = "a_StartRotation0",
10
+ StartSpeed = "a_StartSpeed",
11
+ Random0 = "a_Random0",
12
+ Random1 = "a_Random1",
13
+ SimulationWorldPosition = "a_SimulationWorldPosition",
14
+ SimulationWorldRotation = "a_SimulationWorldRotation",
15
+ SimulationUV = "a_SimulationUV",
16
+ Random2 = "a_Random2"
17
+ }
@@ -1,3 +1,5 @@
1
+ import { Rand } from "@galacean/engine-math";
2
+ import { ShaderData } from "../../shader/ShaderData";
1
3
  import { ShaderMacro } from "../../shader/ShaderMacro";
2
4
  import { ShaderProperty } from "../../shader/ShaderProperty";
3
5
  import { ParticleCompositeGradient } from "./ParticleCompositeGradient";
@@ -15,6 +17,16 @@ export declare class ColorOverLifetimeModule extends ParticleGeneratorModule {
15
17
  static readonly _gradientKeysCount: ShaderProperty;
16
18
  /** Color gradient over lifetime. */
17
19
  color: ParticleCompositeGradient;
20
+ /** @internal */
21
+ _colorGradientRand: Rand;
18
22
  private _gradientKeysCount;
19
23
  private _colorMacro;
24
+ /**
25
+ * @internal
26
+ */
27
+ _updateShaderData(shaderData: ShaderData): void;
28
+ /**
29
+ * @internal
30
+ */
31
+ _resetRandomSeed(seed: number): void;
20
32
  }
@@ -1,3 +1,4 @@
1
+ import { ShaderData } from "../../shader/ShaderData";
1
2
  import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
2
3
  import { ParticleCompositeGradient } from "./ParticleCompositeGradient";
3
4
  import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
@@ -77,6 +78,10 @@ export declare class CustomDataModule extends ParticleGeneratorModule {
77
78
  * Remove all custom data streams.
78
79
  */
79
80
  clear(): void;
81
+ /**
82
+ * @internal
83
+ */
84
+ _updateShaderData(shaderData: ShaderData): void;
80
85
  private _uploadCurveStream;
81
86
  private _uploadGradientStream;
82
87
  private _zeroCurveUniforms;
@@ -1,3 +1,5 @@
1
+ import { Rand } from "@galacean/engine-math";
2
+ import { ShaderData, ShaderMacro } from "../../shader";
1
3
  import { Burst } from "./Burst";
2
4
  import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
3
5
  import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
@@ -6,13 +8,21 @@ import { BaseShape } from "./shape/BaseShape";
6
8
  * The EmissionModule of a Particle Generator.
7
9
  */
8
10
  export declare class EmissionModule extends ParticleGeneratorModule {
11
+ /** @internal */
12
+ static readonly _emissionShapeMacro: ShaderMacro;
9
13
  private static _tempEmitPosition;
10
14
  /** The rate of particle emission. */
11
15
  rateOverTime: ParticleCompositeCurve;
12
16
  /** The rate at which the emitter spawns new particles over distance. */
13
17
  rateOverDistance: ParticleCompositeCurve;
14
18
  _shape: BaseShape;
19
+ /** @internal */
20
+ _shapeRand: Rand;
15
21
  private _shapeMacro;
22
+ /** @internal */
23
+ _rateRand: Rand;
24
+ /** @internal */
25
+ _frameRateTime: number;
16
26
  private _distanceAccumulator;
17
27
  private _lastEmitPosition;
18
28
  private _hasLastEmitPosition;
@@ -52,6 +62,24 @@ export declare class EmissionModule extends ParticleGeneratorModule {
52
62
  * Clear burst data.
53
63
  */
54
64
  clearBurst(): void;
65
+ /**
66
+ * @internal
67
+ */
68
+ _emit(lastPlayTime: number, playTime: number): void;
69
+ /**
70
+ * @internal
71
+ */
72
+ _updateShaderData(shaderData: ShaderData): void;
73
+ /**
74
+ * @internal
75
+ */
76
+ _resetRandomSeed(seed: number): void;
77
+ /** @internal */
78
+ _resyncCursors(playTime: number): void;
79
+ /**
80
+ * @internal
81
+ */
82
+ _destroy(): void;
55
83
  private _emitByRateOverTime;
56
84
  private _emitByRateOverDistance;
57
85
  private _evaluateRate;
@@ -1,4 +1,5 @@
1
- import { ShaderMacro, ShaderProperty } from "../../shader";
1
+ import { Rand } from "@galacean/engine-math";
2
+ import { ShaderData, ShaderMacro, ShaderProperty } from "../../shader";
2
3
  import { ParticleSimulationSpace } from "../enums/ParticleSimulationSpace";
3
4
  import { ParticleGenerator } from "../ParticleGenerator";
4
5
  import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
@@ -19,6 +20,8 @@ export declare class ForceOverLifetimeModule extends ParticleGeneratorModule {
19
20
  static readonly _maxGradientYProperty: ShaderProperty;
20
21
  static readonly _maxGradientZProperty: ShaderProperty;
21
22
  static readonly _spaceProperty: ShaderProperty;
23
+ /** @internal */
24
+ _forceRand: Rand;
22
25
  private _forceMinConstant;
23
26
  private _forceMaxConstant;
24
27
  private _forceMacro;
@@ -48,4 +51,16 @@ export declare class ForceOverLifetimeModule extends ParticleGeneratorModule {
48
51
  get space(): ParticleSimulationSpace;
49
52
  set space(value: ParticleSimulationSpace);
50
53
  constructor(generator: ParticleGenerator);
54
+ /**
55
+ * @internal
56
+ */
57
+ _updateShaderData(shaderData: ShaderData): void;
58
+ /**
59
+ * @internal
60
+ */
61
+ _resetRandomSeed(seed: number): void;
62
+ /**
63
+ * @internal
64
+ */
65
+ _isRandomMode(): boolean;
51
66
  }
@@ -1,4 +1,5 @@
1
- import { ShaderMacro } from "../../shader";
1
+ import { Rand } from "@galacean/engine-math";
2
+ import { ShaderData, ShaderMacro } from "../../shader";
2
3
  import { ShaderProperty } from "../../shader/ShaderProperty";
3
4
  import { ParticleSimulationSpace } from "../enums/ParticleSimulationSpace";
4
5
  import { ParticleGenerator } from "../ParticleGenerator";
@@ -34,6 +35,8 @@ export declare class LimitVelocityOverLifetimeModule extends ParticleGeneratorMo
34
35
  static readonly _dragMaxCurveProperty: ShaderProperty;
35
36
  static readonly _dragMinCurveProperty: ShaderProperty;
36
37
  static readonly _spaceProperty: ShaderProperty;
38
+ /** @internal */
39
+ _speedRand: Rand;
37
40
  private _speedMinConstantVec;
38
41
  private _speedMaxConstantVec;
39
42
  private _dragConstantVec;
@@ -113,6 +116,22 @@ export declare class LimitVelocityOverLifetimeModule extends ParticleGeneratorMo
113
116
  get enabled(): boolean;
114
117
  set enabled(value: boolean);
115
118
  constructor(generator: ParticleGenerator);
119
+ /**
120
+ * @internal
121
+ */
122
+ _isDragRandomMode(): boolean;
123
+ /**
124
+ * @internal
125
+ */
126
+ _isSpeedRandomMode(): boolean;
127
+ /**
128
+ * @internal
129
+ */
130
+ _updateShaderData(shaderData: ShaderData): void;
131
+ /**
132
+ * @internal
133
+ */
134
+ _resetRandomSeed(seed: number): void;
116
135
  private _uploadScalarSpeed;
117
136
  private _uploadSeparateAxisSpeeds;
118
137
  private _uploadDrag;
@@ -1,6 +1,8 @@
1
1
  import { DataObject } from "../../base/DataObject";
2
- import { Rand } from "@galacean/engine-math";
2
+ import { Rand, Vector3 } from "@galacean/engine-math";
3
3
  import type { ICloneHook } from "../../clone/ICloneHook";
4
+ import { ShaderData } from "../../shader/ShaderData";
5
+ import { ParticleGenerator } from "../ParticleGenerator";
4
6
  import { ParticleScaleMode } from "../enums/ParticleScaleMode";
5
7
  import { ParticleSimulationSpace } from "../enums/ParticleSimulationSpace";
6
8
  import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
@@ -41,6 +43,20 @@ export declare class MainModule extends DataObject implements ICloneHook<MainMod
41
43
  scalingMode: ParticleScaleMode;
42
44
  /** If set to true, the Particle Generator automatically begins to play on startup. */
43
45
  playOnEnabled: boolean;
46
+ /** @internal */
47
+ _maxParticleBuffer: number;
48
+ /** @internal */
49
+ readonly _startDelayRand: Rand;
50
+ /** @internal */
51
+ readonly _startSpeedRand: Rand;
52
+ /** @internal */
53
+ readonly _startLifeTimeRand: Rand;
54
+ /** @internal */
55
+ readonly _startColorRand: Rand;
56
+ /** @internal */
57
+ readonly _startSizeRand: Rand;
58
+ /** @internal */
59
+ readonly _startRotationRand: Rand;
44
60
  readonly _gravityModifierRand: Rand;
45
61
  private _startLifetime;
46
62
  private _startSpeed;
@@ -101,6 +117,22 @@ export declare class MainModule extends DataObject implements ICloneHook<MainMod
101
117
  */
102
118
  get startSize(): ParticleCompositeCurve;
103
119
  set startSize(value: ParticleCompositeCurve);
120
+ /**
121
+ * @internal
122
+ */
123
+ constructor(generator: ParticleGenerator);
124
+ /**
125
+ * @internal
126
+ */
127
+ _resetRandomSeed(randomSeed: number): void;
128
+ /**
129
+ * @internal
130
+ */
131
+ _getPositionScale(): Vector3;
132
+ /**
133
+ * @internal
134
+ */
135
+ _updateShaderData(shaderData: ShaderData): void;
104
136
  /**
105
137
  * @inheritdoc
106
138
  */
@@ -1,4 +1,5 @@
1
- import { ShaderMacro, ShaderProperty } from "../../shader";
1
+ import { Rand } from "@galacean/engine-math";
2
+ import { ShaderData, ShaderMacro, ShaderProperty } from "../../shader";
2
3
  import { ParticleGenerator } from "../ParticleGenerator";
3
4
  import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
4
5
  import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
@@ -24,6 +25,8 @@ export declare class NoiseModule extends ParticleGeneratorModule {
24
25
  private _strengthCurveModeMacro;
25
26
  private _strengthIsRandomTwoModeMacro;
26
27
  private _separateAxesModeMacro;
28
+ /** @internal */
29
+ _noiseRand: Rand;
27
30
  private _noiseParams;
28
31
  private _noiseOctaveParams;
29
32
  private _strengthMinConst;
@@ -87,4 +90,12 @@ export declare class NoiseModule extends ParticleGeneratorModule {
87
90
  get enabled(): boolean;
88
91
  set enabled(value: boolean);
89
92
  constructor(generator: ParticleGenerator);
93
+ /**
94
+ * @internal
95
+ */
96
+ _updateShaderData(shaderData: ShaderData): void;
97
+ /**
98
+ * @internal
99
+ */
100
+ _resetRandomSeed(seed: number): void;
90
101
  }
@@ -1,4 +1,5 @@
1
1
  import { DataObject } from "../../base/DataObject";
2
+ import { Vector2 } from "@galacean/engine-math";
2
3
  import { ParticleCurveMode } from "../enums/ParticleCurveMode";
3
4
  import { ParticleCurve } from "./ParticleCurve";
4
5
  /**
@@ -77,6 +78,42 @@ export declare class ParticleCompositeCurve extends DataObject {
77
78
  * @returns - The result curve value
78
79
  */
79
80
  evaluate(time: number, lerpFactor: number): number;
81
+ /**
82
+ * @internal
83
+ */
84
+ _evaluateCumulative(normalizedAge: number, lerpFactor: number): number;
85
+ /**
86
+ * @internal
87
+ */
88
+ _getMax(): number;
89
+ /**
90
+ * @internal
91
+ */
92
+ _getMinMax(out: Vector2): void;
93
+ /**
94
+ * @internal
95
+ */
96
+ _isZero(): boolean;
97
+ /**
98
+ * @internal
99
+ */
100
+ _isCurveMode(): boolean;
101
+ /**
102
+ * @internal
103
+ */
104
+ _isRandomMode(): boolean;
105
+ /**
106
+ * @internal
107
+ */
108
+ _isRandomCurveMode(): boolean;
109
+ /**
110
+ * @internal
111
+ */
112
+ _registerOnValueChanged(listener: () => void): void;
113
+ /**
114
+ * @internal
115
+ */
116
+ _unRegisterOnValueChanged(listener: () => void): void;
80
117
  private _getKeyMinMax;
81
118
  private _onCurveChange;
82
119
  }
@@ -38,6 +38,26 @@ export declare class ParticleCurve extends DataObject {
38
38
  * @param keys - The keys
39
39
  */
40
40
  setKeys(keys: CurveKey[]): void;
41
+ /**
42
+ * @internal
43
+ */
44
+ _evaluate(normalizedAge: number): number;
45
+ /**
46
+ * @internal
47
+ */
48
+ _evaluateCumulative(normalizedAge: number): number;
49
+ /**
50
+ * @internal
51
+ */
52
+ _getTypeArray(): Float32Array;
53
+ /**
54
+ * @internal
55
+ */
56
+ _registerOnValueChanged(listener: () => void): void;
57
+ /**
58
+ * @internal
59
+ */
60
+ _unRegisterOnValueChanged(listener: () => void): void;
41
61
  private _addKey;
42
62
  }
43
63
  /**
@@ -61,4 +81,12 @@ export declare class CurveKey extends DataObject {
61
81
  * Create a new key.
62
82
  */
63
83
  constructor(time: number, value: number);
84
+ /**
85
+ * @internal
86
+ */
87
+ _registerOnValueChanged(listener: () => void): void;
88
+ /**
89
+ * @internal
90
+ */
91
+ _unRegisterOnValueChanged(listener: () => void): void;
64
92
  }
@@ -1,16 +1,23 @@
1
1
  import { DataObject } from "../../base/DataObject";
2
2
  import { ShaderData, ShaderMacro } from "../../shader";
3
+ import { ParticleGenerator } from "../ParticleGenerator";
3
4
  import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
4
5
  /**
5
6
  * Particle generator module.
6
7
  */
7
8
  export declare abstract class ParticleGeneratorModule extends DataObject {
9
+ /** @internal */
10
+ _generator: ParticleGenerator;
8
11
  protected _enabled: boolean;
9
12
  /**
10
13
  * Specifies whether the module is enabled or not.
11
14
  */
12
15
  get enabled(): boolean;
13
16
  set enabled(value: boolean);
17
+ /**
18
+ * @internal
19
+ */
20
+ constructor(generator: ParticleGenerator);
14
21
  protected _enableMacro(shaderData: ShaderData, lastEnableMacro: ShaderMacro, enableMacro: ShaderMacro): ShaderMacro;
15
22
  protected _onCompositeCurveChange(lastValue: ParticleCompositeCurve, value: ParticleCompositeCurve): void;
16
23
  }
@@ -62,6 +62,18 @@ export declare class ParticleGradient extends DataObject {
62
62
  * @param alphaKeys - The alpha keys
63
63
  */
64
64
  setKeys(colorKeys: GradientColorKey[], alphaKeys: GradientAlphaKey[]): void;
65
+ /**
66
+ * @internal
67
+ */
68
+ _getColorTypeArray(): Float32Array;
69
+ /**
70
+ * @internal
71
+ */
72
+ _getAlphaTypeArray(): Float32Array;
73
+ /**
74
+ * @internal
75
+ */
76
+ _evaluate(time: number, out: Color): void;
65
77
  private _addKey;
66
78
  private _removeKey;
67
79
  private _setColorTypeArrayDirty;
@@ -71,6 +83,8 @@ export declare class ParticleGradient extends DataObject {
71
83
  * The color key of the particle gradient.
72
84
  */
73
85
  export declare class GradientColorKey extends DataObject {
86
+ /** @internal */
87
+ _onValueChanged: () => void;
74
88
  private _time;
75
89
  private _color;
76
90
  /**
@@ -94,6 +108,8 @@ export declare class GradientColorKey extends DataObject {
94
108
  * The alpha key of the particle gradient.
95
109
  */
96
110
  export declare class GradientAlphaKey extends DataObject {
111
+ /** @internal */
112
+ _onValueChanged: () => void;
97
113
  private _time;
98
114
  private _alpha;
99
115
  /**
@@ -1,3 +1,5 @@
1
+ import { Rand } from "@galacean/engine-math";
2
+ import { ShaderData } from "../../shader/ShaderData";
1
3
  import { ShaderMacro } from "../../shader/ShaderMacro";
2
4
  import { ShaderProperty } from "../../shader/ShaderProperty";
3
5
  import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
@@ -26,9 +28,19 @@ export declare class RotationOverLifetimeModule extends ParticleGeneratorModule
26
28
  rotationY: ParticleCompositeCurve;
27
29
  /** Rotation over lifetime for z axis, in degrees. */
28
30
  rotationZ: ParticleCompositeCurve;
31
+ /** @internal */
32
+ _rotationRand: Rand;
29
33
  private _rotationMinConstant;
30
34
  private _rotationMaxConstant;
31
35
  private _enableSeparateMacro;
32
36
  private _modeMacro;
33
37
  private _isRandomTwoMacro;
38
+ /**
39
+ * @internal
40
+ */
41
+ _updateShaderData(shaderData: ShaderData): void;
42
+ /**
43
+ * @internal
44
+ */
45
+ _resetRandomSeed(seed: number): void;
34
46
  }
@@ -1,3 +1,5 @@
1
+ import { Rand } from "@galacean/engine-math";
2
+ import { ShaderData } from "../../shader/ShaderData";
1
3
  import { ShaderMacro } from "../../shader/ShaderMacro";
2
4
  import { ShaderProperty } from "../../shader/ShaderProperty";
3
5
  import { ParticleGenerator } from "../ParticleGenerator";
@@ -16,6 +18,8 @@ export declare class SizeOverLifetimeModule extends ParticleGeneratorModule {
16
18
  static readonly _maxCurveXProperty: ShaderProperty;
17
19
  static readonly _maxCurveYProperty: ShaderProperty;
18
20
  static readonly _maxCurveZProperty: ShaderProperty;
21
+ /** @internal */
22
+ _sizeRand: Rand;
19
23
  private _separateAxes;
20
24
  private _sizeX;
21
25
  private _sizeY;
@@ -49,4 +53,16 @@ export declare class SizeOverLifetimeModule extends ParticleGeneratorModule {
49
53
  get size(): ParticleCompositeCurve;
50
54
  set size(value: ParticleCompositeCurve);
51
55
  constructor(generator: ParticleGenerator);
56
+ /**
57
+ * @internal
58
+ */
59
+ _updateShaderData(shaderData: ShaderData): void;
60
+ /**
61
+ * @internal
62
+ */
63
+ _isRandomCurveMode(): boolean;
64
+ /**
65
+ * @internal
66
+ */
67
+ _resetRandomSeed(seed: number): void;
52
68
  }
@@ -2,6 +2,7 @@ import { DataObject } from "../../base/DataObject";
2
2
  import { ParticleRenderer } from "../ParticleRenderer";
3
3
  import { ParticleSubEmitterInheritProperty } from "../enums/ParticleSubEmitterInheritProperty";
4
4
  import { ParticleSubEmitterType } from "../enums/ParticleSubEmitterType";
5
+ import type { SubEmittersModule } from "./SubEmittersModule";
5
6
  /**
6
7
  * One slot in `SubEmittersModule.subEmitters`. Configures which sub-emitter
7
8
  * fires, on which parent event, with what inheritance, probability, and count.
@@ -13,6 +14,8 @@ export declare class SubEmitter extends DataObject {
13
14
  emitProbability: number;
14
15
  /** Number of sub particles emitted per parent event. */
15
16
  emitCount: number;
17
+ /** @internal */
18
+ _module: SubEmittersModule;
16
19
  private _emitter;
17
20
  private _type;
18
21
  /**