From 73bf01ebc03e3aad0e0dc4bede97e4e070ce8ec9 Mon Sep 17 00:00:00 2001 From: OpenAI Codex Date: Thu, 3 Sep 2026 20:51:54 +0800 Subject: [PATCH] docs: close STEP-046 Android particle visual validation --- ...oid_OpenGL正式粒子视觉与运行时渲染控制_v1.md | 27 ++++++++------- ...¼�粒子视觉与运行时渲染控制_Codex完成报告_v1.md | 33 ++++++++++++------- 粒子开发记录.md | 9 +++++ 3 files changed, 45 insertions(+), 24 deletions(-) diff --git a/docs/50_Step记录/STEP-046_Android_OpenGL正式粒子视觉与运行时渲染控制_v1.md b/docs/50_Step记录/STEP-046_Android_OpenGL正式粒子视觉与运行时渲染控制_v1.md index 4c6e22459..08f1c8e91 100644 --- a/docs/50_Step记录/STEP-046_Android_OpenGL正式粒子视觉与运行时渲染控制_v1.md +++ b/docs/50_Step记录/STEP-046_Android_OpenGL正式粒子视觉与运行时渲染控制_v1.md @@ -1,7 +1,7 @@ # STEP-046 Android OpenGL 正式粒子视觉与运行时渲染控制 日期:2026-09-03 -状态:IMPLEMENTED / WAITING FOR ANDROID VALIDATION +状态:CLOSED / PASS ## 目标 @@ -48,22 +48,25 @@ RasterArraySource T0/T1 - `clang-format` 与 `git diff --check`:PASS。 - 未运行 Android Gradle、ADB、真机或 Jest。 -## Android 单轮验收 +## Android 最终验收 -```bash -cd /mnt/sda1/MapLibreParticleLab/platform/android +实施提交:`e48fa087e01e9710c5d0c18ab062726226bbb6bd`(`feat: add particle visual runtime controls`)。用户已完成 Android OpenGL APK 编译、安装、实体机/虚拟机操作和完整 logcat 收集;本次收尾不重新运行 Android Gradle、ADB 或 Jest。 -./gradlew :MapLibreAndroidTestApp:assembleOpenglDebug \ - -Pandroid.injected.build.abi=x86_64 \ - --console=plain -``` +- T1 正式粒子方向视觉:PASS。UNIFORM EAST、UNIFORM NORTH、VORTEX 的 streak 正常显示,未见明显方向错误、黑屏或渲染异常。 +- T2 Runtime Visual Properties:PASS。VIS DEFAULT、SIZE、LENGTH、OPACITY、TRAIL、FADE、COLOR 都经正式 Runtime Property 路径生效;它们不是 Field reload 或 simulation rebuild。 +- T3 Speed Color / MIX:PASS。T0 EAST/T1 NORTH 的 MIX 0/50/100 与 speed color 正常;日志确认 MIX property-only,未重载 Field Window 或 reset simulation。 +- T4 Runtime Field Window:PASS。连续窗口推进、`OLD_T1 -> NEW_T0` reuse、新 T1 上传、Duplicate NOOP、fail-closed 都正常;推进未重载 Style、未无意义 reset simulation 或清 Trail。 +- T5 Camera / Projection:PASS。pan、zoom、bearing、DATELINE、WORLD WRAP 后正式粒子与地图组合正常。 +- T6 Lifecycle:PASS。DISABLE/ENABLE 与屏幕/生命周期恢复后无需额外按钮即可恢复显示。 +- T7 Mask:PASS。GLOBAL、OCEAN A、OCEAN B 均未发现 streak/speed color 绕过既有 mask 语义。 +- T8 Capacity Regression:PASS。256、1K、4K、16K、64K、256K、1M 全部实际运行;新的 streak + speed color 路径未发生 crash、黑屏、Renderer 中断、明显资源错误或结构性 full-particle-draw 失败。 -APK:`./MapLibreAndroidTestApp/build/intermediates/apk/opengl/debug/MapLibreAndroidTestApp-opengl-debug.apk` +256/1K 适合单 streak 的视觉正确性检查。当前 Validation viewport 下 4K 以上的粒子/Trail 已非常密集并接近铺满屏幕;这是 Validation 可读性现象,不是功能失败。64K、256K 和 1M 主要验证容量、稳定性与正式 full draw 路径,不要求肉眼分辨每一颗粒子。1M 继续只代表当前验证设备的已验证容量,不是理论最大值、产品默认值或所有 Android 设备保证。 -用户在同一 APK 中执行 T1--T8:EAST/NORTH/vortex geometry、MIX=0/50/100 连续性、VISUAL controls property-only、STATIC/Camera/Rotation、1M baseline,以及 Runtime advance/reuse/NOOP/fail-closed 回归。 +logcat 的 `TimeStats: RenderEngineTimes are already at its maximum size[64]` 属于 Android/RenderEngine/虚拟机环境的日志噪声。同期粒子 Renderer 持续 `State -> Trail -> Composite` 且 `hazard=SAFE`,未观察到关联 crash 或中断,不能判为 STEP-046 Renderer FAIL。 -当前 T1--T8 全部为 `PENDING USER ANDROID VALIDATION`;未将任何 Android 视觉、Camera、Mask、Lifecycle 或 capacity 结果写成 PASS。 +## 最终结论 -下一建议阶段:用户完成这一次综合 Android 验收并提供结构化日志;若全部通过,才可进入 40-06 时间序列 Playback/preload/cache 的规划。 +40-05 / STEP-046 已完成 Android 验收并正式 `CLOSED / PASS`。下一阶段如继续,可单独规划 40-06 时间序列 Playback/preload/cache;高密度 Validation 可读性可作为低优先级测试工具改进,不阻塞本阶段。 本阶段不包含 WeatherColorLayer、网络/GRIB/provider、React Native、Vulkan、iOS/Metal、生产 Land/Ocean mask、粒子箭头贴图或 APK packaging 技术债。 diff --git a/docs/报告/40-05_Android_OpenGL正式粒子视觉与运行时渲染控制_Codex完成报告_v1.md b/docs/报告/40-05_Android_OpenGL正式粒子视觉与运行时渲染控制_Codex完成报告_v1.md index 6445c91da..fc94a1ef2 100644 --- a/docs/报告/40-05_Android_OpenGL正式粒子视觉与运行时渲染控制_Codex完成报告_v1.md +++ b/docs/报告/40-05_Android_OpenGL正式粒子视觉与运行时渲染控制_Codex完成报告_v1.md @@ -1,11 +1,13 @@ # 40-05 Android OpenGL 正式粒子视觉与运行时渲染控制 — Codex 完成报告 日期:2026-09-03 -状态:IMPLEMENTED / WAITING FOR ANDROID VALIDATION +状态:CLOSED / PASS ## 结果 -40-05 / STEP-046 已完成代码、Android 验收入口与静态验证,尚未进行 Android 构建或实体机验收,因此不能标记 PASS。 +40-05 / STEP-046 已完成代码、Android 验收入口与用户手工 Android OpenGL 最终验证,正式关闭为 `CLOSED / PASS`。 + +实施提交:`e48fa087e01e9710c5d0c18ab062726226bbb6bd`(`feat: add particle visual runtime controls`)。Android APK 编译、copy、安装、实体机/虚拟机操作及完整 logcat 抓取均由用户完成;本次文档收尾未重新执行 Android Gradle、ADB 或 Jest。 ### A. 正式方向 geometry @@ -45,21 +47,28 @@ Android Test App 通过既有 `setStyleLayerFloatProperty()` boolean JNI bridge 未执行:Android Gradle、ADB、安装、真机、Jest。 -## 用户单次 Android 验收命令 +## Android 最终验收结果 -```bash -cd /mnt/sda1/MapLibreParticleLab/platform/android +- T1:PASS。UNIFORM EAST、UNIFORM NORTH、VORTEX 正式 streak 显示和方向均正常。 +- T2:PASS。VIS DEFAULT、SIZE ±、LENGTH ±、OPACITY ±、TRAIL ±、FADE ±、COLOR 均经正式 Runtime Property 生效;未描述或实现为 Field reload / simulation rebuild。 +- T3:PASS。T0 EAST/T1 NORTH、MIX 0/50/100 和 speed color 正常;MIX 保持 property-only,没有 Field Window reload 或 simulation reset。 +- T4:PASS。40-04 冻结的 Runtime Field Window 语义无回归:A/B→B/C→C/D、`OLD_T1 -> NEW_T0` reuse、仅上传新 T1、Duplicate NOOP、fail-closed、Style 不重载、simulation 不无意义 reset、Trail 不无意义清空均通过。 +- T5:PASS。pan、zoom、bearing/camera、DATELINE、WORLD WRAP 未见正式粒子与地图组合异常。 +- T6:PASS。DISABLE/ENABLE 和屏幕/生命周期恢复后粒子自动恢复,无需额外按钮。 +- T7:PASS。GLOBAL、OCEAN A、OCEAN B 保持既有 mask 语义。 +- T8:PASS。256、1K、4K、16K、64K、256K、1M 均实际运行;1M 在正式 streak + speed color 路径上无 crash、黑屏、Renderer 中断、明显资源错误或结构性 full-particle-draw 失败。 -./gradlew :MapLibreAndroidTestApp:assembleOpenglDebug \ - -Pandroid.injected.build.abi=x86_64 \ - --console=plain -``` +当前 viewport 中 4K 以上会因高密度 streak + Trail 而接近铺满画面。这是 Validation 可读性现象:256/1K 用于视觉检查,4K 以上主要用于容量和稳定性,不构成功能失败,也不需要为此改 Renderer 或重新编译 APK。1M 仍仅代表当前验证设备上已验证的容量,不是理论最大值、默认产品数量或全设备保证。 -APK 路径:`./MapLibreAndroidTestApp/build/intermediates/apk/opengl/debug/MapLibreAndroidTestApp-opengl-debug.apk` +logcat 中 `TimeStats: RenderEngineTimes are already at its maximum size[64]` 是 Android/RenderEngine/虚拟机侧噪声。用户同时观察到粒子 Renderer 连续执行 `State -> Trail -> Composite` 并保持 `hazard=SAFE`,未有对应 crash 或中断;该信息不构成 STEP-046 Renderer FAIL。 -用户随后在一轮安装中完成 T1--T8,重点检查 EAST/NORTH/vortex streak direction、MIX 连续性、visual property-only counters、STATIC/camera/rotation、1M 和 Runtime Field 回归。 +## Git 收尾 -T1--T8 目前均为 `PENDING USER ANDROID VALIDATION`,因此 Camera/Projection、Mask、Lifecycle/Rotation 和实际 1K/16K/64K/256K/1M streak capacity 只能标记为“验收入口已完成,尚未由 Android 实机验证”。 +本报告随文档收尾提交并推送到 `origin/particle/main`。用户既有未跟踪任务书和审查 diff 不纳入提交。 + +## 最终结论 + +未发现阻塞性问题。40-05 / STEP-046:`CLOSED / PASS`。 ## 范围外 diff --git a/粒子开发记录.md b/粒子开发记录.md index 359160beb..54f3e7ce5 100644 --- a/粒子开发记录.md +++ b/粒子开发记录.md @@ -315,3 +315,12 @@ - GPU fragment shader 使用最终插值 speed magnitude 的最小蓝→绿→橙 ramp;COLOR 控制可以回退固定蓝色。该粒子着色与未实现的 WeatherColorLayer 明确分离。 - Android Validation 页增加 VISUAL DEFAULT、SIZE、LENGTH、OPACITY、TRAIL、FADE、COLOR 集中入口、直接 VORTEX fixture 与 256K 容量档,并保存 Activity 状态;资源日志补充 `particleDrawCount=N`、`streakVertexCount=2N` 和低频 visual property snapshot。 - shader generator 二次幂等、Linux OpenGL Core/style test object 精确编译、format/diff 均通过;未运行 Android Gradle、ADB、真机或 Jest。当前状态只能是 `IMPLEMENTED / WAITING FOR ANDROID VALIDATION`;用户下一轮以一次 x86_64 APK 编译完成 T1--T8 综合验收后才可关闭。 + +## 2026-09-03 — 40-05 / STEP-046 Android OpenGL 正式粒子视觉与运行时渲染控制最终关闭 + +- 实施提交 `e48fa087e01e9710c5d0c18ab062726226bbb6bd` 已由用户完成 Android APK 编译、安装和最终手工验证;T1--T8 全部 PASS,40-05 / STEP-046 正式 `CLOSED / PASS`。 +- UNIFORM EAST、UNIFORM NORTH、VORTEX 的正式 GPU streak 正常显示;Runtime visual properties、speed color 与 MIX 0/50/100 均正常,MIX 保持 property-only。 +- 40-04 Runtime Field Window 连续推进、`OLD_T1 -> NEW_T0` reuse、Duplicate NOOP、fail-closed、无 Style reload / 无无意义 simulation reset / 无 Trail clear 均无回归。 +- pan、zoom、bearing、DATELINE、WORLD WRAP、DISABLE/ENABLE、屏幕/生命周期恢复、GLOBAL/OCEAN A/OCEAN B 均通过;Renderer 持续 `State -> Trail -> Composite` 且 `hazard=SAFE`。 +- 容量档 256、1K、4K、16K、64K、256K、1M 在新的 streak + speed color 路径均通过。4K 以上在小 Validation viewport 内趋于高密度铺满是可读性现象,不是功能失败;1M 仍只是当前验证设备上的已验证容量,不是全设备保证或产品默认值。 +- Android logcat 的 `TimeStats: RenderEngineTimes are already at its maximum size[64]` 是 RenderEngine/虚拟机环境噪声,未伴随粒子 Renderer crash 或中断,不判为本阶段失败。未进入 WeatherColorLayer、真实网络/GRIB、Vulkan、iOS/Metal 或生产 mask 等范围外工作。