fix: initialize particle respawn bounds in weather layer
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-05 13:43:00 +08:00
parent 4645280fc5
commit f0658e0a22
3 changed files with 25 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
# STEP-055 Android 真实 WeatherV2 风场综合可视化 v8
状态:**IMPLEMENTED / WAITING_ANDROID_VALIDATION**
Starting HEAD:`4645280fc59ac8e356f4339bb7fad5d73b4a413a`
## v9 Android C++ 编译遗漏修复
v9 为 `ParticleGpuValidationUBO` 新增 `respawnBounds` 后,`render_weather_color_layer.cpp` 的 designated initializer 未同步,Android OpenGL 编译在 `-Wmissing-designated-field-initializers -Werror` 下失败。
WeatherColorLayer 不参与 particle viewport respawn,因此其 initializer 已按字段声明顺序补齐:`fieldBounds`、`respawnBounds`、`fieldScale`、`matrix`。`respawnBounds` 取与 `fieldBounds` 相同的中性 Field 范围;色场采样、颜色计算与 opacity 语义未变。
搜索确认当前 C++ 中仅有两个 `ParticleGpuValidationUBO` initializer:
- `render_particle_validation_layer.cpp`:已有 v9 respawn bounds;
- `render_weather_color_layer.cpp`:本次补齐。
shader generator、Linux OpenGL 两个 renderer translation unit 精确编译、既有非 Jest `style_layer.test.cpp` 精确编译和 `git diff --check` 通过。未执行 Android Gradle/APK/ADB/设备或 Jest。
viewport-aware respawn、zoom-aware speed、wall-time lifecycle、Trail camera debounce、canonical U/V、Timeline/Runtime Window、particleCount 与 WeatherColorLayer 实际颜色场行为均未修改。

View File

@@ -83,6 +83,7 @@ public:
const shaders::ParticleGpuValidationUBO ubo = {
.pass = {5.0f, 0.0f, 0.0f, 0.0f}, .marker = {mix, 0.0f, 0.0f, 0.0f}, .mask = {0, 0, 0, 0},
.visual = {opacity, 0, 0, 0}, .fieldBounds = bounds(resources->t0),
.respawnBounds = bounds(resources->t0),
.fieldScale = {resources->scale0, resources->scale1, 0, 0},
.matrix = util::cast<float>(parameters.matrixForTile({wrap, {0, 0, 0}})),
};

View File

@@ -439,3 +439,7 @@ Particle visual clock 改为基于 zoom 的有界 scale 与 2400s/frame clamp;
## STEP-055 Zoom 下 Viewport 粒子密度调整
configured particleCount 保持不变;稳定相机后,State respawn 域改为“viewport 四角 Mercator AABB + 15% margin”与 canonical Field bounds 的交集。camera moving 期间继续从 full Field respawn,稳定至少 150ms 后才让 viewport 外 slot 回收进入该域;无效/空/过小交集安全回退 full Field。新增独立 respawnBounds UBO,不改变 Field sampling 边界、Timeline、Runtime、WeatherColorLayer 或 canonical U/V,仍待 Android 验收。
## STEP-055 v9 Android C++ 编译遗漏修复
WeatherColorLayer 的 `ParticleGpuValidationUBO` designated initializer 补齐 `respawnBounds`,并使用与 `fieldBounds` 相同的中性范围;仅修复 Android `-Wmissing-designated-field-initializers` 编译失败。已搜索确认两个 C++ initializer 均完整,未改粒子 respawn、色场行为或冻结数据/时间线边界,仍待 Android 验收。