@galacean/effects-threejs 2.8.9 → 2.8.11

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.8.9
6
+ * Version: v2.8.11
7
7
  */
8
8
 
9
9
  'use strict';
@@ -2376,8 +2376,21 @@ function colorToArr$1(hex, normalized) {
2376
2376
  return ret;
2377
2377
  }
2378
2378
  function getColorFromGradientStops(stops, key, normalize) {
2379
- if (stops.length) {
2380
- var color;
2379
+ if (stops.length === 0) {
2380
+ return [
2381
+ 0,
2382
+ 0,
2383
+ 0,
2384
+ 0
2385
+ ];
2386
+ }
2387
+ var color;
2388
+ if (key <= stops[0].time) {
2389
+ color = stops[0].color.toArray();
2390
+ } else if (key >= stops[stops.length - 1].time) {
2391
+ color = stops[stops.length - 1].color.toArray();
2392
+ } else {
2393
+ color = stops[stops.length - 1].color.toArray();
2381
2394
  for(var j = 1; j <= stops.length - 1; j++){
2382
2395
  var s0 = stops[j - 1];
2383
2396
  var s1 = stops[j];
@@ -2386,19 +2399,10 @@ function getColorFromGradientStops(stops, key, normalize) {
2386
2399
  break;
2387
2400
  }
2388
2401
  }
2389
- if (!color) {
2390
- color = stops[stops.length - 1].color.toArray();
2391
- }
2392
- return normalize ? color.map(function(n) {
2393
- return n / 255;
2394
- }) : color;
2395
2402
  }
2396
- return [
2397
- 0,
2398
- 0,
2399
- 0,
2400
- 0
2401
- ];
2403
+ return normalize ? color.map(function(n) {
2404
+ return n / 255;
2405
+ }) : color;
2402
2406
  }
2403
2407
  function colorStopsFromGradient(gradient) {
2404
2408
  var stops = [];
@@ -2425,21 +2429,6 @@ function colorStopsFromGradient(gradient) {
2425
2429
  stops = stops.sort(function(a, b) {
2426
2430
  return a.time - b.time;
2427
2431
  });
2428
- if (stops.length) {
2429
- if (stops[0].time !== 0) {
2430
- stops.unshift({
2431
- time: 0,
2432
- color: stops[0].color.clone()
2433
- });
2434
- }
2435
- var lastStop = stops[stops.length - 1];
2436
- if (lastStop.time !== 1) {
2437
- stops.push({
2438
- time: 1,
2439
- color: lastStop.color.clone()
2440
- });
2441
- }
2442
- }
2443
2432
  return stops;
2444
2433
  }
2445
2434
  function interpolateColor(a, b, s, origin) {
@@ -2528,22 +2517,24 @@ function imageDataFromGradient(gradient) {
2528
2517
  var data = image.data;
2529
2518
  var stops = colorStopsFromGradient(gradient);
2530
2519
  if (stops.length) {
2531
- data.set(stops[0].color.toArray(), 0);
2532
- for(var i = 1, cursor = 0; i < width - 1; i++){
2533
- var index = i / width;
2534
- var s0 = void 0;
2535
- var s1 = void 0;
2536
- for(var j = cursor; j < stops.length; j++){
2537
- s0 = stops[j];
2538
- s1 = stops[j + 1];
2539
- if (s0.time <= index && s1.time > index) {
2540
- break;
2520
+ for(var i = 0; i < width; i++){
2521
+ var index = i / (width - 1);
2522
+ if (index <= stops[0].time) {
2523
+ data.set(stops[0].color.toArray(), i * 4);
2524
+ } else if (index >= stops[stops.length - 1].time) {
2525
+ data.set(stops[stops.length - 1].color.toArray(), i * 4);
2526
+ } else {
2527
+ for(var j = 0; j < stops.length - 1; j++){
2528
+ var s0 = stops[j];
2529
+ var s1 = stops[j + 1];
2530
+ if (s0.time <= index && s1.time > index) {
2531
+ var color = interpolateColor(s0.color.toArray(), s1.color.toArray(), (index - s0.time) / (s1.time - s0.time));
2532
+ data.set(color, i * 4);
2533
+ break;
2534
+ }
2541
2535
  }
2542
2536
  }
2543
- var color = interpolateColor(s0.color.toArray(), s1.color.toArray(), (index - s0.time) / (s1.time - s0.time));
2544
- data.set(color, i * 4);
2545
2537
  }
2546
- data.set(stops[stops.length - 1].color.toArray(), (width - 1) * 4);
2547
2538
  }
2548
2539
  return image;
2549
2540
  }
@@ -11867,7 +11858,21 @@ var GradientValue = /*#__PURE__*/ function(ValueGetter) {
11867
11858
  };
11868
11859
  _proto.getValue = function getValue(time) {
11869
11860
  var stops = this.stops;
11861
+ if (stops.length === 0) {
11862
+ return [
11863
+ 0,
11864
+ 0,
11865
+ 0,
11866
+ 0
11867
+ ];
11868
+ }
11869
+ if (time <= stops[0].time) {
11870
+ return stops[0].color.toArray();
11871
+ }
11870
11872
  var last = stops.length - 1;
11873
+ if (time >= stops[last].time) {
11874
+ return stops[last].color.toArray();
11875
+ }
11871
11876
  for(var i = 0; i < last; i++){
11872
11877
  var a = stops[i];
11873
11878
  var b = stops[i + 1];
@@ -18509,7 +18514,7 @@ exports.PostProcessVolume = __decorate([
18509
18514
 
18510
18515
  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;}";
18511
18516
 
18512
- 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;}";
18517
+ 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);}}if(_StopsCount>0){if(t<=_Stops[0]){finalColor=_Colors[0];}else if(t>=_Stops[_StopsCount-1]){finalColor=_Colors[_StopsCount-1];}else{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;}";
18513
18518
 
18514
18519
  exports.TexturePaintScaleMode = void 0;
18515
18520
  (function(TexturePaintScaleMode) {
@@ -31659,7 +31664,7 @@ function getStandardSpriteContent(sprite, transform) {
31659
31664
  return ret;
31660
31665
  }
31661
31666
 
31662
- var version$2 = "2.8.9";
31667
+ var version$2 = "2.8.11";
31663
31668
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
31664
31669
  var standardVersion = /^(\d+)\.(\d+)$/;
31665
31670
  var reverseParticle = false;
@@ -35359,7 +35364,7 @@ registerPlugin("text", TextLoader);
35359
35364
  registerPlugin("sprite", SpriteLoader);
35360
35365
  registerPlugin("particle", ParticleLoader);
35361
35366
  registerPlugin("interact", InteractLoader);
35362
- var version$1 = "2.8.9";
35367
+ var version$1 = "2.8.11";
35363
35368
  logger.info("Core version: " + version$1 + ".");
35364
35369
 
35365
35370
  var _obj;
@@ -36936,7 +36941,7 @@ applyMixins(exports.ThreeTextComponent, [
36936
36941
  */ Mesh.create = function(engine, props) {
36937
36942
  return new ThreeMesh(engine, props);
36938
36943
  };
36939
- var version = "2.8.9";
36944
+ var version = "2.8.11";
36940
36945
  logger.info("THREEJS plugin version: " + version + ".");
36941
36946
 
36942
36947
  exports.ActivationMixerPlayable = ActivationMixerPlayable;