4.4 KiB
STEP-055 真实 WeatherV2 风场综合可视化修复 Codex 完成报告 v2
基线与结果
- Starting HEAD:
8a0873a5fb2c8867c7e2a126b4d4c185077dd6f9 - 分支:
particle/main - 状态:IMPLEMENTED / WAITING_ANDROID_VALIDATION
- 本轮针对首轮 Android 实机视觉问题修复;Android Gradle、APK、ADB、App/设备测试与 Jest 均未执行。
已完成
- REAL WEATHER basemap 改为 GSI 标准地图,并以
basemap=GSI failSoft=true记录独立底图配置;不引入 key、商业 SDK 或天气网络。 - REAL WEATHER 现在是 MAP 旁的一级菜单,MORE 不再重复。首次点击提交现有真实 T0–T3 Host dataset、fit bounds 并打开 tuning;再次点击只切换菜单。退出真实场景恢复进入前的 synthetic visual state。
- 真实场默认 P=2048、W=0.75、L=0.0040、O=0.75、T=0.55、F=0.88;HUD 和
PARTICLE TUNING使用同一状态。离散低频调参/RESET 不重载 Style、不重提 Field、不重置 Timeline 或 Runtime Window;只有 P 允许 State/draw resource recreate。 - Core 粒子数支持明确的 validation presets 256/512/1024/2048/4096/8192/16384(并保留既有高档位);State grid 改为
ceil(sqrt(count)),剩余 texels不绘制。lineWidth/streakLength 下限分别为 0.25/0.0005。
m/s 位移结论
此前 State shader 使用 position += velocity * frame * 0.00004:它没有 m/s、秒、地球尺度或纬度解释,真实数据虽能推进 A/B,但无法审计真实地理位移,粗宽 trail 也掩盖小位移。
现链路保持 canonical U=eastward、V=northward、单位 m/s:wall delta 限制为 1/240–0.05s,作为明确视觉仿真时钟乘 6000 simulation-seconds/real-second;shader 使用 dx=U*dt/40075016.6856 与 dy=-V*dt/(40075016.6856*cos(latitude)) 写入 Web Mercator world state。6000 是 rendering-only time dilation,用于在日本 validation zoom 下将真实 m/s 的亚像素 real-time displacement 显示成可观察流线;它不修改 payload、Adapter、Snapshot、validTime、MIX 或 Timeline playback。低频 ParticleMotion 仅报告 CPU field sample 与同公式估算 delta,无 GPU→CPU readback。
Pause 仍只冻结 forecast Timeline;Particle State update 保持 active,因此固定风场下粒子继续运动。
架构保护与未做项
未修改 STEP-054 WeatherV2 assets、ParticleFieldDescriptor/Snapshot/DataAdapter、Host Submission contract、Timeline/Playback、Runtime Field Window 或 WeatherColorLayer 数据链。继续保持 A/B→B/C→C/D、OLD_T1→NEW_T0 reuse、only NEW_T1 upload、MIX property-only、正常 boundary simulationRebuild=false/trailCleared=false;未在 Renderer 引入 provider/network/vendor 逻辑,未接 Weather Service、React Native 或 Jest。
Rotation/Viewport 只纳入本轮人工验收,未扩大实现范围。MIX 文本滞后及 WAITING/INVALID 状态视觉仍为 NON-BLOCKING observability。
Linux / 静态验证
node shaders/generate_shader_code.mjs:PASS。- OpenGL CMake 受影响 Core TU 精确编译:
render_particle_validation_layer.cpp、raster_particle_layer.cpp、render_weather_color_layer.cpp、raster_array_source.cpp:PASS。 test/style/style_layer.test.cpp以同一 OpenGL CMake 参数精确编译:PASS(含 2048 preset 与 visual bounds 更新)。mbgl-test-runner构建已启动以复用现有 target,但在进入无关 Core translation units 前按本任务定向边界停止;不作为通过声明。git diff --check:待文档完成后的最终检查。
Android 后续一次验收
按 人工验收指令 v2 在 Windows 11 只做一次构建/install。重点检查 GSI、默认细密且明显运动的粒子、HUD/tuning/RESET、Pause 下 simulation、ParticleMotion、T0→T3 两次 boundary、Pan/Zoom/Rotate/Rotation、Duplicate、Invalid 和 Renderer continuity。
Git 收尾
- 实施提交:
6c7886b0c372f9cb3c5b96c6fed385a676dd954a - 提交信息:
fix: tune real weather particle rendering - Push result:成功;
origin/particle/main从8a0873a5…前进到该实施提交。 - Remote branch:
origin/particle/main - Final implementation HEAD:
6c7886b0c372f9cb3c5b96c6fed385a676dd954a。本报告的 Git 元数据修订作为下一仅文档提交,不改变功能代码或本轮 Android 待验收状态。
无关未跟踪的历史 diff、任务书和日志保持未触碰、未 stage。