@galacean/effects-threejs 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 threejs plugin 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';
@@ -10165,7 +10165,7 @@ var itemFrameFrag = "#version 100\nprecision highp float;vec4 blendColor(vec4 co
10165
10165
 
10166
10166
  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.;}";
10167
10167
 
10168
- 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}";
10168
+ 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}";
10169
10169
 
10170
10170
  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;}";
10171
10171
 
@@ -13240,7 +13240,7 @@ var ColorCurve = /*#__PURE__*/ function(ValueGetter) {
13240
13240
  }
13241
13241
  };
13242
13242
  _this.renderer = {
13243
- renderMode: RenderMode.BILLBOARD,
13243
+ renderMode: RenderMode.MESH,
13244
13244
  blending: BlendingMode.ALPHA,
13245
13245
  texture: _this.engine.emptyTexture,
13246
13246
  occlusion: false,
@@ -13314,6 +13314,9 @@ var ColorCurve = /*#__PURE__*/ function(ValueGetter) {
13314
13314
  renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
13315
13315
  }
13316
13316
  this.material.setVector2("_Size", this.transform.size);
13317
+ if (this.renderer.renderMode === RenderMode.BILLBOARD || this.renderer.renderMode === RenderMode.VERTICAL_BILLBOARD || this.renderer.renderMode === RenderMode.HORIZONTAL_BILLBOARD) {
13318
+ this.material.setVector3("_Scale", this.transform.scale);
13319
+ }
13317
13320
  renderer.drawGeometry(geo, material);
13318
13321
  };
13319
13322
  _proto.onStart = function onStart() {
@@ -16660,7 +16663,6 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
16660
16663
  };
16661
16664
  _proto.render = function render(renderer) {
16662
16665
  if (this.previewContent) {
16663
- this.previewContent.mesh.worldMatrix = this.transform.getWorldMatrix();
16664
16666
  this.previewContent.mesh.render(renderer);
16665
16667
  }
16666
16668
  };
