@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.mjs 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
  import * as THREE from 'three';
@@ -6123,12 +6123,7 @@ function setMaskMode(material, maskMode, colorMask) {
6123
6123
  glContext.REPLACE
6124
6124
  ];
6125
6125
  // 关闭/开启蒙版元素的颜色写入
6126
- material.colorMask = [
6127
- colorMask,
6128
- colorMask,
6129
- colorMask,
6130
- colorMask
6131
- ];
6126
+ material.colorMask = colorMask;
6132
6127
  break;
6133
6128
  case MaskMode.OBSCURED:
6134
6129
  material.stencilTest = true;
@@ -7600,13 +7595,6 @@ var MaterialRenderType;
7600
7595
  set: /**
7601
7596
  * 设置 Material 的通过 alpha 值决定临时覆盖值计算的开关
7602
7597
  * @param value - 是否开启 alpha 抖动
7603
- */ function set(value) {}
7604
- },
7605
- {
7606
- key: "colorMask",
7607
- set: /**
7608
- * 设置 Material 颜色缓冲区的写入开关
7609
- * @param value
7610
7598
  */ function set(value) {}
7611
7599
  },
7612
7600
  {
@@ -7665,10 +7653,15 @@ var MaskProcessor = /*#__PURE__*/ function() {
7665
7653
  } else if (mode === ObscuredMode.OBSCURED || mode === ObscuredMode.REVERSE_OBSCURED) {
7666
7654
  maskMode = mode === ObscuredMode.OBSCURED ? MaskMode.OBSCURED : MaskMode.REVERSE_OBSCURED;
7667
7655
  this.maskRef = ref.maskManager.getRefValue();
7656
+ this.maskable = ref;
7668
7657
  }
7669
7658
  }
7670
7659
  return maskMode;
7671
7660
  };
7661
+ _proto.drawStencilMask = function drawStencilMask(renderer) {
7662
+ var _this_maskable;
7663
+ (_this_maskable = this.maskable) == null ? void 0 : _this_maskable.drawStencilMask(renderer);
7664
+ };
7672
7665
  return MaskProcessor;
7673
7666
  }();
7674
7667
 
@@ -12575,17 +12568,16 @@ function getBezier2DValue(out, t, p0, p1, cpx0, cpy0, cpx1, cpy1) {
12575
12568
  if (!this.getVisible()) {
12576
12569
  return;
12577
12570
  }
12578
- if (renderer.renderingData.currentFrame.globalUniforms) {
12579
- renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
12580
- }
12581
- for(var i = 0; i < this.materials.length; i++){
12582
- var material = this.materials[i];
12583
- material.setVector2("_Size", this.transform.size);
12584
- if (this.renderer.renderMode === RenderMode.BILLBOARD || this.renderer.renderMode === RenderMode.VERTICAL_BILLBOARD || this.renderer.renderMode === RenderMode.HORIZONTAL_BILLBOARD) {
12585
- material.setVector3("_Scale", this.transform.scale);
12586
- }
12587
- renderer.drawGeometry(this.geometry, material, i);
12588
- }
12571
+ this.maskManager.drawStencilMask(renderer);
12572
+ this.draw(renderer);
12573
+ };
12574
+ /**
12575
+ * @internal
12576
+ */ _proto.drawStencilMask = function drawStencilMask(renderer) {
12577
+ var previousColorMask = this.material.colorMask;
12578
+ this.material.colorMask = false;
12579
+ this.draw(renderer);
12580
+ this.material.colorMask = previousColorMask;
12589
12581
  };
12590
12582
  _proto.onStart = function onStart() {
12591
12583
  this.item.getHitTestParams = this.getHitTestParams;
@@ -12723,6 +12715,19 @@ function getBezier2DValue(out, t, p0, p1, cpx0, cpy0, cpx1, cpy1) {
12723
12715
  }
12724
12716
  return material;
12725
12717
  };
