@galacean/effects-threejs 2.3.0-beta.1 → 2.3.0-beta.3

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.3.0-beta.1
6
+ * Version: v2.3.0-beta.3
7
7
  */
8
8
 
9
9
  import * as THREE from 'three';
@@ -16830,7 +16830,10 @@ var CameraController = /*#__PURE__*/ function(Behaviour) {
16830
16830
  camera.far = this.options.far;
16831
16831
  camera.fov = this.options.fov;
16832
16832
  camera.clipMode = this.options.clipMode;
16833
- camera.setTransform(this.transform);
16833
+ camera.transform.parentTransform = this.transform.parentTransform;
16834
+ camera.position = this.transform.position;
16835
+ // TODO 修正 GE 四元数旋转共轭问题
16836
+ camera.setQuat(this.transform.getQuaternion().clone().conjugate());
16834
16837
  }
16835
16838
  };
16836
16839
  _proto.fromData = function fromData(data) {
@@ -25516,9 +25519,12 @@ var TextComponentBase = /*#__PURE__*/ function() {
25516
25519
  this.textStyle = new TextStyle(options);
25517
25520
  this.textLayout = new TextLayout(options);
25518
25521
  this.text = options.text.toString();
25522
+ this.lineCount = this.getLineCount(options.text, true);
25519
25523
  };
25520
- _proto.getLineCount = function getLineCount(text, context) {
25524
+ _proto.getLineCount = function getLineCount(text, init) {
25525
+ var context = this.context;
25521
25526
  var _this_textLayout = this.textLayout, letterSpace = _this_textLayout.letterSpace, overflow = _this_textLayout.overflow;
25527
+ var fontScale = init ? this.textStyle.fontSize / 10 : 1 / this.textStyle.fontScale;
25522
25528
  var width = this.textLayout.width + this.textStyle.fontOffset;
25523
25529
  var lineCount = 1;
25524
25530
  var x = 0;
@@ -25526,7 +25532,7 @@ var TextComponentBase = /*#__PURE__*/ function() {
25526
25532
  var _context_measureText;
25527
25533
  var str = text[i];
25528
25534
  var _context_measureText_width;
25529
- var textMetrics = (_context_measureText_width = context == null ? void 0 : (_context_measureText = context.measureText(str)) == null ? void 0 : _context_measureText.width) != null ? _context_measureText_width : 0;
25535
+ var textMetrics = ((_context_measureText_width = context == null ? void 0 : (_context_measureText = context.measureText(str)) == null ? void 0 : _context_measureText.width) != null ? _context_measureText_width : 0) * fontScale;
25530
25536
  // 和浏览器行为保持一致
25531
25537
  x += letterSpace;
25532
25538
  // 处理文本结束行为
@@ -25596,6 +25602,7 @@ var TextComponentBase = /*#__PURE__*/ function() {
25596
25602
  return;
25597
25603
  }
25598
25604
  this.text = value.toString();
25605
+ this.lineCount = this.getLineCount(value, false);
25599
25606
  this.isDirty = true;
25600
25607
  };
25601
25608
  /**
@@ -25756,35 +25763,32 @@ var TextComponentBase = /*#__PURE__*/ function() {
25756
25763
  var layout = this.textLayout;
25757
25764
  var fontScale = style.fontScale;
25758
25765
  var width = (layout.width + style.fontOffset) * fontScale;
25766
+ var finalHeight = layout.lineHeight * this.lineCount;
25759
25767
  var fontSize = style.fontSize * fontScale;
25760
25768
  var lineHeight = layout.lineHeight * fontScale;
25761
25769
  style.fontDesc = this.getFontDesc(fontSize);
25762
25770
  this.char = (this.text || "").split("");
25763
25771
  this.canvas.width = width;
25764
- var height = this.canvas.height;
25765
- context.font = style.fontDesc;
25766
- this.lineCount = this.getLineCount(this.text, context);
25767
- var finalHeight = layout.lineHeight * this.lineCount;
25768
25772
  if (layout.autoWidth) {
25769
25773
  this.canvas.height = finalHeight * fontScale;
25770
25774
  this.item.transform.size.set(1, finalHeight / layout.height);
25771
25775
  } else {
25772
25776
  this.canvas.height = layout.height * fontScale;
25773
25777
  }
25778
+ var height = this.canvas.height;
25779
+ // fix bug 1/255
25780
+ context.fillStyle = "rgba(255, 255, 255, 0.0039)";
25781
+ if (!flipY) {
25782
+ context.translate(0, height);
25783
+ context.scale(1, -1);
25784
+ }
25774
25785
  // canvas size 变化后重新刷新 context
25775
25786
  if (this.maxLineWidth > width && layout.overflow === TextOverflow.display) {
25776
25787
  context.font = this.getFontDesc(fontSize * width / this.maxLineWidth);
25777
25788
  } else {
25778
25789
  context.font = style.fontDesc;
25779
25790
  }
25780
- // fix bug 1/255
25781
- context.fillStyle = "rgba(255, 255, 255, 0.0039)";
25782
25791
  context.clearRect(0, 0, width, height);
25783
- if (!flipY) {
25784
- context.translate(0, height);
25785
- context.scale(1, -1);
25786
- }
25787
- context.fillRect(0, 0, width, height);
25788
25792
  if (style.hasShadow) {
25789
25793
  this.setupShadow();
25790
25794
  }
@@ -25856,9 +25860,9 @@ var TextComponentBase = /*#__PURE__*/ function() {
25856
25860
  this.material.setTexture("_MainTex", texture);
25857
25861
  this.isDirty = false;
25858
25862
  };
25859
- _proto.getFontDesc = function getFontDesc(fontSize) {
25860
- var _this_textStyle = this.textStyle, fontFamily = _this_textStyle.fontFamily, textWeight = _this_textStyle.textWeight, fontStyle = _this_textStyle.fontStyle;
25861
- var fontDesc = "" + fontSize.toString() + "px ";
25863
+ _proto.getFontDesc = function getFontDesc(size) {
25864
+ var _this_textStyle = this.textStyle, fontSize = _this_textStyle.fontSize, fontScale = _this_textStyle.fontScale, fontFamily = _this_textStyle.fontFamily, textWeight = _this_textStyle.textWeight, fontStyle = _this_textStyle.fontStyle;
25865
+ var fontDesc = "" + (size || fontSize * fontScale).toString() + "px ";
25862
25866
  if (!DEFAULT_FONTS.includes(fontFamily)) {
25863
25867
  fontDesc += '"' + fontFamily + '"';
25864
25868
  } else {
@@ -28793,12 +28797,14 @@ var tmpScale = new Vector3(1, 1, 1);
28793
28797
  function Camera(name, options) {
28794
28798
  if (options === void 0) options = {};
28795
28799
  this.name = name;
28800
+ this./**
28801
+ * @internal
28802
+ */ transform = new Transform();
28796
28803
  this.viewportMatrix = Matrix4.fromIdentity();
28797
28804
  this.viewMatrix = Matrix4.fromIdentity();
28798
28805
  this.projectionMatrix = Matrix4.fromIdentity();
28799
28806
  this.viewProjectionMatrix = Matrix4.fromIdentity();
28800
28807
  this.inverseViewMatrix = Matrix4.fromIdentity();
28801
- this.transform = new Transform();
28802
28808
  this.dirty = true;
28803
28809
  var _options_near = options.near, near = _options_near === void 0 ? 0.1 : _options_near, _options_far = options.far, far = _options_far === void 0 ? 20 : _options_far, _options_fov = options.fov, fov = _options_fov === void 0 ? 60 : _options_fov, _options_aspect = options.aspect, aspect = _options_aspect === void 0 ? 1 : _options_aspect, _options_clipMode = options.clipMode, clipMode = _options_clipMode === void 0 ? CameraClipMode.portrait : _options_clipMode, _options_position = options.position, position = _options_position === void 0 ? [
28804
28810
  0,
@@ -28912,7 +28918,10 @@ var tmpScale = new Vector3(1, 1, 1);
28912
28918
  * 设置相机的旋转四元数
28913
28919
  * @param value - 旋转四元数
28914
28920
  */ _proto.setQuat = function setQuat(value) {
28915
- this.transform.setQuaternion(value.x, value.y, value.z, value.w);
28921
+ if (!this.transform.getQuaternion().equals(value)) {
28922
+ this.transform.setQuaternion(value.x, value.y, value.z, value.w);
28923
+ this.dirty = true;
28924
+ }
28916
28925
  };
28917
28926
  /**
28918
28927
  * 获取相机旋转对应的四元数
@@ -28950,7 +28959,7 @@ var tmpScale = new Vector3(1, 1, 1);
28950
28959
  var _this_options = this.options, fov = _this_options.fov, aspect = _this_options.aspect, near = _this_options.near, far = _this_options.far, clipMode = _this_options.clipMode;
28951
28960
  this.projectionMatrix.perspective(fov * DEG2RAD, aspect, near, far, clipMode === CameraClipMode.portrait);
28952
28961
  this.projectionMatrix.premultiply(this.viewportMatrix);
28953
- this.inverseViewMatrix.compose(this.position, this.getQuat().conjugate(), tmpScale);
28962
+ this.inverseViewMatrix.compose(this.position, this.getQuat(), tmpScale);
28954
28963
  var _this_transform_getParentMatrix;
28955
28964
  this.inverseViewMatrix.premultiply((_this_transform_getParentMatrix = this.transform.getParentMatrix()) != null ? _this_transform_getParentMatrix : Matrix4.IDENTITY);
28956
28965
  this.viewMatrix.copyFrom(this.inverseViewMatrix).invert();
@@ -32068,7 +32077,7 @@ registerPlugin("sprite", SpriteLoader, VFXItem);
32068
32077
  registerPlugin("particle", ParticleLoader, VFXItem);
32069
32078
  registerPlugin("cal", CalculateLoader, VFXItem);
32070
32079
  registerPlugin("interact", InteractLoader, VFXItem);
32071
- var version$1 = "2.3.0-beta.1";
32080
+ var version$1 = "2.3.0-beta.3";
32072
32081
  logger.info("Core version: " + version$1 + ".");
32073
32082
 
32074
32083
  var _obj;
@@ -33714,7 +33723,7 @@ setMaxSpriteMeshItemCount(8);
33714
33723
  */ Mesh.create = function(engine, props) {
33715
33724
  return new ThreeMesh(engine, props);
33716
33725
  };
33717
- var version = "2.3.0-beta.1";
33726
+ var version = "2.3.0-beta.3";
33718
33727
  logger.info("THREEJS plugin version: " + version + ".");
33719
33728
 
33720
33729
  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, CompositionSourceManager, 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, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, 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, 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, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, 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, calculateTranslation, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, 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, getImageItemRenderInfo, 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, 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, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };