@galacean/effects-threejs 2.7.0-alpha.1 → 2.7.0-alpha.2

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.7.0-alpha.1
6
+ * Version: v2.7.0-alpha.2
7
7
  */
8
8
 
9
9
  'use strict';
@@ -3756,20 +3756,21 @@ var BuiltinObjectGUID = {
3756
3756
  UnlitShader: "unlit000000000000000000000000000"
3757
3757
  };
3758
3758
 
3759
- /**
3760
- * 填充类型
3761
- */ var FillType;
3759
+ var FillType;
3762
3760
  (function(FillType) {
3763
- /**
3764
- * 纯色
3765
- */ FillType[FillType["Solid"] = 0] = "Solid";
3766
- /**
3767
- * 线性渐变
3768
- */ FillType[FillType["LinearGradient"] = 1] = "LinearGradient";
3769
- /**
3770
- * 径向渐变
3771
- */ FillType[FillType["RadialGradient"] = 2] = "RadialGradient";
3761
+ FillType[FillType["Solid"] = 0] = "Solid";
3762
+ FillType[FillType["GradientLinear"] = 1] = "GradientLinear";
3763
+ FillType[FillType["GradientRadial"] = 2] = "GradientRadial";
3764
+ FillType[FillType["GradientAngular"] = 3] = "GradientAngular";
3765
+ FillType[FillType["Texture"] = 4] = "Texture";
3772
3766
  })(FillType || (FillType = {}));
3767
+ var TexturePaintScaleMode;
3768
+ (function(TexturePaintScaleMode) {
3769
+ TexturePaintScaleMode[TexturePaintScaleMode["Fill"] = 0] = "Fill";
3770
+ TexturePaintScaleMode[TexturePaintScaleMode["Fit"] = 1] = "Fit";
3771
+ TexturePaintScaleMode[TexturePaintScaleMode["Crop"] = 2] = "Crop";
3772
+ TexturePaintScaleMode[TexturePaintScaleMode["Tile"] = 3] = "Tile";
3773
+ })(TexturePaintScaleMode || (TexturePaintScaleMode = {}));
3773
3774
 
