@galacean/effects-core 2.1.2-alpha.0 → 2.1.3-alpha.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.
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime core for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.1.2-alpha.0
6
+ * Version: v2.1.3-alpha.0
7
7
  */
8
8
 
9
9
  'use strict';
@@ -10143,7 +10143,7 @@ var itemFrameFrag = "#version 100\nprecision highp float;vec4 blendColor(vec4 co
10143
10143
 
10144
10144
  var integrate = "float calculateMovement(float t,vec2 p1,vec2 p2,vec2 p3,vec2 p4){float movement=0.0;float h=(t-p1.x)*0.05;for(int i=0;i<=20;i++){float t=float(i)*h;float nt=binarySearchT(t,p1.x,p2.x,p3.x,p4.x);float y=cubicBezier(nt,p1.y,p2.y,p3.y,p4.y);float weight=(i==0||i==20)? 1.0 :(mod(float(i),2.)!=0.)? 4.0 : 2.0;movement+=weight*y;}movement*=h/3.;return movement;}float integrateFromBezierCurveFrames(float time,float frameStart,float frameCount){int start=int(frameStart);int count=int(frameCount-1.);float ret=0.;for(int i=0;i<ITR_END;i+=2){vec4 k0=lookup_curve(i+start);vec4 k1=lookup_curve(i+1+start);if(i==0&&time<k0.x){return ret;}vec2 p1=vec2(k0.x,k0.y);vec2 p2=vec2(k0.z,k0.w);vec2 p3=vec2(k1.z,k1.w);vec2 p4=vec2(k1.x,k1.y);if(time>=k1.x){ret+=calculateMovement(k1.x,p1,p2,p3,p4);}if(time>=k0.x&&time<k1.x){return ret+calculateMovement(time,p1,p2,p3,p4);}}return ret;}float integrateByTimeLineSeg(float t,vec2 p0,vec2 p1){float t0=p0.x;float t1=p1.x;float y0=p0.y;float y1=p1.y;vec4 tSqr=vec4(t,t,t0,t0);tSqr=tSqr*tSqr;vec4 a=vec4(2.*t,3.,-t0,3.)*tSqr;float t1y0=t1*y0;vec4 b=vec4(y0-y1,t0*y1-t1y0,2.*y0+y1,t1y0);float r=dot(a,b);return r/(t0-t1)*0.16666667;}float integrateLineSeg(float time,vec2 p0,vec2 p1){float h=time-p0.x;float y0=p0.y;return(y0+y0+(p1.y-y0)*h/(p1.x-p0.x))*h/2.;}float integrateFromLineSeg(float time,float frameStart,float frameCount){if(time==0.){return 0.;}int start=int(frameStart);int count=int(frameCount-1.);float ret=0.;for(int i=0;i<ITR_END;i++){if(i>count){return ret;}vec4 ks=lookup_curve(i+start);vec2 k0=ks.xy;vec2 k1=ks.zw;if(time>k0.x&&time<=k1.x){return ret+integrateLineSeg(time,k0,k1);}ret+=integrateLineSeg(k1.x,k0,k1);vec2 k2=lookup_curve(i+start+1).xy;if(time>k1.x&&time<=k2.x){return ret+integrateLineSeg(time,k1,k2);}ret+=integrateLineSeg(k2.x,k1,k2);}return ret;}float integrateByTimeFromLineSeg(float time,float frameStart,float frameCount){if(time==0.){return 0.;}int start=int(frameStart);int count=int(frameCount-1.);float ret=0.;for(int i=0;i<ITR_END;i++){if(i>count){return ret;}vec4 ks=lookup_curve(i+start);vec2 k0=ks.xy;vec2 k1=ks.zw;if(time>k0.x&&time<=k1.x){return ret+integrateByTimeLineSeg(time,k0,k1);}ret+=integrateByTimeLineSeg(k1.x,k0,k1);vec2 k2=lookup_curve(i+start+1).xy;if(time>k1.x&&time<=k2.x){return ret+integrateByTimeLineSeg(time,k1,k2);}ret+=integrateByTimeLineSeg(k2.x,k1,k2);}return ret;}float getIntegrateFromTime0(float t1,vec4 value){float type=value.x;if(type==0.){return value.y*t1;}if(type==1.){vec2 p0=vec2(0.,value.y);vec2 p1=vec2(value.w,value.z);return integrateLineSeg(t1,p0,p1);}if(type==3.){return integrateFromLineSeg(t1,value.y,value.z);}if(type==4.){return mix(value.y,value.z,aSeed)*t1;}if(type==5.){return integrateFromBezierCurveFrames(t1,value.z,value.w);}return 0.;}float getIntegrateByTimeFromTime(float t0,float t1,vec4 value){float type=value.x;if(type==0.){return value.y*(t1*t1-t0*t0)/2.;}else if(type==1.){vec2 p0=vec2(0.,value.y);vec2 p1=vec2(value.w,value.z);return integrateByTimeLineSeg(t1,p0,p1)-integrateByTimeLineSeg(t0,p0,p1);}if(type==3.){return integrateByTimeFromLineSeg(t1,value.y,value.z)-integrateByTimeFromLineSeg(t0,value.y,value.z);}if(type==4.){return mix(value.y,value.z,aSeed)*(t1*t1-t0*t0)/2.;}if(type==5.){return integrateFromBezierCurveFrames(t1,value.z,value.w)-integrateFromBezierCurveFrames(t0,value.z,value.w);}return 0.;}";
