# Issue35 连续LOD替换(v8) 当前正式配置指向 `/gis/cad-bim/city-continuous-v8/tileset.json`,`progressiveRefinement:true`。页面入口始终 `http://127.0.0.1:8000/#/cockpit`。本轮仅代码与离线模型索引检查;Web build/debug、服务器、浏览器和截图按项目规则跳过。 ## 行为与性能取舍 旧v5为3,022个局部粗片,窄fine请求球半对角线+250m;SkipLOD允许部分子模分批显示。新树使用530个≤20k三角的whole-cell粗父内容(实际约12.995MB)、原3,022局部粗片、原3,023精片的三层结构。所有6,575内容URI复用既有GLB,近景屋顶贴图/立面、测绘座落和建筑数量不变,实例化候选未启用。 - 空根只组织树,不含占位模型,避免根content成为全城就绪门槛。 - 有内容父粗模直接连接有内容子粗片/精片,移除空中间节点。安装版BaseTraversal会把hasEmptyContent=true的中间节点当作就绪,不能依靠该节点阻止父粗模退休。 - geometricError有限策略初值:远粗128、局部粗48、精0;这些是渲染策略参数,不是实测建模误差。 - 去掉局部粗/精硬请求球,用SSE/视野/缓存门槛控制请求。传统REPLACE会请求未满足请求球的兄弟,硬球还会阻止替换,不能把sphere当作独立预取范围。 - 远粗请求球为cell包围球+14km,便于归位全景先准备轮廓;整tree最大显示距离仍14km,不要求全球一直显示。 - 仅该显式配置城市树关闭skipLevelOfDetail。基础遍历让每个父粗模等待对应实际content子片;其他部署未配置此开关时保留SkipLOD。 - 移动请求剔除倍率90→30,保留cullRequestsWhileMoving:true。周边延迟保持0.6s;基础REPLACE不使用该优先级延迟,故不能把调低它作为本轮收益。 - 请求并发10/5、SSE96、缓存64+32MiB均保持;隐藏预取/目的地预取false,未开启全局精模preload。 - 两个legacy cell whole-coarse>20k,保留有界局部粗片作为最粗一级。概况时101个局部粗请求来自这些回退,不是全城精模。 48m误差参数在1080px/60°垂直FOV/SSE96的标称细化距离约468m;实际还受视角、包围体、内存调节SSE和画布尺寸影响。比旧固定250m门槛给更多准备时间,但不保证所有条件下不可见过渡。 ## 验证与反例 [资源与配置回归]():30,172栋覆盖、所有URI对照源清单匹配、最大19,991三角/47,221顶点,配置归一化→计划→实际引擎选项接线通过。验证器拒绝有内容父节点直接连接空中间节点。已有T04配置/T21地形计划回归通过。 [请求模拟]()执行安装版CesiumBaseTraversal,注入合成ENU相机sphere距离/SSE、所有瓦片视锥可见、真实hasEmptyContent语义及content就绪状态: | 状态 | 待请求远粗 | 待请求局部粗 | 待请求精 | 选中远粗 | 选中精 | |---|---:|---:|---:|---:|---:| | 10km概况冷启动 | 530 | 101 | 0 | 0 | 0 | | 近景350m、局部粗未就绪 | 0 | 774 | 5 | 530 | 0 | | 同点精未就绪 | 0 | 0 | 5 | 418 | 0 | | 同点精全部就绪 | 0 | 0 | 0 | 417 | 5 | | 回到概况 | 0 | 0 | 0 | 530 | 0 | 同一测试对旧v7运行失败(局部粗pending时530父粗模中仅417被选中);v8通过,确认不是只靠结构解析证明回退。 独立7例安装版基础遍历回归通过:pending/ready/失败或逐出/SSE满足/远景/本地粗模等待/两区独立替换。只将GPU相关selectTile输出改为记录选中对象;**不是实际网络、GPU渲染、缓存加载时序、FPS或无感观感验收**。 首次冷缓存仍需首批GLB下载/解码;父粗模无法在内容未到达前凭空显示。baseREPLACE减少半片精化,但粗精几何差异仍可能造成LOD跳变,广阔视野也可能超过96MiB处理预算并提高effective SSE。这轮目标为减少突现与空档,不声称完全无感或帧率已提高。 ## 运行态待确认与回退 待确认冷缓存入场、快速连续缩放/平移、贴近街区、回退粗模、高DPI和缓存压力。若出现回归,将配置URL改回 `/gis/cad-bim/city-continuous-v5/tileset.json` 并置 `progressiveRefinement:false` 即回旧策略;不删除新旧资产。配置被git忽略,部署需单独保存。issue35保持open。