@galacean/effects-core 1.1.1 → 1.1.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 (125) hide show
  1. package/dist/index.js +29 -24
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.mjs +29 -24
  4. package/dist/index.mjs.map +1 -1
  5. package/package.json +1 -1
  6. package/dist/asset-manager.d.ts +0 -135
  7. package/dist/camera.d.ts +0 -183
  8. package/dist/comp-vfx-item.d.ts +0 -71
  9. package/dist/composition-source-manager.d.ts +0 -41
  10. package/dist/composition.d.ts +0 -406
  11. package/dist/config.d.ts +0 -7
  12. package/dist/constants.d.ts +0 -11
  13. package/dist/downloader.d.ts +0 -83
  14. package/dist/engine.d.ts +0 -38
  15. package/dist/filter.d.ts +0 -63
  16. package/dist/filters/alpha-frame.d.ts +0 -5
  17. package/dist/filters/alpha-mask.d.ts +0 -5
  18. package/dist/filters/bloom.d.ts +0 -8
  19. package/dist/filters/camera-move.d.ts +0 -5
  20. package/dist/filters/delay.d.ts +0 -14
  21. package/dist/filters/distortion.d.ts +0 -5
  22. package/dist/filters/gaussian.d.ts +0 -27
  23. package/dist/filters/index.d.ts +0 -2
  24. package/dist/filters/lum.d.ts +0 -5
  25. package/dist/filters/utils.d.ts +0 -7
  26. package/dist/gl/create-gl-context.d.ts +0 -9
  27. package/dist/gl/gpu-time.d.ts +0 -5
  28. package/dist/gl/index.d.ts +0 -6
  29. package/dist/index.d.ts +0 -31
  30. package/dist/libs/earcut.d.ts +0 -37
  31. package/dist/material/index.d.ts +0 -4
  32. package/dist/material/material-data-block.d.ts +0 -27
  33. package/dist/material/material.d.ts +0 -347
  34. package/dist/material/types.d.ts +0 -66
  35. package/dist/material/utils.d.ts +0 -17
  36. package/dist/math/float16array-wrapper.d.ts +0 -5
  37. package/dist/math/index.d.ts +0 -4
  38. package/dist/math/translate.d.ts +0 -10
  39. package/dist/math/utils.d.ts +0 -19
  40. package/dist/math/value-getter.d.ts +0 -127
  41. package/dist/paas-texture-cache.d.ts +0 -24
  42. package/dist/pass-render-level.d.ts +0 -1
  43. package/dist/plugin-system.d.ts +0 -34
  44. package/dist/plugins/cal/calculate-item.d.ts +0 -84
  45. package/dist/plugins/cal/calculate-loader.d.ts +0 -3
  46. package/dist/plugins/cal/calculate-vfx-item.d.ts +0 -26
  47. package/dist/plugins/camera/camera-controller-node.d.ts +0 -17
  48. package/dist/plugins/camera/camera-vfx-item-loader.d.ts +0 -3
  49. package/dist/plugins/camera/camera-vfx-item.d.ts +0 -13
  50. package/dist/plugins/index.d.ts +0 -26
  51. package/dist/plugins/interact/click-handler.d.ts +0 -66
  52. package/dist/plugins/interact/event-system.d.ts +0 -37
  53. package/dist/plugins/interact/interact-item.d.ts +0 -2
  54. package/dist/plugins/interact/interact-loader.d.ts +0 -13
  55. package/dist/plugins/interact/interact-mesh.d.ts +0 -16
  56. package/dist/plugins/interact/interact-vfx-item.d.ts +0 -28
  57. package/dist/plugins/particle/burst.d.ts +0 -21
  58. package/dist/plugins/particle/link.d.ts +0 -21
  59. package/dist/plugins/particle/particle-loader.d.ts +0 -18
  60. package/dist/plugins/particle/particle-mesh.d.ts +0 -164
  61. package/dist/plugins/particle/particle-system.d.ts +0 -198
  62. package/dist/plugins/particle/particle-vfx-item.d.ts +0 -27
  63. package/dist/plugins/particle/trail-mesh.d.ts +0 -61
  64. package/dist/plugins/plugin.d.ts +0 -125
  65. package/dist/plugins/sprite/filter-sprite-vfx-item.d.ts +0 -13
  66. package/dist/plugins/sprite/sprite-group.d.ts +0 -95
  67. package/dist/plugins/sprite/sprite-item.d.ts +0 -106
  68. package/dist/plugins/sprite/sprite-loader.d.ts +0 -20
  69. package/dist/plugins/sprite/sprite-mesh.d.ts +0 -67
  70. package/dist/plugins/sprite/sprite-vfx-item.d.ts +0 -33
  71. package/dist/plugins/text/text-item.d.ts +0 -117
  72. package/dist/plugins/text/text-layout.d.ts +0 -28
  73. package/dist/plugins/text/text-loader.d.ts +0 -18
  74. package/dist/plugins/text/text-mesh.d.ts +0 -15
  75. package/dist/plugins/text/text-style.d.ts +0 -67
  76. package/dist/plugins/text/text-vfx-item.d.ts +0 -28
  77. package/dist/polyfill.d.ts +0 -4
  78. package/dist/render/create-copy-shader.d.ts +0 -6
  79. package/dist/render/frame-buffer.d.ts +0 -48
  80. package/dist/render/geometry.d.ts +0 -118
  81. package/dist/render/global-volume.d.ts +0 -15
  82. package/dist/render/gpu-capability.d.ts +0 -49
  83. package/dist/render/index.d.ts +0 -12
  84. package/dist/render/mesh.d.ts +0 -82
  85. package/dist/render/post-process-pass.d.ts +0 -37
  86. package/dist/render/render-buffer.d.ts +0 -20
  87. package/dist/render/render-frame.d.ts +0 -269
  88. package/dist/render/render-pass.d.ts +0 -309
  89. package/dist/render/renderer.d.ts +0 -62
  90. package/dist/render/shader.d.ts +0 -97
  91. package/dist/render/types.d.ts +0 -5
  92. package/dist/scene.d.ts +0 -29
  93. package/dist/semantic-map.d.ts +0 -14
  94. package/dist/shader/index.d.ts +0 -30
  95. package/dist/shape/2d-shape.d.ts +0 -32
  96. package/dist/shape/cone.d.ts +0 -11
  97. package/dist/shape/donut.d.ts +0 -9
  98. package/dist/shape/earcut.d.ts +0 -1
  99. package/dist/shape/geometry.d.ts +0 -30
  100. package/dist/shape/index.d.ts +0 -3
  101. package/dist/shape/shape.d.ts +0 -21
  102. package/dist/shape/sphere.d.ts +0 -15
  103. package/dist/shape/texture-shape.d.ts +0 -11
  104. package/dist/template-image/index.d.ts +0 -67
  105. package/dist/template-image/qcanvas-viewer.d.ts +0 -21
  106. package/dist/template-image/qtext.d.ts +0 -96
  107. package/dist/template-image/template-v1.d.ts +0 -27
  108. package/dist/template-image/text-metrics.d.ts +0 -18
  109. package/dist/texture/index.d.ts +0 -5
  110. package/dist/texture/ktx-texture.d.ts +0 -21
  111. package/dist/texture/texture-factory.d.ts +0 -13
  112. package/dist/texture/texture.d.ts +0 -78
  113. package/dist/texture/types.d.ts +0 -165
  114. package/dist/texture/utils.d.ts +0 -5
  115. package/dist/ticker.d.ts +0 -48
  116. package/dist/transform.d.ts +0 -221
  117. package/dist/utils/array.d.ts +0 -19
  118. package/dist/utils/asserts.d.ts +0 -2
  119. package/dist/utils/color.d.ts +0 -10
  120. package/dist/utils/device.d.ts +0 -4
  121. package/dist/utils/image-data.d.ts +0 -10
  122. package/dist/utils/index.d.ts +0 -67
  123. package/dist/utils/sortable.d.ts +0 -23
  124. package/dist/utils/timeline-component.d.ts +0 -39
  125. package/dist/vfx-item.d.ts +0 -360
