@galacean/effects-threejs 2.4.0-beta.1 → 2.4.0-beta.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.4.0-beta.1
6
+ * Version: v2.4.0-beta.2
7
7
  */
8
8
 
9
9
  'use strict';
@@ -6147,12 +6147,7 @@ function setMaskMode(material, maskMode, colorMask) {
6147
6147
  glContext.REPLACE
6148
6148
  ];
6149
6149
  // 关闭/开启蒙版元素的颜色写入
6150
- material.colorMask = [
6151
- colorMask,
6152
- colorMask,
6153
- colorMask,
6154
- colorMask
6155
- ];
6150
+ material.colorMask = colorMask;
6156
6151
  break;
6157
6152
  case exports.MaskMode.OBSCURED:
6158
6153
  material.stencilTest = true;
@@ -7624,13 +7619,6 @@ exports.MaterialRenderType = void 0;
7624
7619
  set: /**
7625
7620
  * 设置 Material 的通过 alpha 值决定临时覆盖值计算的开关
7626
7621
  * @param value - 是否开启 alpha 抖动
7627
- */ function set(value) {}
7628
- },
7629
- {
7630
- key: "colorMask",
7631
- set: /**
7632
- * 设置 Material 颜色缓冲区的写入开关
7633
- * @param value
7634
7622
  */ function set(value) {}
7635
7623
  },
7636
7624
  {
@@ -7689,10 +7677,15 @@ var MaskProcessor = /*#__PURE__*/ function() {
7689
7677
  } else if (mode === ObscuredMode.OBSCURED || mode === ObscuredMode.REVERSE_OBSCURED) {
7690
7678
  maskMode = mode === ObscuredMode.OBSCURED ? exports.MaskMode.OBSCURED : exports.MaskMode.REVERSE_OBSCURED;
7691
7679
  this.maskRef = ref.maskManager.getRefValue();
7680
+ this.maskable = ref;
7692
7681
  }
7693
7682
  }
7694
7683
  return maskMode;
7695
7684
  };
7685
+ _proto.drawStencilMask = function drawStencilMask(renderer) {
7686
+ var _this_maskable;
7687
+ (_this_maskable = this.maskable) == null ? void 0 : _this_maskable.drawStencilMask(renderer);
7688
+ };
7696
7689
  return MaskProcessor;
7697
7690
  }();
7698
7691
 
@@ -12599,17 +12592,16 @@ function getBezier2DValue(out, t, p0, p1, cpx0, cpy0, cpx1, cpy1) {
12599
12592
  if (!this.getVisible()) {
12600
12593
  return;
12601
12594
  }
12602
- if (renderer.renderingData.currentFrame.globalUniforms) {
12603
- renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
12604
- }
12605
- for(var i = 0; i < this.materials.length; i++){
12606
- var material = this.materials[i];
12607
- material.setVector2("_Size", this.transform.size);
12608
- if (this.renderer.renderMode === RenderMode.BILLBOARD || this.renderer.renderMode === RenderMode.VERTICAL_BILLBOARD || this.renderer.renderMode === RenderMode.HORIZONTAL_BILLBOARD) {
12609
- material.setVector3("_Scale", this.transform.scale);
12610
- }
12611
- renderer.drawGeometry(this.geometry, material, i);
12612
- }
12595
+ this.maskManager.drawStencilMask(renderer);
12596
+ this.draw(renderer);
12597
+ };
12598
+ /**
12599
+ * @internal
12600
+ */ _proto.drawStencilMask = function drawStencilMask(renderer) {
12601
+ var previousColorMask = this.material.colorMask;
12602
+ this.material.colorMask = false;
12603
+ this.draw(renderer);
12604
+ this.material.colorMask = previousColorMask;
12613
12605
  };
12614
12606
  _proto.onStart = function onStart() {
12615
12607
  this.item.getHitTestParams = this.getHitTestParams;
@@ -12747,6 +12739,19 @@ function getBezier2DValue(out, t, p0, p1, cpx0, cpy0, cpx1, cpy1) {
12747
12739
  }
12748
12740
  return material;
12749
12741
  };
12742
+ _proto.draw = function draw(renderer) {
12743
+ if (renderer.renderingData.currentFrame.globalUniforms) {
12744
+ renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
12745
+ }
12746
+ for(var i = 0; i < this.materials.length; i++){
12747
+ var material = this.materials[i];
12748
+ material.setVector2("_Size", this.transform.size);
12749
+ if (this.renderer.renderMode === RenderMode.BILLBOARD || this.renderer.renderMode === RenderMode.VERTICAL_BILLBOARD || this.renderer.renderMode === RenderMode.HORIZONTAL_BILLBOARD) {
12750
+ material.setVector3("_Scale", this.transform.scale);
12751
+ }
12752
+ renderer.drawGeometry(this.geometry, material, i);
12753
+ }
12754
+ };
12750
12755
  _proto.fromData = function fromData(data) {
12751
12756
  RendererComponent.prototype.fromData.call(this, data);
12752
12757
  var _data_renderer;
@@ -15387,6 +15392,7 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
15387
15392
  };
