@galacean/effects-core 2.0.0-alpha.1 → 2.0.0-alpha.10

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 (56) hide show
  1. package/dist/asset-loader.d.ts +16 -85
  2. package/dist/asset-manager.d.ts +1 -80
  3. package/dist/asset-migrations.d.ts +1 -3
  4. package/dist/canvas-pool.d.ts +10 -0
  5. package/dist/components/component.d.ts +1 -1
  6. package/dist/composition.d.ts +8 -3
  7. package/dist/constants.d.ts +0 -1
  8. package/dist/decorators.d.ts +1 -1
  9. package/dist/downloader.d.ts +2 -8
  10. package/dist/effects-object.d.ts +2 -2
  11. package/dist/engine.d.ts +4 -3
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.js +17014 -19609
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.mjs +17751 -20334
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/material/material.d.ts +18 -5
  18. package/dist/material/types.d.ts +0 -5
  19. package/dist/material/utils.d.ts +1 -1
  20. package/dist/math/bezier.d.ts +84 -0
  21. package/dist/math/keyframe-info.d.ts +39 -0
  22. package/dist/math/utils.d.ts +6 -2
  23. package/dist/math/value-getter.d.ts +32 -31
  24. package/dist/plugin-system.d.ts +1 -2
  25. package/dist/plugins/cal/calculate-item.d.ts +1 -1
  26. package/dist/plugins/cal/calculate-vfx-item.d.ts +8 -3
  27. package/dist/plugins/cal/playable-graph.d.ts +4 -0
  28. package/dist/plugins/cal/track.d.ts +3 -4
  29. package/dist/plugins/camera/camera-controller-node.d.ts +1 -1
  30. package/dist/plugins/interact/interact-mesh.d.ts +1 -1
  31. package/dist/plugins/particle/particle-loader.d.ts +1 -1
  32. package/dist/plugins/particle/particle-mesh.d.ts +6 -6
  33. package/dist/plugins/particle/particle-vfx-item.d.ts +1 -0
  34. package/dist/plugins/particle/trail-mesh.d.ts +6 -6
  35. package/dist/plugins/plugin.d.ts +1 -2
  36. package/dist/plugins/sprite/sprite-item.d.ts +13 -3
  37. package/dist/plugins/text/text-item.d.ts +1 -0
  38. package/dist/render/create-copy-shader.d.ts +1 -1
  39. package/dist/render/global-volume.d.ts +3 -0
  40. package/dist/render/index.d.ts +1 -0
  41. package/dist/render/render-frame.d.ts +2 -2
  42. package/dist/render/render-pass.d.ts +2 -2
  43. package/dist/{semantic-map.d.ts → render/semantic-map.d.ts} +4 -4
  44. package/dist/render/shader.d.ts +9 -2
  45. package/dist/scene.d.ts +79 -3
  46. package/dist/shader/index.d.ts +0 -11
  47. package/dist/shape/sphere.d.ts +0 -3
  48. package/dist/template-image.d.ts +10 -0
  49. package/dist/texture/texture.d.ts +6 -0
  50. package/dist/vfx-item.d.ts +2 -3
  51. package/package.json +4 -4
  52. package/dist/template-image/index.d.ts +0 -67
  53. package/dist/template-image/qcanvas-viewer.d.ts +0 -21
  54. package/dist/template-image/qtext.d.ts +0 -96
  55. package/dist/template-image/template-v1.d.ts +0 -27
  56. package/dist/template-image/text-metrics.d.ts +0 -18
@@ -1,5 +1,5 @@
1
- import type { Matrix3, Matrix4, Quaternion, Vector2, Vector3, Vector4 } from '@galacean/effects-math/es/core/index';
2
- import type { GlobalUniforms, Renderer, ShaderWithSource } from '../render';
1
+ import type { Matrix3, Matrix4, Quaternion, Vector2, Vector3, Vector4, Color } from '@galacean/effects-math/es/core/index';
2
+ import type { GlobalUniforms, Renderer, Shader, ShaderWithSource } from '../render';
3
3
  import type { Texture } from '../texture';
4
4
  import type { DestroyOptions, Disposable } from '../utils';
5
5
  import type { UniformSemantic, UniformValue } from './types';