10145
10145
 
10146
- var itemVert = "precision highp float;attribute vec2 atlasOffset;attribute vec3 aPos;varying vec2 vTexCoord;varying vec3 vParams;varying vec4 vColor;uniform vec2 _Size;uniform vec4 _Color;uniform vec4 _TexParams;uniform vec4 _TexOffset;uniform mat4 effects_MatrixVP;uniform mat4 effects_MatrixInvV;uniform mat4 effects_ObjectToWorld;\n#ifdef ENV_EDITOR\nuniform vec4 uEditorTransform;\n#endif\nvoid main(){vec4 texParams=_TexParams;vTexCoord=vec2(atlasOffset.xy*_TexOffset.zw+_TexOffset.xy);vColor=_Color;vParams=vec3(0.0,texParams.y,texParams.x);vec4 pos=vec4(aPos.xy*_Size,aPos.z,1.0);gl_Position=effects_MatrixVP*effects_ObjectToWorld*pos;\n#ifdef ENV_EDITOR\ngl_Position=vec4(gl_Position.xy*uEditorTransform.xy+uEditorTransform.zw*gl_Position.w,gl_Position.zw);\n#endif\n}";
10146
+ var itemVert = "precision highp float;attribute vec2 atlasOffset;attribute vec3 aPos;varying vec2 vTexCoord;varying vec3 vParams;varying vec4 vColor;uniform vec2 _Size;uniform vec3 _Scale;uniform vec4 _Color;uniform vec4 _TexParams;uniform vec4 _TexOffset;uniform mat4 effects_MatrixVP;uniform mat4 effects_ObjectToWorld;uniform mat4 effects_MatrixV;\n#ifdef ENV_EDITOR\nuniform vec4 uEditorTransform;\n#endif\nvoid main(){vec4 texParams=_TexParams;vTexCoord=vec2(atlasOffset.xy*_TexOffset.zw+_TexOffset.xy);vColor=_Color;vParams=vec3(0.0,texParams.y,texParams.x);if(texParams.z==1.0){vec4 pos=vec4(aPos.xy*_Size,aPos.z,1.0);gl_Position=effects_MatrixVP*effects_ObjectToWorld*pos;}else{mat4 view=effects_MatrixV;vec3 camRight=vec3(view[0][0],view[1][0],view[2][0]);vec3 camUp=vec3(view[0][1],view[1][1],view[2][1]);vec3 worldPosition=vec3(effects_ObjectToWorld*vec4(0.0,0.0,0.0,1.0));vec3 vertexPosition=worldPosition+camRight*aPos.x*_Size.x*_Scale.x+camUp*aPos.y*_Size.y*_Scale.y;gl_Position=effects_MatrixVP*vec4(vertexPosition,1.0);}\n#ifdef ENV_EDITOR\ngl_Position=vec4(gl_Position.xy*uEditorTransform.xy+uEditorTransform.zw*gl_Position.w,gl_Position.zw);\n#endif\n}";
10147
10147
 