15388
15393
  _this.duringPlay = false;
15389
15394
  /** 是否响应点击和拖拽交互事件 */ _this._interactive = true;
15395
+ _this.lastTime = -1;
15390
15396
  _this.getHitTestParams = function(force) {
15391
15397
  if (!_this.clickable) {
15392
15398
  return;
@@ -15477,11 +15483,21 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
15477
15483
  var _this_previewContent;
15478
15484
  this.duringPlay = true;
15479
15485
  // trigger messageBegin when item enter
15480
- if (this.item.time > 0 && this.item.time - dt / 1000 <= 0) {
15481
- var _this_item_composition;
15482
- var options = this.item.props.content.options;
15483
- (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.addInteractiveItem(this.item, options.type);
15486
+ if (this.lastTime <= this.item.time) {
15487
+ if (this.item.time >= 0 && this.lastTime < 0) {
15488
+ var _this_item_composition;
15489
+ var options = this.item.props.content.options;
15490
+ (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.addInteractiveItem(this.item, options.type);
15491
+ }
15492
+ } else {
15493
+ // loop trigger
15494
+ if (this.item.time >= 0) {
15495
+ var _this_item_composition1;
15496
+ var options1 = this.item.props.content.options;
15497
+ (_this_item_composition1 = this.item.composition) == null ? void 0 : _this_item_composition1.addInteractiveItem(this.item, options1.type);
15498
+ }
15484
15499
  }
15500
+ this.lastTime = this.item.time;
15485
15501
  (_this_previewContent = this.previewContent) == null ? void 0 : _this_previewContent.updateMesh();
15486
15502
  if (!this.dragEvent || !this.bouncingArg) {
15487
15503
  return;
@@ -18613,6 +18629,7 @@ function modifyMaxKeyframeShader(shader, maxVertex, maxFrag) {
18613
18629
  this.particleMesh.mesh.material.setVector4("uParams", uParams.set(time, this.item.duration, 0, 0));
18614
18630
  };
18615
18631
  _proto.render = function render(renderer) {
18632
+ this.maskManager.drawStencilMask(renderer);
18616
18633
  for(var _iterator = _create_for_of_iterator_helper_loose(this.meshes), _step; !(_step = _iterator()).done;){
18617
18634
  var mesh = _step.value;
18618
18635
  mesh.render(renderer);
@@ -19562,6 +19579,7 @@ exports.ParticleSystem = /*#__PURE__*/ function(Component) {
19562
19579
  }
19563
19580
  this.renderer = new ParticleSystemRenderer(this.engine, particleMeshProps, trailMeshProps);
19564
19581
  this.renderer.item = this.item;
19582
+ this.renderer.maskManager = this.maskManager;
19565
19583
  this.meshes = this.renderer.meshes;
19566
19584
  var interaction = props.interaction;
19567
19585
  if (interaction) {
@@ -31645,7 +31663,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem);
31645
31663
  registerPlugin("particle", ParticleLoader, exports.VFXItem);
31646
31664
  registerPlugin("cal", CalculateLoader, exports.VFXItem);
31647
31665
  registerPlugin("interact", InteractLoader, exports.VFXItem);
31648
- var version$1 = "2.4.0-beta.1";
31666
+ var version$1 = "2.4.0-beta.2";
31649
31667
  logger.info("Core version: " + version$1 + ".");
31650
31668
 
31651
31669
  var _obj;
@@ -32238,6 +32256,17 @@ var _obj3;
32238
32256
  this.material.side = THREE__namespace.BackSide;
32239
32257
  }
32240
32258
  }
32259
+ },
32260
+ {
32261
+ key: "colorMask",
32262
+ get: function get() {
32263
+ return this.material.colorWrite;
32264
+ },
32265
+ set: /**
32266
+ * 获取颜色写入开关
32267
+ */ function set(value) {
32268
+ this.material.colorWrite = value;
32269
+ }
32241
32270
  }
32242
32271
  ]);
32243
32272
  return ThreeMaterial;
@@ -33236,7 +33265,7 @@ setMaxSpriteMeshItemCount(8);
33236
33265
  */ Mesh.create = function(engine, props) {
33237
33266
  return new ThreeMesh(engine, props);
33238
33267
  };
33239
- var version = "2.4.0-beta.1";
33268
+ var version = "2.4.0-beta.2";
33240
33269
  logger.info("THREEJS plugin version: " + version + ".");
33241
33270
 
33242
33271
  exports.AbstractPlugin = AbstractPlugin;