From 915e83bc8419d9e7c4fc1112f73375d31667efa2 Mon Sep 17 00:00:00 2001 From: ErSan Date: Sun, 5 Oct 2025 22:57:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(resize):=20=E6=96=B0=E5=A2=9E3DTiles?= =?UTF-8?q?=E5=86=85=E7=BD=AE=E8=B5=84=E6=BA=90=EF=BC=9B=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=86=85=E7=BD=AE=E8=B5=84=E6=BA=90=E5=AF=B9http(s)=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E7=9A=84=E6=94=AF=E6=8C=81=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../APetrochemicalPlant.jpg | Bin .../tiles/building/buildingGroup1.jpg | Bin 0 -> 43671 bytes .../APetrochemicalPlant/NoLod_0.i3dm | Bin .../APetrochemicalPlant/NoLod_1.i3dm | Bin .../APetrochemicalPlant/NoLod_10.b3dm | Bin .../APetrochemicalPlant/NoLod_11.b3dm | Bin .../APetrochemicalPlant/NoLod_12.b3dm | Bin .../APetrochemicalPlant/NoLod_13.b3dm | Bin .../APetrochemicalPlant/NoLod_14.b3dm | Bin .../APetrochemicalPlant/NoLod_15.b3dm | Bin .../APetrochemicalPlant/NoLod_16.b3dm | Bin .../APetrochemicalPlant/NoLod_17.b3dm | Bin .../APetrochemicalPlant/NoLod_18.b3dm | Bin .../APetrochemicalPlant/NoLod_19.b3dm | Bin .../APetrochemicalPlant/NoLod_2.i3dm | Bin .../APetrochemicalPlant/NoLod_20.b3dm | Bin .../APetrochemicalPlant/NoLod_21.b3dm | Bin .../APetrochemicalPlant/NoLod_22.b3dm | Bin .../APetrochemicalPlant/NoLod_23.b3dm | Bin .../APetrochemicalPlant/NoLod_24.b3dm | Bin .../APetrochemicalPlant/NoLod_25.b3dm | Bin .../APetrochemicalPlant/NoLod_26.b3dm | Bin .../APetrochemicalPlant/NoLod_27.b3dm | Bin .../APetrochemicalPlant/NoLod_28.b3dm | Bin .../APetrochemicalPlant/NoLod_29.b3dm | Bin .../APetrochemicalPlant/NoLod_3.i3dm | Bin .../APetrochemicalPlant/NoLod_30.b3dm | Bin .../APetrochemicalPlant/NoLod_31.b3dm | Bin .../APetrochemicalPlant/NoLod_32.b3dm | Bin .../APetrochemicalPlant/NoLod_33.b3dm | Bin .../APetrochemicalPlant/NoLod_34.b3dm | Bin .../APetrochemicalPlant/NoLod_35.b3dm | Bin .../APetrochemicalPlant/NoLod_36.b3dm | Bin .../APetrochemicalPlant/NoLod_37.b3dm | Bin .../APetrochemicalPlant/NoLod_38.b3dm | Bin .../APetrochemicalPlant/NoLod_39.b3dm | Bin .../APetrochemicalPlant/NoLod_4.i3dm | Bin .../APetrochemicalPlant/NoLod_40.b3dm | Bin .../APetrochemicalPlant/NoLod_41.b3dm | Bin .../APetrochemicalPlant/NoLod_42.b3dm | Bin .../APetrochemicalPlant/NoLod_43.b3dm | Bin .../APetrochemicalPlant/NoLod_44.b3dm | Bin .../APetrochemicalPlant/NoLod_45.b3dm | Bin .../APetrochemicalPlant/NoLod_46.b3dm | Bin .../APetrochemicalPlant/NoLod_47.b3dm | Bin .../APetrochemicalPlant/NoLod_48.b3dm | Bin .../APetrochemicalPlant/NoLod_49.b3dm | Bin .../APetrochemicalPlant/NoLod_5.i3dm | Bin .../APetrochemicalPlant/NoLod_50.b3dm | Bin .../APetrochemicalPlant/NoLod_51.b3dm | Bin .../APetrochemicalPlant/NoLod_52.b3dm | Bin .../APetrochemicalPlant/NoLod_53.b3dm | Bin .../APetrochemicalPlant/NoLod_54.b3dm | Bin .../APetrochemicalPlant/NoLod_55.b3dm | Bin .../APetrochemicalPlant/NoLod_56.b3dm | Bin .../APetrochemicalPlant/NoLod_57.b3dm | Bin .../APetrochemicalPlant/NoLod_58.b3dm | Bin .../APetrochemicalPlant/NoLod_59.b3dm | Bin .../APetrochemicalPlant/NoLod_6.b3dm | Bin .../APetrochemicalPlant/NoLod_60.b3dm | Bin .../APetrochemicalPlant/NoLod_61.b3dm | Bin .../APetrochemicalPlant/NoLod_62.b3dm | Bin .../APetrochemicalPlant/NoLod_63.b3dm | Bin .../APetrochemicalPlant/NoLod_64.b3dm | Bin .../APetrochemicalPlant/NoLod_65.b3dm | Bin .../APetrochemicalPlant/NoLod_66.b3dm | Bin .../APetrochemicalPlant/NoLod_67.b3dm | Bin .../APetrochemicalPlant/NoLod_68.b3dm | Bin .../APetrochemicalPlant/NoLod_69.b3dm | Bin .../APetrochemicalPlant/NoLod_7.b3dm | Bin .../APetrochemicalPlant/NoLod_70.b3dm | Bin .../APetrochemicalPlant/NoLod_71.b3dm | Bin .../APetrochemicalPlant/NoLod_72.b3dm | Bin .../APetrochemicalPlant/NoLod_73.b3dm | Bin .../APetrochemicalPlant/NoLod_74.b3dm | Bin .../APetrochemicalPlant/NoLod_75.b3dm | Bin .../APetrochemicalPlant/NoLod_76.b3dm | Bin .../APetrochemicalPlant/NoLod_77.b3dm | Bin .../APetrochemicalPlant/NoLod_78.b3dm | Bin .../APetrochemicalPlant/NoLod_79.b3dm | Bin .../APetrochemicalPlant/NoLod_8.b3dm | Bin .../APetrochemicalPlant/NoLod_80.b3dm | Bin .../APetrochemicalPlant/NoLod_81.b3dm | Bin .../APetrochemicalPlant/NoLod_82.b3dm | Bin .../APetrochemicalPlant/NoLod_83.b3dm | Bin .../APetrochemicalPlant/NoLod_84.b3dm | Bin .../APetrochemicalPlant/NoLod_85.b3dm | Bin .../APetrochemicalPlant/NoLod_86.b3dm | Bin .../APetrochemicalPlant/NoLod_9.b3dm | Bin .../APetrochemicalPlant/tileset.json | 0 packages/editor/src/language/zh-CN-en-US.ts | 3 ++ .../extraPane/resource/builtin/Tiles.vue | 23 ++++++++++---- packages/sdk/lib/core/objects/Tile.ts | 29 +++++++++++------- .../lib/core/viewer/modules/TilesManage.ts | 2 ++ 94 files changed, 40 insertions(+), 17 deletions(-) rename packages/editor/public/static/images/resource/tiles/{factory => building}/APetrochemicalPlant.jpg (100%) create mode 100644 packages/editor/public/static/images/resource/tiles/building/buildingGroup1.jpg rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_0.i3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_1.i3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_10.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_11.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_12.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_13.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_14.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_15.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_16.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_17.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_18.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_19.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_2.i3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_20.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_21.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_22.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_23.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_24.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_25.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_26.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_27.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_28.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_29.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_3.i3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_30.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_31.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_32.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_33.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_34.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_35.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_36.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_37.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_38.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_39.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_4.i3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_40.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_41.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_42.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_43.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_44.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_45.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_46.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_47.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_48.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_49.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_5.i3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_50.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_51.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_52.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_53.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_54.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_55.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_56.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_57.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_58.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_59.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_6.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_60.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_61.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_62.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_63.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_64.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_65.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_66.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_67.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_68.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_69.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_7.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_70.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_71.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_72.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_73.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_74.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_75.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_76.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_77.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_78.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_79.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_8.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_80.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_81.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_82.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_83.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_84.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_85.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_86.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/NoLod_9.b3dm (100%) rename packages/editor/public/static/resource/tiles/{factory => building}/APetrochemicalPlant/tileset.json (100%) diff --git a/packages/editor/public/static/images/resource/tiles/factory/APetrochemicalPlant.jpg b/packages/editor/public/static/images/resource/tiles/building/APetrochemicalPlant.jpg similarity index 100% rename from packages/editor/public/static/images/resource/tiles/factory/APetrochemicalPlant.jpg rename to packages/editor/public/static/images/resource/tiles/building/APetrochemicalPlant.jpg diff --git a/packages/editor/public/static/images/resource/tiles/building/buildingGroup1.jpg b/packages/editor/public/static/images/resource/tiles/building/buildingGroup1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5aa92fd8b2cb7f254dabdd1e1bbe2e4e470a9aca GIT binary patch literal 43671 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
    jTxu-1P{E3j`}&Ll*V`lOMW&x*+H87~ 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%0AG(xoc(d@&2k=9gpxCeB)2j* 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 const previewInfo = inject('previewInfo') as any; const previewRef = inject('previewRef') as any; -const activeSubCategory = ref('factory'); +const activeSubCategory = ref('building'); const subCategories = ref([ - {key: 'factory', name: cpt('extra.resource.billboard.Factory')}, + {key: 'building', name: cpt('extra.resource.model.Building')}, {key: 'other', name: cpt('extra.resource.model.Other')} ]); const allList = { - "factory": [ - {key: "APetrochemicalPlant", image: "/static/images/resource/tiles/factory/APetrochemicalPlant.jpg", name: cpt('extra.resource.tiles.A petrochemical plant'), tileset: "/static/resource/tiles/factory/APetrochemicalPlant/tileset.json"}, + "building": [ + {key: "APetrochemicalPlant", image: "/static/images/resource/tiles/building/APetrochemicalPlant.jpg", name: cpt('extra.resource.tiles.A petrochemical plant'), tileset: "/static/resource/tiles/building/APetrochemicalPlant/tileset.json"}, + {key: "BuildingGroup1", image: "/static/images/resource/tiles/building/buildingGroup1.jpg", name: cpt('extra.resource.tiles.Building group 1'), tileset: "https://tiles.arcgis.com/tiles/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Utrecht_3D_Tiles_Integrated_Mesh/3DTilesServer/tileset.json"}, ], "other": [ {key: "Dragon", image: "/static/images/resource/tiles/other/dragon.jpg", name: cpt('extra.resource.tiles.Dragon'), tileset: "/static/resource/tiles/other/dragon/tileset.json"}, @@ -67,9 +68,14 @@ function selectSubCategory(key: string) { // 预览 async function handlePreview(item){ + let url = item.tileset; + if(!url.startsWith('http')){ + url = import.meta.env.VITE_GLOB_ORIGIN + item.tileset; + } + previewInfo.name = (item.name as Ref).value || item.name; previewInfo.type = "Tiles"; - previewInfo.fileOrUrl = import.meta.env.VITE_GLOB_ORIGIN + item.tileset; + previewInfo.fileOrUrl = url; previewInfo.visible = true; // TODO: [20250927] 直接赋值previewInfo.fileOrUrl就会在预览组件中自动加载模型,运行2个月没问题后删除下面注释 @@ -93,9 +99,14 @@ async function handlePreview(item){ //双击添加至场景.. function addToScene(item, position?: Vector3) { + let url = item.tileset; + if(!url.startsWith('http')){ + url = import.meta.env.VITE_GLOB_ORIGIN + item.tileset; + } + const tiles = new Tiles({ // 内置的3dTiles打包时需要存入完整地址方可通过sdk加载回来 - url: import.meta.env.VITE_GLOB_ORIGIN + item.tileset, + url: url, name:item.name.value || item.name, reset2origin:true, debug:false, diff --git a/packages/sdk/lib/core/objects/Tile.ts b/packages/sdk/lib/core/objects/Tile.ts index cbe1887..bfd2623 100644 --- a/packages/sdk/lib/core/objects/Tile.ts +++ b/packages/sdk/lib/core/objects/Tile.ts @@ -1,5 +1,5 @@ import {TilesRenderer} from "3d-tiles-renderer"; -import {GLTFExtensionsPlugin,DebugTilesPlugin} from "3d-tiles-renderer/plugins"; +import {GLTFExtensionsPlugin,GLTFMeshFeaturesExtension,GLTFStructuralMetadataExtension,TilesFadePlugin,DebugTilesPlugin,UnloadTilesPlugin} from "3d-tiles-renderer/plugins"; import Loader from "@/core/loader/Loader.ts"; import {PerspectiveCamera, WebGLRenderer, Group, JSONMeta} from "three"; import {deepAssign} from "@/utils"; @@ -14,7 +14,7 @@ export default class Tiles extends Group{ reset2origin:true, debug:false, name:"Tiles", - errorTarget: 5, + errorTarget: 6, LRUCache:{ maxSize: 4000, minSize: 3000, @@ -68,11 +68,27 @@ export default class Tiles extends Group{ tilesRenderer.registerPlugin(new GLTFExtensionsPlugin({ dracoLoader: Loader.dracoLoader, ktxLoader: Loader.ktx2Loader, + plugins:[() => new GLTFMeshFeaturesExtension(),() => new GLTFStructuralMetadataExtension()] })); // Loader.createGLTFLoader(tilesRenderer.manager).then(loader => { + // loader.register(() => new GLTFMeshFeaturesExtension()); + // loader.register(() => new GLTFStructuralMetadataExtension()); // tilesRenderer.manager.addHandler( /\.(gltf|glb)$/g, loader ); // }) + // 瓦片渐显隐 + tilesRenderer.registerPlugin(new TilesFadePlugin()); + // 从gpu卸载不可见瓦片数据,cpu上仍然存在 + tilesRenderer.registerPlugin(new UnloadTilesPlugin()); + if(this.options.debug){ + // 注册调试插件 + tilesRenderer.registerPlugin(new DebugTilesPlugin()); + // 获取调试插件 + const debugTilesPlugin = tilesRenderer.getPluginByName('DEBUG_TILES_PLUGIN') as DebugTilesPlugin; + // 显示包围盒的线框 + debugTilesPlugin.displayBoxBounds = true; + } + // 子级瓦片加载 tilesRenderer.addEventListener('load-model', (e) => { e.scene.traverse(c => { @@ -92,15 +108,6 @@ export default class Tiles extends Group{ console.error(`${tilesRenderer.group.name} load error:`, e); }); - if(this.options.debug){ - // 注册调试插件 - tilesRenderer.registerPlugin(new DebugTilesPlugin()); - // 获取调试插件 - const debugTilesPlugin = tilesRenderer.getPluginByName('DEBUG_TILES_PLUGIN') as DebugTilesPlugin; - // 显示包围盒的线框 - debugTilesPlugin.displayBoxBounds = true; - } - return tilesRenderer; } diff --git a/packages/sdk/lib/core/viewer/modules/TilesManage.ts b/packages/sdk/lib/core/viewer/modules/TilesManage.ts index cbea0c8..d5c5086 100644 --- a/packages/sdk/lib/core/viewer/modules/TilesManage.ts +++ b/packages/sdk/lib/core/viewer/modules/TilesManage.ts @@ -149,6 +149,8 @@ export class TilesManage { } update() { + // this.camera.updateMatrixWorld(); + for (const tiles of this.tilesMap.values()) { tiles.forEach(tile => tile.update()); }