@@ -55,7 +55,9 @@ export interface MaterialProps {
55
55
  * Material 抽象类
56
56
  */
57
57
  export declare abstract class Material extends EffectsObject implements Disposable {
58
+ shader: Shader;
58
59
  shaderSource: ShaderWithSource;
60
+ stringTags: Record<string, string>;
59
61
  readonly uniformSemantics: Record<string, UniformSemantic>;
60
62
  readonly renderType: MaterialRenderType;
61
63
  readonly name: string;
@@ -247,6 +249,17 @@ export declare abstract class Material extends EffectsObject implements Disposab
247
249
  * @param value - 要设置的 uniform 数据
248
250
  */
249
251
  abstract setVector4(name: string, value: Vector4): void;
252
+ /**
253
+ * 获取 Material 的 Color 类型的 uniform 数据
254
+ * @param name
255
+ */
256
+ abstract getColor(name: string): Color | null;
257
+ /**
258
+ * 设置 Color 类型的 uniform 的数据
259
+ * @param name - uniform 名称
260
+ * @param value - 要设置的 uniform 数据
261
+ */
262
+ abstract setColor(name: string, value: Color): void;
250
263
  /**
251
264
  * 获取 Material 的 Quaternion 类型的 uniform 数据
252
265
  * @param name
@@ -320,9 +333,9 @@ export declare abstract class Material extends EffectsObject implements Disposab
320
333
  */
321
334
  abstract hasUniform(name: string): boolean;
322
335
  /******** 预留接口,暂时不用实现 ***********************/
323
- abstract enableKeyword(keyword: string): void;
324
- abstract disableKeyword(keyword: string): void;
325
- abstract isKeywordEnabled(keyword: string): boolean;
336
+ abstract enableMacro(keyword: string, value?: boolean | number): void;
337
+ abstract disableMacro(keyword: string): void;
338
+ abstract isMacroEnabled(keyword: string): boolean;
326
339
  /***************************************************/
327
340
  /**
328
341
  * Material 的克隆方法(不接入滤镜,本方法可以不做实现)
@@ -33,11 +33,6 @@ export interface MaterialStates extends MaterialBlendingStates, MaterialStencilS
33
33
  polygonOffset?: [factor: number, units: number];
34
34
  polygonOffsetFill?: boolean;
35
35
  }
36
- export interface FilterMaterialStates extends MaterialStates {
37
- blendMode?: spec.BlendingMode;
38
- side?: spec.SideMode;
39
- maskMode?: spec.MaskMode;
40
- }
41
36
  export interface MaterialDataBlockDestroyOptions {
42
37
  textures?: DestroyOptions;
43
38
  }
@@ -14,4 +14,4 @@ export declare function getPreMultiAlpha(blending?: number): number;
14
14
  export declare function createShaderWithMarcos(marcos: ShaderMarcos, shader: string, shaderType: ShaderType, level: number): string;
15
15
  export declare function setBlendMode(material: Material, blendMode?: number): void;
16
16
  export declare function setSideMode(material: Material, side: spec.SideMode): void;
17
- export declare function setMaskMode(material: Material, maskMode: number): void;
17
+ export declare function setMaskMode(material: Material, maskMode: spec.MaskMode): void;
@@ -0,0 +1,84 @@
1
+ import type * as spec from '@galacean/effects-specification';
2
+ import { Vector2 } from '@galacean/effects-math/es/core/vector2';
3
+ import { Vector3 } from '@galacean/effects-math/es/core/vector3';
4
+ export declare class BezierLengthData {
5
+ points: Array<{
6
+ partialLength: number;
7
+ point: Vector3;
8
+ }>;
9
+ totalLength: number;
10
+ constructor(points: Array<{
11
+ partialLength: number;
12
+ point: Vector3;
13
+ }>, totalLength: number);
14
+ }
15
+ export declare const BezierMap: Record<string, BezierEasing>;
16
+ export declare const BezierDataMap: Record<string, BezierLengthData>;
17
+ /**
18
+ * @param p1 起始点
19
+ * @param p2 终点
20
+ * @param p3 起始控制点
21
+ * @param p4 终止控制点
22
+ * @returns
23
+ */
24
+ export declare function buildBezierData(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3): {
25
+ data: BezierLengthData;
26
+ interval: Vector3;
27
+ };
28
+ export declare class BezierPath {
29
+ p1: Vector3;
30
+ p2: Vector3;
31
+ p3: Vector3;
32
+ p4: Vector3;
33
+ readonly lengthData: BezierLengthData;
34
+ readonly interval: Vector3;
35
+ readonly totalLength: number;
36
+ private catching;
37
+ constructor(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3);
38
+ /**
39
+ * 获取路径在指定比例长度上点的坐标
40
+ * @param percent 路径长度的比例
41
+ */
42
+ getPointInPercent(percent: number): Vector3;
43
+ }
44
+ export declare class BezierEasing {
45
+ mX1: number;
46
+ mY1: number;
47
+ mX2: number;
48
+ mY2: number;
49
+ private precomputed;
50
+ private mSampleValues;
51
+ constructor(mX1: number, mY1: number, mX2: number, mY2: number);
52
+ precompute(): void;
53
+ getValue(x: number): number;
54
+ calcSampleValues(): void;
55
+ getTForX(aX: number): number;
56
+ }
57
+ export declare function buildEasingCurve(leftKeyframe: spec.BezierKeyframeValue, rightKeyframe: spec.BezierKeyframeValue): {
58
+ points: Vector2[];
59
+ timeInterval: number;
60
+ valueInterval: number;
61
+ curve: BezierEasing;
62
+ };
63
+ /**
64
+ * 根据关键帧类型获取贝塞尔曲线上的关键点
65
+ */
66
+ export declare function getControlPoints(leftKeyframe: spec.BezierKeyframeValue, rightKeyframe: spec.BezierKeyframeValue, lineToBezier: boolean): ({
67
+ type: 'ease';
68
+ p0: Vector2;
69
+ p1: Vector2;
70
+ p2: Vector2;
71
+ p3: Vector2;
72
+ isHold?: boolean;
73
+ leftHoldLine?: boolean;
74
+ rightHoldLine?: boolean;
75
+ } | {
76
+ type: 'line';
77
+ p0: Vector2;
78
+ p1: Vector2;
79
+ p2?: Vector2;
80
+ p3?: Vector2;
81
+ isHold?: boolean;
82
+ leftHoldLine?: boolean;
83
+ rightHoldLine?: boolean;
84
+ });
@@ -0,0 +1,39 @@
1
+ import { Vector2 } from '@galacean/effects-math/es/core/vector2';
2
+ import * as spec from '@galacean/effects-specification';
3
+ export declare const keyframeInfo: {
4
+ /**
5
+ * 根据不同关键帧类型,获取位于曲线上的点
6
+ */
7
+ getPointInCurve(keyframe: spec.BezierKeyframeValue): Vector2;
8
+ /**
9
+ * 根据不同关键帧类型,获取位于曲线上的点的索引
10
+ */
11
+ getPointIndexInCurve(keyframe: spec.BezierKeyframeValue): {
12
+ xIndex: number;
13
+ yIndex: number;
14
+ };
15
+ /**
16
+ * 关键帧左侧是否为缓动类型(否则为线段)
17
+ */
18
+ isLeftSideEase(keyframe: spec.BezierKeyframeValue): keyframe is spec.EaseKeyframeValue | spec.EaseInKeyframeValue | spec.EaseHoldOutKeyframeValue;
19
+ /**
20
+ * 关键帧右侧是否为缓动类型(否则为线段)
21
+ */
22
+ isRightSideEase(keyframe: spec.BezierKeyframeValue): keyframe is spec.EaseKeyframeValue | spec.EaseOutKeyframeValue | spec.EaseHoldInKeyframeValue;
23
+ /**
24
+ * 关键帧左侧是否为缓动类型(否则为线段)
25
+ */
26
+ isKeyframeTypeLeftSideEase(keyframeType: spec.BezierKeyframeType): boolean;
27
+ /**
28
+ * 关键帧右侧是否为缓动类型(否则为线段)
29
+ */
30
+ isKeyframeTypeRightSideEase(keyframeType: spec.BezierKeyframeType): boolean;
31
+ /**
32
+ * 是否为定格进关键帧
33
+ */
34
+ isHoldInKeyframe(keyframe: spec.BezierKeyframeValue): boolean;
35
+ /**
36
+ * 是否为定格出关键帧
37
+ */
38
+ isHoldOutKeyframe(keyframe: spec.BezierKeyframeValue): boolean;
39
+ };
@@ -1,6 +1,7 @@
1
1
  import type { vec2, vec3, vec4 } from '@galacean/effects-specification';
2
- import type { TriangleLike } from '@galacean/effects-math/es/core/index';
3
- import { Vector3, Ray } from '@galacean/effects-math/es/core/index';
2
+ import { Vector3 } from '@galacean/effects-math/es/core/vector3';
3
+ import { Ray } from '@galacean/effects-math/es/core/ray';
4
+ import type { TriangleLike } from '@galacean/effects-math/es/core/type';
4
5
  import type { Camera } from '../camera';
5
6
  export type vec = number[];
6
7
  export declare function ensureVec3(num?: any): vec3;
@@ -12,3 +13,6 @@ export declare const particleOriginTranslateMap: Record<number, vec2>;
12
13
  export declare function nearestPowerOfTwo(value: number): number;
13
14
  export declare function setRayFromCamera(x: number, y: number, camera: Camera): Ray;
14
15
  export declare function trianglesFromRect(position: Vector3, halfWidth: number, halfHeight: number): TriangleLike[];
16
+ export declare function decimalEqual(a: number, b: number, epsilon?: number): boolean;
17
+ export declare function numberToFix(a: number, fixed?: number): number;
18
+ export declare function pointOnLine(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): boolean;
@@ -1,5 +1,9 @@
1
+ import type { Vector2 } from '@galacean/effects-math/es/core/vector2';
2
+ import { Vector3 } from '@galacean/effects-math/es/core/vector3';
1
3
  import * as spec from '@galacean/effects-specification';
2
4
  import type { ColorStop } from '../utils';
5
+ import type { BezierEasing } from './bezier';
6
+ import { BezierPath } from './bezier';
3
7
  interface KeyFrameMeta {
4
8
  curves: ValueGetter<any>[];
5
9
  index: number;
@@ -8,6 +12,7 @@ interface KeyFrameMeta {
8
12
  curveCount: number;
9
13
  }
10
14
  export declare class ValueGetter<T> {
15
+ static getAllData(meta: KeyFrameMeta, halfFloat?: boolean): Uint16Array | Float32Array;
11
16
  constructor(arg: any);
12
17
  onCreate(props: any): void;
13
18
  getIntegrateValue(t0: number, t1: number, timeScale?: number): T;
@@ -16,6 +21,7 @@ export declare class ValueGetter<T> {
16
21
  toUniform(meta: KeyFrameMeta): Float32Array;
17
22
  map(func: (n: T) => T): void;
18
23
  scaleXCoord(scale: number): ValueGetter<T>;
24
+ toData(): ArrayLike<number>;
19
25
  }
20
26
  export declare class StaticValue extends ValueGetter<number> {
21
27
  private value;
@@ -65,28 +71,6 @@ export declare class GradientValue extends ValueGetter<number[]> {
65
71
  getStops(): ColorStop[];
66
72
  getValue(time: number): number[];
67
73
  }
68
- export type KeyFrame = {
69
- inTangent: number;
70
- outTangent: number;
71
- time: number;
72
- value: number;
73
- };
74
- export declare class CurveValue extends ValueGetter<number> {
75
- keys: KeyFrame[] | number[][];
76
- min: number;
77
- dist: number;
78
- isCurveValue: boolean;
79
- static getAllData(meta: KeyFrameMeta, halfFloat?: boolean): Uint16Array | Float32Array;
80
- onCreate(props: number[] & number[][]): void;
81
- getValue(time: number): number;
82
- getIntegrateByTime(t0: number, t1: number): number;
83
- getIntegrateValue(t0: number, t1: number, ts: number): number;
84
- integrate(time: number, byTime: boolean): number;
85
- toData(): Float32Array;
86
- toUniform(meta: any): Float32Array;
87
- map(func: (num: number) => number): this;
88
- scaleXCoord(scale: number): this;
89
- }
90
74
  export declare class LineSegments extends ValueGetter<number> {
91
75
  isLineSeg: boolean;
92
76
  keys: number[][];
@@ -103,17 +87,34 @@ export declare class LineSegments extends ValueGetter<number> {
103
87
  map(func: (k: number) => number): this;
104
88
  scaleXCoord(scale: number): this;
105
89
  }
106
- export declare class PathSegments extends ValueGetter<number[]> {
90
+ export declare class BezierCurve extends ValueGetter<number> {
91
+ curveMap: Record<string, {
92
+ points: Vector2[];
93
+ timeInterval: number;
94
+ valueInterval: number;
95
+ curve: BezierEasing;
96
+ }>;
107
97
  keys: number[][];
108
- values: number[][];
109
- onCreate(props: number[][][]): void;
110
- getValue(time: number): number[];
111
- calculateVec(i: number, dt: number): number[];
98
+ onCreate(props: spec.BezierKeyframeValue[]): void;
99
+ getValue(time: number): number;
100
+ getIntegrateValue(t0: number, t1: number, ts?: number): number;
101
+ getIntegrateByTime(t0: number, t1: number): number;
102
+ getCurveIntegrateValue(curveKey: string, time: number): number;
103
+ getCurveValue(curveKey: string, time: number): number;
104
+ toUniform(meta: KeyFrameMeta): Float32Array;
105
+ toData(): Float32Array;
112
106
  }
113
- export declare class BezierSegments extends PathSegments {
114
- cps: number[][];
115
- onCreate(props: number[][][]): void;
116
- calculateVec(i: number, t: number): number[];
107
+ export declare class BezierCurvePath extends ValueGetter<Vector3> {
108
+ curveSegments: Record<string, {
109
+ points: Vector2[];
110
+ easingCurve: BezierEasing;
111
+ timeInterval: number;
112
+ valueInterval: number;
113
+ pathCurve: BezierPath;
114
+ }>;
115
+ onCreate(props: spec.BezierCurvePathValue): void;
116
+ getValue(time: number): Vector3;
117
+ getPercValue(curveKey: string, time: number): number;
117
118
  }
118
119
  export declare function createValueGetter(args: any): ValueGetter<any>;
119
120
  export declare function getKeyFrameMetaByRawValue(meta: KeyFrameMeta, value?: [type: spec.ValueType, value: any]): void;
@@ -1,9 +1,8 @@
1
1
  import type * as spec from '@galacean/effects-specification';
2
- import type { SceneLoadOptions } from './asset-manager';
3
2
  import type { Composition } from './composition';
4
3
  import type { Plugin, PluginConstructor } from './plugins';
5
4
  import type { RenderFrame, Renderer } from './render';
6
- import type { Scene } from './scene';
5
+ import type { Scene, SceneLoadOptions } from './scene';
7
6
  import type { VFXItemConstructor, VFXItemProps } from './vfx-item';
8
7
  import { VFXItem } from './vfx-item';
9
8
  export declare const pluginLoaderMap: Record<string, PluginConstructor>;
@@ -12,7 +12,7 @@ export type ItemBasicTransform = {
12
12
  position: Vector3;
13
13
  rotation: Euler;
14
14
  scale: Vector3;
15
- path?: ValueGetter<spec.vec3>;
15
+ path?: ValueGetter<Vector3>;
16
16
  };
17
17
  export type ItemLinearVelOverLifetime = {
18
18
  asMovement?: boolean;
@@ -3,12 +3,12 @@ import type * as spec from '@galacean/effects-specification';
3
3
  import type { ValueGetter } from '../../math';
4
4
  import { AnimationPlayable } from './animation-playable';
5
5
  import type { ItemBasicTransform, ItemLinearVelOverLifetime } from './calculate-item';
6
- import { Playable } from './playable-graph';
6
+ import { Playable, PlayableAsset } from './playable-graph';
7
7
  /**
8
8
  * @since 2.0.0
9
9
  * @internal
10
10
  */
11
- export declare class AnimationClipPlayable extends AnimationPlayable {
11
+ export declare class TransformAnimationPlayable extends AnimationPlayable {
12
12
  originalTransform: ItemBasicTransform;
13
13
  protected sizeSeparateAxes: boolean;
14
14
  protected sizeXOverLifetime: ValueGetter<number>;
@@ -45,6 +45,11 @@ export declare class AnimationClipPlayable extends AnimationPlayable {
45
45
  private sampleAnimation;
46
46
  fromData(data: TransformAnimationData): void;
47
47
  }
48
+ export declare class TransformAnimationPlayableAsset extends PlayableAsset {
49
+ transformAnimationData: TransformAnimationData;
50
+ createPlayable(): Playable;
51
+ fromData(data: TransformAnimationData): void;
52
+ }
48
53
  export interface TransformAnimationData {
49
54
  /**
50
55
  * 元素大小变化属性
@@ -63,7 +68,7 @@ export interface TransformAnimationData {
63
68
  * @since 2.0.0
64
69
  * @internal
65
70
  */
66
- export declare class ActivationClipPlayable extends Playable {
71
+ export declare class ActivationPlayable extends Playable {
67
72
  onGraphStart(): void;
68
73
  onPlayablePlay(): void;
69
74
  onPlayableDestroy(): void;
@@ -60,3 +60,7 @@ export declare class PlayableOutput {
60
60
  onGraphStart(): void;
61
61
  processFrame(dt: number): void;
62
62
  }
63
+ export declare abstract class PlayableAsset {
64
+ abstract createPlayable(): Playable;
65
+ fromData(data: any): void;
66
+ }
@@ -1,22 +1,21 @@
1
1
  import type { VFXItem, VFXItemContent } from '../../vfx-item';
2
- import { Playable, PlayableOutput } from './playable-graph';
2
+ import { Playable, PlayableAsset, PlayableOutput } from './playable-graph';
3
3
  /**
4
4
  * @since 2.0.0
5
5
  * @internal
6
6
  */
7
- export declare class Track {
7
+ export declare class Track extends PlayableAsset {
8
8
  id: string;
9
9
  name: string;
10
10
  bindingItem: VFXItem<VFXItemContent>;
11
11
  private clips;
12
12
  private clipSeed;
13
- constructor();
14
13
  createOutput(): PlayableOutput;
15
14
  /**
16
15
  * 重写该方法以创建自定义混合器
17
16
  */
18
17
  createMixerPlayable(): Playable;
19
- createPlayebleTree(): Playable;
18
+ createPlayable(): Playable;
20
19
  createClip<T extends Playable>(classConstructor: new () => T, name?: string): TimelineClip;
21
20
  getClips(): TimelineClip[];
22
21
  findClip(name: string): TimelineClip | undefined;
@@ -1,5 +1,5 @@
1
1
  import { Euler, Vector3 } from '@galacean/effects-math/es/core/index';
2
- import type * as spec from '@galacean/effects-specification';
2
+ import * as spec from '@galacean/effects-specification';
3
3
  import { ItemBehaviour } from '../../components';
4
4
  import type { Engine } from '../../engine';
5
5
  export declare class CameraController extends ItemBehaviour {
@@ -1,8 +1,8 @@
1
1
  import type * as spec from '@galacean/effects-specification';
2
+ import type { Engine } from '../../engine';
2
3
  import type { MeshRendererOptions } from '../../render';
3
4
  import { Mesh } from '../../render';
4
5
  import type { Transform } from '../../transform';
5
- import type { Engine } from '../../engine';
6
6
  export declare class InteractMesh {
7
7
  private readonly transform;
8
8
  private readonly engine;
@@ -1,4 +1,4 @@
1
- import * as spec from '@galacean/effects-specification';
1
+ import type * as spec from '@galacean/effects-specification';
2
2
  import type { Engine } from '../../engine';
3
3
  import type { Renderer } from '../../render';
4
4
  import { AbstractPlugin } from '../index';
@@ -1,12 +1,13 @@
1
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 { ValueGetter } from '../../math';
5
- import type { SharedShaderWithSource, GPUCapability } from '../../render';
2
+ import type { Matrix4 } from '@galacean/effects-math/es/core/matrix4';
3
+ import { Vector2 } from '@galacean/effects-math/es/core/vector2';
4
+ import { Vector3 } from '@galacean/effects-math/es/core/vector3';
5
+ import type { Engine } from '../../engine';
6
+ import { ValueGetter } from '../../math';
7
+ import type { GPUCapability, SharedShaderWithSource } from '../../render';
6
8
  import { Geometry, Mesh } from '../../render';
7
9
  import { Texture } from '../../texture';
8
10
  import { Transform } from '../../transform';
9
- import type { Engine } from '../../engine';
10
11
  export type Point = {
11
12
  vel: Vector3;
12
13
  lifetime: number;
@@ -66,7 +67,6 @@ export interface ParticleMeshProps extends ParticleMeshData {
66
67
  mask: number;
67
68
  maskMode: number;
68
69
  side: number;
69
- filter?: spec.FilterParams;
70
70
  transparentOcclusion?: boolean;
71
71
  matrix?: Matrix4;
72
72
  sprite?: {
@@ -9,3 +9,4 @@ export declare class ParticleBehaviourPlayable extends Playable {
9
9
  onPlayablePlay(): void;
10
10
  processFrame(dt: number): void;
11
11
  }
12
+ export declare const particleUniformTypeMap: Record<string, string>;
@@ -1,12 +1,12 @@
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
1
  import type { Matrix4 } from '@galacean/effects-math/es/core/index';
5
- import type { ShaderWithSource, GPUCapability } from '../../render';
2
+ import { Vector3 } from '@galacean/effects-math/es/core/index';
3
+ import type * as spec from '@galacean/effects-specification';
4
+ import type { GradientStop, vec4 } from '@galacean/effects-specification';
5
+ import type { Engine } from '../../engine';
6
+ import { ValueGetter } from '../../math';
7
+ import type { GPUCapability, ShaderWithSource } from '../../render';
6
8
  import { Geometry, Mesh } from '../../render';
7
9
  import { Texture } from '../../texture';
8
- import type { Engine } from '../../engine';
9
- import type { ValueGetter } from '../../math';
10
10
  export type TrailMeshProps = {
11
11
  maxTrailCount: number;
12
12
  pointCountPerTrail: number;
@@ -1,6 +1,5 @@
1
1
  import type * as spec from '@galacean/effects-specification';
2
- import type { SceneLoadOptions } from '../asset-manager';
3
- import type { Scene } from '../scene';
2
+ import type { Scene, SceneLoadOptions } from '../scene';
4
3
  import type { VFXItem } from '../vfx-item';
5
4
  import type { RenderFrame, Renderer } from '../render';
6
5
  import type { Composition } from '../composition';
@@ -23,9 +23,6 @@ export interface SpriteItemProps extends Omit<spec.SpriteContent, 'renderer'> {
23
23
  shape: GeometryFromShape;
24
24
  texture: Texture;
25
25
  } & Omit<spec.RendererOptions, 'texture'>;
26
- filter?: {
27
- feather: number | spec.FunctionExpression;
28
- } & Omit<spec.FilterParams, 'feather'>;
29
26
  }
30
27
  /**
31
28
  * 图层元素基础属性, 经过处理后的 spec.SpriteContent.options
@@ -112,6 +109,19 @@ export declare class SpriteComponent extends RendererComponent {
112
109
  * 获取当前 Mesh 的可见性。
113
110
  */
114
111
  getVisible(): boolean;
112
+ /**
113
+ * 设置当前图层的颜色
114
+ * > Tips: 透明度也属于颜色的一部分,当有透明度/颜色 K 帧变化时,该 API 会失效
115
+ * @since 2.0.0
116
+ * @param color - 颜色值
117
+ */
118
+ setColor(color: vec4): void;
119
+ /**
120
+ * 设置当前 Mesh 的纹理
121
+ * @since 2.0.0
122
+ * @param texture - 纹理对象
123
+ */
124
+ setTexture(texture: Texture): void;
115
125
  render(renderer: Renderer): void;
116
126
  start(): void;
117
127
  update(dt: number): void;
@@ -4,6 +4,7 @@ import type { SpriteItemProps } from '../sprite/sprite-item';
4
4
  import { SpriteComponent } from '../sprite/sprite-item';
5
5
  import { TextLayout } from './text-layout';
6
6
  import { TextStyle } from './text-style';
7
+ export declare const DEFAULT_FONTS: string[];
7
8
  /**
8
9
  * @since 2.0.0
9
10
  * @internal
@@ -2,5 +2,5 @@ import type { SharedShaderWithSource } from './shader';
2
2
  export declare const EFFECTS_COPY_MESH_NAME = "effects-internal-copy";
3
3
  export declare const COPY_MESH_SHADER_ID = "effects-internal-copy-mesh";
4
4
  export declare const COPY_VERTEX_SHADER = "\n#ifdef WEBGL2\n#define vsIn in\n#define vsOut out\n#else\n#define vsIn attribute\n#define vsOut varying\n#endif\nprecision highp float;\nvsIn vec2 aPos;\nvsOut vec2 vTex;\nvoid main(){\n gl_Position = vec4(aPos,0.,1.0);\n vTex = (aPos + vec2(1.0))/2.;\n}";
5
- export declare const COPY_FRAGMENT_SHADER: string;
5
+ export declare const COPY_FRAGMENT_SHADER = "precision mediump float;\n#ifdef WEBGL2\n#define fsIn in\n#define fsOut out\n#define texture2D texture\n#else\n#define fsIn varying\n#endif\nfsIn vec2 vTex;\n#ifdef WEBGL2\nlayout (location = 0) out vec4 fragColor;\n#else\n#define fragColor gl_FragColor\n#endif\n\n#ifdef DEPTH_TEXTURE\nuniform sampler2D uDepth;\n#ifndef WEBGL2\n#extension GL_EXT_frag_depth : enable\n#define gl_FragDepth gl_FragDepthEXT\n#endif\n#endif\nvoid main(){\n #ifdef DEPTH_TEXTURE\n gl_FragDepth = texture2D(uDepth,vTex).r;\n #endif\n}\n";
6
6
  export declare function createCopyShader(level: number, writeDepth?: boolean): SharedShaderWithSource;
@@ -10,6 +10,9 @@ export interface GlobalVolume {
10
10
  brightness: number;
11
11
  saturation: number;
12
12
  contrast: number;
13
+ vignetteIntensity: number;
14
+ vignetteSmoothness: number;
15
+ vignetteRoundness: number;
13
16
  useToneMapping: number;
14
17
  }
15
18
  export declare const defaultGlobalVolume: GlobalVolume;
@@ -10,3 +10,4 @@ export * from './geometry';
10
10
  export * from './frame-buffer';
11
11
  export * from './renderer';
12
12
  export * from './global-volume';
13
+ export * from './semantic-map';
@@ -4,8 +4,8 @@ import { Vector2, Vector4 } from '@galacean/effects-math/es/core/index';
4
4
  import type { Camera } from '../camera';
5
5
  import type { UniformValue } from '../material';
6
6
  import { PassTextureCache } from '../paas-texture-cache';
7
- import type { SemanticFunc } from '../semantic-map';
8
- import { SemanticMap } from '../semantic-map';
7
+ import type { SemanticFunc } from './semantic-map';
8
+ import { SemanticMap } from './semantic-map';
9
9
  import { Texture } from '../texture';
10
10
  import type { Disposable } from '../utils';
11
11
  import { DestroyOptions } from '../utils';
@@ -5,8 +5,8 @@ import type { RendererComponent } from '../components';
5
5
  import type { Engine } from '../engine';
6
6
  import type { MeshDestroyOptions, Renderer } from '../render';
7
7
  import { FrameBuffer } from '../render';
8
- import type { SemanticGetter } from '../semantic-map';
9
- import { SemanticMap } from '../semantic-map';
8
+ import type { SemanticGetter } from './semantic-map';
9
+ import { SemanticMap } from './semantic-map';
10
10
  import type { TextureConfigOptions, TextureLoadAction } from '../texture';
11
11
  import { Texture } from '../texture';
12
12
  import type { Disposable, Sortable } from '../utils';
@@ -1,6 +1,6 @@
1
- import type { UniformValue } from './material';
2
- import type { RenderingData } from './render';
3
- import type { Disposable } from './utils';
1
+ import type { UniformValue } from '../material';
2
+ import type { RenderingData } from '.';
3
+ import type { Disposable } from '../utils';
4
4
  export type SemanticFunc = (state: RenderingData) => UniformValue | undefined;
5
5
  export type SemanticGetter = UniformValue | SemanticFunc;
6
6
  export declare class SemanticMap implements Disposable {
@@ -8,7 +8,7 @@ export declare class SemanticMap implements Disposable {
8
8
  constructor(semantics?: Record<string, SemanticGetter>);
9
9
  toObject(): Record<string, SemanticGetter>;
10
10
  setSemantic(name: string, value?: SemanticGetter): void;
11
- getSemanticValue(name: string, state: RenderingData): number | Float32Array | Int32Array | Float64Array | Uint8Array | Uint32Array | Uint16Array | Int8Array | Int16Array | number[] | number[][] | import("@galacean/effects-math/es/core").Vector3 | import("./texture").Texture | import("@galacean/effects-math/es/core").Vector2 | import("@galacean/effects-math/es/core").Vector4 | import("@galacean/effects-math/es/core").Matrix3 | import("@galacean/effects-math/es/core").Matrix4 | import("./texture").Texture[] | import("./material").UniformStruct | import("./material").UniformStruct[] | SemanticFunc | undefined;
11
+ getSemanticValue(name: string, state: RenderingData): number | Float32Array | Int32Array | Float64Array | Uint8Array | Uint32Array | Uint16Array | Int8Array | Int16Array | number[] | number[][] | import("@galacean/effects-core").Texture | import("@galacean/effects-math/es/core").Vector2 | import("@galacean/effects-math/es/core").Vector3 | import("@galacean/effects-math/es/core").Vector4 | import("@galacean/effects-math/es/core").Matrix3 | import("@galacean/effects-math/es/core").Matrix4 | import("@galacean/effects-core").Texture[] | import("packages/effects-core/src/material/types").UniformStruct | import("packages/effects-core/src/material/types").UniformStruct[] | SemanticFunc | undefined;
12
12
  hasSemanticValue(name: string): boolean;
13
13
  dispose(): void;
14
14
  }
@@ -1,3 +1,4 @@
1
+ import type * as spec from '@galacean/effects-specification';
1
2
  import { EffectsObject } from '../effects-object';
2
3
  import type { Engine } from '../engine';
3
4
  export type ShaderMarcos = [key: string, value: string | number | boolean][];
@@ -78,16 +79,22 @@ export interface SharedShaderWithSource {
78
79
  cacheId?: string;
79
80
  }
80
81
  export type ShaderWithSource = InstancedShaderWithSource | SharedShaderWithSource;
81
- export declare abstract class Shader extends EffectsObject {
82
+ export declare abstract class ShaderVariant extends EffectsObject {
82
83
  readonly source: ShaderWithSource;
84
+ shader: Shader;
83
85
  constructor(engine: Engine, source: ShaderWithSource);
84
86
  }
87
+ export declare class Shader extends EffectsObject {
88
+ shaderData: spec.ShaderData;
89
+ createVariant(macros?: Record<string, number | boolean>): ShaderVariant;
90
+ fromData(data: spec.ShaderData): void;
91
+ }
85
92
  export interface ShaderLibrary {
86
93
  readonly shaderResults: {
87
94
  [cacheId: string]: ShaderCompileResult;
88
95
  };
89
96
  addShader(shader: ShaderWithSource): void;
90
- createShader(shaderSource: ShaderWithSource): Shader;
97
+ createShader(shaderSource: ShaderWithSource, macros?: ShaderMarcos): ShaderVariant;
91
98
  /**
92
99
  * @param cacheId
93
100
  */