Files
planet/unreal/Content/Blueprints/BP_DataFlow_Spec.md
2026-03-05 11:46:58 +08:00

6.9 KiB

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

数据格式

输入数据结构

{
  "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 响应格式

{
  "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"
    }
  ]
}