2.1 KiB
STEP-055 Android 真实 WeatherV2 风场综合可视化 Codex 完成报告 v5
Starting HEAD / remote:067bfdc38baa32d6e474a502d67bc0910d18e247,origin/particle/main。
修改
zoom-aware 公式为 effectiveVisualSpeedScale = clamp(1200 * 2^(9 - zoom), 300, 153600)。最终 simulationDeltaSeconds = min(clamp(wallDeltaSeconds, 1/240, 0.050) * effectiveScale, 2400)。典型 60 FPS:z2 为 2400(由 cap 限制)、z5 为 320、z9 为 20 simulation seconds/frame。canonical m/s 和 Web Mercator displacement 公式未改。
State 生命周期重命名为 real-time 语义:base=12 real seconds,hash jitter 后 maxAge=9–15 seconds。State B 在正式路径累加 wallDeltaSeconds,而非 zoom-aware simulation delta;初始 hash stagger、普通 respawn age=0、无 GPU readback 均保持。
普通 pan/zoom/rotate/pitch 先触发一次 ParticleTrail: event=CAMERA_INVALIDATE,Trail accumulation 暂停但 texture 不销毁、State/Field/Timeline 不变;连续变化只更新时间戳。150ms 稳定后 CAMERA_STABLE_RESUME。实际 viewport size 变化才 VIEWPORT_RESIZE 并重分配 Trail texture。
修改文件:
src/mbgl/renderer/layers/render_particle_validation_layer.cppshaders/particle_gpu_validation.fragment.glslinclude/mbgl/shaders/gl/particle_gpu_validation.hpp(generator 输出)
未修改 State Float、Trail UByte、previous→current segment、canonical、Timeline、Runtime Window、WeatherColorLayer、REAL WEATHER UI、WeatherV2 assets 或 converter。
验证
- shader generator:PASS。
- Linux OpenGL 精确编译
render_particle_validation_layer.cpp:PASS。 - 既有非 Jest
style_layer.test.cpp精确编译:PASS。 git diff --check:PASS。- Android Gradle/APK/ADB/设备及 Jest:未执行。
功能提交:f926a3f00730bd298dcff964eb92da2ec7ef3bda(fix: stabilize particle visibility across zoom levels),已成功 push 至 origin/particle/main。本报告随后以独立文档提交记录,不改变功能实现。
最终状态:IMPLEMENTED / WAITING_ANDROID_VALIDATION。