فهرست منبع

fix(cockpit): 管线视图不做运动期降档,消除远景管线浅色剪影虚影(票103)

维护者现象:管线视图下视角移动时屏幕出现一层管道虚影(远景成片亮白剪影,
与地形明显区分),停止运动后自动恢复并伴随一次整屏闪烁。

根因(维护者实机量化,真实画布帧内取像素、地形带 12%–42% 高度):
管线视图参与了票 61 的运动期自适应降档。运动中分辨率降到 0.55(缓冲 889x455):
  · 浅色像素均值 3.13%(静止 0.75 帧 1.68%)
  · 纯白像素 0.21%/帧(静止帧为 0)——即虚影的白色本体
  · 停止恢复 0.75 时缓冲切换,剪影跳回管线当前位置并闪烁
白像素只存在于 0.55 运动帧。此前三种假设已逐一实机排除并从代码撤回:
地形 SSE 补偿(本地 Cesium 地形 SSE 已除以 pixelRatio,缩放相消)、
运动期地形不透明(会遮住地下管体)、地形背面透明改动(未获验证)。

修复:相机状态下发处加守卫,管线视图不参与运动降档;
地面视图保留 0.6 性能档不受影响。

验证:t103 闸门 6/6;t63 R1-R7、t67 A1-A11、t75、t60 35/35、t21 全绿;
现场实测管线视图运动期 140 个采样全部 0.75,地面视图运动期仍 0.6。
按 AGENTS.md 未运行 build/preview。
ChenJZ 10 ساعت پیش
والد
کامیت
891f785386
1فایلهای تغییر یافته به همراه6 افزوده شده و 1 حذف شده
  1. 6 1
      src/modules/cockpit/services/mapService.js

+ 6 - 1
src/modules/cockpit/services/mapService.js

@@ -1095,8 +1095,13 @@ async function bootEngine(record) {
                 // 与是否正在渲染无关,是更可靠的触发源。两条路径都留着:渲染帧管逐帧跟随,这里管"变化即更新"。
                 // 票 61 第十四轮:移动期自适应降档(近景填充率是卡顿主因)。
                 // 静止必须恢复满档,否则画质会永久停在降档状态。
+                // 票 103(维护者实机量化 2026-11-03):管线视图**不参与**运动降档 ——
+                // 降到 0.55 的缓冲会把远景管线糊成一层浅色剪影(0.55 运动帧浅色像素
+                // 均值 3.13%、纯白 0.21%;0.75 静止帧 1.68%、纯白 0),即报告的
+                // 「整条管线剪影虚影,停止瞬间跳回并闪烁」。地面视图保留降档性能档。
                 if (state && typeof state.settled === 'boolean' && viewer) {
-                    try { engine.applyMotionResolution(viewer, state.settled === false) } catch { /* 忽略 */ }
+                    const motion = state.settled === false && getViewMode() !== 'pipeline'
+                    try { engine.applyMotionResolution(viewer, motion) } catch { /* 忽略 */ }
                 }
                 for (const handler of cameraStateHandlers) handler(state)
             },