@galacean/effects-core 2.1.0-alpha.9 → 2.1.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 (41) hide show
  1. package/README.md +1 -1
  2. package/dist/comp-vfx-item.d.ts +2 -2
  3. package/dist/components/base-render-component.d.ts +9 -0
  4. package/dist/components/fake-3d-component.d.ts +28 -0
  5. package/dist/components/index.d.ts +1 -0
  6. package/dist/components/mesh-component.d.ts +3 -0
  7. package/dist/components/post-process-volume.d.ts +10 -10
  8. package/dist/components/renderer-component.d.ts +2 -0
  9. package/dist/components/shape-component.d.ts +7 -185
  10. package/dist/composition/scene-ticking.d.ts +14 -0
  11. package/dist/composition.d.ts +19 -10
  12. package/dist/effects-object.d.ts +23 -0
  13. package/dist/engine.d.ts +9 -0
  14. package/dist/events/event-emitter.d.ts +6 -0
  15. package/dist/events/types.d.ts +8 -1
  16. package/dist/index.js +1409 -675
  17. package/dist/index.js.map +1 -1
  18. package/dist/index.mjs +1406 -672
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/material/material.d.ts +14 -1
  21. package/dist/plugins/cal/playable-graph.d.ts +3 -0
  22. package/dist/plugins/interact/interact-item.d.ts +4 -1
  23. package/dist/plugins/interact/mesh-collider.d.ts +4 -0
  24. package/dist/plugins/shape/graphics-path.d.ts +5 -3
  25. package/dist/plugins/shape/poly-star.d.ts +42 -0
  26. package/dist/plugins/shape/rectangle.d.ts +1 -1
  27. package/dist/plugins/shape/shape-path.d.ts +12 -0
  28. package/dist/plugins/shape/shape-primitive.d.ts +0 -3
  29. package/dist/plugins/sprite/sprite-item.d.ts +1 -8
  30. package/dist/plugins/text/text-item.d.ts +2 -0
  31. package/dist/plugins/timeline/playable-assets/color-property-playable-asset.d.ts +1 -1
  32. package/dist/plugins/timeline/playable-assets/index.d.ts +2 -0
  33. package/dist/plugins/timeline/playable-assets/timeline-asset.d.ts +8 -2
  34. package/dist/plugins/timeline/playable-assets/vector4-property-playable-asset.d.ts +1 -1
  35. package/dist/plugins/timeline/playables/activation-mixer-playable.d.ts +0 -2
  36. package/dist/render/render-frame.d.ts +5 -2
  37. package/dist/render/renderer.d.ts +2 -1
  38. package/dist/shape/geometry.d.ts +2 -2
  39. package/dist/transform.d.ts +8 -0
  40. package/dist/vfx-item.d.ts +63 -22
  41. package/package.json +2 -2
package/README.md CHANGED
@@ -153,4 +153,4 @@ Uniforms involved and their types:
153
153
  30. uWaveParams: vec4
