first commit
This commit is contained in:
290
unreal/Content/Blueprints/BP_DataFlow_Spec.md
Normal file
290
unreal/Content/Blueprints/BP_DataFlow_Spec.md
Normal file
@@ -0,0 +1,290 @@
|
||||
# BP_DataFlow 数据流向蓝图详细规格
|
||||
|
||||
## 蓝图信息
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|-----|
|
||||
| 蓝图类型 | Actor |
|
||||
| 父类 | `Actor` |
|
||||
| 路径 | `Content/Blueprints/BP_DataFlow.uasset` |
|
||||
|
||||
## 组件列表
|
||||
|
||||
```
|
||||
BP_DataFlow
|
||||
├── SceneRoot (场景根)
|
||||
│ ├── SourceMarker (源点标记)
|
||||
│ │ └── StaticMesh: Sphere
|
||||
│ │ └── Material: M_DataFlow_Source
|
||||
│ ├── DestinationMarker (目标点标记)
|
||||
│ │ └── StaticMesh: Sphere
|
||||
│ │ └── Material: M_DataFlow_Destination
|
||||
│ ├── PathSpline (路径样条)
|
||||
│ │ └── SplineMeshComponent
|
||||
│ │ └── Material: M_DataFlow_Path
|
||||
│ └── FlowParticles (流向粒子)
|
||||
│ └── NiagaraComponent
|
||||
│ └── NS_DataFlow_Directional
|
||||
```
|
||||
|
||||
## 变量列表
|
||||
|
||||
| 变量名 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|--------|------|
|
||||
| `FlowId` | String | `""` | 流向唯一标识 |
|
||||
| `SourceLocation` | GeographicPoint | - | 源位置 |
|
||||
| `DestinationLocation` | GeographicPoint | - | 目标位置 |
|
||||
| `DataRate` | Float | `1000.0` | 数据速率 (Gbps) |
|
||||
| `DataType` | EDataFlowType | `Internet` | 数据类型 |
|
||||
| `IsActive` | Boolean | `true` | 是否激活 |
|
||||
| `FlowColor` | LinearColor | (0.2, 0.6, 1.0, 1) | 流向颜色 |
|
||||
| `Duration` | Float | `3.0` | 粒子生命周期(秒) |
|
||||
|
||||
## 枚举定义
|
||||
|
||||
### EDataFlowType
|
||||
|
||||
| 枚举值 | 说明 | 颜色 |
|
||||
|--------|------|------|
|
||||
| `Internet` | 互联网流量 | 蓝色 |
|
||||
| `Backbone` | 骨干网 | 青色 |
|
||||
| `Cloud` | 云服务 | 紫色 |
|
||||
| `AI_Training` | AI 训练数据 | 橙色 |
|
||||
| `CDN` | CDN 分发 | 绿色 |
|
||||
|
||||
## 材质规格
|
||||
|
||||
### M_DataFlow_Source (源点)
|
||||
|
||||
| 参数 | 类型 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| `BaseColor` | Vector3 | (0.2, 0.6, 1.0) | 蓝色 |
|
||||
| `EmissiveStrength` | Float | `10.0` | 自发光强度 |
|
||||
| `PulseSpeed` | Float | `2.0` | 脉冲速度 |
|
||||
| `Radius` | Float | `10000.0` | 脉冲半径 |
|
||||
|
||||
### M_DataFlow_Destination (目标点)
|
||||
|
||||
```
|
||||
与 M_DataFlow_Source 相同,但:
|
||||
├─ BaseColor: 稍暗
|
||||
└─ PulseSpeed: 稍慢
|
||||
```
|
||||
|
||||
### M_DataFlow_Path (路径线)
|
||||
|
||||
| 参数 | 类型 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| `LineColor` | Vector4 | (0.2, 0.6, 1.0, 0.5) | 半透明蓝 |
|
||||
| `LineWidth` | Float | `100.0` | 线宽度 |
|
||||
| `FlowSpeed` | Float | `1.0` | 流动速度 |
|
||||
| `FlowIntensity` | Float | `0.8` | 流动强度 |
|
||||
|
||||
## 粒子系统 (NS_DataFlow_Directional)
|
||||
|
||||
### Niagara 参数
|
||||
|
||||
| 参数 | 类型 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| `User.Color` | LinearColor | (0.2, 0.6, 1.0, 1.0) | 粒子颜色 |
|
||||
| `User.Speed` | Float | `100.0` | 粒子速度 |
|
||||
| `User.Lifetime` | Float | `3.0` | 粒子寿命 |
|
||||
| `User.Size` | Float | `50.0` | 粒子大小 |
|
||||
| `User.Density` | Float | `1.0` | 粒子密度 |
|
||||
|
||||
### 粒子行为
|
||||
|
||||
```
|
||||
1. 发射器类型: 沿样条路径
|
||||
2. 发射速率: DataRate / 100 (归一化)
|
||||
3. 粒子寿命: Duration
|
||||
4. 粒子速度: 路径长度 / Duration
|
||||
5. 颜色渐变:
|
||||
├─ 起点: 高亮度
|
||||
├─ 中点: 正常亮度
|
||||
└─ 终点: 渐隐
|
||||
```
|
||||
|
||||
## 函数
|
||||
|
||||
### Initialize (Struct FlowData)
|
||||
|
||||
```
|
||||
1. [解析] FlowData
|
||||
2. [设置] FlowId = FlowData["id"]
|
||||
3. [设置] SourceLocation = FlowData["source"]
|
||||
4. [设置] DestinationLocation = FlowData["destination"]
|
||||
5. [设置] DataRate = FlowData["data_rate"]
|
||||
6. [设置] DataType = FlowData["data_type"]
|
||||
7. [计算] PathPoints
|
||||
8. [调用] BuildPath()
|
||||
9. [调用] UpdateParticles()
|
||||
10. [调用] SetFlowColorByType()
|
||||
```
|
||||
|
||||
### BuildPath
|
||||
|
||||
```
|
||||
1. [计算] SourceUE = GeoUtils.LatLonToUE(SourceLocation)
|
||||
2. [计算] DestUE = GeoUtils.LatLonToUE(DestinationLocation)
|
||||
3. [设置] SourceMarker.SetRelativeLocation(SourceUE)
|
||||
4. [设置] DestinationMarker.SetRelativeLocation(DestUE)
|
||||
5. [计算] MidPoints (插值路径)
|
||||
6. [构建] SplineComponent from Source to Destination
|
||||
7. [设置] SplineMeshComponent.Start/End
|
||||
```
|
||||
|
||||
### UpdateParticles
|
||||
|
||||
```
|
||||
1. [计算] ParticleSpeed = PathLength / Duration
|
||||
2. [获取] NiagaraComponent
|
||||
3. [设置] User.Speed = ParticleSpeed
|
||||
4. [计算] EmissionRate = DataRate / 10
|
||||
5. [设置] User.EmissionRate = EmissionRate
|
||||
6. [调用] NiagaraComponent.Activate()
|
||||
```
|
||||
|
||||
### SetFlowColorByType
|
||||
|
||||
```
|
||||
1. [分支] DataType
|
||||
├─ "internet": [设置] FlowColor = (0.2, 0.6, 1.0, 1) 蓝色
|
||||
├─ "backbone": [设置] FlowColor = (0.0, 1.0, 1.0, 1) 青色
|
||||
├─ "cloud": [设置] FlowColor = (0.6, 0.2, 1.0, 1) 紫色
|
||||
├─ "ai_training": [设置] FlowColor = (1.0, 0.5, 0.0, 1) 橙色
|
||||
├─ "cdn": [设置] FlowColor = (0.2, 1.0, 0.4, 1) 绿色
|
||||
└─ [默认]: [设置] FlowColor = (0.5, 0.5, 0.5, 1) 灰色
|
||||
|
||||
2. [设置] Material.LineColor = FlowColor
|
||||
3. [设置] NiagaraComponent.User.Color = FlowColor
|
||||
```
|
||||
|
||||
## 数据格式
|
||||
|
||||
### 输入数据结构
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "flow_1",
|
||||
"source": {
|
||||
"latitude": 37.7749,
|
||||
"longitude": -122.4194,
|
||||
"name": "San Francisco"
|
||||
},
|
||||
"destination": {
|
||||
"latitude": 1.3521,
|
||||
"longitude": 103.8198,
|
||||
"name": "Singapore"
|
||||
},
|
||||
"data_rate": 5000.0,
|
||||
"data_type": "internet",
|
||||
"status": "active"
|
||||
}
|
||||
```
|
||||
|
||||
## 视觉效果规格
|
||||
|
||||
### 粒子外观
|
||||
|
||||
| 数据类型 | 粒子形状 | 颜色 | 尾迹 |
|
||||
|----------|----------|------|------|
|
||||
| Internet | 圆形光点 | 蓝色 | 短 |
|
||||
| Backbone | 方形光块 | 青色 | 中 |
|
||||
| Cloud | 菱形 | 紫色 | 长 |
|
||||
| AI_Training | 三角形 | 橙色 | 短 |
|
||||
| CDN | 六边形 | 绿色 | 无 |
|
||||
|
||||
### 带宽可视化
|
||||
|
||||
| 带宽范围 | 粒子密度 | 粒子大小 | 速度 |
|
||||
|----------|----------|----------|------|
|
||||
| > 10 Tbps | 高 | 大 | 快 |
|
||||
| 1-10 Tbps | 中 | 中 | 中 |
|
||||
| < 1 Tbps | 低 | 小 | 慢 |
|
||||
|
||||
## 交互效果
|
||||
|
||||
### 悬停效果
|
||||
|
||||
```
|
||||
1. [高亮] 路径线
|
||||
└─ LineWidth: 200 → 300
|
||||
2. [显示] Tooltip
|
||||
└─ 显示: 源、目标、数据速率、类型
|
||||
3. [暂停] 粒子 (可选)
|
||||
```
|
||||
|
||||
### 点击效果
|
||||
|
||||
```
|
||||
1. [聚焦] 相机到流向中心
|
||||
2. [显示] 详细信息面板
|
||||
3. [播放] Sound Effect
|
||||
```
|
||||
|
||||
## 性能优化
|
||||
|
||||
### 视距设置
|
||||
|
||||
```
|
||||
├─ 显示距离: 50000 km
|
||||
├─ 粒子剔除距离: 20000 km
|
||||
└─ 简化粒子距离: 10000 km
|
||||
```
|
||||
|
||||
### 批处理
|
||||
|
||||
```
|
||||
├─ 多个相近流向合并显示
|
||||
├─ 远距离流向使用简化的粒子
|
||||
└─ 禁用低优先级流向的粒子
|
||||
```
|
||||
|
||||
## 使用场景
|
||||
|
||||
### 场景 1: 全球互联网流量
|
||||
|
||||
```
|
||||
DataType: Internet
|
||||
├─ Source: 主要互联网交换中心
|
||||
├─ Destination: 其他地区
|
||||
└─ Visual: 蓝色粒子流
|
||||
```
|
||||
|
||||
### 场景 2: AI 训练数据传输
|
||||
|
||||
```
|
||||
DataType: AI_Training
|
||||
├─ Source: GPU 集群
|
||||
├─ Destination: 数据中心
|
||||
└─ Visual: 橙色高速粒子
|
||||
```
|
||||
|
||||
### 场景 3: CDN 内容分发
|
||||
|
||||
```
|
||||
DataType: CDN
|
||||
├─ Source: 源站
|
||||
├─ Destination: 边缘节点
|
||||
└─ Visual: 绿色扩散粒子
|
||||
```
|
||||
|
||||
## 后端数据映射
|
||||
|
||||
### API 响应格式
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "data_flow",
|
||||
"data": [
|
||||
{
|
||||
"id": "flow_1",
|
||||
"source": {"latitude": 37.77, "longitude": -122.41},
|
||||
"destination": {"latitude": 1.35, "longitude": 103.81},
|
||||
"data_rate": 5000.0,
|
||||
"data_type": "internet"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user