@galacean/effects-core 2.9.0-alpha.2 → 2.9.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 (33) hide show
  1. package/dist/animation/animation-events.d.ts +3 -5
  2. package/dist/components/base-render-component.d.ts +6 -1
  3. package/dist/components/component.d.ts +2 -1
  4. package/dist/components/composition-component.d.ts +1 -1
  5. package/dist/components/frame-component.d.ts +6 -1
  6. package/dist/components/mesh-component.d.ts +6 -1
  7. package/dist/composition.d.ts +15 -25
  8. package/dist/engine.d.ts +49 -2
  9. package/dist/index.js +2729 -1603
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.mjs +2719 -1603
  12. package/dist/index.mjs.map +1 -1
  13. package/dist/material/index.d.ts +1 -0
  14. package/dist/material/material-state.d.ts +50 -0
  15. package/dist/material/material.d.ts +109 -285
  16. package/dist/math/index.d.ts +1 -0
  17. package/dist/plugin-system.d.ts +1 -1
  18. package/dist/plugins/camera/camera-controller-node.d.ts +5 -2
  19. package/dist/plugins/interact/interact-item.d.ts +1 -1
  20. package/dist/plugins/particle/particle-mesh.d.ts +0 -1
  21. package/dist/plugins/particle/particle-system-renderer.d.ts +3 -3
  22. package/dist/plugins/particle/particle-system.d.ts +6 -23
  23. package/dist/plugins/particle/trail-mesh.d.ts +1 -2
  24. package/dist/plugins/plugin.d.ts +1 -1
  25. package/dist/plugins/text/text-component-base.d.ts +1 -1
  26. package/dist/plugins/text/text-layout.d.ts +7 -0
  27. package/dist/plugins/timeline/track.d.ts +1 -1
  28. package/dist/plugins/timeline/tracks/property-track.d.ts +2 -2
  29. package/dist/render/renderer.d.ts +15 -23
  30. package/dist/render/shader.d.ts +19 -0
  31. package/dist/scene-loader.d.ts +2 -0
  32. package/dist/texture/texture.d.ts +1 -1
  33. package/package.json +2 -2
@@ -2,4 +2,5 @@ export * from './types';
2
2
  export * from './utils';
3
3
  export * from './material-data-block';
4
4
  export * from './material';
5
+ export * from './material-state';
5
6
  export * from './mask-ref-manager';
@@ -0,0 +1,50 @@
1
+ import type { Engine } from '../engine';
2
+ export declare class MaterialState {
3
+ blending: boolean;
4
+ blendFunctionParameters: [blendSrc: number, blendDst: number, blendSrcAlpha: number, blendDstAlpha: number];
5
+ blendEquationParameters: [blendEquationRGB: number, blendEquationAlpha: number];
6
+ blendColor: [r: number, g: number, b: number, a: number];
7
+ depthTest: boolean;
8
+ depthMask: boolean;
9
+ depthRange: [zNear: number, zFar: number];
10
+ depthFunc: number;
11
+ polygonOffset: [factor: number, units: number];
12
+ polygonOffsetFill: boolean;
13
+ sampleAlphaToCoverage: boolean;
14
+ colorMask: [r: boolean, g: boolean, b: boolean, a: boolean];
15
+ stencilTest: boolean;
16
+ stencilMask: [front: number, back: number];
17
+ stencilRef: [front: number, back: number];
18
+ stencilFunc: [front: number, back: number];
19
+ stencilOpFail: [front: number, back: number];
20
+ stencilOpZFail: [front: number, back: number];
21
+ stencilOpZPass: [front: number, back: number];
22
+ culling: boolean;
23
+ frontFace: number;
24
+ cullFace: number;
25
+ constructor();
26
+ setBlendColor(color: [r: number, g: number, b: number, a: number]): void;
27
+ setBlending(value: boolean): void;
28
+ setBlendFunctionParameters(value: [blendSrc: number, blendDst: number, blendSrcAlpha: number, blendDstAlpha: number]): void;
29
+ setBlendEquationParameters(value: [rgb: number, alpha: number]): void;
30
+ setDepthTest(value: boolean): void;
31
+ setDepthMask(value: boolean): void;
32
+ setDepthRange(value: [zNear: number, zFar: number]): void;
33
+ setDepthFunc(value: number): void;
34
+ setPolygonOffsetFill(value: boolean): void;
35
+ setPolygonOffset(value: [factor: number, units: number]): void;
36
+ setSampleAlphaToCoverage(value: boolean): void;
37
+ setColorMask(colorMask: boolean): void;
38
+ setStencilTest(value: boolean): void;
39
+ setStencilMask(value: [front: number, back: number]): void;
40
+ setStencilRef(value: [front: number, back: number]): void;
41
+ setStencilFunc(value: [front: number, back: number]): void;
42
+ setStencilOpFail(value: [front: number, back: number]): void;
43
+ setStencilOpZFail(value: [front: number, back: number]): void;
44
+ setStencilOpZPass(value: [front: number, back: number]): void;
45
+ setCulling(value: boolean): void;
46
+ setFrontFace(value: number): void;
47
+ setCullFace(value: number): void;
48
+ reset(): void;
49
+ apply(engine: Engine): void;
50
+ }
@@ -1,10 +1,14 @@
1
- import type { Matrix3, Matrix4, Quaternion, Vector2, Vector3, Vector4, Color } from '@galacean/effects-math/es/core/index';
2
- import type { GlobalUniforms, Renderer, Shader, ShaderVariant, ShaderWithSource } from '../render';
1
+ import * as spec from '@galacean/effects-specification';
2
+ import type { Color, Matrix3, Quaternion, Vector2, Vector3 } from '@galacean/effects-math/es/core/index';
3
+ import { Vector4, Matrix4 } from '@galacean/effects-math/es/core/index';
4
+ import type { GlobalUniforms, Renderer, ShaderVariant, ShaderWithSource } from '../render';
5
+ import { Shader } from '../render/shader';
3
6
  import type { Texture } from '../texture';