3774
3775
  /**
3775
3776
  * 矢量图形类型
@@ -4039,6 +4040,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
4039
4040
  get FontStyle () { return FontStyle; },
4040
4041
  BuiltinObjectGUID: BuiltinObjectGUID,
4041
4042
  get FillType () { return FillType; },
4043
+ get TexturePaintScaleMode () { return TexturePaintScaleMode; },
4042
4044
  get ShapePrimitiveType () { return ShapePrimitiveType; },
4043
4045
  get LineCap () { return LineCap; },
4044
4046
  get LineJoin () { return LineJoin; },
@@ -16262,16 +16264,8 @@ var ColorCurve = /*#__PURE__*/ function(ValueGetter) {
16262
16264
 
16263
16265
  var vert = "precision highp float;attribute vec3 aPos;attribute vec2 aUV;varying vec2 uv0;uniform mat4 effects_MatrixVP;uniform mat4 effects_MatrixInvV;uniform mat4 effects_ObjectToWorld;void main(){vec4 pos=vec4(aPos.xyz,1.0);uv0=aUV;gl_Position=effects_MatrixVP*effects_ObjectToWorld*pos;}";
16264
16266
 
16265
- var frag = "precision highp float;\n#define _MAX_STOPS 8\n#define PI 3.14159265359\nuniform vec4 _Color;uniform vec4 _Colors[_MAX_STOPS];uniform float _Stops[_MAX_STOPS];uniform int _StopsCount;uniform float _FillType;uniform vec2 _StartPoint;uniform vec2 _EndPoint;uniform sampler2D _ImageTex;uniform vec2 _ImageSize;uniform vec2 _DestSize;uniform int _ImageScaleMode;uniform mat3 _ImageTransform;uniform float _ImageScalingFactor;uniform float _ImageOpacity;varying vec2 uv0;vec4 smoothMix(vec4 a,vec4 b,float t){return mix(a,b,smoothstep(0.0,1.0,t));}float calculateAngleRatio(vec2 v1,vec2 v2){float angle=atan(v2.y,v2.x)-atan(v1.y,v1.x);if(angle<0.0)angle+=2.0*PI;return angle/(2.0*PI);}vec2 applyTransform(mat3 m,vec2 uv){vec3 p=m*vec3(uv,1.0);return p.xy;}void main(){vec4 finalColor=vec4(1.0);if(_FillType==0.0){finalColor=_Color;}else if(_FillType==1.0||_FillType==2.0||_FillType==3.0){float t=0.0;if(_FillType==1.0){vec2 gradientVector=_EndPoint-_StartPoint;vec2 pixelVector=uv0-_StartPoint;float denom=max(dot(gradientVector,gradientVector),1e-6);t=clamp(dot(pixelVector,gradientVector)/denom,0.0,1.0);}else if(_FillType==2.0){float maxRadius=max(distance(_EndPoint,_StartPoint),0.001);t=clamp(distance(uv0,_StartPoint)/maxRadius,0.0,1.0);}else{vec2 center=_StartPoint;vec2 referenceVector=_EndPoint-center;vec2 targetVector=uv0-center;if(length(targetVector)>0.001){t=calculateAngleRatio(referenceVector,targetVector);}}finalColor=_Colors[0];for(int i=1;i<_MAX_STOPS;i++){if(i>=_StopsCount)break;float prevStop=_Stops[i-1];float currStop=_Stops[i];if(t>=prevStop&&t<=currStop){float localT=(t-prevStop)/max(currStop-prevStop,1e-6);finalColor=smoothMix(_Colors[i-1],_Colors[i],localT);break;}}}else if(_FillType==4.0){vec2 uv=uv0;float rSrc=_ImageSize.x/max(_ImageSize.y,1.0);float rDst=_DestSize.x/max(_DestSize.y,1.0);bool maskOutside=false;if(_ImageScaleMode==0){vec2 scale=vec2(1.0);if(rDst>rSrc){scale=vec2(1.0,rSrc/rDst);}else{scale=vec2(rDst/rSrc,1.0);}uv=(uv-0.5)*scale+0.5;uv=clamp(uv,0.0,1.0);}else if(_ImageScaleMode==1){vec2 scale=vec2(1.0);if(rDst>rSrc){scale=vec2(rSrc/rDst,1.0);}else{scale=vec2(1.0,rSrc/rDst);}uv=(uv-0.5)*scale+0.5;maskOutside=true;}else if(_ImageScaleMode==2){uv=applyTransform(_ImageTransform,uv0);maskOutside=true;}else if(_ImageScaleMode==3){float aspectFix=rDst/max(rSrc,1e-6);vec2 uvTile=(uv0-0.5)*vec2(aspectFix,1.0)+0.5;float s=max(abs(_ImageScalingFactor),1e-6);uv=fract(uvTile*s);}vec4 img=texture2D(_ImageTex,uv);if(maskOutside){if(uv.x<0.0||uv.x>1.0||uv.y<0.0||uv.y>1.0){img.a=0.0;}}img.a*=_ImageOpacity;finalColor=img;}finalColor.rgb*=finalColor.a;gl_FragColor=finalColor;}";
16267
+ var frag = "precision highp float;\n#define _MAX_STOPS 8\n#define PI 3.14159265359\nuniform vec4 _Color;uniform vec4 _Colors[_MAX_STOPS];uniform float _Stops[_MAX_STOPS];uniform int _StopsCount;uniform float _FillType;uniform vec2 _StartPoint;uniform vec2 _EndPoint;uniform sampler2D _ImageTex;uniform vec2 _ImageSize;uniform vec2 _DestSize;uniform int _ImageScaleMode;uniform mat3 _TextureTransform;uniform float _ImageScalingFactor;uniform float _ImageOpacity;varying vec2 uv0;vec4 smoothMix(vec4 a,vec4 b,float t){return mix(a,b,smoothstep(0.0,1.0,t));}float calculateAngleRatio(vec2 v1,vec2 v2){float angle=atan(v2.y,v2.x)-atan(v1.y,v1.x);if(angle<0.0)angle+=2.0*PI;return angle/(2.0*PI);}vec2 applyTransform(mat3 m,vec2 uv){uv=uv-vec2(0.5,0.5);vec3 p=m*vec3(uv,1.0);p.xy=p.xy+vec2(0.5,0.5);return p.xy;}void main(){vec4 finalColor=vec4(1.0);if(_FillType==0.0){finalColor=_Color;}else if(_FillType==1.0||_FillType==2.0||_FillType==3.0){float t=0.0;if(_FillType==1.0){vec2 gradientVector=_EndPoint-_StartPoint;vec2 pixelVector=uv0-_StartPoint;float denom=max(dot(gradientVector,gradientVector),1e-6);t=clamp(dot(pixelVector,gradientVector)/denom,0.0,1.0);}else if(_FillType==2.0){float maxRadius=max(distance(_EndPoint,_StartPoint),0.001);t=clamp(distance(uv0,_StartPoint)/maxRadius,0.0,1.0);}else{vec2 center=_StartPoint;vec2 referenceVector=_EndPoint-center;vec2 targetVector=uv0-center;if(length(targetVector)>0.001){t=calculateAngleRatio(referenceVector,targetVector);}}finalColor=_Colors[0];for(int i=1;i<_MAX_STOPS;i++){if(i>=_StopsCount)break;float prevStop=_Stops[i-1];float currStop=_Stops[i];if(t>=prevStop&&t<=currStop){float localT=(t-prevStop)/max(currStop-prevStop,1e-6);finalColor=smoothMix(_Colors[i-1],_Colors[i],localT);break;}}}else if(_FillType==4.0){vec2 uv=uv0;float rSrc=_ImageSize.x/max(_ImageSize.y,1.0);float rDst=_DestSize.x/max(_DestSize.y,1.0);bool maskOutside=false;if(_ImageScaleMode==0){vec2 scale=vec2(1.0);if(rDst>rSrc){scale=vec2(1.0,rSrc/rDst);}else{scale=vec2(rDst/rSrc,1.0);}uv=(uv-0.5)*scale+0.5;uv=clamp(uv,0.0,1.0);}else if(_ImageScaleMode==1){vec2 scale=vec2(1.0);if(rDst>rSrc){scale=vec2(rSrc/rDst,1.0);}else{scale=vec2(1.0,rSrc/rDst);}uv=(uv-0.5)*scale+0.5;maskOutside=true;}else if(_ImageScaleMode==2){uv=applyTransform(_TextureTransform,uv0);maskOutside=true;}else if(_ImageScaleMode==3){float aspectFix=rDst/max(rSrc,1e-6);vec2 uvTile=(uv0-0.5)*vec2(aspectFix,1.0)+0.5;float s=max(abs(_ImageScalingFactor),1e-6);uv=fract(uvTile*s);}vec4 img=texture2D(_ImageTex,uv);if(maskOutside){if(uv.x<0.0||uv.x>1.0||uv.y<0.0||uv.y>1.0){img.a=0.0;}}img.a*=_ImageOpacity;finalColor=img;}finalColor.rgb*=finalColor.a;gl_FragColor=finalColor;}";
16266
16268
 
16267
- exports.FillType = void 0;
16268
- (function(FillType) {
16269
- FillType[FillType["Solid"] = 0] = "Solid";
16270
- FillType[FillType["GradientLinear"] = 1] = "GradientLinear";
16271
- FillType[FillType["GradientRadial"] = 2] = "GradientRadial";
16272
- FillType[FillType["GradientAngular"] = 3] = "GradientAngular";
16273
- FillType[FillType["Texture"] = 4] = "Texture";
16274
- })(exports.FillType || (exports.FillType = {}));
16275
16269
  exports.TexturePaintScaleMode = void 0;
16276
16270
  (function(TexturePaintScaleMode) {
16277
16271
  TexturePaintScaleMode[TexturePaintScaleMode["Fill"] = 0] = "Fill";
@@ -16297,6 +16291,9 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16297
16291
  join: LineJoin.Miter,
16298
16292
  miterLimit: 10
16299
16293
  };
16294
+ _this.strokeWidth = 1;
16295
+ _this.strokeCap = LineCap.Butt;
16296
+ _this.strokeJoin = LineJoin.Miter;
16300
16297
  _this.strokes = [];
16301
16298
  /**
16302
16299
  * 用于点击测试的碰撞器
@@ -16330,12 +16327,12 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16330
16327
  // Create Shape Attrributes
16331
16328
  //-------------------------------------------------------------------------
16332
16329
  var gradientStrokeFill = {
16333
- type: 0,
16330
+ type: FillType.Solid,
16334
16331
  color: new Color(1, 1, 1, 1)
16335
16332
  };
16336
16333
  _this.strokes.push(gradientStrokeFill);
16337
16334
  var gradientLayerFill = {
16338
- type: 0,
16335
+ type: FillType.Solid,
16339
16336
  color: new Color(1, 1, 1, 1)
16340
16337
  };
16341
16338
  _this.fills.push(gradientLayerFill);
@@ -16499,6 +16496,9 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16499
16496
  indices.length;
16500
16497
  var vertOffset1 = vertices.length / 2;
16501
16498
  var lineStyle = this.strokeAttributes;
16499
+ lineStyle.cap = this.strokeCap;
16500
+ lineStyle.join = this.strokeJoin;
16501
+ lineStyle.width = this.strokeWidth;
16502
16502
  var close = true;
16503
16503
  if (this.shapeAttributes.type === ShapePrimitiveType.Custom) {
16504
16504
  close = shape1.closePath;
@@ -16663,11 +16663,11 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16663
16663
  };
16664
16664
  _proto.updatePaintMaterial = function updatePaintMaterial(material, paint) {
16665
16665
  material.setFloat("_FillType", paint.type);
16666
- if (paint.type === 0) {
16666
+ if (paint.type === FillType.Solid) {
16667
16667
  material.color = paint.color;
16668
- } else if (paint.type === 1 || paint.type === 3 || paint.type === 2) {
16668
+ } else if (paint.type === FillType.GradientLinear || paint.type === FillType.GradientAngular || paint.type === FillType.GradientRadial) {
16669
16669
  this.updateGradientMaterial(material, paint.gradientStops, paint.startPoint, paint.endPoint);
16670
- } else if (paint.type === 4) {
16670
+ } else if (paint.type === FillType.Texture) {
16671
16671
  material.setInt("_ImageScaleMode", paint.scaleMode);
16672
16672
  material.setVector2("_ImageSize", new Vector2(paint.texture.getWidth(), paint.texture.getHeight()));
16673
16673
  var boundingBox = this.getBoundingBox();
@@ -16677,6 +16677,8 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16677
16677
  material.setFloat("_ImageOpacity", paint.opacity);
16678
16678
  material.setFloat("_ImageScalingFactor", paint.scalingFactor);
16679
16679
  material.setTexture("_ImageTex", paint.texture);
16680
+ var transform = paint.textureTransform;
16681
+ material.setMatrix3("_TextureTransform", new Matrix3().scale(transform.scale.x, transform.scale.y).rotate(transform.rotation).translate(transform.offset.x, transform.offset.y).invert());
16680
16682
  }
16681
16683
  };
16682
16684
  _proto.updateGradientMaterial = function updateGradientMaterial(material, gradient, startPoint, endPoint) {
@@ -16712,17 +16714,12 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16712
16714
  side: (_renderer_side = renderer.side) != null ? _renderer_side : SideMode.DOUBLE,
16713
16715
  mask: this.maskManager.getRefValue()
16714
16716
  };
16715
- var strokeAttributes = data.stroke;
16716
- if (strokeAttributes) {
16717
- this.strokeAttributes = {
16718
- width: strokeAttributes.width,
16719
- alignment: 0.5,
16720
- cap: strokeAttributes.cap,
16721
- join: strokeAttributes.join,
16722
- miterLimit: 10
16723
- };
16724
- }
16725
- //@ts-expect-error
16717
+ var _data_strokeCap;
16718
+ this.strokeCap = (_data_strokeCap = data.strokeCap) != null ? _data_strokeCap : LineCap.Butt;
16719
+ var _data_strokeWidth;
16720
+ this.strokeWidth = (_data_strokeWidth = data.strokeWidth) != null ? _data_strokeWidth : 1;
16721
+ var _data_strokeJoin;
16722
+ this.strokeJoin = (_data_strokeJoin = data.strokeJoin) != null ? _data_strokeJoin : LineJoin.Miter;
16726
16723
  for(var _iterator = _create_for_of_iterator_helper_loose(data.strokes), _step; !(_step = _iterator()).done;){
16727
16724
  var stroke = _step.value;
16728
16725
  var strokeParam = stroke;
@@ -16731,7 +16728,6 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16731
16728
  this.strokes[0] = this.createPaint(strokeParam);
16732
16729
  }
16733
16730
  }
16734
- //@ts-expect-error
16735
16731
  for(var _iterator1 = _create_for_of_iterator_helper_loose(data.fills), _step1; !(_step1 = _iterator1()).done;){
16736
16732
  var fill = _step1.value;
16737
16733
  var fillParam = fill;
@@ -16821,7 +16817,7 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16821
16817
  _proto.createPaint = function createPaint(paintData) {
16822
16818
  var paint;
16823
16819
  switch(paintData.type){
16824
- case 0:
16820
+ case FillType.Solid:
16825
16821
  {
16826
16822
  paint = {
16827
16823
  type: paintData.type,
@@ -16829,9 +16825,9 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16829
16825
  };
16830
16826
  break;
16831
16827
  }
16832
- case 1:
16833
- case 3:
16834
- case 2:
16828
+ case FillType.GradientLinear:
16829
+ case FillType.GradientAngular:
16830
+ case FillType.GradientRadial:
16835
16831
  {
16836
16832
  paint = {
16837
16833
  type: paintData.type,
@@ -16841,15 +16837,32 @@ exports.ShapeComponent = /*#__PURE__*/ function(RendererComponent) {
16841
16837
  };
16842
16838
  break;
16843
16839
  }
16844
- case 4:
16840
+ case FillType.Texture:
16845
16841
  {
16842
+ var _paintData_textureTransform;
16843
+ var textureTransform = _extends({
16844
+ offset: {
16845
+ x: 0,
16846
+ y: 0
16847
+ },
16848
+ rotation: 0,
16849
+ scale: {
16850
+ x: 1,
16851
+ y: 1
16852
+ }
16853
+ }, (_paintData_textureTransform = paintData.textureTransform) != null ? _paintData_textureTransform : {});
16846
16854
  var _paintData_scalingFactor, _paintData_opacity;
16847
16855
  paint = {
16848
16856
  type: paintData.type,
16849
16857
  texture: this.engine.findObject(paintData.texture),
16850
16858
  scaleMode: paintData.scaleMode,
16851
16859
  scalingFactor: (_paintData_scalingFactor = paintData.scalingFactor) != null ? _paintData_scalingFactor : 1,
16852
- opacity: (_paintData_opacity = paintData.opacity) != null ? _paintData_opacity : 1
16860
+ opacity: (_paintData_opacity = paintData.opacity) != null ? _paintData_opacity : 1,
16861
+ textureTransform: {
16862
+ offset: new Vector2().copyFrom(textureTransform.offset),
16863
+ rotation: textureTransform.rotation,
16864
+ scale: new Vector2().copyFrom(textureTransform.scale)
16865
+ }
16853
16866
  };
16854
16867
  break;
16855
16868
  }
@@ -30505,28 +30518,35 @@ function version34Migration(json) {
30505
30518
  }
30506
30519
  if (componentData1.dataType === DataType.ShapeComponent) {
30507
30520
  var shapeComponentData = componentData1;
30508
- //@ts-expect-error
30509
30521
  shapeComponentData.fills = [];
30522
+ //@ts-expect-error
30510
30523
  if (shapeComponentData.fill) {
30511
30524
  var solidPaintData = {
30512
- type: exports.FillType.Solid,
30525
+ type: FillType.Solid,
30526
+ //@ts-expect-error
30513
30527
  color: shapeComponentData.fill.color
30514
30528
  };
30515
- //@ts-expect-error
30516
30529
  shapeComponentData.fills.push(solidPaintData);
30517
30530
  }
30518
- delete shapeComponentData.fill;
30519
30531
  //@ts-expect-error
30532
+ delete shapeComponentData.fill;
30520
30533
  shapeComponentData.strokes = [];
30534
+ //@ts-expect-error
30521
30535
  if (shapeComponentData.stroke) {
30522
30536
  var solidPaintData1 = {
30523
- type: exports.FillType.Solid,
30537
+ type: FillType.Solid,
30538
+ //@ts-expect-error
30524
30539
  color: shapeComponentData.stroke.color
30525
30540
  };
30526
- //@ts-expect-error
30527
30541
  shapeComponentData.strokes.push(solidPaintData1);
30528
30542
  //@ts-expect-error
30529
- shapeComponentData.stroke.color = undefined;
30543
+ shapeComponentData.strokeWidth = shapeComponentData.stroke.width;
30544
+ //@ts-expect-error
30545
+ shapeComponentData.strokeCap = shapeComponentData.stroke.cap;
30546
+ //@ts-expect-error
30547
+ shapeComponentData.strokeJoin = shapeComponentData.stroke.join;
30548
+ //@ts-expect-error
30549
+ delete shapeComponentData.stroke;
30530
30550
  }
30531
30551
  }
30532
30552
  }