10148
10148
  var itemFrag = "precision highp float;varying vec4 vColor;varying vec2 vTexCoord;varying vec3 vParams;uniform sampler2D _MainTex;vec4 blendColor(vec4 color,vec4 vc,float mode){vec4 ret=color*vc;float alpha=ret.a;if(mode==1.){ret.rgb*=alpha;}else if(mode==2.){ret.rgb*=alpha;ret.a=dot(ret.rgb,vec3(0.33333333));}else if(mode==3.){alpha=color.r*alpha;ret=vec4(vc.rgb*alpha,alpha);}return ret;}void main(){vec4 color=vec4(0.);vec4 texColor=texture2D(_MainTex,vTexCoord.xy);color=blendColor(texColor,vColor,floor(0.5+vParams.y));if(vParams.z==0.&&color.a<0.04){discard;}color.a=clamp(color.a,0.0,1.0);gl_FragColor=color;}";
10149
10149
 
@@ -13218,7 +13218,7 @@ var ColorCurve = /*#__PURE__*/ function(ValueGetter) {
13218
13218
  }
13219
13219
  };
13220
13220
  _this.renderer = {
13221
- renderMode: RenderMode.BILLBOARD,
13221
+ renderMode: RenderMode.MESH,
13222
13222
  blending: BlendingMode.ALPHA,
13223
13223
  texture: _this.engine.emptyTexture,
13224
13224
  occlusion: false,
@@ -13292,6 +13292,9 @@ var ColorCurve = /*#__PURE__*/ function(ValueGetter) {
13292
13292
  renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
13293
13293
  }
13294
13294
  this.material.setVector2("_Size", this.transform.size);
13295
+ if (this.renderer.renderMode === RenderMode.BILLBOARD || this.renderer.renderMode === RenderMode.VERTICAL_BILLBOARD || this.renderer.renderMode === RenderMode.HORIZONTAL_BILLBOARD) {
13296
+ this.material.setVector3("_Scale", this.transform.scale);
13297
+ }
13295
13298
  renderer.drawGeometry(geo, material);
13296
13299
  };
13297
13300
  _proto.onStart = function onStart() {
@@ -16638,7 +16641,6 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
16638
16641
  };
16639
16642
  _proto.render = function render(renderer) {
16640
16643
  if (this.previewContent) {
16641
- this.previewContent.mesh.worldMatrix = this.transform.getWorldMatrix();
16642
16644
  this.previewContent.mesh.render(renderer);
16643
16645
  }
16644
16646
  };
