fog-review.md 5.2 KB

视距雾气:可丢弃原型与人工验收入口

Status: awaiting-human-review

回答的问题

「18/42 km 世界射线距离雾 + 浅蓝灰地平线 + 进入时 60/20 km 高度带 + 退出 0.8 秒淡出」能否保留归位视角可读性、遮住浅俯角远景,并避免把天空压成夜空?

本原型属于「视距雾气的实现规格」的决策证据,不是生产实现,不承诺全视角遮缝或性能已达标。视觉分支以实际驾驶舱地图为背景,三种方案区别在合成方式,不另建 GIS 数据与渲染器。

首次人工反馈

维护者已选 B(仅地物距离雾),认可颜色和距离基本没有问题。进入演示未通过:雾出现太晚,未能及时遮挡矩形边缘;正式交付必须解决。C 不作为当前选择,但保留其代码供历史对照。

维护者在第 4 轮答复“全部按推荐来”,确认 B 按原型默认 18/42 km 与 #bdcdd6 固化;此为人工确认,不是自动采集快照。雾规格已按决策范围收口,进入演示失败仍待下游完整交接修正;未提供性能数据,不能判定 15% 预算通过。继续复现时使用 variant=B,本次未修改原型运行代码。

位置与打开方式

  • 入口:src/pages/cockpit/index.vue,只增加 DEV + route query 显式选择的动态加载。
  • 控制台:src/modules/cockpit/prototypes/FogPrototype.vue。
  • 后处理:src/modules/cockpit/prototypes/fog-prototype-stage.js。
  • 普通应用使用仓库现有 yarn dev(Fes),不使用 pre.dev;本会话未执行启动命令。
  • 在该命令输出的现有应用地址打开 /#/cockpit?fogPrototype=1&variant=B。项目使用 hash 路由,query 在 #/cockpit 后。不预设本机端口,也不另起替代服务器。
  • 先点击原页面「点击进入系统」,再点击原型底栏「归位观察」。初始原型 phase=global(无自建雾),原型不会偷改真实进入按钮。
  • 没有 fogPrototype=1 或非 DEV 时不挂载原型;删除该 query 即卸载、恢复内置视觉雾;不修改运行配置文件,不保存参数。

三种方案

  • A:关闭自建雾的基线。默认同时关闭内置雾的视觉贡献,但保留其剔除开关与既有天空大气;并非关闭所有大气效果。
  • B:只处理有效几何深度的世界射线距离雾,背景保持原样。用于观察地平线断层是否明显。
  • C:B + 无有效深度背景的地平线渐变 + 小幅太阳方向暖色。默认首版色 #bdcdd6 仅为可调起点,不是已验收终色;该背景分支也可能影响无自身深度的透明内容,必须检查。

用底栏按钮或左右箭头切换,输入框聚焦时不劫持箭头。切换更新 route query。可调起雾/遮蔽距离与基础色;参数仅驻内存。

操作与验收清单

  1. 归位观察:切 A/C 对比,主体街区仍应可读,近处建筑不应蒙成一片。分别看 B/C 的远地物与天空衔接。
  2. 浅俯角 −10°:观察地平线、山体与影像边缘,检查天空不是夜空、没有雾墙/色带。手动旋转到其他方向,结论不能只基于一个方向。
  3. 进入演示:原型立即回到全景,稍后调用现有 goHome;高度从 60 km 到 20 km 驱动雾强度。此按钮演示门控,不实现正式进入状态机或完整影像交接。
  4. 退出演示:现有相机向全景过渡,雾 0.8 秒淡出后禁用。连续进入/退出不应被旧计时器反向关闭。
  5. 管线视图(原型局部):调用现有地图服务的管线显示,不改正式 filterStore 选择;检查透明地表/近处管线是否被错误浓雾覆盖。可切 A 暂关自建雾对照,按已确认“可读性优先”决定是否需要正式降级。
  6. 性能参考:固定视角、尺寸与内置视觉雾开关,等加载稳定并预热,按 A→C→A 收集三段各 10 秒帧间隔。控制台显示配置、画布尺寸、tilesLoaded 和各段 P95,最多保存六段。不要在采样中移动相机/改参数/切视图/切标签页。

性能读数是渲染事件间隔,不是 GPU 时间。A 保留禁用 stage,因此这组对照不能单独测清“完全不装 stage”的基线额外开销;帧同步也可能掩盖 GPU 增量。目标仍是确认的 P95 帧耗时增幅 ≤15%,正式验收还需无原型基线、同条件重复测量与首次启用/切换卡顿检查。本原型不自动显示通过结论。

已执行与未执行

  • 已执行:源文件读回、接线 diff 检查、独立只读复核。
  • 已修复:hash query 入口读错位置;采样结果递归嵌套历史;内置视觉雾混入 A/B/C 对照。
  • 未执行:构建、dev、shader 编译、浏览器截图、GPU/帧耗时采样;遵守 AGENTS.md 的显式验证授权要求。
  • 待维护者:实际打开原型,记录偏好、可读性缺陷和性能结果;不能凭代码存在关闭 HITL 决策票。

清理与保全

结论确认前保留为未提交的可丢弃源文件,工作区有大量并行改动,不自动切分支或提交。原型被验收后,将这两个原型文件与入口接线的独立补丁保存在 throwaway 分支,生产实现另行整理;移除入口动态挂载与整个 prototypes 雾目录即可撤除。不把未验证原型直接当正式交付。