Files
planet/docs/ue5_led_context.md

145 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目背景UE5 + 3D LED 大屏展示系统
> 供其他 AI 快速了解项目背景和当前状态。
> 最后更新2026-04-14
---
## 一、项目定位
这不是一个普通的桌面地球应用,而是一套**领导演示用的 3D 沉浸式展示系统**。
核心逻辑:
- 态势感知数据(超算、海缆、卫星)是内容
- 3D LED 大屏 + 实时渲染 + 动捕交互是"醋"——没有它,内容再好也只是普通屏幕
- 主要受众:领导/决策层,注重视觉冲击力
---
## 二、硬件配置
| 硬件 | 规格 | 说明 |
|------|------|------|
| 3D LED 大屏 | 5.12m × 2.88mP1.538mm,被动偏振式 | 观众戴无源 3D 眼镜≤18g60Hz 即可出稳定 3D |
| 渲染工作站 | 双路国产 X86 CPU + RTX 5090 32GB | 驱动 UE5 实时渲染 |
| 视频处理器 | 随屏配套(品牌待确认) | 接收 GPU 信号,驱动 LED 墙 |
| 动捕摄像头 | RGB 摄像头 ×24K直连电脑 | 无穿戴姿态识别 |
| 音响 | 解码功放 + 吸顶喇叭 ×5 + 低音炮 | 配套 |
---
## 三、软件架构
```
摄像头×2直连
↓ 动捕插件(供应商提供 UE5 插件)
UE5 主程序(我们开发)
├── Cesium 地球(实时渲染)
├── 超算数据点(可交互)
├── 其他可交互物件
└── 立体渲染输出
↓ 视频信号(格式待确认)
视频处理器(随屏配套)
↓ LED 驱动信号(行偏振)
5m 被动偏振 3D LED 大屏
```
---
## 四、分工
| 部分 | 谁做 | 状态 |
|------|------|------|
| LED 屏体 + 视频处理器 | 屏幕供应商 | 采购中 |
| 动捕插件UE5 插件形式) | 动捕供应商 | 待交付 |
| UE5 基础工程(关卡+角色+动捕绑定) | 动捕供应商 | 待交付 |
| 地球场景 + 数据可视化 + 交互逻辑 | 我们(本项目) | 开发中 |
| 后端数据接口 | 我们(本项目) | 已完成 |
| 其他 9 个定制 3D 资产和动画 | 3D 内容供应商 | 采购中 |
---
## 五、动捕交互方式
**交付形式(已确认)**
- 供应商给我们**完整 UE5 工程**,包含:
- 视频动捕插件
- 已配好绑定和重定向的 3D 角色
- 3D 模型和动画资产
- 接两台摄像头即可直接运行
- **我们的任务**:把他们工程的内容(插件 + 角色 + 资产)**迁移进我们的 `ue_client/` 工程**,然后把角色动作映射到地球操作
**待确认**:角色动作的触发点是什么形式?
- 蓝图 Custom Event`OnGestureRotate`
- AnimNotify
- 需要我们自己判断骨骼姿态?
**交互目标(一期)**
1. 手势旋转地球
2. 手势缩放地球
3. 手势指向/确认 → 选中数据点,弹出信息卡
4. 鼠标作为备用输入(始终可用)
---
## 六、立体渲染
**待确认**
1. 供应商基础工程里是否已配好立体渲染输出?
2. 如果没有视频处理器接受什么格式Side-by-Side / Top-Bottom / 其他)
3. 给供应商的文件形式UE5 工程 / .exe / 视频文件 / 直连实时输出?
**已准备**`StereoRenderingManager.h/.cpp` 支持运行时切换 SbS/TbB格式确认后直接启用。
---
## 七、已完成的代码
### 后端 (`backend/app/api/v1/ue_data.py`)
- `GET /api/v1/ue/status` — 健康检查
- `GET /api/v1/ue/compute-points` — TOP500 超算(平铺 JSON
- `GET /api/v1/ue/landing-points` — 海缆登陆点
- `GET /api/v1/ue/cables` — 海缆路由几何
- `GET /api/v1/ue/satellites` — 卫星 TLE 数据
### UE5 C++ (`ue_client/Source/PlanetClient/`)
| 文件 | 功能 |
|------|------|
| `PlanetDataTypes.h` | FComputePoint 等数据结构 |
| `PlanetDataManager` | HTTP 拉取 + mock 数据 + 生成 Actor |
| `ComputePointActor` | 超算点 Actor三态材质正常/悬停/选中)|
| `InteractiveObjectBase` | 所有可交互物件的基类 |
| `GlobeInteractionComponent` | 拖拽旋转地球(改 Cesium 经纬度原点)+ 缩放,带惯性 |
| `StereoRenderingManager` | 立体渲染开关SbS/TbBIPD 可调 |
| `MotionCaptureInterface.h` | 动捕接口抽象(待用插件 API 替换实现)|
| `PlanetPlayerController` | 统一处理鼠标 + 动捕输入 |
| `PlanetGameMode` | 场景入口 |
### 文档
- `docs/ue_client_setup_guide.md` — 编辑器操作 step-by-step 指南
- `docs/ue_todo.md` — 待供应商回复的 TODO
- `docs/ue5_mvp_fused_plan.md` — 完整实施方案v3.0
---
## 八、交付时间线
| 时间 | 内容 | 状态 |
|------|------|------|
| 本周末前 | 动捕供应商:含动捕插件 + 3D 角色(绑定/重定向已配好)的基础 UE5 工程 | 等待中 |
| 之后尽快 | 动捕供应商:动画资产(复制进 Content/ 即可直接调用) | 等待中 |
| TBD | LED 屏供应商:视频处理器接受的 3D 信号格式(或直接技术支持对接) | 等待中 |
**拿到基础工程后可立即做**:迁移插件和角色,接摄像头做动捕调试,然后对接动作→地球操作映射。
**双目 3D 显示**:供应商可提供技术支持,等视频处理器到位后直接对接。
---
## 九、当前阻塞项
1. **动捕基础工程**(本周末前到)→ 迁移内容,确认动作触发方式,完成交互对接
2. **动画资产**(尽快)→ 复制入 Content/,在场景中引用
3. **3D 显示格式**(有供应商技术支持)→ 配置 `StereoRenderingManager`