154
154
  ```
155
155
 
156
- ## [API Documentation](https://galacean.antgroup.com/effects/api/effects-core)
156
+ ## [API Documentation](https://www.galacean.com/effects/api/effects-core)
@@ -29,8 +29,8 @@ export declare class CompositionComponent extends Behaviour {
29
29
  getReusable(): boolean;
30
30
  onUpdate(dt: number): void;
31
31
  createContent(): void;
32
- showItems(): void;
33
- hideItems(): void;
32
+ onEnable(): void;
33
+ onDisable(): void;
34
34
  onDestroy(): void;
35
35
  hitTest(ray: Ray, x: number, y: number, regions: Region[], force?: boolean, options?: CompositionHitTestOptions): Region[];
36
36
  fromData(data: any): void;
@@ -7,6 +7,7 @@ import { Geometry } from '../render';
7
7
  import type { Engine } from '../engine';
8
8
  import type { BoundingBoxTriangle, HitTestTriangleParams } from '../plugins';
9
9
  import { Material } from '../material';
10
+ import type { GeometryFromShape } from '../shape';
10
11
  /**
11
12
  * 图层元素渲染属性, 经过处理后的 spec.SpriteContent.renderer
12
13
  */
@@ -14,6 +15,7 @@ export interface ItemRenderer extends Required<Omit<spec.RendererOptions, 'textu
14
15
  order: number;
15
16
  mask: number;
16
17
  texture: Texture;
18
+ shape?: GeometryFromShape;
17
19
  anchor?: spec.vec2;
18
20
  particleOrigin?: spec.ParticleOrigin;
19
21
  }
@@ -30,6 +32,9 @@ export interface ItemRenderInfo {
30
32
  cacheId: string;
31
33
  wireframe?: boolean;
32
34
  }
35
+ /**
36
+ * @since 2.1.0
37
+ */
33
38
  export declare class BaseRenderComponent extends RendererComponent {
34
39
  interaction?: {
35
40
  behavior: spec.InteractBehavior;
@@ -51,6 +56,10 @@ export declare class BaseRenderComponent extends RendererComponent {
51
56
  protected visible: boolean;
52
57
  protected isManualTimeSet: boolean;
53
58
  protected frameAnimationTime: number;
59
+ /**
60
+ *
61
+ * @param engine
62
+ */
54
63
  constructor(engine: Engine);
55
64
  /**
56
65
  * 设置当前 Mesh 的可见性。
@@ -0,0 +1,28 @@
1
+ import { Component } from './component';
2
+ import { EffectComponent } from './effect-component';
3
+ export declare class Fake3DComponent extends Component {
4
+ loop: boolean;
5
+ amountOfMotion: number;
6
+ animationLength: number;
7
+ mode: Fake3DAnimationMode;
8
+ startPositionX: number;
9
+ startPositionY: number;
10
+ startPositionZ: number;
11
+ endPositionX: number;
12
+ endPositionY: number;
13
+ endPositionZ: number;
14
+ amplitudeX: number;
15
+ amplitudeY: number;
16
+ amplitudeZ: number;
17
+ phaseX: number;
18
+ phaseY: number;
19
+ phaseZ: number;
20
+ effectComponent: EffectComponent;
21
+ onStart(): void;
22
+ onUpdate(dt: number): void;
23
+ updateFake3D(): void;
24
+ }
25
+ export declare enum Fake3DAnimationMode {
26
+ Circular = 0,
27
+ Linear = 1
28
+ }
@@ -4,3 +4,4 @@ export * from './effect-component';
4
4
  export * from './post-process-volume';
5
5
  export * from './base-render-component';
6
6
  export * from './shape-component';
7
+ export * from './fake-3d-component';
@@ -3,6 +3,9 @@ import { MeshCollider } from '../plugins';
3
3
  import type { Geometry } from '../render/geometry';
4
4
  import type { Renderer } from '../render/renderer';
5
5
  import { RendererComponent } from './renderer-component';
6
+ /**
7
+ * Mesh 组件
8
+ */
6
9
  export declare class MeshComponent extends RendererComponent {
7
10
  /**
8
11
  * 渲染的 Geometry
@@ -1,14 +1,14 @@
1
+ import * as spec from '@galacean/effects-specification';
1
2
  import { Behaviour } from './component';
3
+ import type { Engine } from '../engine';
4
+ /**
5
+ * @since 2.1.0
6
+ */
2
7
  export declare class PostProcessVolume extends Behaviour {
3
- bloomEnabled: boolean;
4
- threshold: number;
5
- bloomIntensity: number;
6
- brightness: number;
7
- saturation: number;
8
- contrast: number;
9
- vignetteIntensity: number;
10
- vignetteSmoothness: number;
11
- vignetteRoundness: number;
12
- toneMappingEnabled: boolean;
8
+ bloom: spec.Bloom;
9
+ vignette: spec.Vignette;
10
+ tonemapping: spec.Tonemapping;
11
+ colorAdjustments: spec.ColorAdjustments;
12
+ constructor(engine: Engine);
13
13
  onStart(): void;
14
14
  }
@@ -15,6 +15,8 @@ export declare class RendererComponent extends Component {
15
15
  set material(material: Material);
16
16
  render(renderer: Renderer): void;
17
17
  setVFXItem(item: VFXItem): void;
18
+ onEnable(): void;
19
+ onDisable(): void;
18
20
  fromData(data: unknown): void;
19
21
  toData(): void;
20
22
  dispose(): void;
@@ -1,4 +1,4 @@
1
- import type * as spec from '@galacean/effects-specification';
1
+ import * as spec from '@galacean/effects-specification';
2
2
  import type { Engine } from '../engine';
3
3
  import { MeshComponent } from './mesh-component';
4
4
  /**
@@ -12,193 +12,15 @@ export declare class ShapeComponent extends MeshComponent {
12
12
  private animated;
13
13
  private vert;
14
14
  private frag;
15
+ /**
16
+ *
17
+ * @param engine
18
+ */
15
19
  constructor(engine: Engine);
16
20
  onStart(): void;
17
21
  onUpdate(dt: number): void;
18
22
  private buildGeometryFromPath;
19
23
  private buildPath;
20
- fromData(data: ShapeComponentData): void;
21
- }
22
- /************************** Test Interface **********************************/
23
- /**
24
- * 矢量图形组件
25
- */
26
- export interface ShapeComponentData extends spec.ComponentData {
27
- /**
28
- * 矢量类型
29
- */
30
- type: ComponentShapeType;
31
- }
32
- /**
33
- * 矢量图形类型
34
- */
35
- export declare enum ComponentShapeType {
36
- /**
37
- * 自定义图形
38
- */
39
- CUSTOM = 0,
40
- /**
41
- * 矩形
42
- */
43
- RECTANGLE = 1,
44
- /**
45
- * 椭圆
46
- */
47
- ELLIPSE = 2,
48
- /**
49
- * 多边形
50
- */
51
- POLYGON = 3,
52
- /**
53
- * 星形
54
- */
55
- STAR = 4
56
- }
57
- /**
58
- * 自定义图形组件
59
- */
60
- export interface ShapeCustomComponent extends ShapeComponentData {
61
- /**
62
- * 矢量类型 - 形状
63
- */
64
- type: ComponentShapeType.CUSTOM;
65
- /**
66
- * 矢量参数 - 形状
67
- */
68
- param: ShapeCustomParam;
69
- }
70
- /**
71
- * 矢量路径参数
72
- */
73
- export interface ShapeCustomParam {
74
- /**
75
- * 路径点
76
- */
77
- points: spec.Vector3Data[];
78
- /**
79
- * 入射控制点
80
- */
81
- easingIn: spec.Vector3Data[];
82
- /**
83
- * 入射控制点
84
- */
85
- easingOut: spec.Vector3Data[];
86
- /**
87
- * 自定义形状
88
- */
89
- shapes: CustomShape[];
90
- }
91
- /**
92
- * 自定义形状参数
93
- */
94
- export interface CustomShape {
95
- /**
96
- * 是否垂直与平面 - 用于减少实时运算
97
- */
98
- verticalToPlane: 'x' | 'y' | 'z' | 'none';
99
- /**
100
- * 点索引 - 用于构成闭合图形
101
- */
102
- indexes: CustomShapePoint[];
103
- /**
104
- * 是否为闭合图形 - 用于Stroke
105
- */
106
- close: boolean;
107
- /**
108
- * 填充属性
109
- */
110
- fill?: ShapeFillParam;
111
- /**
112
- * 描边属性
113
- */
114
- stroke?: ShapeStrokeParam;
115
- /**
116
- * 空间变换
117
- */
118
- transform?: spec.TransformData;
119
- }
120
- /**
121
- * 自定义形状点
122
- */
123
- export interface CustomShapePoint {
124
- /**
125
- * 顶点索引
126
- */
127
- point: number;
128
- /**
129
- * 入射点索引
130
- */
131
- easingIn: number;
132
- /**
133
- * 出射点索引
134
- */
135
- easingOut: number;
136
- }
137
- /**
138
- * 矢量填充参数
139
- */
140
- export interface ShapeFillParam {
141
- /**
142
- * 填充颜色
143
- */
144
- color: spec.ColorExpression;
145
- }
146
- /**
147
- * 矢量描边参数
148
- */
149
- export interface ShapeStrokeParam {
150
- /**
151
- * 线宽
152
- */
153
- width: number;
154
- /**
155
- * 线颜色
156
- */
157
- color: spec.ColorExpression;
158
- /**
159
- * 连接类型
160
- */
161
- connectType: ShapeConnectType;
162
- /**
163
- * 点类型
164
- */
165
- pointType: ShapePointType;
166
- }
167
- export declare enum ShapeConnectType {
168
- }
169
- export declare enum ShapePointType {
170
- }
171
- /**
172
- * @description 椭圆组件参数
173
- */
174
- export interface ShapeEllipseComponent extends ShapeComponentData {
175
- type: ComponentShapeType.ELLIPSE;
176
- param: ShapeEllipseParam;
177
- }
178
- /**
179
- * @description 椭圆参数
180
- */
181
- export interface ShapeEllipseParam {
182
- /**
183
- * @description x轴半径
184
- * -- TODO 后续完善类型
185
- * -- TODO 可以看一下用xRadius/yRadius 还是 width/height
186
- */
187
- xRadius: number;
188
- /**
189
- * @description y轴半径
190
- */
191
- yRadius: number;
192
- /**
193
- * 填充属性
194
- */
195
- fill?: ShapeFillParam;
196
- /**
197
- * 描边属性
198
- */
199
- stroke?: ShapeStrokeParam;
200
- /**
201
- * 空间变换
202
- */
203
- transform?: spec.TransformData;
24
+ private setFillColor;
25
+ fromData(data: spec.ShapeComponentData): void;
204
26
  }
@@ -1,9 +1,23 @@
1
1
  import { Component } from '../components';
2
+ /**
3
+ *
4
+ */
2
5
  export declare class SceneTicking {
3
6
  update: UpdateTickData;
4
7
  lateUpdate: LateUpdateTickData;
8
+ /**
9
+ *
10
+ * @param obj
11
+ */
5
12
  addComponent(obj: Component): void;
13
+ /**
14
+ *
15
+ * @param obj
16
+ */
6
17
  removeComponent(obj: Component): void;
18
+ /**
19
+ *
20
+ */
7
21
  clear(): void;
8
22
  }
9
23
  declare class TickData {
@@ -1,6 +1,5 @@
1
1
  import * as spec from '@galacean/effects-specification';
2
2
  import type { Ray } from '@galacean/effects-math/es/core/ray';
3
- import type { Vector3 } from '@galacean/effects-math/es/core/vector3';
4
3
  import type { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
5
4
  import { Camera } from './camera';
6
5
  import { CompositionComponent } from './comp-vfx-item';
@@ -17,6 +16,9 @@ import type { CompositionEvent } from './events';
17
16
  import { EventEmitter } from './events';
18
17
  import type { PostProcessVolume } from './components';
19
18
  import { SceneTicking } from './composition/scene-ticking';
19
+ /**
20
+ * 合成统计信息
21
+ */
20
22
  export interface CompositionStatistic {
21
23
  loadStart: number;
22
24
  loadTime: number;
@@ -29,18 +31,15 @@ export interface CompositionStatistic {
29
31
  */
30
32
  firstFrameTime: number;
31
33
  }
34
+ /**
35
+ * 合成消息对象
36
+ */
32
37
  export interface MessageItem {
33
38
  id: string;
34
39
  name: string;
35
40
  phrase: number;
36
41
  compositionId: string;
37
42
  }
38
- export interface CompItemClickedData {
39
- name: string;
40
- id: string;
41
- hitPositions: Vector3[];
42
- position: Vector3;
43
- }
44
43
  /**
45
44
  *
46
45
  */
@@ -49,6 +48,9 @@ export interface CompositionHitTestOptions {
49
48
  stop?: (region: Region) => boolean;
50
49
  skip?: (item: VFXItem) => boolean;
51
50
  }
51
+ /**
52
+ *
53
+ */
52
54
  export interface CompositionProps {
53
55
  reusable?: boolean;
54
56
  baseRenderOrder?: number;
@@ -66,6 +68,9 @@ export interface CompositionProps {
66
68
  */
67
69
  export declare class Composition extends EventEmitter<CompositionEvent<Composition>> implements Disposable, LostHandler {
68
70
  renderer: Renderer;
71
+ /**
72
+ *
73
+ */
69
74
  sceneTicking: SceneTicking;
70
75
  /**
71
76
  * 当前帧的渲染数据对象
@@ -97,6 +102,10 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
97
102
  * @since 1.6.0
98
103
  */
99
104
  interactive: boolean;
105
+ /**
106
+ * 合成是否结束
107
+ */
108
+ isEnded: boolean;
100
109
  compositionSourceManager: CompositionSourceManager;
101
110
  /**
102
111
  * 合成id
@@ -121,7 +130,7 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
121
130
  /**
122
131
  * 是否在合成结束时自动销毁引用的纹理,合成重播时不销毁
123
132
  */
124
- autoRefTex: boolean;
133
+ readonly autoRefTex: boolean;
125
134
  /**
126
135
  * 当前合成名称
127
136
  */
@@ -149,7 +158,7 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
149
158
  /**
150
159
  * 预合成的合成属性,在 content 中会被其元素属性覆盖
151
160
  */
152
- refCompositionProps: Map<string, spec.CompositionData>;
161
+ readonly refCompositionProps: Map<string, spec.CompositionData>;
153
162
  /**
154
163
  * 合成的相机对象
155
164
  */
@@ -179,6 +188,7 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
179
188
  */
180
189
  private paused;
181
190
  private lastVideoUpdateTime;
191
+ private isEndCalled;
182
192
  private readonly texInfo;
183
193
  /**
184
194
  * 合成中消息元素创建/销毁时触发的回调
@@ -291,7 +301,6 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
291
301
  */
292
302
  protected reset(): void;
293
303
  prepareRender(): void;
294
- protected gatherRendererComponent(vfxItem: VFXItem, renderFrame: RenderFrame): void;
295
304
  /**
296
305
  * 合成更新,针对所有 item 的更新
297
306
  * @param deltaTime - 更新的时间步长
@@ -5,15 +5,35 @@ import type { Engine } from './engine';
5
5
  */
6
6
  export declare abstract class EffectsObject {
7
7
  engine: Engine;
8
+ /**
9
+ *
10
+ * @param obj
11
+ * @returns
12
+ */
8
13
  static is(obj: unknown): obj is EffectsObject;
9
14
  protected guid: string;
10
15
  /**
11
16
  * 存储需要序列化的数据
12
17
  */
13
18
  readonly taggedProperties: Record<string, any>;
19
+ /**
20
+ *
21
+ * @param engine
22
+ */
14
23
  constructor(engine: Engine);
24
+ /**
25
+ *
26
+ * @returns
27
+ */
15
28
  getInstanceId(): string;
29
+ /**
30
+ *
31
+ * @param guid
32
+ */
16
33
  setInstanceId(guid: string): void;
34
+ /**
35
+ *
36
+ */
17
37
  toData(): void;
18
38
  /**
19
39
  * 反序列化函数
@@ -21,5 +41,8 @@ export declare abstract class EffectsObject {
21
41
  * @param data - 对象的序列化的数据
22
42
  */
23
43
  fromData(data: spec.EffectsObjectData): void;
44
+ /**
45
+ *
46
+ */
24
47
  dispose(): void;
25
48
  }
package/dist/engine.d.ts CHANGED
@@ -11,9 +11,15 @@ import type { Disposable } from './utils';
11
11
  * Engine 基类,负责维护所有 GPU 资源的管理及销毁
12
12
  */
13
13
  export declare class Engine implements Disposable {
14
+ /**
15
+ * 渲染器
16
+ */
14
17
  renderer: Renderer;
15
18
  emptyTexture: Texture;
16
19
  transparentTexture: Texture;
20
+ /**
21
+ * GPU 能力
22
+ */
17
23
  gpuCapability: GPUCapability;
18
24
  jsonSceneData: SceneData;
19
25
  objectInstance: Record<string, EffectsObject>;
@@ -29,6 +35,9 @@ export declare class Engine implements Disposable {
29
35
  protected geometries: Geometry[];
30
36
  protected meshes: Mesh[];
31
37
  protected renderPasses: RenderPass[];
38
+ /**
39
+ *
40
+ */
32
41
  constructor();
33
42
  /**
34
43
  * 创建 Engine 对象。
@@ -1,3 +1,6 @@
1
+ /**
2
+ *
3
+ */
1
4
  export type EventEmitterListener<P extends any[]> = (...callbackArgs: P) => void;
2
5
  /**
3
6
  * 事件监听器选项
@@ -8,6 +11,9 @@ export type EventEmitterOptions = {
8
11
  */
9
12
  once?: boolean;
10
13
  };
14
+ /**
15
+ * 事件监听器
16
+ */
11
17
  export declare class EventEmitter<T extends Record<string, any[]>> {
12
18
  private listeners;
13
19
  /**
@@ -14,7 +14,7 @@ export type ItemEvent = {
14
14
  ['message']: [message: Omit<MessageItem, 'compositionId'>];
15
15
  };
16
16
  /**
17
- * Compositio 可以绑定的事件
17
+ * Composition 可以绑定的事件
18
18
  */
19
19
  export type CompositionEvent<C> = {
20
20
  /**
@@ -34,4 +34,11 @@ export type CompositionEvent<C> = {
34
34
  ['end']: [endInfo: {
35
35
  composition: C;
36
36
  }];
37
+ /**
38
+ * 时间跳转事件
39
+ * 用于在合成中跳转到指定时间
40
+ */
41
+ ['goto']: [gotoInfo: {
42
+ time: number;
43
+ }];
37
44
  };