@@ -18809,7 +18811,7 @@ exports.SpriteComponent = /*#__PURE__*/ function(BaseRenderComponent) {
18809
18811
  this.interaction = interaction;
18810
18812
  var _renderer_renderMode, _renderer_blending, _renderer_texture, _renderer_side, _renderer_mask, _renderer_maskMode;
18811
18813
  this.renderer = {
18812
- renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.BILLBOARD,
18814
+ renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.MESH,
18813
18815
  blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : BlendingMode.ALPHA,
18814
18816
  texture: (_renderer_texture = renderer.texture) != null ? _renderer_texture : this.engine.emptyTexture,
18815
18817
  occlusion: !!renderer.occlusion,
@@ -23903,6 +23905,9 @@ var SerializationHelper = /*#__PURE__*/ function() {
23903
23905
  _proto.onUpdate = function onUpdate(dt) {
23904
23906
  var time = this.time;
23905
23907
  this.timelinePlayable.setTime(time);
23908
+ // The properties of the object may change dynamically,
23909
+ // so reset the track binding to avoid invalidation of the previously obtained binding object.
23910
+ this.resolveBindings();
23906
23911
  this.graph.evaluate(dt);
23907
23912
  };
23908
23913
  _proto.createContent = function createContent() {
@@ -24544,8 +24549,6 @@ var TimelinePlayable = /*#__PURE__*/ function(Playable) {
24544
24549
  };
24545
24550
  _proto.evaluate = function evaluate() {
24546
24551
  var time = this.getTime();
24547
- // update all tracks binding
24548
- this.updateTrackAnimatedObject(this.masterTrackInstances);
24549
24552
  // TODO search active clips
24550
24553
  for(var _iterator = _create_for_of_iterator_helper_loose(this.clips), _step; !(_step = _iterator()).done;){
24551
24554
  var clip = _step.value;
@@ -24583,17 +24586,6 @@ var TimelinePlayable = /*#__PURE__*/ function(Playable) {
24583
24586
  }
24584
24587
  }
24585
24588
  };
24586
- _proto.updateTrackAnimatedObject = function updateTrackAnimatedObject(trackInstances) {
24587
- for(var _iterator = _create_for_of_iterator_helper_loose(trackInstances), _step; !(_step = _iterator()).done;){
24588
- var trackInstance = _step.value;
24589
- var trackAsset = trackInstance.trackAsset;
24590
- // update track binding use custom method
24591
- trackAsset.updateAnimatedObject();
24592
- trackInstance.output.setUserData(trackAsset.boundObject);
24593
- // update children tracks
24594
- this.updateTrackAnimatedObject(trackInstance.children);
24595
- }
24596
- };
24597
24589
  return TimelinePlayable;
24598
24590
  }(Playable);
24599
24591
  var TrackSortWrapper = function TrackSortWrapper(track, originalIndex) {
@@ -24909,7 +24901,7 @@ exports.TextComponent = /*#__PURE__*/ function(BaseRenderComponent) {
24909
24901
  this.interaction = interaction;
24910
24902
  var _renderer_renderMode, _renderer_blending, _renderer_texture, _renderer_side, _renderer_mask, _renderer_maskMode;
24911
24903
  this.renderer = {
24912
- renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.BILLBOARD,
24904
+ renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.MESH,
24913
24905
  blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : BlendingMode.ALPHA,
24914
24906
  texture: (_renderer_texture = renderer.texture) != null ? _renderer_texture : this.engine.emptyTexture,
24915
24907
  occlusion: !!renderer.occlusion,
@@ -27677,7 +27669,7 @@ var seed = 1;
27677
27669
  _this_options = _this.options, useCompressedTexture = _this_options.useCompressedTexture, variables = _this_options.variables;
27678
27670
  baseUrl = _this.baseUrl;
27679
27671
  jobs = images.map(/*#__PURE__*/ _async_to_generator(function(img, idx) {
27680
- var png, webp, avif, imageURL, webpURL, avifURL, template, background, url, isVideo, loadFn, resultImage, e, compressed, src, bufferURL, _ref, url1, image, _tmp;
27672
+ var png, webp, avif, imageURL, webpURL, avifURL, id, template, background, url, isVideo, loadFn, resultImage, e, compressed, src, bufferURL, _ref, url1, image, _tmp;
27681
27673
  return __generator(this, function(_state) {
27682
27674
  switch(_state.label){
27683
27675
  case 0:
@@ -27688,6 +27680,7 @@ var seed = 1;
27688
27680
  webpURL = webp && new URL(webp, baseUrl).href;
27689
27681
  // eslint-disable-next-line compat/compat
27690
27682
  avifURL = avif && new URL(avif, baseUrl).href;
27683
+ id = img.id;
27691
27684
  if (!("template" in img)) return [
27692
27685
  3,
27693
27686
  8
@@ -27722,7 +27715,7 @@ var seed = 1;
27722
27715
  3,
27723
27716
  3
27724
27717
  ];
27725
- _this.sourceFrom[idx] = {
27718
+ _this.sourceFrom[id] = {
27726
27719
  url: resultImage.src,
27727
27720
  type: exports.TextureSourceType.video
27728
27721
  };
@@ -27735,7 +27728,7 @@ var seed = 1;
27735
27728
  if (background && Array.isArray(url) && variables) {
27736
27729
  variables[background.name] = resultImage.src;
27737
27730
  }
27738
- _this.sourceFrom[idx] = {
27731
+ _this.sourceFrom[id] = {
27739
27732
  url: resultImage.src,
27740
27733
  type: exports.TextureSourceType.image
27741
27734
  };
@@ -27772,7 +27765,7 @@ var seed = 1;
27772
27765
  }
27773
27766
  if (src) {
27774
27767
  bufferURL = new URL(src, baseUrl).href;
27775
- _this.sourceFrom[idx] = {
27768
+ _this.sourceFrom[id] = {
27776
27769
  url: bufferURL,
27777
27770
  type: exports.TextureSourceType.compressed
27778
27771
  };
@@ -27813,7 +27806,7 @@ var seed = 1;
27813
27806
  _state.label = 13;
27814
27807
  case 13:
27815
27808
  _ref = _tmp, url1 = _ref.url, image = _ref.image;
27816
- _this.sourceFrom[idx] = {
27809
+ _this.sourceFrom[id] = {
27817
27810
  url: url1,
27818
27811
  type: exports.TextureSourceType.image
27819
27812
  };
@@ -27905,7 +27898,7 @@ var seed = 1;
27905
27898
  };
27906
27899
  });
27907
27900
  jobs = textures.map(/*#__PURE__*/ _async_to_generator(function(textureOptions, idx) {
27908
- var e, source, id, image, texture;
27901
+ var e, source, id, image, imageId, texture;
27909
27902
  return __generator(this, function(_state) {
27910
27903
  switch(_state.label){
27911
27904
  case 0:
@@ -27941,11 +27934,13 @@ var seed = 1;
27941
27934
  throw new Error("Load texture " + idx + " fails, error message: " + e + ".");
27942
27935
  case 4:
27943
27936
  source = textureOptions.source, id = textureOptions.id;
27937
+ imageId = "";
27944
27938
  if (!isObject(source)) return [
27945
27939
  3,
27946
27940
  5
27947
27941
  ];
27948
27942
  image = _this.assets[source.id];
27943
+ imageId = source.id;
27949
27944
  return [
27950
27945
  3,
27951
27946
  7
@@ -27964,7 +27959,7 @@ var seed = 1;
27964
27959
  _state.label = 7;
27965
27960
  case 7:
27966
27961
  if (image) {
27967
- texture = createTextureOptionsBySource(image, _this.sourceFrom[idx], id);
27962
+ texture = createTextureOptionsBySource(image, _this.sourceFrom[imageId], id);
27968
27963
  return [
27969
27964
  2,
27970
27965
  texture.sourceType === exports.TextureSourceType.compressed ? texture : _extends({}, texture, textureOptions)
@@ -28778,9 +28773,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
28778
28773
  * @since 2.0.0
28779
28774
  * @param visible - 是否可见
28780
28775
  */ _proto.setVisible = function setVisible(visible) {
28781
- this.items.forEach(function(item) {
28782
- item.setActive(visible);
28783
- });
28776
+ this.rootItem.setVisible(visible);
28784
28777
  };
28785
28778
  /**
28786
28779
  * 获取合成的动画速度
@@ -31381,7 +31374,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem, true);
31381
31374
  registerPlugin("particle", ParticleLoader, exports.VFXItem, true);
31382
31375
  registerPlugin("cal", CalculateLoader, exports.VFXItem, true);
31383
31376
  registerPlugin("interact", InteractLoader, exports.VFXItem, true);
31384
- var version = "2.1.2-alpha.0";
31377
+ var version = "2.1.3-alpha.0";
31385
31378
  logger.info("Core version: " + version + ".");
31386
31379
 
31387
31380
  exports.AbstractPlugin = AbstractPlugin;