Files
planet/.sisyphus/plans/ue5_client.md
2026-03-05 11:46:58 +08:00

5.9 KiB

UE5 3D 大屏客户端开发计划

项目概述

基于智能星球计划架构,开发 UE5 3D 可视化大屏客户端,实现全球态势感知数据的沉浸式展示。

技术选型

组件 版本 用途
Unreal Engine 5.3+ 3D 渲染引擎
Cesium for Unreal 1.5+ 地理可视化
Niagara - 粒子系统
WebSocket API - 实时数据推送

项目结构

unreal/
├── Content/
│   ├── Levels/
│   │   ├── Main.umap          # 主场景
│   │   └── Components/        # 组件关卡
│   ├── Blueprints/
│   │   ├── BP_GlobeController     # 地球控制器
│   │   ├── BP_DataVisualizer      # 数据可视化基类
│   │   ├── BP_Supercomputer        # TOP500 超算标记
│   │   ├── BP_GPUCluster          # GPU 集群标记
│   │   ├── BP_IXPNode            # IXP 节点标记
│   │   ├── BP_SubmarineCable     # 海缆连接线
│   │   ├── BP_DataFlow           # 数据流向粒子
│   │   ├── BP_AlarmIndicator      # 告警指示器
│   │   └── BP_CameraController    # 相机控制器
│   ├── Materials/
│   │   ├── M_Globe            # 地球材质
│   │   ├── M_DataPoint        # 数据点材质
│   │   ├── M_Cable             # 海缆材质
│   │   └── M_DataFlow          # 数据流材质
│   ├── Widgets/
│   │   ├── W_MainHUD          # 主 HUD
│   │   ├── W_DataInfo         # 数据信息面板
│   │   └── W_AlarmPanel       # 告警面板
│   └── UI/
│       └── UMG/
├── Source/
│   ├── PlanetAPI/             # 后端 API 客户端
│   │   ├── PlanetAPIClient    # WebSocket 连接
│   │   ├── DataModels         # 数据模型
│   │   └── HttpClient         # HTTP 客户端
│   ├── CesiumIntegration/      # Cesium 集成
│   │   ├── GlobeManager       # 地球管理
│   │   └── GeoUtils           # 地理坐标工具
│   └── Visualization/          # 可视化组件
│       ├── PointRenderer       # 点渲染
│       ├── LineRenderer        # 线渲染
│       └── ParticleSystem      # 粒子系统
└── Planet.unproject

功能模块

1. 3D 地球渲染

CesiumIntegration 组件:

  • 集成 Cesium ion 地图服务
  • 支持多分辨率地球纹理
  • 地理坐标 转 UE 坐标转换
  • 光照和大气效果

2. 算力点可视化

数据点类型:

数据源 点类型 颜色 标识
TOP500 超算 红色 HPLinpack 性能
Epoch AI GPU集群 橙色 GPU数量
HuggingFace 模型部署 蓝色 模型大小

3. 海缆可视化

CableVisualization 组件:

  • 海缆路径渲染 (Spline Mesh)
  • 带宽/容量可视化 (颜色编码)
  • 实时流量状态

4. 数据流向粒子

DataFlowNiagara 系统:

  • 源 → 目的地的粒子流动
  • 带宽决定粒子密度/速度
  • 支持动画和颜色渐变

5. 告警系统

AlarmIndicators:

  • 异常数据红色高亮
  • 闪烁效果
  • 点击显示详情

6. WebSocket 实时更新

PlanetAPIClient:

  • 连接 ws://backend:8000/ws
  • 自动重连机制
  • 数据更新回调

7. 相机控制

CameraController:

  • 自动巡航模式
  • 聚焦特定区域
  • 平滑过渡动画

数据模型

// 地理位置
struct FGeographicPoint
{
    double Latitude;   // 纬度 (-90 to 90)
    double Longitude;  // 经度 (-180 to 180)
    double Altitude;  // 高度 (米)
};

// 算力点数据
struct FComputePointData
{
    FString Id;
    FString Name;
    FString Source;           // top500, epoch_ai
    FGeographicPoint Location;
    float Performance;        // PFLOPS
    int32 CoreCount;
    int32 GpuCount;
    FString Country;
};

API 对接

WebSocket 消息格式

{
  "type": "update",
  "data": {
    "source": "top500",
    "action": "add/update/remove",
    "payload": {
      "id": "top500_1",
      "name": "Frontier",
      "location": {
        "latitude": 33.7756,
        "longitude": -84.3962,
        "altitude": 0
      },
      "performance": 1682.65,
      "cores": 8730112
    }
  }
}

HTTP API 端点

端点 用途
GET /api/v1/collected?source=top500 获取 TOP500 数据
GET /api/v1/collected?source=telegeography_cables 获取海缆数据
WS /ws/updates 实时数据推送

开发阶段

Phase 1: 基础框架 (1-2 周)

  • 创建 UE5 项目
  • 安装 Cesium for Unreal 插件
  • 实现基础地球渲染
  • 创建 WebSocket 客户端框架

Phase 2: 数据点可视化 (2-3 周)

  • 实现 TOP500 超算标记
  • 实现 GPU 集群标记
  • 添加交互功能
  • 实现信息面板

Phase 3: 海缆可视化 (1-2 周)

  • 实现海缆路径渲染
  • 添加带宽可视化
  • 实现数据流向粒子

Phase 4: 实时更新 (1-2 周)

  • 完成 WebSocket 集成
  • 实现数据自动更新
  • 添加告警系统

Phase 5: UI 和优化 (1 周)

  • 添加 HUD 界面
  • 实现相机控制
  • 性能优化
  • 测试和修复

资源需求

必要资源

  1. Cesium ion 账户

  2. UE5 安装

    • 从 Epic Games Launcher 安装
    • 建议版本: 5.3 或 5.4

可选资源

  • 区域高程数据
  • 夜间灯光纹理

验收标准

基础功能

  • 地球正常渲染,无明显卡顿
  • TOP500 数据点正确显示位置
  • 超算信息面板可点击查看
  • WebSocket 连接正常

高级功能

  • 海缆路径可视化
  • 数据流向粒子效果
  • 告警指示
  • 自动巡航模式

性能要求

  • 60 FPS 稳定运行 (4K 分辨率)
  • 1000+ 数据点无明显性能下降
  • WebSocket 消息延迟 < 1 秒