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

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.3
6
+ * Version: v2.3.0
7
7
  */
8
8
 
9
9
  import * as THREE from 'three';
@@ -32077,7 +32077,7 @@ registerPlugin("sprite", SpriteLoader, VFXItem);
32077
32077
  registerPlugin("particle", ParticleLoader, VFXItem);
32078
32078
  registerPlugin("cal", CalculateLoader, VFXItem);
32079
32079
  registerPlugin("interact", InteractLoader, VFXItem);
32080
- var version$1 = "2.3.0-beta.3";
32080
+ var version$1 = "2.3.0";
32081
32081
  logger.info("Core version: " + version$1 + ".");
32082
32082
 
32083
32083
  var _obj;
@@ -33337,6 +33337,7 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
33337
33337
  _this.baseCompositionIndex = 0;
33338
33338
  var width = options.width, height = options.height, camera = options.camera;
33339
33339
  _this.renderer = new ThreeRenderer(context);
33340
+ _this.assetService = new AssetService(_this.renderer.engine);
33340
33341
  _this.width = width;
33341
33342
  _this.height = height;
33342
33343
  _this.camera = camera;
@@ -33346,63 +33347,109 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
33346
33347
  _proto.loadScene = function loadScene(scene, options) {
33347
33348
  var _this = this;
33348
33349
  return _async_to_generator(function() {
33349
- var composition, baseOrder;
33350
+ var last, scenes, compositions, _options_autoplay, autoplay, baseOrder, _scenes, i, compositionNames, firstFrameTime, _iterator, _step, composition;
33350
33351
  return __generator(this, function(_state) {
33351
33352
  switch(_state.label){
33352
33353
  case 0:
33354
+ assertExist(_this.renderer, "Renderer is not exist, maybe the Player has been disabled or in gl 'debug-disable' mode.");
33355
+ last = performance.now();
33356
+ scenes = [];
33357
+ compositions = [];
33358
+ autoplay = (_options_autoplay = options == null ? void 0 : options.autoplay) != null ? _options_autoplay : true;
33353
33359
  baseOrder = _this.baseCompositionIndex;
33354
- if (!isArray(scene)) return [
33355
- 3,
33356
- 2
33357
- ];
33358
- _this.baseCompositionIndex += scene.length;
33360
+ if (isArray(scene)) {
33361
+ (_scenes = scenes).push.apply(_scenes, [].concat(scene));
33362
+ } else {
33363
+ scenes.push(scene);
33364
+ }
33359
33365
  return [
33360
33366
  4,
33361
- Promise.all(scene.map(/*#__PURE__*/ _async_to_generator(function(scn, index) {
33362
- var res;
33367
+ Promise.all(scenes.map(/*#__PURE__*/ _async_to_generator(function(url, index) {
33368
+ var _this_assetService_assembleSceneLoadOptions, source, opts, assetManager, _$scene, composition;
33363
33369
  return __generator(this, function(_state) {
33364
33370
  switch(_state.label){
33365
33371
  case 0:
33372
+ _this_assetService_assembleSceneLoadOptions = _this.assetService.assembleSceneLoadOptions(url, _extends({
33373
+ autoplay: autoplay
33374
+ }, options)), source = _this_assetService_assembleSceneLoadOptions.source, opts = _this_assetService_assembleSceneLoadOptions.options;
33375
+ assetManager = new AssetManager(opts);
33366
33376
  return [
33367
33377
  4,
33368
- _this.createComposition(scn, options)
33378
+ assetManager.loadScene(source, _this.renderer, {
33379
+ env: _this.env
33380
+ })
33369
33381
  ];
33370
33382
  case 1:
33371
- res = _state.sent();
33372
- res.setIndex(baseOrder + index);
33383
+ _$scene = _state.sent();
33384
+ _this.assetService.prepareAssets(_$scene, assetManager.getAssets());
33385
+ _this.assetService.updateTextVariables(_$scene, assetManager.options.variables);
33386
+ _this.assetService.initializeTexture(_$scene);
33387
+ _$scene.pluginSystem.precompile(_$scene.jsonScene.compositions, _this.renderer, options);
33388
+ composition = _this.createComposition(_$scene, opts);
33389
+ _this.baseCompositionIndex += 1;
33390
+ composition.setIndex(baseOrder + index);
33391
+ compositions[index] = composition;
33373
33392
  return [
33374
- 2,
33375
- res
33393
+ 2
33376
33394
  ];
33377
33395
  }
33378
33396
  });
33379
33397
  })))
33380
33398
  ];
33381
33399
  case 1:
33382
- composition = _state.sent();
33383
- return [
33384
- 3,
33385
- 4
33386
- ];
33387
- case 2:
33388
- _this.baseCompositionIndex += 1;
33389
- return [
33390
- 4,
33391
- _this.createComposition(scene, options)
33392
- ];
33393
- case 3:
33394
- composition = _state.sent();
33395
- composition.setIndex(baseOrder);
33396
- _state.label = 4;
33397
- case 4:
33400
+ _state.sent();
33401
+ for(i = 0; i < compositions.length; i++){
33402
+ if (autoplay) {
33403
+ compositions[i].play();
33404
+ } else {
33405
+ compositions[i].pause();
33406
+ }
33407
+ }
33408
+ compositionNames = compositions.map(function(composition) {
33409
+ return composition.name;
33410
+ });
33411
+ firstFrameTime = performance.now() - last;
33412
+ for(_iterator = _create_for_of_iterator_helper_loose(compositions); !(_step = _iterator()).done;){
33413
+ composition = _step.value;
33414
+ composition.statistic.firstFrameTime = firstFrameTime;
33415
+ }
33416
+ logger.info("First frame [" + compositionNames + "]: " + firstFrameTime.toFixed(4) + "ms.");
33398
33417
  return [
33399
33418
  2,
33400
- composition
33419
+ isArray(scene) ? compositions : compositions[0]
33401
33420
  ];
33402
33421
  }
33403
33422
  });
33404
33423
  })();
33405
33424
  };
33425
+ _proto.createComposition = function createComposition(scene, options) {
33426
+ var _this = this;
33427
+ if (options === void 0) options = {};
33428
+ var composition = new ThreeComposition(_extends({}, options, {
33429
+ width: this.width,
33430
+ height: this.height,
33431
+ renderer: this.renderer,
33432
+ handleItemMessage: function(message) {
33433
+ _this.dispatchEvent({
33434
+ type: "message",
33435
+ message: message
33436
+ });
33437
+ }
33438
+ }), scene);
33439
+ composition.on("end", function() {
33440
+ _this.dispatchEvent({
33441
+ type: "end",
33442
+ composition: composition
33443
+ });
33444
+ });
33445
+ this.renderer.engine.setOptions({
33446
+ threeCamera: this.camera,
33447
+ threeGroup: this,
33448
+ composition: composition
33449
+ });
33450
+ this.compositions.push(composition);
33451
+ return composition;
33452
+ };
33406
33453
  _proto.pause = function pause() {
33407
33454
  this.dispatchEvent({
33408
33455
  type: "pause"
@@ -33416,99 +33463,6 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
33416
33463
  composition.resume();
33417
33464
  });
33418
33465
  };
33419
- _proto.createComposition = function createComposition(url, options) {
33420
- if (options === void 0) options = {};
33421
- var _this = this;
33422
- return _async_to_generator(function() {
33423
- var last, opts, source, scene, engine, i, composition, firstFrameTime;
33424
- return __generator(this, function(_state) {
33425
- switch(_state.label){
33426
- case 0:
33427
- last = performance.now();
33428
- opts = _extends({
33429
- autoplay: true
33430
- }, options);
33431
- source = url;
33432
- if (Scene.isURL(url)) {
33433
- if (!Scene.isJSONObject(url)) {
33434
- source = url.url;
33435
- }
33436
- if (Scene.isWithOptions(url)) {
33437
- opts = _extends({}, opts, url.options || {});
33438
- }
33439
- }
33440
- if (_this.assetManager) {
33441
- _this.assetManager.updateOptions(opts);
33442
- } else {
33443
- _this.assetManager = new AssetManager(opts);
33444
- }
33445
- return [
33446
- 4,
33447
- _this.assetManager.loadScene(source, _this.renderer, {
33448
- env: _this.env
33449
- })
33450
- ];
33451
- case 1:
33452
- scene = _state.sent();
33453
- engine = _this.renderer.engine;
33454
- // TODO 多 json 之间目前不共用资源,如果后续需要多 json 共用,这边缓存机制需要额外处理
33455
- engine.clearResources();
33456
- engine.addPackageDatas(scene);
33457
- for(i = 0; i < scene.textureOptions.length; i++){
33458
- scene.textureOptions[i] = engine.assetLoader.loadGUID(scene.textureOptions[i].id);
33459
- scene.textureOptions[i].initialize();
33460
- }
33461
- if (!engine.database) return [
33462
- 3,
33463
- 3
33464
- ];
33465
- return [
33466
- 4,
33467
- engine.createVFXItems(scene)
33468
- ];
33469
- case 2:
33470
- _state.sent();
33471
- _state.label = 3;
33472
- case 3:
33473
- composition = new ThreeComposition(_extends({}, opts, {
33474
- width: _this.width,
33475
- height: _this.height,
33476
- renderer: _this.renderer,
33477
- handleItemMessage: function(message) {
33478
- _this.dispatchEvent({
33479
- type: "message",
33480
- message: message
33481
- });
33482
- }
33483
- }), scene);
33484
- composition.on("end", function() {
33485
- _this.dispatchEvent({
33486
- type: "end",
33487
- composition: composition
33488
- });
33489
- });
33490
- _this.renderer.engine.setOptions({
33491
- threeCamera: _this.camera,
33492
- threeGroup: _this,
33493
- composition: composition
33494
- });
33495
- if (opts.autoplay) {
33496
- composition.play();
33497
- } else {
33498
- composition.pause();
33499
- }
33500
- firstFrameTime = performance.now() - last + composition.statistic.loadTime;
33501
- composition.statistic.firstFrameTime = firstFrameTime;
33502
- logger.info("First frame: [" + composition.name + "]" + firstFrameTime.toFixed(4) + "ms.");
33503
- _this.compositions.push(composition);
33504
- return [
33505
- 2,
33506
- composition
33507
- ];
33508
- }
33509
- });
33510
- })();
33511
- };
33512
33466
  /**
33513
33467
  *
33514
33468
  * @param delta
@@ -33723,7 +33677,7 @@ setMaxSpriteMeshItemCount(8);
33723
33677
  */ Mesh.create = function(engine, props) {
33724
33678
  return new ThreeMesh(engine, props);
33725
33679
  };
33726
- var version = "2.3.0-beta.3";
33680
+ var version = "2.3.0";
33727
33681
  logger.info("THREEJS plugin version: " + version + ".");
33728
33682
 
33729
33683
  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 };