@@ -31456,7 +31476,7 @@ function getStandardSpriteContent(sprite, transform) {
31456
31476
  return ret;
31457
31477
  }
31458
31478
 
31459
- var version$2 = "2.7.0-alpha.1";
31479
+ var version$2 = "2.7.0-alpha.2";
31460
31480
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
31461
31481
  var standardVersion = /^(\d+)\.(\d+)$/;
31462
31482
  var reverseParticle = false;
@@ -34729,7 +34749,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem);
34729
34749
  registerPlugin("particle", ParticleLoader, exports.VFXItem);
34730
34750
  registerPlugin("cal", CalculateLoader, exports.VFXItem);
34731
34751
  registerPlugin("interact", InteractLoader, exports.VFXItem);
34732
- var version$1 = "2.7.0-alpha.1";
34752
+ var version$1 = "2.7.0-alpha.2";
34733
34753
  logger.info("Core version: " + version$1 + ".");
34734
34754
 
34735
34755
  var _obj;
@@ -36325,7 +36345,7 @@ setMaxSpriteMeshItemCount(8);
36325
36345
  */ Mesh.create = function(engine, props) {
36326
36346
  return new ThreeMesh(engine, props);
36327
36347
  };
36328
- var version = "2.7.0-alpha.1";
36348
+ var version = "2.7.0-alpha.2";
36329
36349
  logger.info("THREEJS plugin version: " + version + ".");
36330
36350
 
36331
36351
  exports.AbstractPlugin = AbstractPlugin;