12718
+ _proto.draw = function draw(renderer) {
12719
+ if (renderer.renderingData.currentFrame.globalUniforms) {
12720
+ renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
12721
+ }
12722
+ for(var i = 0; i < this.materials.length; i++){
12723
+ var material = this.materials[i];
12724
+ material.setVector2("_Size", this.transform.size);
12725
+ if (this.renderer.renderMode === RenderMode.BILLBOARD || this.renderer.renderMode === RenderMode.VERTICAL_BILLBOARD || this.renderer.renderMode === RenderMode.HORIZONTAL_BILLBOARD) {
12726
+ material.setVector3("_Scale", this.transform.scale);
12727
+ }
12728
+ renderer.drawGeometry(this.geometry, material, i);
12729
+ }
12730
+ };
12726
12731
  _proto.fromData = function fromData(data) {
12727
12732
  RendererComponent.prototype.fromData.call(this, data);
12728
12733
  var _data_renderer;
@@ -15363,6 +15368,7 @@ var InteractComponent = /*#__PURE__*/ function(RendererComponent) {
15363
15368
  };
15364
15369
  _this.duringPlay = false;
15365
15370
  /** 是否响应点击和拖拽交互事件 */ _this._interactive = true;
15371
+ _this.lastTime = -1;
15366
15372
  _this.getHitTestParams = function(force) {
15367
15373
  if (!_this.clickable) {
15368
15374
  return;
@@ -15453,11 +15459,21 @@ var InteractComponent = /*#__PURE__*/ function(RendererComponent) {
15453
15459
  var _this_previewContent;
15454
15460
  this.duringPlay = true;
15455
15461
  // trigger messageBegin when item enter
15456
- if (this.item.time > 0 && this.item.time - dt / 1000 <= 0) {
15457
- var _this_item_composition;
15458
- var options = this.item.props.content.options;
15459
- (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.addInteractiveItem(this.item, options.type);
15462
+ if (this.lastTime <= this.item.time) {
15463
+ if (this.item.time >= 0 && this.lastTime < 0) {
15464
+ var _this_item_composition;
15465
+ var options = this.item.props.content.options;
15466
+ (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.addInteractiveItem(this.item, options.type);
15467
+ }
15468
+ } else {
15469
+ // loop trigger
15470
+ if (this.item.time >= 0) {
15471
+ var _this_item_composition1;
15472
+ var options1 = this.item.props.content.options;
15473
+ (_this_item_composition1 = this.item.composition) == null ? void 0 : _this_item_composition1.addInteractiveItem(this.item, options1.type);
15474
+ }
15460
15475
  }
15476
+ this.lastTime = this.item.time;
15461
15477
  (_this_previewContent = this.previewContent) == null ? void 0 : _this_previewContent.updateMesh();
15462
15478
  if (!this.dragEvent || !this.bouncingArg) {
15463
15479
  return;
@@ -18589,6 +18605,7 @@ function modifyMaxKeyframeShader(shader, maxVertex, maxFrag) {
18589
18605
  this.particleMesh.mesh.material.setVector4("uParams", uParams.set(time, this.item.duration, 0, 0));
18590
18606
  };
18591
18607
  _proto.render = function render(renderer) {
18608
+ this.maskManager.drawStencilMask(renderer);
18592
18609
  for(var _iterator = _create_for_of_iterator_helper_loose(this.meshes), _step; !(_step = _iterator()).done;){
18593
18610
  var mesh = _step.value;
18594
18611
  mesh.render(renderer);
@@ -19538,6 +19555,7 @@ var ParticleSystem = /*#__PURE__*/ function(Component) {
19538
19555
  }
19539
19556
  this.renderer = new ParticleSystemRenderer(this.engine, particleMeshProps, trailMeshProps);
19540
19557
  this.renderer.item = this.item;
19558
+ this.renderer.maskManager = this.maskManager;
19541
19559
  this.meshes = this.renderer.meshes;
19542
19560
  var interaction = props.interaction;
19543
19561
  if (interaction) {
@@ -31621,7 +31639,7 @@ registerPlugin("sprite", SpriteLoader, VFXItem);
31621
31639
  registerPlugin("particle", ParticleLoader, VFXItem);
31622
31640
  registerPlugin("cal", CalculateLoader, VFXItem);
31623
31641
  registerPlugin("interact", InteractLoader, VFXItem);
31624
- var version$1 = "2.4.0-beta.1";
31642
+ var version$1 = "2.4.0-beta.2";
31625
31643
  logger.info("Core version: " + version$1 + ".");
31626
31644
 
31627
31645
  var _obj;
@@ -32214,6 +32232,17 @@ var _obj3;
32214
32232
  this.material.side = THREE.BackSide;
32215
32233
  }
32216
32234
  }
32235
+ },
32236
+ {
32237
+ key: "colorMask",
32238
+ get: function get() {
32239
+ return this.material.colorWrite;
32240
+ },
32241
+ set: /**
32242
+ * 获取颜色写入开关
32243
+ */ function set(value) {
32244
+ this.material.colorWrite = value;
32245
+ }
32217
32246
  }
32218
32247
  ]);
32219
32248
  return ThreeMaterial;
@@ -33212,7 +33241,7 @@ setMaxSpriteMeshItemCount(8);
33212
33241
  */ Mesh.create = function(engine, props) {
33213
33242
  return new ThreeMesh(engine, props);
33214
33243
  };
33215
- var version = "2.4.0-beta.1";
33244
+ var version = "2.4.0-beta.2";
33216
33245
  logger.info("THREEJS plugin version: " + version + ".");
33217
33246
 
33218
33247
  export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, AssetService, BYTES_TYPE_MAP, BaseRenderComponent, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, Composition, CompositionComponent, DEFAULT_FONTS, DEFAULT_FPS, Database, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, EffectsPackage, Ellipse, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, GraphicsPath, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, MaskMode, MaskProcessor, MaskRefManager, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PluginSystem, PolyStar, Polygon, PostProcessVolume, PropertyTrack, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, Scene, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, ShapePath, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StarType, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TEXTURE_UNIFORM_MAP, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTextComponent, ThreeTexture, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, Vector2Curve, Vector2PropertyPlayableAsset, Vector2PropertyTrack, Vector4Curve, Vector4PropertyPlayableAsset, Vector4PropertyTrack, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, buildLine, calculateTranslation, canvasPool, closePointEps, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, curveEps, decimalEqual, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemFrame_frag as itemFrameFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, normalizeColor, numberToFix, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, setUniformValue, sortByOrder, index$1 as spec, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };