Files
MapLibreParticleLab/docs/00_项目总则/粒子系统项目规则与设计决策_v1.md
OpenAI Codex 127de22714
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: freeze particle project governance v1
2026-08-29 11:13:49 +08:00

3.5 KiB
Raw Blame History

粒子系统项目规则与设计决策 v1

DEC-001 Linux 与 Win11 职责分离

Linux 是 MapLibre Native / Particle Renderer 的主要开发和构建环境,正式源码 /mnt/sda1/MapLibreParticleLab。Linux 负责 Native、Particle、Test App、Fixture、AAR/APK、OpenGL/Vulkan、Native 调试、性能与 Git。Win11 负责 NavSea、NavSea Android 编译、Android 模拟器、Particle Test APK 运行和产品 Gate。

DEC-002 独立 Particle Test App

必须建立长期维护的独立测试 App。它不是 Demo,而是粒子 Renderer 的开发、调试、回归和性能平台。日常粒子开发不直接使用 NavSea。Android 第一阶段优先原生 Test App。

DEC-003 NavSea 只用于关键产品 Gate

NavSea 是最终产品,不作为日常粒子调试宿主。只在自编译等价验证、关键 Particle Gate、真实 Layer Stack、Weather/Mask、产品级回归和最终集成时使用。

DEC-004 OpenGL 为 Android 主开发 Backend

初期主开发 OpenGL;架构必须服从 MapLibre gfx 抽象,不能锁死 OpenGL。

DEC-005 Vulkan / Metal 不是后补重写

Particle State、Velocity、Tile、生命周期、Style/RenderLayer、Coverage、Color Ramp、Mask 尽量共享;后端差异主要放在 Shader、Texture、RenderTarget、RenderPass、gfx backend。iOS/Metal 以后单独设计测试流程。

DEC-006 WeatherColorLayer 与 RasterParticleLayer 分离

定量天气色场和粒子流动分为 WeatherColorLayer 与 RasterParticleLayer。

DEC-007 天气色场不靠低透明度看底图

天气定量颜色保持准确;岸线、等深线、航标、航道、文字和导航对象绘制在天气层上方。

DEC-008 Coverage

Wind=GLOBAL;Wave/Tide/Current/Sea Temperature 等=OCEAN_ONLY。

DEC-009 统一 Land/Ocean Mask

所有 OCEAN_ONLY 字段共用统一 Mask;海岸线语义尽量与 NavSea/MapLibre 海图一致,不依赖天气模型 nodata。

DEC-010 正式目标是 GPU Particle Engine

核心至少包括 Velocity Texture、Particle State Texture A/B、Ping-Pong、Update Pass、Draw Pass、Trail Render Target、Color Ramp。CPU 每粒子循环不能作为正式主实现。

DEC-011 Camera 正确后再冻结 Particle State Model

先验证 Pan/Zoom/Rotate/Pitch/Resize/Camera Animation,再冻结状态格式。

DEC-012 Fixture 优先

至少:uniform-east/north/west/south、vortex-clockwise/counterclockwise、shear、divergence、convergence、coastal-mask。真实天气服务器不是早期 Renderer 调试前置条件。

DEC-013 thin-hook 原则

目标约 95% 粒子代码放新增文件/独立模块;MapLibre 官方现有文件只做必要 Layer/Source/RenderLayer/Shader/Build/Backend 薄接入,降低 upstream merge 冲突。

DEC-014 普通 Step 禁止修改项目总则

需要改变长期规则时,只在执行报告提出建议。

DEC-015 GPT“粒子系统”项目是设计背景来源

GPT 写设计和指令书时要参考该项目既有讨论;正式权威规则以 Git 仓库本目录为准。

DEC-016 大阶段目录按目的建立

使用两位数字前缀;进入新阶段前 GPT 先告知用户目录目的和预计 Step 范围。

DEC-017 Step 指令书与执行报告同目录

step-xxxx-目的内容.md 与 step-xxxx-目的内容-执行报告.md 放同一大阶段目的目录。

DEC-018 报告由指令书预先定义

指令书必须事先写清报告完整路径、文件名、章节、Git 信息、构建信息、APK/AAR、大小、SHA256、PASS/PARTIAL/BLOCKED/FAIL。不得执行完后临时追加未定义报告。