@@ -1,164 +0,0 @@
1
- import type * as spec from '@galacean/effects-specification';
2
- import type { Matrix4 } from '@galacean/effects-math/es/core/index';
3
- import { Vector2, Vector3 } from '@galacean/effects-math/es/core/index';
4
- import type { Composition } from '../../composition';
5
- import type { ValueGetter } from '../../math';
6
- import type { SharedShaderWithSource, GPUCapability } from '../../render';
7
- import { Geometry, Mesh } from '../../render';
8
- import { Texture } from '../../texture';
9
- import { Transform } from '../../transform';
10
- export type Point = {
11
- vel: Vector3;
12
- lifetime: number;
13
- color: spec.vec4;
14
- uv: number[];
15
- dirX: Vector3;
16
- dirY: Vector3;
17
- delay: number;
18
- sprite?: [start: number, duration: number, cycles: number];
19
- transform: Transform;
20
- gravity: spec.vec3;
21
- size: Vector2;
22
- };
23
- export interface ParticleMeshData {
24
- gravityModifier: ValueGetter<number>;
25
- sizeOverLifetime?: {
26
- x: ValueGetter<number>;
27
- y?: ValueGetter<number>;
28
- separateAxes?: boolean;
29
- };
30
- meshSlots?: number[];
31
- forceTarget?: {
32
- curve: ValueGetter<number>;
33
- target: spec.vec3;
34
- };
35
- colorOverLifetime?: {
36
- color?: number[][] | Texture;
37
- opacity?: ValueGetter<number>;
38
- separateAxes?: boolean;
39
- };
40
- linearVelOverLifetime?: {
41
- asMovement?: boolean;
42
- x?: ValueGetter<number>;
43
- y?: ValueGetter<number>;
44
- z?: ValueGetter<number>;
45
- enabled?: boolean;
46
- } & Record<string, any>;
47
- orbitalVelOverLifetime?: {
48
- asRotation?: boolean;
49
- x?: ValueGetter<number>;
50
- y?: ValueGetter<number>;
51
- z?: ValueGetter<number>;
52
- enabled?: boolean;
53
- center?: spec.vec3;
54
- } & Record<string, any>;
55
- rotationOverLifetime?: {
56
- asRotation?: boolean;
57
- x?: ValueGetter<number>;
58
- y?: ValueGetter<number>;
59
- z?: ValueGetter<number>;
60
- };
61
- speedOverLifetime?: ValueGetter<number>;
62
- }
63
- export interface ParticleMeshProps extends ParticleMeshData {
64
- renderMode?: number;
65
- blending?: number;
66
- mask: number;
67
- maskMode: number;
68
- side: number;
69
- filter?: spec.FilterParams;
70
- transparentOcclusion?: boolean;
71
- matrix?: Matrix4;
72
- sprite?: {
73
- animate?: boolean;
74
- blend?: boolean;
75
- col: number;
76
- row: number;
77
- total: number;
78
- };
79
- gravity?: spec.vec3;
80
- useSprite?: boolean;
81
- textureFlip?: boolean;
82
- occlusion?: boolean;
83
- diffuse?: Texture;
84
- forceTarget?: {
85
- curve: ValueGetter<number>;
86
- target: spec.vec3;
87
- };
88
- listIndex: number;
89
- duration: number;
90
- maxCount: number;
91
- shaderCachePrefix: string;
92
- name: string;
93
- anchor: Vector2;
94
- }
95
- export declare class ParticleMesh implements ParticleMeshData {
96
- duration: number;
97
- geometry: Geometry;
98
- mesh: Mesh;
99
- particleCount: number;
100
- maxParticleBufferCount: number;
101
- gravityModifier: ValueGetter<number>;
102
- sizeOverLifetime?: {
103
- x: ValueGetter<number>;
104
- y?: ValueGetter<number>;
105
- separateAxes?: boolean;
106
- };
107
- forceTarget?: {
108
- curve: ValueGetter<number>;
109
- target: spec.vec3;
110
- };
111
- colorOverLifetime?: {
112
- color?: number[][];
113
- opacity?: ValueGetter<number>;
114
- separateAxes?: boolean;
115
- };
116
- linearVelOverLifetime?: {
117
- asMovement?: boolean;
118
- x?: ValueGetter<number>;
119
- y?: ValueGetter<number>;
120
- z?: ValueGetter<number>;
121
- enabled?: boolean;
122
- };
123
- orbitalVelOverLifetime?: {
124
- asRotation?: boolean;
125
- x?: ValueGetter<number>;
126
- y?: ValueGetter<number>;
127
- z?: ValueGetter<number>;
128
- enabled?: boolean;
129
- center?: spec.vec3;
130
- };
131
- rotationOverLifetime?: {
132
- asRotation?: boolean;
133
- x?: ValueGetter<number>;
134
- y?: ValueGetter<number>;
135
- z?: ValueGetter<number>;
136
- };
137
- speedOverLifetime?: ValueGetter<number>;
138
- readonly useSprite?: boolean;
139
- readonly textureOffsets: number[];
140
- readonly maxCount: number;
141
- readonly anchor: Vector2;
142
- constructor(props: ParticleMeshProps, rendererOptions: {
143
- composition: Composition;
144
- });
145
- get time(): number;
146
- set time(v: number);
147
- getPointColor(index: number): number[];
148
- /**
149
- * 待废弃
150
- * @deprecated - 使用 `particle-system.getPointPosition` 替代
151
- */
152
- getPointPosition(index: number): Vector3;
153
- clearPoints(): void;
154
- resetGeometryData(geometry: Geometry): void;
155
- minusTime(time: number): void;
156
- removePoint(index: number): void;
157
- setPoint(point: Point, index: number): void;
158
- }
159
- export declare function getParticleMeshShader(item: spec.ParticleItem, env: string | undefined, gpuCapability: GPUCapability): {
160
- shader: SharedShaderWithSource;
161
- vertex: number;
162
- fragment: number;
163
- };
164
- export declare function modifyMaxKeyframeShader(shader: SharedShaderWithSource, maxVertex: number, maxFrag: number): void;
@@ -1,198 +0,0 @@
1
- import * as spec from '@galacean/effects-specification';
2
- import type { vec2, vec3, vec4 } from '@galacean/effects-specification';
3
- import type { Ray } from '@galacean/effects-math/es/core/index';
4
- import { Vector3, Matrix4 } from '@galacean/effects-math/es/core/index';
5
- import type { ValueGetter } from '../../math';
6
- import type { ShapeGenerator } from '../../shape';
7
- import { Texture } from '../../texture';
8
- import { Transform } from '../../transform';
9
- import type { color } from '../../utils';
10
- import { Burst } from './burst';
11
- import type { ParticleVFXItem } from './particle-vfx-item';
12
- import { TrailMesh } from './trail-mesh';
13
- import type { Point } from './particle-mesh';
14
- import { ParticleMesh } from './particle-mesh';
15
- import type { Mesh } from '../../render';
16
- type ParticleSystemRayCastOptions = {
17
- ray: Ray;
18
- radius: number;
19
- removeParticle?: boolean;
20
- multiple: boolean;
21
- };
22
- type ParticleOptions = {
23
- startSpeed: ValueGetter<number>;
24
- startLifetime: ValueGetter<number>;
25
- startDelay: ValueGetter<number>;
26
- startColor: ValueGetter<color>;
27
- start3DRotation?: boolean;
28
- startRotationX?: ValueGetter<number>;
29
- startRotationY?: ValueGetter<number>;
30
- startRotationZ?: ValueGetter<number>;
31
- startRotation?: ValueGetter<number>;
32
- start3DSize: boolean;
33
- startSizeX?: ValueGetter<number>;
34
- startSizeY?: ValueGetter<number>;
35
- startSize?: ValueGetter<number>;
36
- sizeAspect?: ValueGetter<number>;
37
- startTurbulence: boolean;
38
- turbulenceX?: ValueGetter<number>;
39
- turbulenceY?: ValueGetter<number>;
40
- turbulenceZ?: ValueGetter<number>;
41
- turbulence?: [
42
- turbulenceX: ValueGetter<number>,
43
- turbulenceY: ValueGetter<number>,
44
- turbulenceZ: ValueGetter<number>
45
- ];
46
- duration: number;
47
- looping: boolean;
48
- maxCount: number;
49
- gravity: vec3;
50
- gravityModifier: ValueGetter<number>;
51
- endBehavior: number;
52
- renderLevel?: string;
53
- particleFollowParent?: boolean;
54
- forceTarget?: {
55
- curve: ValueGetter<number>;
56
- target: spec.vec3;
57
- };
58
- speedOverLifetime?: ValueGetter<number>;
59
- linearVelOverLifetime?: {
60
- asMovement?: boolean;
61
- x?: ValueGetter<number>;
62
- y?: ValueGetter<number>;
63
- z?: ValueGetter<number>;
64
- enabled?: boolean;
65
- };
66
- orbitalVelOverLifetime?: {
67
- asRotation?: boolean;
68
- x?: ValueGetter<number>;
69
- y?: ValueGetter<number>;
70
- z?: ValueGetter<number>;
71
- enabled?: boolean;
72
- center?: spec.vec3;
73
- };
74
- };
75
- type ParticleEmissionOptions = {
76
- rateOverTime: ValueGetter<number>;
77
- bursts: Burst[];
78
- burstOffsets: Record<string, vec3[] | null>;
79
- };
80
- type TrailOptions = {
81
- lifetime: ValueGetter<number>;
82
- minimumVertexDistance: number;
83
- dieWithParticles: boolean;
84
- sizeAffectsWidth: boolean;
85
- sizeAffectsLifetime: boolean;
86
- parentAffectsPosition: boolean;
87
- inheritParticleColor: boolean;
88
- maxPointPerTrail: number;
89
- colorOverLifetime: number[];
90
- widthOverTrail: ValueGetter<number>;
91
- colorOverTrail: number[];
92
- opacityOverLifetime: ValueGetter<number>;
93
- texture?: Texture;
94
- orderOffset?: number;
95
- blending: number;
96
- occlusion: boolean;
97
- transparentOcclusion: boolean;
98
- textureMap?: vec4;
99
- };
100
- interface ParticleTextureSheetAnimation {
101
- col: number;
102
- row: number;
103
- total: number;
104
- animate: boolean;
105
- animationDelay: ValueGetter<number>;
106
- animationDuration: ValueGetter<number>;
107
- cycles: ValueGetter<number>;
108
- endAtLifetime?: ValueGetter<number>;
109
- blend?: boolean;
110
- }
111
- type ParticleInteraction = {
112
- behavior?: spec.ParticleInteractionBehavior;
113
- multiple?: boolean;
114
- radius: number;
115
- };
116
- interface ParticleSystemOptions extends spec.ParticleOptions {
117
- meshSlots?: number[];
118
- }
119
- export interface ParticleSystemProps extends Omit<spec.ParticleContent, 'options' | 'renderer' | 'trails'> {
120
- options: ParticleSystemOptions;
121
- renderer: ParticleSystemRenderer;
122
- trails?: ParticleTrailProps;
123
- }
124
- export interface ParticleSystemRenderer extends Required<Omit<spec.RendererOptions, 'texture' | 'anchor' | 'particleOrigin'>> {
125
- mask: number;
126
- texture: Texture;
127
- anchor?: vec2;
128
- particleOrigin?: spec.ParticleOrigin;
129
- }
130
- export interface ParticleTrailProps extends Omit<spec.ParticleTrail, 'texture'> {
131
- texture: Texture;
132
- textureMap: vec4;
133
- }
134
- export type ParticleContent = [number, number, number, Point];
135
- export declare class ParticleSystem {
136
- reusable: boolean;
137
- renderMatrix: Matrix4;
138
- particleMesh: ParticleMesh;
139
- trailMesh?: TrailMesh;
140
- options: ParticleOptions;
141
- shape: ShapeGenerator;
142
- emission: ParticleEmissionOptions;
143
- trails: Pick<TrailOptions, 'lifetime' | 'dieWithParticles' | 'sizeAffectsLifetime' | 'sizeAffectsWidth' | 'inheritParticleColor' | 'parentAffectsPosition'>;
144
- meshes: Mesh[];
145
- textureSheetAnimation?: ParticleTextureSheetAnimation;
146
- interaction?: ParticleInteraction;
147
- emissionStopped: boolean;
148
- name: string;
149
- private generatedCount;
150
- private lastUpdate;
151
- private loopStartTime;
152
- private particleLink;
153
- private parentTransform;
154
- private started;
155
- private ended;
156
- private lastEmitTime;
157
- private frozen;
158
- private upDirectionWorld;
159
- private uvs;
160
- private readonly basicTransform;
161
- private readonly transform;
162
- constructor(props: ParticleSystemProps, rendererOptions: {
163
- cachePrefix: string;
164
- }, vfxItem: ParticleVFXItem);
165
- get timePassed(): number;
166
- get lifetime(): number;
167
- get particleCount(): number;
168
- private updateEmitterTransform;
169
- private addParticle;
170
- setVisible(visible: boolean): void;
171
- setOpacity(opacity: number): void;
172
- /**
173
- * @internal
174
- */
175
- setColor(r: number, g: number, b: number, a: number): void;
176
- setParentTransform(transform: Transform): void;
177
- getTextures(): Texture[];
178
- start(): void;
179
- stop(): void;
180
- reset(): void;
181
- onUpdate(delta: number): void;
182
- onDestroy(): void;
183
- getParticleBoxes(): {
184
- center: Vector3;
185
- size: Vector3;
186
- }[];
187
- raycast(options: ParticleSystemRayCastOptions): Vector3[] | undefined;
188
- clearPointTrail(pointIndex: number): void;
189
- updatePointTrail(pointIndex: number, emitterLifetime: number, point: Point, startTime: number): void;
190
- getPointPosition(point: Point): Vector3;
191
- onEnd(particle: ParticleSystem): void;
192
- onIterate(particle: ParticleSystem): void;
193
- initPoint(data: Record<string, any>): Point;
194
- addBurst(burst: Burst, offsets: vec3[]): number;
195
- removeBurst(index: number): void;
196
- createPoint(lifetime: number): Point;
197
- }
198
- export {};
@@ -1,27 +0,0 @@
1
- import * as spec from '@galacean/effects-specification';
2
- import type { Composition } from '../../composition';
3
- import { VFXItem } from '../../vfx-item';
4
- import type { BoundingBoxSphere, HitTestCustomParams } from '../interact/click-handler';
5
- import type { ParticleSystemProps } from './particle-system';
6
- import { ParticleSystem } from './particle-system';
7
- export declare class ParticleVFXItem extends VFXItem<ParticleSystem> {
8
- name: string;
9
- particle: ParticleSystemProps;
10
- private destroyed;
11
- get type(): spec.ItemType;
12
- onConstructed(props: spec.ParticleItem): void;
13
- onLifetimeBegin(composition: Composition, particleSystem: ParticleSystem): ParticleSystem;
14
- onItemUpdate(dt: number, lifetime: number): void;
15
- onItemRemoved(composition: Composition, content: ParticleSystem): void;
16
- /**
17
- * @internal
18
- */
19
- setColor(r: number, g: number, b: number, a: number): void;
20
- setOpacity(opacity: number): void;
21
- stopParticleEmission(): void;
22
- resumeParticleEmission(): void;
23
- protected doCreateContent(composition: Composition): ParticleSystem;
24
- isEnded(now: number): boolean;
25
- getBoundingBox(): void | BoundingBoxSphere;
26
- getHitTestParams(force?: boolean): void | HitTestCustomParams;
27
- }
@@ -1,61 +0,0 @@
1
- import type * as spec from '@galacean/effects-specification';
2
- import type { vec4, GradientStop } from '@galacean/effects-specification';
3
- import { Vector3 } from '@galacean/effects-math/es/core/index';
4
- import type { Matrix4 } from '@galacean/effects-math/es/core/index';
5
- import type { ShaderWithSource, GPUCapability } from '../../render';
6
- import { Geometry, Mesh } from '../../render';
7
- import { Texture } from '../../texture';
8
- import type { Engine } from '../../engine';
9
- import type { ValueGetter } from '../../math';
10
- export type TrailMeshConstructor = {
11
- maxTrailCount: number;
12
- pointCountPerTrail: number;
13
- colorOverLifetime?: Array<GradientStop>;
14
- texture: Texture;
15
- minimumVertexDistance: number;
16
- blending: number;
17
- widthOverTrail: ValueGetter<number>;
18
- colorOverTrail?: Array<GradientStop>;
19
- order: number;
20
- matrix?: Matrix4;
21
- opacityOverLifetime: ValueGetter<number>;
22
- occlusion: boolean;
23
- transparentOcclusion: boolean;
24
- lifetime: ValueGetter<number>;
25
- mask: number;
26
- shaderCachePrefix: string;
27
- maskMode: number;
28
- textureMap: vec4;
29
- name: string;
30
- };
31
- type TrailPointOptions = {
32
- lifetime: number;
33
- color: number[];
34
- size: number;
35
- time: number;
36
- };
37
- export declare class TrailMesh {
38
- mesh: Mesh;
39
- maxTrailCount: number;
40
- geometry: Geometry;
41
- lifetime: ValueGetter<number>;
42
- pointCountPerTrail: number;
43
- minimumVertexDistance: number;
44
- useAttributeTrailStart: boolean;
45
- checkVertexDistance: boolean;
46
- private pointStart;
47
- private trailCursors;
48
- constructor(props: TrailMeshConstructor, engine: Engine);
49
- get time(): number;
50
- set time(t: number);
51
- addPoint(trailIndex: number, position: Vector3, opt: TrailPointOptions): void;
52
- getTrailPosition(trail: number, index: number, out: Vector3): Vector3 | undefined;
53
- clearAllTrails(): void;
54
- minusTime(time: number): void;
55
- clearTrail(index: number): void;
56
- getPointStartPos(index: number): Vector3;
57
- setPointStartPos(index: number, pos: Vector3): void;
58
- onUpdate(escapeTime: number): any;
59
- }
60
- export declare function getTrailMeshShader(trails: spec.ParticleTrail, particleMaxCount: number, name: string, env: string | undefined, gpuCapability: GPUCapability): ShaderWithSource;
61
- export {};
@@ -1,125 +0,0 @@
1
- import type * as spec from '@galacean/effects-specification';
2
- import type { SceneLoadOptions } from '../asset-manager';
3
- import type { Scene } from '../scene';
4
- import type { VFXItem } from '../vfx-item';
5
- import type { RenderFrame, Renderer } from '../render';
6
- import type { Composition } from '../composition';
7
- export interface Plugin {
8
- /**
9
- * plugin 的数组内排序,按照升序排列
10
- * 默认为100
11
- */
12
- order: number;
13
- name: string;
14
- /**
15
- * 合成创建时调用,用于触发元素在合成创建时的回调
16
- * @param composition
17
- * @param scene
18
- */
19
- onCompositionConstructed: (composition: Composition, scene: Scene) => void;
20
- /**
21
- * 合成 delay 结束后触发,合成播放阶段只触发一次此函数
22
- * @param composition
23
- * @param item
24
- */
25
- onCompositionItemLifeBegin: (composition: Composition, item: VFXItem<any>) => void;
26
- /**
27
- * 合成生命周期结束时触发(无论结束行为)
28
- * 合成播放阶段只触发一次此函数
29
- * @param composition
30
- * @param item
31
- */
32
- onCompositionItemLifeEnd: (composition: Composition, item: VFXItem<any>) => void;
33
- /**
34
- * 合成销毁时触发(当合成的结束行为是冻结、循环或合成配置了 reusable 时不触发)
35
- * 元素销毁应该在合成销毁时调用。
36
- * @param composition
37
- * @param item
38
- */
39
- onCompositionItemRemoved: (composition: Composition, item: VFXItem<any>) => void;
40
- /**
41
- * 合成重播时的回调
42
- * @param composition
43
- * @param frame
44
- */
45
- onCompositionReset: (composition: Composition, frame: RenderFrame) => void;
46
- /**
47
- * 合成即将重播,此函数后 frame 会被销毁
48
- * @param composition
49
- * @param frame
50
- */
51
- onCompositionWillReset: (composition: Composition, frame: RenderFrame) => void;
52
- /**
53
- * 合成销毁时的会调,需要销毁 composition 中对应的资源
54
- * @param composition
55
- */
56
- onCompositionDestroyed: (composition: Composition) => void;
57
- /**
58
- * 合成更新时的回调,每帧都会进行调用,在每个元素调用 onUpdate 之前被触发
59
- * @param composition
60
- * @param dt 更新的毫秒
61
- */
62
- onCompositionUpdate: (composition: Composition, dt: number) => void;
63
- /**
64
- * 合成更新后,在渲染前进行 RenderFrame 的配置,添加渲染的 Mesh 到 renderFrame 中,
65
- * 如果此函数返回 true,将进行 renderFrame 后处理函数配置
66
- * mesh 的 priority 必须等于 item.listIndex,否则渲染顺序将不符合 Galacean Effects 的规则
67
- * @param composition
68
- * @param frame
69
- * @return 默认 false,为 true 时才会执行 postProcessFrame
70
- */
71
- prepareRenderFrame(composition: Composition, frame: RenderFrame): boolean;
72
- /**
73
- * 当所有的 plugin 都调用过 prepareRenderFrame 后,对于需要进行后处理的 plugin,调用此函数,
74
- * 此函数一般用于切割 renderPass,如果对于 renderPass 有切割,记得在销毁时还原切割
75
- * @param composition
76
- * @param frame
77
- */
78
- postProcessFrame: (composition: Composition, frame: RenderFrame) => void;
79
- }
80
- export interface PluginConstructor {
81
- new (): Plugin;
82
- [key: string]: any;
83
- }
84
- /**
85
- * 抽象插件类
86
- * 注册合成不同生命周期的回调函数
87
- */
88
- export declare abstract class AbstractPlugin implements Plugin {
89
- order: number;
90
- name: string;
91
- /***
92
- * player.loadScene 函数调用的时候会触发此函数,
93
- * 此阶段可以对资源 JSON 进行处理,替换调 JSON 中的数据,或者直接终止加载流程
94
- * 一旦被 reject,加载过程将失败
95
- * @param json 动画资源
96
- * @param options 加载参数
97
- */
98
- static processRawJSON: (json: spec.JSONScene, options: SceneLoadOptions) => Promise<void>;
99
- /**
100
- * player.loadScene 函数调用的时候会触发此函数,
101
- * 此阶段时,json 中的图片和二进制已经被加载完成,可以对加载好的资源做进一步处理,
102
- * 如果 promise 被 reject, loadScene 函数同样会被 reject,表示场景加载失败。
103
- * 请记住,整个 load 阶段都不要创建 GL 相关的对象,只创建 JS 对象
104
- * 此阶段晚于 processRawJSON
105
- * @param {Scene} scene
106
- * @param {SceneLoadOptions} options
107
- */
108
- static prepareResource: (scene: Scene, options: SceneLoadOptions) => Promise<void>;
109
- /**
110
- * 在加载到 JSON 后,就可以进行提前编译
111
- * @param json
112
- * @param player
113
- */
114
- static precompile(compositions: spec.Composition[], renderer: Renderer): Promise<void>;
115
- onCompositionConstructed(composition: Composition, scene: Scene): void;
116
- onCompositionItemLifeBegin(composition: Composition, item: VFXItem<any>): void;
117
- onCompositionItemLifeEnd(composition: Composition, item: VFXItem<any>): void;
118
- onCompositionItemRemoved(composition: Composition, item: VFXItem<any>): void;
119
- onCompositionReset(composition: Composition, frame: RenderFrame): void;
120
- onCompositionWillReset(composition: Composition, frame: RenderFrame): void;
121
- onCompositionDestroyed(composition: Composition): void;
122
- onCompositionUpdate(composition: Composition, dt: number): void;
123
- prepareRenderFrame(composition: Composition, frame: RenderFrame): boolean;
124
- postProcessFrame(composition: Composition, frame: RenderFrame): void;
125
- }
@@ -1,13 +0,0 @@
1
- import * as spec from '@galacean/effects-specification';
2
- import type { Composition } from '../../composition';
3
- import { SpriteVFXItem } from './sprite-vfx-item';
4
- import type { SpriteItem } from './sprite-item';
5
- export declare class FilterSpriteVFXItem extends SpriteVFXItem {
6
- private filter;
7
- private filterOptions;
8
- get type(): spec.ItemType;
9
- onConstructed(props: spec.FilterItem): void;
10
- onItemUpdate(dt: number, lifetime: number): void;
11
- onItemRemoved(composition: Composition, content?: SpriteItem): void;
12
- protected doCreateContent(composition: Composition): SpriteItem;
13
- }
@@ -1,95 +0,0 @@
1
- import type { Disposable } from '../../utils';
2
- import { VFXItem } from '../../vfx-item';
3
- import type { Composition } from '../../composition';
4
- import type { Mesh } from '../../render';
5
- import type { Texture } from '../../texture';
6
- import type { SpriteItem, SpriteItemRenderInfo } from './sprite-item';
7
- import { SpriteMesh } from './sprite-mesh';
8
- interface MeshSplit {
9
- indexStart: number;
10
- renderInfo: SpriteItemRenderInfo;
11
- cacheId: string;
12
- items: VFXItem<SpriteItem>[];
13
- dirty?: boolean;
14
- indexEnd?: number;
15
- spriteMesh?: SpriteMesh;
16
- textures: Texture[];
17
- }
18
- export interface LayerInfo {
19
- layerToAdd?: SpriteMesh[];
20
- }
21
- export declare class SpriteGroup implements Disposable {
22
- composition: Composition;
23
- meshSplits: MeshSplit[];
24
- readonly items: VFXItem<SpriteItem>[];
25
- readonly meshes: Mesh[];
26
- time: number;
27
- private readonly itemsToRemove;
28
- private readonly itemsToAdd;
29
- private engine;
30
- constructor(composition: Composition);
31
- /**
32
- * 合成reset的时候执行 清空items相关数组
33
- */
34
- resetMeshSplits(): void;
35
- /**
36
- * 根据需要添加/移除的元素计算需要增加/移除/修改顺序的mesh并返回
37
- */
38
- diffMeshSplits(): {
39
- remove?: Mesh[];
40
- add?: Mesh[];
41
- modify?: Mesh[];
42
- layer?: LayerInfo;
43
- } | void;
44
- /**
45
- * 合成生命周期开始时执行
46
- * 如果 items 中有该 sprite/filter 类型的 vfxItem 则添加到 itemsToRemove 数组中
47
- * 如果没有该 vfxItem 添加到 itemsToAdd 数组
48
- * @param vfxItem
49
- */
50
- addItem(vfxItem: VFXItem<SpriteItem>): void;
51
- /**
52
- * 合成dispose时执行
53
- * 如果items中有该vfxItem 则添加到itemsToRemove数组中(sprite在头 filter在尾)
54
- * 如果没有该vfxItem 添加到 itemsToAdd数组
55
- */
56
- removeItem(item: VFXItem<SpriteItem>): void;
57
- /**
58
- * 找到指定 item 所在的 spriteMesh
59
- * @param item
60
- * @returns
61
- */
62
- getSpriteMesh(item: SpriteItem): SpriteMesh | undefined;
63
- /**
64
- * 合成在每帧 tick 时元素更新后执行
65
- * 更新 mesh 的 geometry 和 material 中 item 对应位置上的数据
66
- */
67
- onUpdate(dt: number): void;
68
- dispose(): void;
69
- private check;
70
- /**
71
- * 添加元素到合适的 meshSplit 上
72
- * 返回新添加的 meshSplit 数组(返回 meshSplit 没有真的创建 spriteMesh)
73
- * @internal
74
- */
75
- private addMeshSplitsItem;
76
- /**
77
- * 从包含指定item的meshSplit、this.items中移除指定item
78
- * 并判断指定meshSplit能否与this.meshSplits中的其它meshSplit合并
79
- * 返回不需要的meshSplit(没有items/内容合并到其它meshSplit)
80
- */
81
- private removeMeshSplitsItem;
82
- /**
83
- * 合并Mesh
84
- * 找到item所在的meshSplit 判断能否和前一张/后一张合并
85
- * 返回不需要的meshSplit(内容合并到其它meshSplit)
86
- */
87
- private combineSplits;
88
- /**
89
- * 判断items中[startIndex, endIndex]范围的元素需要多少个meshSplit
90
- * item的filter、材质的显示面、蒙板、混合模式、顺序、深度遮挡等信息一致且在mesh容纳的范围内
91
- * 则放置到同一个meshSplit上,上述信息记录在cacheId中
92
- */
93
- private getMeshSplits;
94
- }
95
- export {};