4
7
  import type { DestroyOptions, Disposable } from '../utils';
5
8
  import type { UniformValue } from './types';
6
9
  import type { Engine } from '../engine';
7
10
  import { EffectsObject } from '../effects-object';
11
+ import { MaterialState } from './material-state';
8
12
  /**
9
13
  * 材质销毁设置
10
14
  */
@@ -44,9 +48,9 @@ export interface MaterialProps {
44
48
  uniformValues?: Record<string, UniformValue>;
45
49
  }
46
50
  /**
47
- * Material 抽象类
51
+ * Material
48
52
  */
49
- export declare abstract class Material extends EffectsObject implements Disposable {
53
+ export declare class Material extends EffectsObject implements Disposable {
50
54
  shaderVariant: ShaderVariant;
51
55
  shaderSource: ShaderWithSource;
52
56
  stringTags: Record<string, string>;
@@ -58,10 +62,24 @@ export declare abstract class Material extends EffectsObject implements Disposab
58
62
  protected initialized: boolean;
59
63
  protected shaderDirty: boolean;
60
64
  private _shader;
61
- /**
62
- *
63
- * @param props - 材质属性
64
- */
65
+ protected floats: Record<string, number>;
66
+ protected ints: Record<string, number>;
67
+ protected vector2s: Record<string, Vector2>;
68
+ protected vector3s: Record<string, Vector3>;
69
+ protected vector4s: Record<string, Vector4>;
70
+ protected colors: Record<string, Color>;
71
+ protected quaternions: Record<string, Quaternion>;
72
+ protected matrices: Record<string, Matrix4>;
73
+ protected matrice3s: Record<string, Matrix3>;
74
+ protected textures: Record<string, Texture>;
75
+ protected floatArrays: Record<string, number[]>;
76
+ protected vector4Arrays: Record<string, number[]>;
77
+ protected matrixArrays: Record<string, number[]>;
78
+ protected samplers: string[];
79
+ protected uniforms: string[];
80
+ protected uniformDirty: boolean;
81
+ protected macrosDirty: boolean;
82
+ protected materialState: MaterialState;
65
83
  constructor(engine: Engine, props?: MaterialProps);
66
84
  get shader(): Shader;
67
85
  set shader(value: Shader);
@@ -75,294 +93,100 @@ export declare abstract class Material extends EffectsObject implements Disposab
75
93
  */
76
94
  get color(): Color;
77
95
  set color(value: Color);
78
- /******** effects-core 中会调用 引擎必须实现 ***********************/
79
- /**
80
- * 设置 Material 的颜色融合开关
81
- * @param blending - 是否开启混合效果
82
- */
96
+ /*** 渲染状态 getter/setter ***/
97
+ get blending(): UndefinedAble<boolean>;
83
98
  set blending(blending: UndefinedAble<boolean>);
84
- /**
85
- * 分别指定 Material 的颜色混合函数乘数
86
- * @param func - 混合函数参数
87
- */
99
+ get blendColor(): UndefinedAble<[r: number, g: number, b: number, a: number]>;
100
+ set blendColor(color: UndefinedAble<[r: number, g: number, b: number, a: number]>);
101
+ get blendFunction(): UndefinedAble<[blendSrc: number, blendDst: number, blendSrcAlpha: number, blendDstAlpha: number]>;
88
102
  set blendFunction(func: UndefinedAble<[blendSrc: number, blendDst: number, blendSrcAlpha: number, blendDstAlpha: number]>);
89
- /**
90
- * 分别指定 Material 的颜色混合方式
91
- * @param equation - 混合方程参数
92
- */
103
+ get blendEquation(): UndefinedAble<[rgb: number, alpha: number]>;
93
104
  set blendEquation(equation: UndefinedAble<[rgb: number, alpha: number]>);
94
- /**
95
- * 设置 Material 的深度测试开关
96
- * @param value - 是否开启深度测试
97
- */
105
+ get depthTest(): UndefinedAble<boolean>;
98
106
  set depthTest(value: UndefinedAble<boolean>);
99
- /**
100
- * 设置 Material 的写入深度缓冲开关
101
- * @param value - 是否开启深度写入
102
- */
107
+ get depthMask(): UndefinedAble<boolean>;
103
108
  set depthMask(value: UndefinedAble<boolean>);
104
- /**
105
- * 设置 Material 的模板测试开关
106
- * @param value - 是否开启模板测试
107
- */
109
+ get depthRange(): UndefinedAble<[number, number]>;
110
+ set depthRange(value: UndefinedAble<[number, number]>);
111
+ get depthFunc(): UndefinedAble<number>;
112
+ set depthFunc(value: UndefinedAble<number>);
113
+ get polygonOffsetFill(): UndefinedAble<boolean>;
114
+ set polygonOffsetFill(value: UndefinedAble<boolean>);
115
+ get polygonOffset(): UndefinedAble<[number, number]>;
116
+ set polygonOffset(value: UndefinedAble<[number, number]>);
117
+ get sampleAlphaToCoverage(): UndefinedAble<boolean>;
118
+ set sampleAlphaToCoverage(value: UndefinedAble<boolean>);
119
+ get colorMask(): boolean;
120
+ set colorMask(value: boolean);
121
+ get stencilTest(): UndefinedAble<boolean>;
108
122
  set stencilTest(value: UndefinedAble<boolean>);
109
- /**
110
- * 分别指定 Material 的模板测试参考值
111
- * @param value - 模板测试参考值参数
112
- */
113
- set stencilRef(value: UndefinedAble<[front: number, back: number]>);
114
- /**
115
- * 分别指定 Material 的模板测试函数
116
- * @param value - 模板测试函数参数
117
- */
118
- set stencilFunc(value: UndefinedAble<[front: number, back: number]>);
119
- /**
120
- * 分别指定 Material 的模板测试和深度测试都通过时使用的函数
121
- * @param value - 模板测试深度测试通过时的操作参数
122
- */
123
- set stencilOpZPass(value: UndefinedAble<[front: number, back: number]>);
124
- /**
125
- * 设置 Material 的正反面剔除开关
126
- * @param value - 是否开启剔除
127
- */
123
+ get stencilMask(): UndefinedAble<[number, number]>;
124
+ set stencilMask(value: UndefinedAble<[number, number]>);
125
+ get stencilRef(): UndefinedAble<[number, number]>;
126
+ set stencilRef(value: UndefinedAble<[number, number]>);
127
+ get stencilFunc(): UndefinedAble<[number, number]>;
128
+ set stencilFunc(value: UndefinedAble<[number, number]>);
129
+ get stencilOpFail(): UndefinedAble<[number, number]>;
130
+ set stencilOpFail(value: UndefinedAble<[number, number]>);
131
+ get stencilOpZFail(): UndefinedAble<[number, number]>;
132
+ set stencilOpZFail(value: UndefinedAble<[number, number]>);
133
+ get stencilOpZPass(): UndefinedAble<[number, number]>;
134
+ set stencilOpZPass(value: UndefinedAble<[number, number]>);
135
+ get culling(): UndefinedAble<boolean>;
128
136
  set culling(value: UndefinedAble<boolean>);
129
- /**
130
- * 设置 Material 的正反面计算方向
131
- * @param value
132
- */
137
+ get frontFace(): UndefinedAble<number>;
133
138
  set frontFace(value: UndefinedAble<number>);
134
- /**
135
- * 设置 Material 要剔除的面
136
- * @param value - 剔除面参数
137
- */
139
+ get cullFace(): UndefinedAble<number>;
138
140
  set cullFace(value: UndefinedAble<number>);
139
- /***************************************************/
140
- /******** effects-core 中暂无调用 引擎可以先不实现 ***********************/
141
- /**
142
- * 设置 Material 的源和目标混合因子
143
- * @param color
144
- */
145
- set blendColor(color: UndefinedAble<[r: number, g: number, b: number, a: number]>);
146
- /**
147
- * 设置 Material 的深度映射范围
148
- * @param value
149
- */
150
- set depthRange(value: UndefinedAble<[zNear: number, zFar: number]>);
151
- /**
152
- * 设置 Material 的深度比较函数
153
- * @param value - 深度测试函数参数
154
- */
155
- set depthFunc(value: UndefinedAble<number>);
156
- /**
157
- * 设置 Material 的多边形偏移(实现类似深度偏移的效果)
158
- * @param value - 多边形偏移参数
159
- */
160
- set polygonOffsetFill(value: UndefinedAble<boolean>);
161
- /**
162
- * 指定 Material 计算深度值的比例因子 factor 和单位 units
163
- * @param value
164
- */
165
- set polygonOffset(value: UndefinedAble<[factor: number, units: number]>);
166
- /**
167
- * 设置 Material 的通过 alpha 值决定临时覆盖值计算的开关
168
- * @param value - 是否开启 alpha 抖动
169
- */
170
- set sampleAlphaToCoverage(value: UndefinedAble<boolean>);
171
- /**
172
- * 设置 Material 颜色缓冲区的写入开关
173
- * @param value
174
- */
175
- abstract set colorMask(value: boolean);
176
- /**
177
- * 获取 Material 颜色缓冲区的写入开关
178
- * @param value
179
- */
180
- abstract get colorMask(): boolean;
181
- /**
182
- * 分别指定 Material 的模板测试掩码
183
- * @param value - 模板测试写入掩码参数
184
- */
185
- set stencilMask(value: UndefinedAble<[front: number, back: number]>);
186
- /**
187
- * 分别指定 Material 模板测试失败时要使用的函数
188
- * @param value - 模板测试失败时的操作参数
189
- */
190
- set stencilOpFail(value: UndefinedAble<[front: number, back: number]>);
191
- /**
192
- * 分别指定 Material 模板测试通过但深度测试失败时要使用的函数
193
- * @param value - 模板测试深度测试失败时的操作参数
194
- */
195
- set stencilOpZFail(value: UndefinedAble<[front: number, back: number]>);
196
- /***************************************************/
197
- /**
198
- * 获取 Material 的 float 类型的 uniform 数据
199
- * @param name
200
- */
201
- abstract getFloat(name: string): number | null;
202
- /**
203
- * 设置 float 类型的 uniform 数据
204
- * @param name - uniform 名称
205
- * @param value - 要设置的 uniform 数据
206
- */
207
- abstract setFloat(name: string, value: number): void;
208
- /**
209
- * 获取 Material 的 float 类型的 uniform 数据
210
- * @param name
211
- */
212
- abstract getInt(name: string): number | null;
213
- /**
214
- * 设置 int 类型的 uniform 的数据
215
- * @param name - uniform 名称
216
- * @param value - 要设置的 uniform 数据
217
- */
218
- abstract setInt(name: string, value: number): void;
219
- /**
220
- * 获取 Material 的 float 数组类型的 uniform 数据
221
- * @param name
222
- */
223
- abstract getFloats(name: string): number[] | null;
224
- /**
225
- * 设置 float 数组类型的 uniform 的数据
226
- * @param name - uniform 名称
227
- * @param value - 要设置的 uniform 数据
228
- */
229
- abstract setFloats(name: string, value: number[]): void;
230
- /**
231
- * 获取 Material 的 vec2 类型的 uniform 数据
232
- * @param name
233
- */
234
- abstract getVector2(name: string): Vector2 | null;
235
- /**
236
- * 设置 vec2 类型的 uniform 的数据
237
- * @param name - uniform 名称
238
- * @param value - 要设置的 uniform 数据
239
- */
240
- abstract setVector2(name: string, value: Vector2): void;
241
- /**
242
- * 获取 Material 的 vec3 类型的 uniform 数据
243
- * @param name
244
- */
245
- abstract getVector3(name: string): Vector3 | null;
246
- /**
247
- * 设置 vec3 类型的 uniform 的数据
248
- * @param name - uniform 名称
249
- * @param value - 要设置的 uniform 数据
250
- */
251
- abstract setVector3(name: string, value: Vector3): void;
252
- /**
253
- * 获取 Material 的 vec4 类型的 uniform 数据
254
- * @param name
255
- */
256
- abstract getVector4(name: string): Vector4 | null;
257
- /**
258
- * 设置 vec4 类型的 uniform 的数据
259
- * @param name - uniform 名称
260
- * @param value - 要设置的 uniform 数据
261
- */
262
- abstract setVector4(name: string, value: Vector4): void;
263
- /**
264
- * 获取 Material 的 Color 类型的 uniform 数据
265
- * @param name
266
- */
267
- abstract getColor(name: string): Color | null;
268
- /**
269
- * 设置 Color 类型的 uniform 的数据
270
- * @param name - uniform 名称
271
- * @param value - 要设置的 uniform 数据
272
- */
273
- abstract setColor(name: string, value: Color): void;
274
- /**
275
- * 获取 Material 的 Quaternion 类型的 uniform 数据
276
- * @param name
277
- */
278
- abstract getQuaternion(name: string): Quaternion | null;
279
- /**
280
- * 设置 Quaternion 类型的 uniform 的数据
281
- * @param name - uniform 名称
282
- * @param value - 要设置的 uniform 数据
283
- */
284
- abstract setQuaternion(name: string, value: Quaternion): void;
285
- /**
286
- * 获取 Material 的 vec4 数组类型的 uniform 数据
287
- * @param name
288
- */
289
- abstract getVector4Array(name: string): number[];
290
- /**
291
- * 设置 vec4 数组类型的 uniform 的数据
292
- * @param name - uniform 名称
293
- * @param value - 要设置的 uniform 数据
294
- */
295
- abstract setVector4Array(name: string, value: Vector4[]): void;
296
- /**
297
- * 获取 Material 的 mat4 类型的 uniform 数据
298
- * @param name
299
- */
300
- abstract getMatrix(name: string): Matrix4 | null;
301
- /**
302
- * 设置 mat4 类型的 uniform 的数据
303
- * @param name - uniform 名称
304
- * @param value - 要设置的 uniform 数据
305
- */
306
- abstract setMatrix(name: string, value: Matrix4): void;
307
- /**
308
- * 设置 mat3 类型的 uniform 的数据
309
- * @param name - uniform 名称
310
- * @param value - 要设置的 uniform 数据
311
- */
312
- abstract setMatrix3(name: string, value: Matrix3): void;
313
- /**
314
- * 获取 Material 的 mat4 数组类型的 uniform 数据
315
- * @param name
316
- */
317
- abstract getMatrixArray(name: string): number[] | null;
318
- /**
319
- * 设置 mat 数组类型的 uniform 的数据
320
- * @param name - uniform 名称
321
- * @param array - 要设置的 uniform 数据
322
- */
323
- abstract setMatrixArray(name: string, array: Matrix4[]): void;
324
- /**
325
- * 设置 mat 数组类型的 uniform 的数据,传入 number 数组
326
- * @param name - uniform 名称
327
- * @param array - 要设置的 uniform 数据,number 类型数组
328
- */
329
- abstract setMatrixNumberArray(name: string, array: number[]): void;
330
- /**
331
- * 获取 Material 的 sampler2D 类型的 uniform 数据
332
- * @param name
333
- */
334
- abstract getTexture(name: string): Texture | null;
335
- /**
336
- * 设置 sampler2D 类型的 uniform 的数据
337
- * @param name - uniform 名称
338
- * @param texture - 要设置的 uniform 数据
339
- */
340
- abstract setTexture(name: string, texture: Texture): void;
341
- /**
342
- * 获取 Material 的 float 类型的 uniform 数据
343
- * @param name
344
- */
345
- abstract hasUniform(name: string): boolean;
346
- /******** 预留接口,暂时不用实现 ***********************/
347
- abstract enableMacro(keyword: string, value?: boolean | number): void;
348
- abstract disableMacro(keyword: string): void;
349
- abstract isMacroEnabled(keyword: string): boolean;
350
- /***************************************************/
351
- /**
352
- * Material 的克隆方法(不接入滤镜,本方法可以不做实现)
353
- * @param props 新的材质属性
354
- */
355
- abstract clone(props?: MaterialProps): Material;
356
- abstract cloneUniforms(sourceMaterial: Material): void;
141
+ /*** Macro 管理 ***/
142
+ enableMacro(keyword: string, value?: boolean | number): void;
143
+ disableMacro(keyword: string): void;
144
+ isMacroEnabled(keyword: string): boolean;
145
+ get isDestroyed(): boolean;
146
+ /*** GPU 资源初始化 ***/
147
+ initialize(): void;
148
+ createShaderVariant(): void;
149
+ setupStates(engine: Engine): void;
150
+ use(renderer: Renderer, globalUniforms?: GlobalUniforms): void;
151
+ /*** Uniform get/set 方法 ***/
152
+ getFloat(name: string): number | null;
153
+ setFloat(name: string, value: number): void;
154
+ getInt(name: string): number | null;
155
+ setInt(name: string, value: number): void;
156
+ getFloats(name: string): number[] | null;
157
+ setFloats(name: string, value: number[]): void;
158
+ getVector2(name: string): Vector2 | null;
159
+ setVector2(name: string, value: Vector2): void;
160
+ getVector3(name: string): Vector3 | null;
161
+ setVector3(name: string, value: Vector3): void;
162
+ getVector4(name: string): Vector4 | null;
163
+ setVector4(name: string, value: Vector4): void;
164
+ getColor(name: string): Color | null;
165
+ setColor(name: string, value: Color): void;
166
+ getQuaternion(name: string): Quaternion | null;
167
+ setQuaternion(name: string, value: Quaternion): void;
168
+ getMatrix(name: string): Matrix4 | null;
169
+ setMatrix(name: string, value: Matrix4): void;
170
+ setMatrix3(name: string, value: Matrix3): void;
171
+ getVector4Array(name: string): number[];
172
+ setVector4Array(name: string, array: Vector4[]): void;
173
+ getMatrixArray(name: string): number[] | null;
174
+ setMatrixArray(name: string, array: Matrix4[]): void;
175
+ setMatrixNumberArray(name: string, array: number[]): void;
176
+ getTexture(name: string): Texture | null;
177
+ setTexture(name: string, texture: Texture): void;
178
+ hasUniform(name: string): boolean;
179
+ /*** 克隆 ***/
180
+ clone(props?: MaterialProps): Material;
181
+ cloneUniforms(sourceMaterial: Material): void;
182
+ /*** 序列化 ***/
183
+ fromData(data: spec.MaterialData): void;
184
+ toData(): spec.MaterialData;
357
185
  /**
358
186
  * 创建 Material
359
187
  */
360
188
  static create: (engine: Engine, props?: MaterialProps) => Material;
361
- /**
362
- * 初始化 GPU 资源
363
- * @override
364
- */
365
- initialize(): void;
366
- createShaderVariant(): void;
367
- use(render: Renderer, globalUniforms: GlobalUniforms): void;
189
+ /*** 内部方法 ***/
190
+ private checkUniform;
191
+ dispose(): void;
368
192
  }
@@ -8,3 +8,4 @@ export * from './shape/ellipse';
8
8
  export * from './shape/poly-star';
9
9
  export * from './shape/polygon';
10
10
  export * from './shape/shape-path';
11
+ export * from './bezier';
@@ -17,7 +17,7 @@ export declare function registerPlugin(name: string, pluginClass: PluginConstruc
17
17
  export declare function unregisterPlugin(name: string): void;
18
18
  export declare class PluginSystem {
19
19
  static getPlugins(): Plugin[];
20
- static initializeComposition(composition: Composition, scene: Scene): void;
20
+ static initializeComposition(composition: Composition, scene?: Scene): void;
21
21
  static destroyComposition(comp: Composition): void;
22
22
  static onAssetsLoadStart(scene: Scene, options?: SceneLoadOptions): Promise<void[]>;
23
23
  static onAssetsLoadFinish(scene: Scene, options: SceneLoadOptions, engine: Engine): void;
@@ -1,9 +1,12 @@
1
1
  import * as spec from '@galacean/effects-specification';
2
2
  import { Component } from '../../components';
3
3
  import type { Engine } from '../../engine';
4
+ interface CameraControllerData extends spec.ComponentData, spec.CameraContent {
5
+ }
4
6
  export declare class CameraController extends Component {
5
7
  private options;
6
- constructor(engine: Engine, props?: spec.CameraContent);
8
+ constructor(engine: Engine, props?: CameraControllerData);
7
9
  onUpdate(): void;
8
- fromData(data: spec.CameraContent): void;
10
+ fromData(data: CameraControllerData): void;
9
11
  }
12
+ export {};
@@ -88,7 +88,7 @@ export declare class InteractComponent extends RendererComponent {
88
88
  beginDragTarget(options: spec.DragInteractOption, eventSystem: EventSystem): void;
89
89
  getHitTestParams: (force?: boolean) => HitTestTriangleParams | void;
90
90
  getBoundingBox(): BoundingBoxTriangle | void;
91
- fromData(data: spec.InteractContent): void;
91
+ fromData(data: spec.InteractComponentData): void;
92
92
  /**
93
93
  * 是否可以交互
94
94
  * @returns
@@ -28,7 +28,6 @@ export interface ParticleMeshData {
28
28
  y?: ValueGetter<number>;
29
29
  separateAxes?: boolean;
30
30
  };
31
- meshSlots?: number[];
32
31
  forceTarget?: {
33
32
  curve: ValueGetter<number>;
34
33
  target: spec.vec3;
@@ -1,8 +1,8 @@
1
1
  import type { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
2
2
  import type { Vector3 } from '@galacean/effects-math/es/core/vector3';
3
3
  import type { Texture } from '../../texture';
4
- import type { TrailMeshProps, TrailPointOptions } from './trail-mesh';
5
- import type { ParticleMeshProps, Point } from './particle-mesh';
4
+ import type { TrailPointOptions } from './trail-mesh';
5
+ import type { Point } from './particle-mesh';
6
6
  import { ParticleMesh } from './particle-mesh';
7
7
  import type { Mesh, Renderer } from '../../render';
8
8
  import type { Engine } from '../../engine';
@@ -14,7 +14,7 @@ export declare class ParticleSystemRenderer extends RendererComponent {
14
14
  meshes: Mesh[];
15
15
  particleMesh: ParticleMesh;
16
16
  private trailMesh?;
17
- constructor(engine: Engine, particleMeshProps?: ParticleMeshProps, trailMeshProps?: TrailMeshProps);
17
+ constructor(engine: Engine);
18
18
  onStart(): void;
19
19
  onUpdate(dt: number): void;
20
20
  render(renderer: Renderer): void;
@@ -1,6 +1,6 @@
1
1
  import type { Ray } from '@galacean/effects-math/es/core/index';
2
2
  import { Vector3 } from '@galacean/effects-math/es/core/index';
3
- import type { vec2, vec3, vec4 } from '@galacean/effects-specification';
3
+ import type { vec3 } from '@galacean/effects-specification';
4
4
  import * as spec from '@galacean/effects-specification';
5
5
  import { Component } from '../../components';
6
6
  import type { Engine } from '../../engine';
@@ -94,7 +94,6 @@ type TrailOptions = {
94
94
  blending: number;
95
95
  occlusion: boolean;
96
96
  transparentOcclusion: boolean;
97
- textureMap?: vec4;
98
97
  };
99
98
  interface ParticleTextureSheetAnimation {
100
99
  col: number;
@@ -112,24 +111,7 @@ type ParticleInteraction = {
112
111
  multiple?: boolean;
113
112
  radius: number;
114
113
  };
115
- export interface ParticleSystemOptions extends spec.ParticleOptions {
116
- meshSlots?: number[];
117
- }
118
- export interface ParticleSystemProps extends Omit<spec.ParticleContent, 'options' | 'renderer' | 'trails' | 'mask'> {
119
- options: ParticleSystemOptions;
120
- renderer: ParticleSystemRendererOptions;
121
- trails?: ParticleTrailProps;
122
- mask?: spec.MaskOptions;
123
- }
124
- export interface ParticleSystemRendererOptions extends Required<Omit<spec.RendererOptions, 'texture' | 'anchor' | 'particleOrigin'>> {
125
- texture: Texture;
126
- anchor?: vec2;
127
- particleOrigin?: spec.ParticleOrigin;
128
- }
129
- export interface ParticleTrailProps extends Omit<spec.ParticleTrail, 'texture' | 'mask'> {
130
- texture: Texture;
131
- textureMap: vec4;
132
- mask?: spec.MaskOptions;
114
+ export interface ParticleSystemProps extends spec.ParticleContent {
133
115
  }
134
116
  export type ParticleContent = [number, number, number, Point];
135
117
  export declare class ParticleSystem extends Component implements Maskable {
@@ -142,7 +124,6 @@ export declare class ParticleSystem extends Component implements Maskable {
142
124
  textureSheetAnimation?: ParticleTextureSheetAnimation;
143
125
  interaction?: ParticleInteraction;
144
126
  emissionStopped: boolean;
145
- destroyed: boolean;
146
127
  props: ParticleSystemProps;
147
128
  time: number;
148
129
  readonly maskManager: MaskProcessor;
@@ -157,7 +138,9 @@ export declare class ParticleSystem extends Component implements Maskable {
157
138
  private uvs;
158
139
  private basicTransform;
159
140
  private clickedPoint;
160
- constructor(engine: Engine, props?: ParticleSystemProps);
141
+ private particleMeshProps;
142
+ private trailMeshProps;
143
+ constructor(engine: Engine, props?: spec.ParticleSystemData);
161
144
  get timePassed(): number;
162
145
  get lifetime(): number;
163
146
  get particleCount(): number;
@@ -212,6 +195,6 @@ export declare class ParticleSystem extends Component implements Maskable {
212
195
  resumeParticleEmission(): void;
213
196
  getBoundingBox(): void | BoundingBoxSphere;
214
197
  getHitTestParams: (force?: boolean) => void | HitTestCustomParams;
215
- fromData(data: unknown): void;
198
+ fromData(data: spec.ParticleSystemData): void;
216
199
  }
217
200
  export {};
@@ -1,7 +1,7 @@
1
1
  import type { Matrix4 } from '@galacean/effects-math/es/core/index';
2
2
  import { Vector3 } from '@galacean/effects-math/es/core/index';
3
3
  import type * as spec from '@galacean/effects-specification';
4
- import type { GradientStop, vec4 } from '@galacean/effects-specification';
4
+ import type { GradientStop } from '@galacean/effects-specification';
5
5
  import type { Engine } from '../../engine';
6
6
  import { ValueGetter } from '../../math';
7
7
  import type { GPUCapability, ShaderWithSource } from '../../render';
@@ -24,7 +24,6 @@ export type TrailMeshProps = {
24
24
  mask: number;
25
25
  shaderCachePrefix: string;
26
26
  maskMode: number;
27
- textureMap: vec4;
28
27
  name: string;
29
28
  };
30
29
  export type TrailPointOptions = {
@@ -32,7 +32,7 @@ export declare abstract class Plugin {
32
32
  * @param composition - 合成对象
33
33
  * @param scene - 场景对象
34
34
  */
35
- onCompositionCreated(composition: Composition, scene: Scene): void;
35
+ onCompositionCreated(composition: Composition, scene?: Scene): void;
36
36
  /**
37
37
  * 合成销毁时触发。
38
38
  * @param composition - 合成对象