屋顶源影像暗部和相邻瓦片色差已量化但不具备自动接入判据;新高清候选继续未配置。四栋pilot离线几何通过,仍待驾驶舱视觉、加载性能及人工验收。
Status: ready-for-agent Blocked by: None Labels: wayfinder:task, ready-for-agent
第五轮准入姿态与精片遍历证据:40合成姿态对比v6大球空洞名额35次/v7实际content球0次;约470m原64/39改78/77,30contents/1.94MB估算。安装版BaseTraversal10近景region样例精片待载保留14次preview选择、ready有10次fine选择、fine失效回退同preview;不发送请求/不解码GLB/不测GPU。假设FOV60deg、canvas1440×810、不含active历史,实际v7画面/FPS仍未通过。
当前类别是可代理推进的运行态验证任务:shader编译阻塞已修复,浏览器验证已获授权,不需要用户改代码、开新服务或自行查错。仍有代理应完成的region后台状态、低空性能和失败回退复验,先保留ready-for-agent;不能仅因shader恢复就转交人工签全部通过。
技术恢复后才转为需人工测试/判断类决策:真实房屋样式、卫星屋顶色彩和粗精混合自然度、低空横看等待是否可接受,须维护者本人裁定;AI负责证据采集和边界/异常回归,不能替代签署视觉接受结论。
当前city-regions-v7引用v6已有几何/纹理,源元数据IDs为30,159+13=30,172;该对账本轮未解码GLB或证明全部ID实际渲染。48,425栋是含乡村的历史导出底册,乡村不加载按用户决定执行。面积估层已接受,非新阻塞。只有http://127.0.0.1:8000/#/cockpit为正式验收入口。
最初浏览器验证与完整回顾保存失败历史;shader修复与真实复验证明渲染已恢复。下一步代理继续粗精/分区后台、冷/热加载/失败卸载和真实性能验证,再由维护者裁定视觉接受;本票不关闭。
本轮不包含新BIM/GIS生产、室内、乡村恢复、新测试路径或业务接口改造。
继续重做被维护者两次否决的房屋模型。2026-09-24 明确反馈:地形穿透仍在;需按顶视卫星图逐栋建模,非特写近景也要有房屋样貌;允许调用本地 Blender / 3ds Max,同类模型复用。沿用本会话认领,不另开重复票。
当前实现是 地形遮挡修复 + Blender 房屋库 + 影像足印示范街区。不是完整县城交付,也没有获得维护者视觉验收。
旧版 90% 结论撤回。穿透问题已完成真实渲染回归;Blender资产库、城市覆盖底册、规则小区高置信度样片以及三套空间LOD树已完成。2026-09-29 按维护者三条反馈重做旧城生成:旧城不再沿道路造房(道路改为纯排除几何),改为只接受 OSM 建筑面与 z19 卫星屋顶分割足印;所有模型强制落在主场景区内(新增 primary-area.mjs 统一裁剪/包含契约 + 6 项测试);样式由 8 种已认可变体按来源建筑确定性分配,不再是整城统一橙色尖顶。当前经 verify-city-models.mjs 验收:主场景区外 0、交通道路上 0、居民地掩膜外 0。
2026-09-30 找到权威建筑来源,影像分割方案已被取代。 按维护者要求先取 GIS 建筑数据:本地此前只用过 OSM 的 169 个建筑面,但 D:\GIS\ArcGIS\yuanling\ 下有两份 1:500 测绘 CAD 图(沅陵20240110.dwg、沅陵20240510.dwg),其 JMD(居民地)图层含 60,771 个房屋面,另有 泵站厂房/BYQ/KZD/WSL/YSL 等专业图层。用本机 ArcGIS Desktop 10.8 的 arcpy 转成 GIS 后实测:主场景区内 60,744 个房屋轮廓,41,101 个规整四角矩形、19,643 个 L 形/天井等复杂外轮廓;1:1 z19 影像对照显示轮廓精确贴合屋顶(含街面进深、天井、组合体量),精度显著优于卫星分割(后者只能给旋转矩形)。面积中位 17.1 m²、p75 68.5 m²、p95 210.4 m²;37,151 个落在既有居民地掩膜内,其余 23,593 个为掩膜外村庄/散建。数据缺失:注记 54,663 条里只有 10 条带结构类型,层高需另行估计。
2026-09-30 BIM 管线已建立并跑通(维护者确认"先尝试制作")。 链路:prepare-cad-bim.mjs(足印→ENU、城区/乡村分级、按面积估层数)→ sample-terrain-offline.mjs(原始量化网格 DEM 采样)→ seat-cad-bim.mjs(平地/台基落地 + 轮廓有效性校验)→ assemble-cad-bim.py(Blender 导出空间 LOD 树)→ verify-lod-district.mjs。
分型策略:足印矩形度 ≥0.85 且尺寸落在 asset-fit.json 窗口内的用已认可精细资产(带窗、阳台、屋面),其余按真实测绘轮廓挤出体量棱柱——不再把 L 形/天井强行套成矩形,这正是此前"误差很大"的主因。层数按足印面积估(测绘注记不含可用层数)。
计划量与座落:足印 60,744 → 建模 54,455(精细资产 13,554 / 体量 40,901;城区 33,054 / 乡村 21,401;6,289 个 <4 m² 噪点跳过)→ DEM 座落后 48,425 栋(平地 46,934 / 台基 1,491;36 个自相交/塌缩轮廓、5,772 栋因高差超出合规台基而排除并记录原因)。
城区 BIM 已 100% 导出(本轮完成,6 批次全部通过验收):全量 48,425 栋单次导出体量过大(LOD0 逾 880MB 时被取消、无完整 manifest,未作为交付),改为 select-cad-bim-batch.mjs 按 tier/掩膜确定性切批(支持 --exclude 传入此前批次 manifest 去重;修掉 --key value 空格分隔参数解析 bug),每批 8,000 栋以内、--grid 16 --coarse-grid 4。六批明细:
| 批次 | 目录 | 导出 | 细分片/粗父 | LOD1 | LOD0 | 验收 |
|---|---|---|---|---|---|---|
| 1 试点 | lod-pilot |
2,942 | 68/9 | 24.0MB | 77.3MB | passed |
| 2 | lod-batch-urban8000 |
7,851 | 68/9 | 33.9MB | 132.3MB | passed |
| 3 | lod-batch-urban8000b |
7,712 | 70/9 | 31.7MB | 136.8MB | passed |
| 4 | lod-batch-urban8000c |
7,590 | 70/10 | 32.0MB | 121.3MB | passed |
| 5 | lod-batch-urban-final |
5,867 | 65/11 | 29.7MB | 114.5MB | passed |
| 6 尾批 | lod-batch-urban-tail |
506 | 23/3 | 0.9MB | 1.1MB | passed |
去重后城区覆盖 29,755 / 29,755 = 100%。体量棱柱按真实轮廓挤出,L 形/天井/街面进深保留;精细资产用于矩形度高的房屋。第 6 批 506 栋是各批资产窗口装不下的矩形,改按真实轮廓挤出(精度反而更高),不再硬套资产。
乡村 3 批(全部通过验收):lod-batch-rural1(7,820 栋,LOD1 35.4MB/LOD0 144.5MB)、lod-batch-rural2(7,658 栋,LOD1 35.1MB/LOD0 131.0MB)、lod-batch-rural3(2,788 栋,LOD1 20.3MB/LOD0 64.2MB),乡村房屋按真实轮廓挤出为主,辅以可承载的精细资产。
全场景 CAD BIM 汇总:城区 29,755 栋 100% 导出,乡村 18,266 栋分三批导出;加上 404 栋资产窗口兜底为真实轮廓体量后,去重覆盖 48,425 / 48,425 = 100%。共 10 个批次,每批通过 verify-lod-district.mjs;LOD0 合计约 923MB。
修掉的导出器缺陷(子代理首版遗留、由本人定位并修复):① 棱柱墙面四边形被加入两遍且第二遍反向绕序,每条墙边关联 4 个面、网格非流形,recalc_face_normals 无法定向,细长轮廓体积自检误判"内外翻转"——去掉重复面后恢复;② 体积自检与棱柱顶点原先用绝对 ENU 坐标(离原点约 2 km,mathutils 单精度),改为按 positionENU 构建局部坐标并加对象位移,自检数值稳定且导出节点位移与计划一致;③ 体量建筑原先额外生成"外接矩形埋地基础",与棱柱侧面共面闪烁、并在 L 形/细长轮廓上伸出建筑之外——体量棱柱已下探到 foundationBottom,故只对精细资产保留独立基础;④ 材质索引按三角面数而非面数填写,已改为"n 个墙面 + 两个顶底盖"。
剩余事项已按 2026-10-08 维护者决定收敛:层高保留按足印面积估算,不再作为阻塞;需解决全量 10 批次约 923MB 的运行态加载压力,并在真实驾驶舱验收贴地、遮挡、尺度及墙体/屋顶/门窗样式。
模型审查入口(辅助):preview.html#cad-bim 可快速检查 CAD BIM 批次几何,但不作为最终验收;最终外观与运行态验收在实际驾驶舱 http://127.0.0.1:8000/#/cockpit 完成。
createViewer() 未开启 globe.depthTestAgainstTerrain。在不透明球面/本地 DEM 下完全埋入的红色 GLB 仍显示 2916 像素;仅开启该项后为 0。已在 Viewer 创建和视图图层切换时保持开启;地下管线透视仍由显式 globe.translucency 控制。doubleSided 和法线自洽检查不能证明屋顶闭合。goHome(options) 的参数传入,实际没有改变预设距离;旧截图文件名中的“2400m/1200m”等不能作为视距证据。cesiumEngine.js 默认与图层切换保持 depthTestAgainstTerrain=true。tools/city-massing/verify-occlusion.mjs 在实际本地 DEM 场景验证默认地面0红像素、关闭深度2916、深度开启0、管线半透明2916、回地面0。负对照能复现原问题。regular-estate 有 5 处影像描绘屋顶与 OSM 巷道互相矛盾待人工判定。tools/city-massing/primary-area.mjs 作为唯一裁剪/包含契约(clipFeatureToBounds 对道路用 bboxClip、对建筑面用 intersect),city-atlas.mjs 与生成器都改用它;primary-area.test.mjs 6/6 通过;verify-city-models.mjs 对三套导出树实测主场景区外 0、交通道路上 0、居民地掩膜外 0。regular-estate 的 5 处影像描绘屋顶与 OSM residential 巷道重叠(15%–55%)作为 sourceConflicts 如实记录,未擅自删楼或改路。district/lod-preview(37单元,LOD1 7.04MB/790,296三角,LOD0 10.04MB/1,094,016三角)、city/regular-estate/lod-preview(15单元,LOD1 5.35MB/314,640三角,LOD0 8.12MB/449,424三角)、city/oldtown/lod-preview(4,601模块、319细分片、39粗父节点,LOD1 124.5MB/30,913,288三角,LOD0 662.6MB/43,942,492三角)。三棵树均通过 verify-lod-district.mjs 静态回验;oldtown 体量已大幅上升,运行时性能尚未复测,不能据此声称通过。map.tilesets[].lighting:true 归一化后,Cesium按tileset地理包围球配置稳定局部DirectionalLight与IBL;默认配置仍关闭模型,不改变无模型部署。tileFailed同步捕获内容阶段错误。.scratch/cockpit-shell-panel-layout/verify/artifacts/t35/runtime-lod/report.json(该文件描述的是改造前的旧树,已过期)。tools/city-massing/convert-dwg-to-gis.py:用 ArcGIS Desktop 10.8 的 arcpy 把测绘 DWG 转成文件地理数据库并盘点图层(CAD 无坐标系,按 CGCS2000 3 度带 GK CM 111E / EPSG:4546 定义;CADToGeodatabase 必须给参考比例,本图取 1:500)。tools/city-massing/export-cad-layers.py:按 CAD 图层名取出要素、定义坐标系、投影到 WGS84 输出 SHP;跳过 MultiPatch(三维重复几何)与 Annotation(文字框)。tools/city-massing/cad-shp-to-geojson.py:把 SHP 转成只含主场景区的 GeoJSON,并统计面积分布。city/cad-buildings.geojson(60,744 个房屋轮廓,SHA256 4266B3EC…)、city/cad-building-labels.geojson(54,663 条注记)、city/cad-extract-report.json。tools/city-massing/verify-cad-buildings.mjs → city/cad-buildings-z19-core.png(1:1 影像 + 轮廓描边,本人已读图确认贴合)、city/cad-buildings-overlay.png、city/cad-buildings-core.png。复现命令(路径含中文,故先复制到 ASCII 临时目录):
$tmp="$env:TEMP\city-dwg"; New-Item -ItemType Directory -Force -Path $tmp | Out-Null
Copy-Item 'D:\GIS\ArcGIS\yuanling\沅陵20240510.dwg' "$tmp\yuanling-20240510.dwg" -Force
& 'C:\Python27\ArcGIS10.8\python.exe' tools/city-massing/convert-dwg-to-gis.py "$tmp\yuanling-20240510.dwg" "$tmp\cad-20240510.gdb" 500
& 'C:\Python27\ArcGIS10.8\python.exe' tools/city-massing/export-cad-layers.py "$tmp\cad-20240510.gdb" "$tmp\shp" JMD
& 'C:\Python27\ArcGIS10.8\python.exe' tools/city-massing/cad-shp-to-geojson.py "$tmp\shp" tools/city-massing/city "110.328749941417,28.3917230659234,110.465779226663,28.4913038992907"
node tools/city-massing/verify-cad-buildings.mjs
注:city/cad-building-outlines.geojson(43MB,JMD 线要素)与多边形重复,为控制仓库体积已删除,需要时按上面命令重新导出。
tools/city-massing/house-library/house-library.blend、library.json、独立 GLB 和 preview.png:房屋资产库(8 个变体,已被维护者认为单栋质量基本够用)。tools/city-massing/asset-fit.json:足印模块 ↔ 资产变体的唯一缩放窗口契约,生成器与 Blender 导出器共用,防止两段各自放宽标准。tools/city-massing/primary-area.mjs + primary-area.test.mjs:主场景区裁剪与包含的单一契约(6 项测试)。tools/city-massing/segment-imagery-footprints.mjs + city/imagery-footprints.geojson + imagery-footprints-report.json:z19 卫星屋顶分割(6,000 足印,阈值与逐掩膜可靠性写在报告里)。tools/city-massing/verify-imagery-footprints.mjs + city/imagery-footprints-verify.png:1:1 卫星底图对照图,用于人工判读足印是否真的压在屋顶上。tools/city-massing/generate-oldtown-fill.mjs:来源足印 → 模块计划(含 sources 与逐条 excluded 原因)。tools/city-massing/seat-oldtown.mjs:平地/台基/台阶三档落地,terraced 记录台阶切分。tools/city-massing/verify-city-models.mjs + city/city-model-verification.json:主场景区/交通道路/掩膜/来源验收,并把无法自动判定的来源冲突单列。tools/city-massing/draw-model-coverage.mjs + city/city-model-coverage.png / city-model-coverage-core.png:生成足印叠在卫星底图上的覆盖对照。tools/city-massing/district/generated/coverage.json、geometry-verification.json:示范街区的来源覆盖与 GLB 坐标检验。本地工具:Blender 5.2.2 LTS 位于 D:/Steam/steamapps/common/Blender/blender.exe,批处理制作与导出成功。3ds Max 2024 批处理探针未进入脚本就绪状态,本次已停止,未声称用 Max 制作成功。
独立审查页:http://127.0.0.1:8092/preview.html(serve-review.mjs,只监听本机并复用8001的引擎/GIS)。不写入生产产物。旧 map.tilesets 已置空;新街区只通过审查入口展示,未擅自正式启用。
primary-area.test.mjs 6/6、oldtown-geometry.test.mjs 5/5、verify-lod-district.mjs 三棵树全通过、verify-city-models.mjs passed:true(主场景区外 0 / 交通道路上 0 / 掩膜外 0,5 处来源冲突如实列出)。city/imagery-footprints-verify.png(1:1 卫星底图 + 足印描边)与 city/city-model-coverage-core.png(生成足印压在城市核心卫星图上)已由本人读图判读:足印落在屋顶、街区内、河岸与山体保持空白。http://127.0.0.1:8092/preview.html 仍在,但它依赖 8001 的 dev 服务取 Cesium;本轮 8001 未在运行,因此没有重新取得运行态截图或帧率。项目规则禁止擅自启动 dev/调试服务,故运行态验收留待维护者开启服务后进行。房屋外观比旧版实质改善,样式也不再单一,但不能把有窗的详细单元等同逐栋真实建筑复原。楼层与立面是估计;DEM 自身精度、屋顶视差和历史影像错配依然存在。影像分割足印是最小外接矩形,贴邻无阴影分隔的两栋会并成一栋、暗屋顶会漏、L 形与天井不表达,位置不确定度约 0.3–0.6 m。掩膜 63/130 的影像足印已被判为不可信并排除,但这属于人工读图判读,不是自动质量指标。允许保留数值证据,不允许据此重新声称“全城达标”。
city/cad-bim/ 下全部 11 个 LOD 批次重新执行 verify-lod-district.mjs,全部 passed:true,栋数与正文逐批一致(pilot 2,942 / urban8000 7,851 / urban8000b 7,712 / urban8000c 7,590 / urban-final 5,867 / urban-tail 506 / dedup 5,138 / unfitted-fallback 404 / rural 7,820+7,658+2,788)。preview.html#cad-bim 的 10 个 tileset 清单与去重账目吻合(dedup 5,138 = urban8000 7,851 − 被其它批覆盖的 2,713)。serve-review.mjs 与 preview.html 在位,dev 服务 8001 未运行;按项目规则(不擅自启动 dev/调试服务)本轮未取得运行态截图与帧率。http://127.0.0.1:8092/preview.html#cad-bim 目测验收 → 运行态实测达标 + 层高来源落定后,本票即可 100% 关闭。/cockpit#/cockpit 驾驶舱中验收;模型必须与真实地形、影像、相机和照明一起工作。.env.local 新增 /gis/cad-bim 静态挂载,public/cockpit/config.json 已挂入 10 个 CAD BIM 根 tileset;未复制 923MB 资产。3D Tiles 加载失败(Unexpected token '<');进一步核对显示 /gis/cad-bim/lod-pilot/tileset.json 返回的是 Vite HTML fallback,而非 JSON。原因是 8000 进程尚未重启,未读取新增静态挂载配置,不代表 tileset 或模型内容失败。http://127.0.0.1:8000/cockpit#/cockpit,先核对 CAD BIM tileset 返回 application/json,再进行真实场景的遮挡、贴地、尺度、墙体/屋顶/门窗样式和运行态性能验收。/gis/cad-bim/lod-pilot/tileset.json 返回 200 application/json,内容生成器为 Blender CAD/BIM massing LOD。http://127.0.0.1:8000/cockpit#/cockpit,驾驶舱状态显示 3D Tiles 10 个;10 个批次的根节点请求均返回 200,DEM 和本地影像也正常返回 200,原先的 Unexpected token '<' 已消失。ready-for-human / 97%。下一步应先按城区/乡村或批次做分级加载、降低首屏同时加载的 10 批次压力,再在真实驾驶舱逐级验收墙体、屋顶、门窗、贴地和遮挡。Cesium3DTileset 现在启用 skipLevelOfDetail、baseScreenSpaceError=1024、skipScreenSpaceErrorFactor=16、skipLevels=1、maximumScreenSpaceError 默认 24,优先使用低面数 LOD1,近景才请求 LOD0。dynamicScreenSpaceError、foveatedScreenSpaceError、cullRequestsWhileMoving、loadSiblings=false;Cesium 自带每 tile 视锥剔除,不在摄像机视锥内的 tile 不进入渲染/请求选择。maximumDistance,本机 10 批统一设为 18 km;相机变化时按 tileset 包围球距离切换 instance.show,并在地图销毁时移除监听。mapService.js 中已有的重叠图层函数合并残片,该残片曾导致 Vite HMR 报 mapService.js:1 invalid JS syntax。mapService.js、cesiumEngine.js、cockpitConfig.js、mapLayers.js 均通过 node --check;本机配置 JSON 合法,10 批全部为 SSE=24 / maximumDistance=18000;8000 的配置与 tileset HTTP 端点均返回 200。维护者实测前述 LOD/剔除优化后仍卡顿,决定不在实际驾驶舱加载零散乡村房屋。本机运行配置已移除 lod-batch-rural1、lod-batch-rural2、lod-batch-rural3 三批,约减少 18,266 栋模型及其 LOD 请求;城区 lod-pilot、urban8000-dedup、urban8000b、urban8000c、urban-final、urban-tail 与 unfitted-fallback 保留。乡村资产文件不删除,后续如需恢复可重新加入配置。
下一步:重启/刷新 8000 后重新实测城区范围帧率与近景交互;若仍卡顿,再继续拆分城区批次或降低城区 LOD0 面数。
lod-pilot 保持 eager=true;其余 6 个城区/fallback 批次改为 eager=false,启动阶段只读取各自根 tileset.json 的包围盒元数据,不执行 Cesium3DTileset.fromUrl。loadDistance=6000m,相机进入批次根包围盒 6km 范围后才初始化对应 tileset;只有一个懒批次同时加载,避免城区批次并发抢占主线程和显存。maximumDistance 与加载距离的较大值后,从场景移除并销毁,返回该区域时可重新按需加载。http://127.0.0.1:8000/cockpit#/cockpit 后,驾驶舱状态显示 3D Tiles 1 个,控制台无新的地图解析/Cesium 初始化错误;说明首屏已从“同时挂 7 批”收敛为只初始化 pilot。维护者实测按需加载后帧率仍低。根因判断:远景/中景时精细批次的 LOD1 细分网格(单批约 350 万三角、全城逾千万)仍参与渲染,懒加载只省了初始化、没省渲染三角形数。本轮改为距离分层:
/gis/city/tileset.json(旧 town.glb 全城粗模,9.7MB,坐标已回验)标记 role:"far"、eager:true 常驻。相机离全部精细批次超过 6km 时显示它、隐藏全部精细批次——远看县城轮廓由它承担;进入 6km 后反向切换。两层互斥,不会出现双重楼体。eager:false,进入对应批次 6km 才初始化,离开 12km 销毁释放;单并发加载。cacheBytes=512MB / maximumCacheOverflowBytes=256MB,超限由 Cesium 淘汰 LOD 内容,防止多批次交替加载把内存推到崩溃。refreshOverlayReadiness() 对 globe.tilesLoaded 这个昂贵 getter 从每帧一次节流到约 6Hz。node --check;config JSON 合法;/gis/city/tileset.json 返回 200 application/json。下一步:维护者刷新 8000 复测远景帧率(预期显著回升)与 6km 内近景交互;若近景单批次仍卡,再做批次内减面(LOD1 面数压低或 draco 压缩重导出)。
维护者实测:靠近城区瞬间明显卡顿。根因:跨入显示阈值时,整个批次(约 5km 范围、68 个 LOD1 单元、约 350 万三角、数千 draw call)一帧内全部上屏,且 SSE=24 立即触发 LOD0 高模请求洪峰。本轮处理:
maximumScreenSpaceError 24→96、baseScreenSpaceError 1024→4096、skipLevels 1→2、skipScreenSpaceErrorFactor 16→32、动态 SSE 密度 0.00278→0.01 —— 只让视口中央占屏很大的单元才细化,进入批次时先以粗层渲染,近了再逐单元细化。RequestScheduler.maximumRequests=16 / perServer=8(默认 50),GLB 下载与解码分帧流入,消除整秒级渲染停顿。loadDistance 6km→10km,批次在相机抵达前加载完成,加载尖峰与显示切换解耦。SSE=96 / load=10000)。下一步:维护者刷新 8000 复测"靠近"瞬间;若近景静置仍低于可接受帧率,剩余手段是资产级减面(Blender 重导出:LOD1 面数减半或 draco 压缩),需要另起一次生成管线运行。
运行时优化用尽后维护者批准资产级减面。对 assemble-cad-bim.py 新增三项能力并全量重导出:
--decimate-lod1/--decimate-lod0 对资产库模板挂 Decimate 修改器(实例共享网格,一减全减),期望三角形数改从求值网格实测(库清单数字随之失效);--draco 启用 KHR_draco_mesh_compression(Blender 5.2 属性名为 export_draco_mesh_compression_enable);必须 export_apply=True 烘焙修改器,否则导出仍是全细节网格(试点首跑 60,900 vs 期望 21,748 的自检失败正是漏了它);纯体量批次(urban-tail、unfitted-fallback,无资产模板)合法跳过减面、仅 Draco。manifest 新增 reduction 字段记录参数。--decimate-lod1 0.35 --decimate-lod0 0.6 --draco --grid 16 --coarse-grid 4。verify-lod-district.mjs;/gis/cad-bim/*/tileset.json 与 GLB 经 8000 HTTP 返回 200(dev 静态挂载直读磁盘,无需重启);Cesium 原生内置 Draco 解码器,KHR 扩展无需额外配置。下一步:维护者硬刷新(Ctrl+F5,避免浏览器缓存旧 GLB)后复测远景/靠近/近景三段帧率与楼房观感。
维护者裁定:LOD 应按距离判定(不用相机高度);真正卡顿源是模型加载一启动、整个场景都卡。本轮改加载调度而非 LOD 数字:
requestRenderMode: true + maximumRenderTimeChange: 0.5——相机静止且无新瓦片时 Cesium 完全停渲染循环,GLB 解码与 GPU 上传独占空闲帧;瓦片到货、相机一动立即出帧。已核实自转(rAF 循环 + 相机修改)与雾动画(绑定相机运动)在按需模式下不受影响,0.5s 兜底帧保证雾 uniform 最迟半秒可见。positionWC 差值),代码中无任何相机高度参与 LOD 判定的路径;雾的高度收口是独立特效(票 38),不属 LOD。RequestScheduler 16/8 → 10/5,模型加载期间给地形与影像留网络与解码余量。node --check 通过。预期行为变化:靠近城区时移动本身流畅;相机停下约 0.6s 后批次才开始流入,流入期间画面依旧流畅(按需渲染让解码不占渲染帧)。代价:停下后模型延迟约 0.6s+ 加载时长才出现,粗模层在此期间维持轮廓显示(无空白)。
下一步:维护者硬刷新后复测——重点感受"移动是否全程流畅、停下后模型是否平滑流入";若停下后的流入仍有顿挫,下一步把 GLB 解码迁到 debounce 分帧上传(Cesium 无原生钩子,需要拆分 tile 加载回调)。
本轮仅获准离线模型生成/检查。最终13栋 GIS+卫星影像试点已生成并配置为 lod-near-estate-pilot-v4/streaming-v11(旧far+七批roofed2/v5保持);配置覆盖30,159+13=30,172。中心6栋(110.3993,28.4463)、西侧7栋(110.3567,28.4593)。LOD0增加窗套/楼层线/合理尺度入口;修复门从foundationBottom起算导致埋地的问题。屋顶使用z19本地影像,立面/高度仍估算,非实拍立面或摄影测量。
最终离线:4内容GLB,LOD0 27,426tri/1,048,208bytes;LOD1 2,438tri/48,024bytes;单片max15,814tri/31,466vertices,13屋顶哈希与UV一致(max误差0.000233),10文件65屋顶检查通过。分片材质→纹理→图片→采样器闭包裁剪重编号,新增1MiB嵌入raster上限(非GPU纹理预算);2000tri压力切分40GLB/13屋顶无未引用图片回归通过,506栋旧无纹理回归通过。Blender作者模型离线预览已检查,非驾驶舱运行态证据。
统一city-continuous-v1保留候选但未启用:coarse3021文件/45.34MB vs旧far74/7.69MB,40.8倍资源fanout/5.90倍payload,非40倍三角量;聚合性能风险阻止启用。私有Cesium loadTileset只能证明结构解析,已修正文案,未测帧遍历。有效skip traversal、fine-only粗层覆盖归属及现有全局far handoff仍待处理/验收。
详细证据与回退:.scratch/cockpit-shell-panel-layout/verify/artifacts/t35/near-estate-delivery.md;最终reports: near-estate-streaming-v4.json / near-estate-roofs-v4.json / near-estate-textures-v4.json。回退仅移除config最后一条新试点,不删旧资产。由于项目规则已跳过Web build/debug、服务器和浏览器验证。issue35保持open/ready-for-human,不宣称视觉/FPS/全城验收完成。
继续离线质量加固,issue保持open/待实际驾驶舱验收。
遵守项目规则及本轮授权:只执行离线模型生成/检查,跳过Web build/debug、package scripts、服务器/浏览器/截图。未验证真实页面加载、近景样式、远近fallback、帧耗时或GPU缓存;不得关闭issue35。
根据最新反馈继续实现并保持issue open:
/gis/cad-bim/city-far-shell-v4/tileset.json,仍Base REPLACE/SSE96/cache64+32MiB/并发10/5,页面仍http://127.0.0.1:8000/#/cockpit。.scratch/cockpit-shell-panel-layout/verify/artifacts/t35/far-shell-delivery.md。/gis/cad-bim/city-continuous-v8/tileset.json + progressiveRefinement:true,入口仍为http://127.0.0.1:8000/#/cockpit。hasEmptyContent=true把未加载子内容误判为就绪,导致父粗模提前退休。空根也不含占位content。首次冷缓存仍有下载/解码不可避免;用户需从正式入口实测无感观感、快速缩放和缓存压力。issue保持open。
离线比较确认:当前v5粗内容3,022片、约45.35MB压缩载荷;历史低开销far为74片,三角总量相近但内容/遍历数量显著不同。
Cesium 1.145的@cesium/engine确实读取EXT_mesh_gpu_instancing,但实例化仅适用于真正共享网格/材质和TRS,不会自动合并已经按批次合并的粗GLB;实例属性不能Draco压缩,旋转还需CPU矩阵准备。
生成未接入的13栋实例化粗模候选:3个GLB、1,049实例、109,288 bytes,保留测绘屋顶/底盖,外墙窗门作为共享外部构件;GLB扩展/变换结构离线检查通过。
74粗模直接挂精模的混合树候选否决:SkipLOD下REPLACE可能整组退休,细分请求球会造成同组其他建筑消失;且74组中21组超过20,000三角限制。正式配置仍保持city-continuous-v5。
低空/横向精模CPU内容压力本轮改为独立区域调度,并落实用户要求管道只粗模。正式配置city-regions-v2/coarse-tileset.json +regionManifest;113粗片(与原far-shell几何/材质/变换逐三角一致),113fine区/3023fineURI原样保留。地面视锥附近700m(活跃800m滞回)最多2区/180内容/96MiB解码几何估算,粗模实际可见且tilesLoaded才启动精模;新区初始化与下载/解码完成串行闸门,隐藏预取完整区域后一次显示,postRender观察绘制后按metadata.region/公开feature.show仅遮对应粗模。失败/卸载/视锥外/pipeline恢复粗模并释放detail;pipeline准入0。fromUrl晚到结果销毁,元数据fetch abort,修复Viewer创建后异步采样期间未登记所有权可能泄漏的旧漏洞。
离线验证:113region<=115片、maxGeometry估算80.54MB、coarsemetadata后5.95MB;每顶点featureID0、table.region正确,原细模型URI一对一。低空ENU(0,-1000,50)与350m模拟均2区25片14.08MB估算,另一低空点2区54片32.72MB,全景0精模,全部pipeline0。算法回归含粗模闸门/完整loaded计数/串行内容槽/失败回退/定时不闪烁/视锥外释放/切pipeline全部释放/晚到销毁。T04/T21计划与语法检查通过。细区仍内部并发请求,帧率/CPUvsGPU主因未经实测证明;整体替换可能等待更久。按项目规则跳过Web build/debug/server/browser,未新增页面入口,保持issue35 open待正式/#/cockpit低空和pipeline验收。交付记录 .scratch/cockpit-shell-panel-layout/verify/artifacts/t35/region-loading-delivery.md。
按用户加载迟钝/灰顶远景/粗精混合明显反馈,正式配置city-regions-v6。修复候选启动按manifest顺序而非镜头优先级、活跃区永久优先;改为distance+0.15centerDistance-150mactive滞回,近邻新区可替代旧区。新增631个有窗格/同源卫星屋顶预览父内容,全部预览就绪实际render后只遮对应全局粗模,精片按GE48 REPLACE继续细化;串行槽在预览完整+当前请求/处理空+tilesLoaded后释放,不等待尚未需要的精片,已有区再处理则暂停新区启动。保留max2区/180总内容/96MiB解码资源估算、管道粗模专用及async释放。
屋顶来源本地pic3 z19 EPSG3857/TMS重投影,globalatlas最长256px/preview128/fine64 JPEG85;原3个有影像fine保持原URI/哈希,所有geometry/normal/index和墙材质不变。实际GLB回验3758纹理、8257571UV点max误差2.98e-8、9646源tilesSHA256匹配,north-up/TMS、preview/fineownership通过。113粗文件9.86MB,粗图mip25.5MB;单区最多151contents/max87.8MB(含UV/纹理/原有near贴图),没扩大regioncap。模拟低空2区56–66总内容/12预览,pipeline全部0。离线看实际atlas,非浏览器或GPU画面。
JS/T04/T21/调度回归通过,独立只读审查无阻塞。性能/实际响应与混合外观仍待正式/#/cockpit验收,按AGENTS跳过Web build/debug/server/browser。回退URL与regionManifest均回city-regions-v2;issue35保持open。交付 .scratch/cockpit-shell-panel-layout/verify/artifacts/t35/satellite-roof-delivery.md。
认领本次浏览器验收与wayfinder执行回顾;用户已明确授权在正式http://127.0.0.1:8000/#/cockpit进行浏览器验证。先验证当前city-regions-v6实际加载、远近外观/管道零精模与运行性能,再复核人工介入类别,不预先关闭或宣称97%完成。
本次真实浏览器验收已复现GLSL300es下调色shader使用varying导致Rendering has stopped,创建独立技术修复票“恢复驾驶舱3D渲染:调色与雾着色器的GLSL兼容性”作为前置。当前不是要求人工修代码,建筑模型票改为ready-for-agent,修复后代理复验;只有最后的真实外观/可接受响应与范围确认需维护者裁定。历史97%不能作为当前验收通过率。
第四轮实际进展:开发modelDiagnostics不再每帧生成region/tilesets全量快照,限500ms绘制;新增公开tileLoad/tileVisible URL区分fineLoaded与fineVisibleLastRender,preview-ready/coarseMasked不再可被误读为全部精模显示。回归验证加载≠可见、下一帧无精片清读数、预览保底/管道释放不变;诊断60帧无新完整快照、监听销毁通过。配置仍city-regions-v7,实际Cesiumfrustum反例和631content索引路径/预算回归通过,但v7浏览器复验未完成(harness会话上限/清理字段冲突)。
更新大型楼栋审计:实际配置regionfine图可追溯3023路径/113regions/30172源元数据IDs,13已认可补充楼的IDs纳入图中;是源cell元数据谱系而非实际几何/全部渲染证明。历史1517候选剩1504/urban955,无urban seated-outside-selection直接可纳入项;其余仍需影像和座落验证,不自动恢复乡村/不增加未核实楼栋。记录 verify/artifacts/t35/coverage-reconciliation-20261013.md 和 active-large-building-reconciliation-v7.json。本轮目标继续active/open,Webbuild/debug未新增运行。
第六轮v7离线质量复验:纹理/预算通过(113区域、631preview、3023fine、3758屋顶纹理、8257571UV、最大误差2.98e-8、9646源瓦片哈希、geometry unchanged、最大区域87.8MB<96MiB、低空2区/56–66内容、pipeline0)。fineLoaded/fineVisibleLastRender诊断与安装版Cesium遍历回归继续通过。v7正式浏览器复验仍受会话清理接口互斥字段错误阻塞,故不宣称render/FPS/视觉完成。记录 round6-v7-texture-and-traversal.md;目标和票保持open。
第六轮收口记录已写入 round6-v7-texture-and-traversal.md:v7屋顶纹理与预算复验通过;实际准入扫描40姿态旧35次空洞名额/v7零;安装版Cesium BaseTraversal精片pending/ready/evicted通过。浏览器清理接口仍无法释放旧session,故v7 render/FPS/视觉尚未验收,继续保持open。
第九轮:生成large-building-audit/review-queue-v7.json+md,955个urban候选分为terrain/stepped946、自交4、DEM无效5;最大候选cad-4057 20669.8m²,队列只供卫星/DEM人工复核,不自动加楼或恢复乡村。预算脚本已改读ECEF姿态扫描,避免ENU/ECEF混用;40姿态最多2区/180内容/96MiB、pipeline0,content/region/diagnostic回归通过。v7真实浏览器/FPS/视觉仍未验收,继续open。
第十轮补齐大型楼栋影像证据:为955个urban候选生成review-queue-v7-imagery.json/md,每候选关联本地z19 TMS bbox及瓦片路径/字节/SHA-256;修正GeoJSON坐标递归错误后复验,955/955 bbox coverage=complete,首候选cad-4057为16/16瓦片。TMS存在性只供人工查看,不等于漏建/屋顶形状/渲染证明;不自动加楼或恢复乡村。v7纹理、ECEF预算、准入、region、diagnostics回归保持通过,真实render/FPS/视觉仍未验收。记录round10-imagery-evidence.md,票继续open。
第21轮完成:反面样例四ID(cad-25612/25467/25968/25957)全部有历史rural批次谱系但无v7 fine source,确认不是当前浏览器漏渲染;建议四ID immutable白名单试点,需明确tier例外,绝不全面解锁rural。屋顶密度试点未配置,维护者正面/反面覆盖报告和屋顶试点记录已存。
第22轮完成四栋反面小区白名单pilot输入:cad-25612/25467/25968/25957,1栋slab asset+3栋survey massing,原始DEM高差0.81–3.03m,契约1区/8内容/32MiB;保持原足印/采样/估算高度,不改全局rural、不改city-regions-v7配置。未生成GLB,需明确维护者白名单例外后再走不可变pilot生成/视觉验收。记录 negative-estate-pilot/round22-whitelist-plan.md,目标继续active。
第23轮审阅assemble-cad-bim.py确认最小plan+--limit/--grid/--coarse-grid可独立导出四栋白名单pilot,不需复制rural cell;但按项目规则本轮不自动跑Blender/build/debug,因此未生成GLB/tileset。四栋输入已验,v7配置不改。记录 negative-estate-pilot/round23-exporter-interface.md。
第24轮完成正反样例GLB谱系质量对账:正面样例附近asset/midrise/slab与massing混合;反面4栋为1栋slab asset+3栋survey massing。现有source cell manifest不能单楼归因triangles/窗/纹理,不能冒称质量统一已完成。记录round24-quality-lineage.md和user-samples/glb-quality-lineage.json;不build、不接入高清、不改全局v7/rural。
第25轮完成历史LOD0 GLB质量基线:正面urban cell-09-09 113194tri/17材质,反面rural cell-07-10 231196tri/17材质,slab cell-07-11 103964tri/17材质;均merged cell、无embedded texture,不能把三角归因单楼。四栋局部pilot需要单楼节点级独立输出,本轮受不自动build规则未运行。记录round25-glb-quality-baseline.md和glb-quality-baseline.json。
第26轮完成四栋白名单单楼质量闸门:cad-25467可复用slab asset(闭合壳/窗/阳台/屋面,库基线LOD0 32020tri);cad-25612/25968/25957必须真实轮廓massing+有界窗层线模块,禁止矩形替换。共同要求LOD1<LOD0、LOD0 GE0/REPLACE回退、z19 TMS/UV/每图预算、pilot32MiB和全局96MiB。未build/未接v7,记录round26-quality-gate.md。
第27轮完成四栋pilot静态导出前检查:父计划哈希/4ID唯一/48,425父计划未泄漏、DEM和样本索引保留;grid2预测2cell、推荐--limit4--near-architecture;全局仍v7。生成recommendation但doNotRun=true,未运行Blender/build/debug。记录round27-prebuild-check.md。
第28轮静态质量闸门通过:slab候选cad-25467 fitScale[1.373,1.1892]合法、库基线32020tri/1883闭合壳;三栋massing强制exact outline/禁止矩形替换;父hash、1区/8内容/32MiB、全局v7边界通过。GLB/运行态/FPS/视觉仍未验证,doNotRun=true。记录round28-static-quality-gate.md。
第29–31轮完成实际四栋反面小区离线pilot和完整高清屋顶候选:四栋export-v3 2cell/4GLB,LOD0 7746tri/161580B,LOD1 800tri/24332B,逐楼闭合足印/法线/屋顶hash/697184B资源回验通过;两块高清屋顶已组装为city-regions-roof-pilot-v1候选,113区/631preview/3023fine,仅替换2 fine,region25 32020772B,6328组合预算和pipeline0通过。未接v7,配置仍v7;离线图提示屋顶源影像色块/阴影 caveat。Web build/server/browser/FPS仍按规则跳过。
第32轮按只读审查加固屋顶候选验证器:区分原始source GLB与v7当前精片hash,校验pilot report SHA、替换raster尺寸/hash/processing/sourceTiles,比较全部primitive属性与Draco兼容字段;重跑通过113区/631preview/3023fine、2替换、+1474740B、region25 32020772B、6328组合、pipeline0。候选仍未接v7,renderingValidated=false。
第33轮生成并验证integration-decision-package.json,绑定四栋pilot与113区高清屋顶候选报告SHA、正式v7 config SHA、回退策略及预算约束。明确四项人工门槛:小区排布/道路间距,屋顶色块阴影拼接,正面样例精模质量,渐进加载/低卡顿体验。当前配置未变,两个候选未接入;记录round33-integration-decision-package.md。
第34轮目标完成度审计:GIS/DEM/闭合LOD、屋顶z19溯源、四栋pilot、候选预算均有离线证据;正式驾驶舱视觉/FPS/CPU-GPU/缓存和四项人工视觉接受未完成。正式配置仍city-regions-v7,候选不接入。记录round34-completion-audit.md/json,目标active-not-complete。
第35轮完成屋顶影像只读色差统计:四栋roof crop的luma<55占34.0–48.5%,中位亮度55.6–108.2;25个源瓦片有16组相邻east边界,RGB RMS proxy 5.65–13.19。只说明明显暗部/边界色差风险,无法区分投影阴影、屋面材质、遮挡或不同地物,未修图/未改v7。候选保持未接入,待正式驾驶舱人工判定;记录round35-roof-imagery-statistics.md。