# Earth WebGL Instancing Satellites Plan > Source note: this plan absorbs useful ideas from a sisyphus-created draft formerly stored at `.sisyphus/plans/webgl-instancing-satellites.md`. ## Goal 把 Earth 卫星渲染从当前方案继续推进到更适合高数量卫星的 instancing 方向,目标是: - 支持更多卫星 - 降低渲染压力 - 仍然保留当前数据层和交互层 ## Why It Matters 当前卫星系统已经具备: - 数据加载 - 轨迹 - 选择/锁定 - 图例 - 相关区域联动 但当卫星数量持续增加时,渲染层会越来越接近瓶颈。 ## Recommended Direction 优先调研并原型验证: - `InstancedBufferGeometry + custom shader` 而不是一开始就推倒重写成 raw WebGL。 原因: - 仍能保留 Three.js 主架构 - 更容易渐进迁移 - 比继续堆普通点渲染更有上限 ## What Should Stay 尽量保留这些层: - 卫星数据获取 - 位置计算 - 锁定/悬停逻辑 - legend / info-card / 相关联动 主要替换的是: - 卫星点渲染实现 - 颜色/大小等实例属性更新方式 ## Phases ### Phase 1: Prototype - 用 instancing 做最小原型 - 先只渲染卫星点 - 不碰轨迹系统 ### Phase 2: Integrate - 接入当前 `satellites.js` 数据层 - 保留当前选择和高亮语义 ### Phase 3: Tune - 调整可视大小 - 调整选中高亮方式 - 评估是否需要分层 LOD ## Risks 1. 透明度排序更复杂 2. Shader 调试成本更高 3. 选中态和 hover 态不能简单复用旧材质逻辑 ## Acceptance 1. 在更高卫星数量下保持可接受帧率 2. 不破坏现有锁定/高亮语义 3. 图例、信息卡、相关卫星联动仍然成立