@@ -18831,7 +18833,7 @@ exports.SpriteComponent = /*#__PURE__*/ function(BaseRenderComponent) {
18831
18833
  this.interaction = interaction;
18832
18834
  var _renderer_renderMode, _renderer_blending, _renderer_texture, _renderer_side, _renderer_mask, _renderer_maskMode;
18833
18835
  this.renderer = {
18834
- renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.BILLBOARD,
18836
+ renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.MESH,
18835
18837
  blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : BlendingMode.ALPHA,
18836
18838
  texture: (_renderer_texture = renderer.texture) != null ? _renderer_texture : this.engine.emptyTexture,
18837
18839
  occlusion: !!renderer.occlusion,
@@ -23925,6 +23927,9 @@ var SerializationHelper = /*#__PURE__*/ function() {
23925
23927
  _proto.onUpdate = function onUpdate(dt) {
23926
23928
  var time = this.time;
23927
23929
  this.timelinePlayable.setTime(time);
23930
+ // The properties of the object may change dynamically,
23931
+ // so reset the track binding to avoid invalidation of the previously obtained binding object.
23932
+ this.resolveBindings();
23928
23933
  this.graph.evaluate(dt);
23929
23934
  };
23930
23935
  _proto.createContent = function createContent() {
@@ -24566,8 +24571,6 @@ var TimelinePlayable = /*#__PURE__*/ function(Playable) {
24566
24571
  };
24567
24572
  _proto.evaluate = function evaluate() {
24568
24573
  var time = this.getTime();
24569
- // update all tracks binding
24570
- this.updateTrackAnimatedObject(this.masterTrackInstances);
24571
24574
  // TODO search active clips
24572
24575
  for(var _iterator = _create_for_of_iterator_helper_loose(this.clips), _step; !(_step = _iterator()).done;){
24573
24576
  var clip = _step.value;
@@ -24605,17 +24608,6 @@ var TimelinePlayable = /*#__PURE__*/ function(Playable) {
24605
24608
  }
24606
24609
  }
24607
24610
  };
24608
- _proto.updateTrackAnimatedObject = function updateTrackAnimatedObject(trackInstances) {
24609
- for(var _iterator = _create_for_of_iterator_helper_loose(trackInstances), _step; !(_step = _iterator()).done;){
24610
- var trackInstance = _step.value;
24611
- var trackAsset = trackInstance.trackAsset;
24612
- // update track binding use custom method
24613
- trackAsset.updateAnimatedObject();
24614
- trackInstance.output.setUserData(trackAsset.boundObject);
24615
- // update children tracks
24616
- this.updateTrackAnimatedObject(trackInstance.children);
24617
- }
24618
- };
24619
24611
  return TimelinePlayable;
24620
24612
  }(Playable);
24621
24613
  var TrackSortWrapper = function TrackSortWrapper(track, originalIndex) {
@@ -24931,7 +24923,7 @@ exports.TextComponent = /*#__PURE__*/ function(BaseRenderComponent) {
24931
24923
  this.interaction = interaction;
24932
24924
  var _renderer_renderMode, _renderer_blending, _renderer_texture, _renderer_side, _renderer_mask, _renderer_maskMode;
24933
24925
  this.renderer = {
24934
- renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.BILLBOARD,
24926
+ renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : RenderMode.MESH,
24935
24927
  blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : BlendingMode.ALPHA,
24936
24928
  texture: (_renderer_texture = renderer.texture) != null ? _renderer_texture : this.engine.emptyTexture,
24937
24929
  occlusion: !!renderer.occlusion,
@@ -27699,7 +27691,7 @@ var seed$1 = 1;
27699
27691
  _this_options = _this.options, useCompressedTexture = _this_options.useCompressedTexture, variables = _this_options.variables;
27700
27692
  baseUrl = _this.baseUrl;
27701
27693
  jobs = images.map(/*#__PURE__*/ _async_to_generator(function(img, idx) {
27702
- var png, webp, avif, imageURL, webpURL, avifURL, template, background, url, isVideo, loadFn, resultImage, e, compressed, src, bufferURL, _ref, url1, image, _tmp;
27694
+ var png, webp, avif, imageURL, webpURL, avifURL, id, template, background, url, isVideo, loadFn, resultImage, e, compressed, src, bufferURL, _ref, url1, image, _tmp;
27703
27695
  return __generator(this, function(_state) {
27704
27696
  switch(_state.label){
27705
27697
  case 0:
@@ -27710,6 +27702,7 @@ var seed$1 = 1;
27710
27702
  webpURL = webp && new URL(webp, baseUrl).href;
27711
27703
  // eslint-disable-next-line compat/compat
27712
27704
  avifURL = avif && new URL(avif, baseUrl).href;
27705
+ id = img.id;
27713
27706
  if (!("template" in img)) return [
27714
27707
  3,
27715
27708
  8
@@ -27744,7 +27737,7 @@ var seed$1 = 1;
27744
27737
  3,
27745
27738
  3
27746
27739
  ];
27747
- _this.sourceFrom[idx] = {
27740
+ _this.sourceFrom[id] = {
27748
27741
  url: resultImage.src,
27749
27742
  type: exports.TextureSourceType.video
27750
27743
  };
@@ -27757,7 +27750,7 @@ var seed$1 = 1;
27757
27750
  if (background && Array.isArray(url) && variables) {
27758
27751
  variables[background.name] = resultImage.src;
27759
27752
  }
27760
- _this.sourceFrom[idx] = {
27753
+ _this.sourceFrom[id] = {
27761
27754
  url: resultImage.src,
27762
27755
  type: exports.TextureSourceType.image
27763
27756
  };
@@ -27794,7 +27787,7 @@ var seed$1 = 1;
27794
27787
  }
27795
27788
  if (src) {
27796
27789
  bufferURL = new URL(src, baseUrl).href;
27797
- _this.sourceFrom[idx] = {
27790
+ _this.sourceFrom[id] = {
27798
27791
  url: bufferURL,
27799
27792
  type: exports.TextureSourceType.compressed
27800
27793
  };
@@ -27835,7 +27828,7 @@ var seed$1 = 1;
27835
27828
  _state.label = 13;
27836
27829
  case 13:
27837
27830
  _ref = _tmp, url1 = _ref.url, image = _ref.image;
27838
- _this.sourceFrom[idx] = {
27831
+ _this.sourceFrom[id] = {
27839
27832
  url: url1,
27840
27833
  type: exports.TextureSourceType.image
27841
27834
  };
@@ -27927,7 +27920,7 @@ var seed$1 = 1;
27927
27920
  };
27928
27921
  });
27929
27922
  jobs = textures.map(/*#__PURE__*/ _async_to_generator(function(textureOptions, idx) {
27930
- var e, source, id, image, texture;
27923
+ var e, source, id, image, imageId, texture;
27931
27924
  return __generator(this, function(_state) {
27932
27925
  switch(_state.label){
27933
27926
  case 0:
@@ -27963,11 +27956,13 @@ var seed$1 = 1;
27963
27956
  throw new Error("Load texture " + idx + " fails, error message: " + e + ".");
27964
27957
  case 4:
27965
27958
  source = textureOptions.source, id = textureOptions.id;
27959
+ imageId = "";
27966
27960
  if (!isObject(source)) return [
27967
27961
  3,
27968
27962
  5
27969
27963
  ];
27970
27964
  image = _this.assets[source.id];
27965
+ imageId = source.id;
27971
27966
  return [
27972
27967
  3,
27973
27968
  7
@@ -27986,7 +27981,7 @@ var seed$1 = 1;
27986
27981
  _state.label = 7;
27987
27982
  case 7:
27988
27983
  if (image) {
27989
- texture = createTextureOptionsBySource(image, _this.sourceFrom[idx], id);
27984
+ texture = createTextureOptionsBySource(image, _this.sourceFrom[imageId], id);
27990
27985
  return [
27991
27986
  2,
27992
27987
  texture.sourceType === exports.TextureSourceType.compressed ? texture : _extends({}, texture, textureOptions)
@@ -28800,9 +28795,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
28800
28795
  * @since 2.0.0
28801
28796
  * @param visible - 是否可见
28802
28797
  */ _proto.setVisible = function setVisible(visible) {
28803
- this.items.forEach(function(item) {
28804
- item.setActive(visible);
28805
- });
28798
+ this.rootItem.setVisible(visible);
28806
28799
  };
28807
28800
  /**
28808
28801
  * 获取合成的动画速度
@@ -31403,7 +31396,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem, true);
31403
31396
  registerPlugin("particle", ParticleLoader, exports.VFXItem, true);
31404
31397
  registerPlugin("cal", CalculateLoader, exports.VFXItem, true);
31405
31398
  registerPlugin("interact", InteractLoader, exports.VFXItem, true);
31406
- var version$1 = "2.1.2-alpha.0";
31399
+ var version$1 = "2.1.3-alpha.0";
31407
31400
  logger.info("Core version: " + version$1 + ".");
31408
31401
 
31409
31402
  var _obj;
@@ -33030,7 +33023,7 @@ setMaxSpriteMeshItemCount(8);
33030
33023
  */ Mesh.create = function(engine, props) {
33031
33024
  return new ThreeMesh(engine, props);
33032
33025
  };
33033
- var version = "2.1.2-alpha.0";
33026
+ var version = "2.1.3-alpha.0";
33034
33027
  logger.info("THREEJS plugin version: " + version + ".");
33035
33028
 
33036
33029
  exports.AbstractPlugin = AbstractPlugin;