@galacean/effects-core 2.1.2 → 2.1.3-alpha.1

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
6
+ * Version: v2.1.3-alpha.1
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() {
@@ -18808,7 +18811,7 @@ exports.SpriteComponent = /*#__PURE__*/ function(BaseRenderComponent) {
18808
18811
  this.interaction = interaction;
18809
18812
  var _renderer_renderMode, _renderer_blending, _renderer_texture, _renderer_side, _renderer_mask, _renderer_maskMode;
18810
18813
  this.renderer = {
18811
- renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.BILLBOARD,
18814
+ renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.MESH,
18812
18815
  blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : BlendingMode.ALPHA,
18813
18816
  texture: (_renderer_texture = renderer.texture) != null ? _renderer_texture : this.engine.emptyTexture,
18814
18817
  occlusion: !!renderer.occlusion,
@@ -23902,6 +23905,9 @@ var SerializationHelper = /*#__PURE__*/ function() {
23902
23905
  _proto.onUpdate = function onUpdate(dt) {
23903
23906
  var time = this.time;
23904
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();
23905
23911
  this.graph.evaluate(dt);
23906
23912
  };
23907
23913
  _proto.createContent = function createContent() {
@@ -24543,8 +24549,6 @@ var TimelinePlayable = /*#__PURE__*/ function(Playable) {
24543
24549
  };
24544
24550
  _proto.evaluate = function evaluate() {
24545
24551
  var time = this.getTime();
24546
- // update all tracks binding
24547
- this.updateTrackAnimatedObject(this.masterTrackInstances);
24548
24552
  // TODO search active clips
24549
24553
  for(var _iterator = _create_for_of_iterator_helper_loose(this.clips), _step; !(_step = _iterator()).done;){
24550
24554
  var clip = _step.value;
@@ -24582,17 +24586,6 @@ var TimelinePlayable = /*#__PURE__*/ function(Playable) {
24582
24586
  }
24583
24587
  }
24584
24588
  };
24585
- _proto.updateTrackAnimatedObject = function updateTrackAnimatedObject(trackInstances) {
24586
- for(var _iterator = _create_for_of_iterator_helper_loose(trackInstances), _step; !(_step = _iterator()).done;){
24587
- var trackInstance = _step.value;
24588
- var trackAsset = trackInstance.trackAsset;
24589
- // update track binding use custom method
24590
- trackAsset.updateAnimatedObject();
24591
- trackInstance.output.setUserData(trackAsset.boundObject);
24592
- // update children tracks
24593
- this.updateTrackAnimatedObject(trackInstance.children);
24594
- }
24595
- };
24596
24589
  return TimelinePlayable;
24597
24590
  }(Playable);
24598
24591
  var TrackSortWrapper = function TrackSortWrapper(track, originalIndex) {
@@ -24908,7 +24901,7 @@ exports.TextComponent = /*#__PURE__*/ function(BaseRenderComponent) {
24908
24901
  this.interaction = interaction;
24909
24902
  var _renderer_renderMode, _renderer_blending, _renderer_texture, _renderer_side, _renderer_mask, _renderer_maskMode;
24910
24903
  this.renderer = {
24911
- renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.BILLBOARD,
24904
+ renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.MESH,
24912
24905
  blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : BlendingMode.ALPHA,
24913
24906
  texture: (_renderer_texture = renderer.texture) != null ? _renderer_texture : this.engine.emptyTexture,
24914
24907
  occlusion: !!renderer.occlusion,
@@ -27676,7 +27669,7 @@ var seed = 1;
27676
27669
  _this_options = _this.options, useCompressedTexture = _this_options.useCompressedTexture, variables = _this_options.variables;
27677
27670
  baseUrl = _this.baseUrl;
27678
27671
  jobs = images.map(/*#__PURE__*/ _async_to_generator(function(img, idx) {
27679
- 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;
27680
27673
  return __generator(this, function(_state) {
27681
27674
  switch(_state.label){
27682
27675
  case 0:
@@ -27687,6 +27680,7 @@ var seed = 1;
27687
27680
  webpURL = webp && new URL(webp, baseUrl).href;
27688
27681
  // eslint-disable-next-line compat/compat
27689
27682
  avifURL = avif && new URL(avif, baseUrl).href;
27683
+ id = img.id;
27690
27684
  if (!("template" in img)) return [
27691
27685
  3,
27692
27686
  8
@@ -27721,7 +27715,7 @@ var seed = 1;
27721
27715
  3,
27722
27716
  3
27723
27717
  ];
27724
- _this.sourceFrom[idx] = {
27718
+ _this.sourceFrom[id] = {
27725
27719
  url: resultImage.src,
27726
27720
  type: exports.TextureSourceType.video
27727
27721
  };
@@ -27734,7 +27728,7 @@ var seed = 1;
27734
27728
  if (background && Array.isArray(url) && variables) {
27735
27729
  variables[background.name] = resultImage.src;
27736
27730
  }
27737
- _this.sourceFrom[idx] = {
27731
+ _this.sourceFrom[id] = {
27738
27732
  url: resultImage.src,
27739
27733
  type: exports.TextureSourceType.image
27740
27734
  };
@@ -27771,7 +27765,7 @@ var seed = 1;
27771
27765
  }
27772
27766
  if (src) {
27773
27767
  bufferURL = new URL(src, baseUrl).href;
27774
- _this.sourceFrom[idx] = {
27768
+ _this.sourceFrom[id] = {
27775
27769
  url: bufferURL,
27776
27770
  type: exports.TextureSourceType.compressed
27777
27771
  };
@@ -27812,7 +27806,7 @@ var seed = 1;
27812
27806
  _state.label = 13;
27813
27807
  case 13:
27814
27808
  _ref = _tmp, url1 = _ref.url, image = _ref.image;
27815
- _this.sourceFrom[idx] = {
27809
+ _this.sourceFrom[id] = {
27816
27810
  url: url1,
27817
27811
  type: exports.TextureSourceType.image
27818
27812
  };
@@ -27904,7 +27898,7 @@ var seed = 1;
27904
27898
  };
27905
27899
  });
27906
27900
  jobs = textures.map(/*#__PURE__*/ _async_to_generator(function(textureOptions, idx) {
27907
- var e, source, id, image, texture;
27901
+ var e, source, id, image, imageId, texture;
27908
27902
  return __generator(this, function(_state) {
27909
27903
  switch(_state.label){
27910
27904
  case 0:
@@ -27940,11 +27934,13 @@ var seed = 1;
27940
27934
  throw new Error("Load texture " + idx + " fails, error message: " + e + ".");
27941
27935
  case 4:
27942
27936
  source = textureOptions.source, id = textureOptions.id;
27937
+ imageId = "";
27943
27938
  if (!isObject(source)) return [
27944
27939
  3,
27945
27940
  5
27946
27941
  ];
27947
27942
  image = _this.assets[source.id];
27943
+ imageId = source.id;
27948
27944
  return [
27949
27945
  3,
27950
27946
  7
@@ -27963,7 +27959,7 @@ var seed = 1;
27963
27959
  _state.label = 7;
27964
27960
  case 7:
27965
27961
  if (image) {
27966
- texture = createTextureOptionsBySource(image, _this.sourceFrom[idx], id);
27962
+ texture = createTextureOptionsBySource(image, _this.sourceFrom[imageId], id);
27967
27963
  return [
27968
27964
  2,
27969
27965
  texture.sourceType === exports.TextureSourceType.compressed ? texture : _extends({}, texture, textureOptions)
@@ -31378,7 +31374,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem, true);
31378
31374
  registerPlugin("particle", ParticleLoader, exports.VFXItem, true);
31379
31375
  registerPlugin("cal", CalculateLoader, exports.VFXItem, true);
31380
31376
  registerPlugin("interact", InteractLoader, exports.VFXItem, true);
31381
- var version = "2.1.2";
31377
+ var version = "2.1.3-alpha.1";
31382
31378
  logger.info("Core version: " + version + ".");
31383
31379
 
31384
31380
  exports.AbstractPlugin = AbstractPlugin;