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

7.6 KiB

BP_Supercomputer TOP500 超算蓝图详细规格

蓝图信息

属性
蓝图类型 Actor (BP_DataPoint 子类)
父类 BP_DataPoint
路径 Content/Blueprints/BP_Supercomputer.uasset

组件列表

BP_Supercomputer (继承自 BP_DataPoint)
├── [继承] SceneRoot
│   ├── [继承] StaticMesh (球体)
│   │   └── Material: M_Supercomputer (红色自发光)
│   ├── [继承] NiagaraComponent (光环粒子)
│   │   └── NS_Supercomputer_Glow (红色光环)
│   ├── [继承] WidgetComponent (标签)
│   │   └── User Widget: W_SupercomputerLabel
│   ├── [新增] RingMesh (圆环网格)
│   │   └── Material: M_Ring_Pulse (脉冲圆环)
│   └── [新增] PerformanceText3D (3D 性能文字)
│       └── Font: Default

变量列表 (新增)

变量名 类型 默认值 说明
Rmax Float 1682.65 Rmax 值 (TFLOPS)
Rpeak Float 2000.0 Rpeak 值 (TFLOPS)
CoreCount Integer 0 CPU 核心数
NodeCount Integer 0 节点数
Interconnect String "InfiniBand" 互联网络
OperatingSystem String "Linux" 操作系统
Vendor String "HPE" 厂商
Model String "Expresso" 型号

函数覆盖 (Override)

UpdateLabel (Override)

1. [父调用] BP_DataPoint.UpdateLabel()

2. [获取] W_SupercomputerLabel Widget
3. [设置] NameText = Name
4. [设置] CountryText = Country
5. [设置] PerformanceText = FormatPerformance(Rmax)
6. [设置] CoreText = FormatNumber(CoreCount)
7. [设置] VendorText = Vendor

UpdateMaterial (Override)

1. [获取] StaticMesh.Material
2. [设置] BaseColor = (1.0, 0.1, 0.1, 1)  红色
3. [设置] EmissiveStrength = 3.0 + (Rmax / 100)
4. [计算] PulseSpeed = 0.5 + (Rmax / 1000)
5. [设置] PulseSpeed_Material = PulseSpeed

UpdateSize (Override)

1. [计算] ScaleFactor = 0.5 + (Rmax / 500)
   ├─ < 100 TFLOPS: 0.5x
   ├─ 100-500 TFLOPS: 1.0x
   ├─ 500-1000 TFLOPS: 1.5x
   └─ > 1000 TFLOPS: 2.0x

2. [设置] StaticMesh.SetWorldScale3D(ScaleFactor)

材质规格

M_Supercomputer

参数 类型 默认值 说明
BaseColor Vector3 (1.0, 0.1, 0.1) 红色
EmissiveColor Vector3 (1.0, 0.0, 0.0) 自发光颜色
EmissiveStrength Float 5.0 自发光强度
PulseSpeed Float 1.0 脉冲速度
PulseIntensity Float 0.3 脉冲强度
FresnelPower Float 2.5 菲涅尔效果

M_Ring_Pulse

参数 类型 默认值 说明
RingColor Vector4 (1.0, 0.2, 0.2, 1.0) 圆环颜色
RingWidth Float 0.02 圆环宽度
PulseSpeed Float 1.0 脉冲速度
GlowIntensity Float 10.0 发光强度

粒子效果 (Niagara)

NS_Supercomputer_Glow

发射器设置:
├─ 发射器类型: 粒子系统
├─ 发射模式: 循环
├─ 发射速率: 20 粒子/秒
├─ 粒子寿命: 2.0 秒
└─ 粒子大小: 50 → 200 cm

颜色渐变:
├─ 0%: (1.0, 0.1, 0.1, 0.8)  红色
├─ 50%: (1.0, 0.1, 0.1, 0.4)
└─ 100%: (1.0, 0.1, 0.1, 0.0)

渲染:
├─ 材质: M_Particle_Glow_Additive
└─ 混合模式: Additive

UI 标签 (W_SupercomputerLabel)

组件结构

W_SupercomputerLabel
├── CanvasPanel
│   ├── Background (黑色半透明背景)
│   │   └── Size: 300x150
│   │   └── Opacity: 0.8
│   ├── NameText (名称)
│   │   └── Text: "Frontier"
│   │   └── Color: 白色
│   │   └── Font Size: 18
│   ├── CountryText (国家)
│   │   └── Text: "🇺🇸 United States"
│   │   └── Color: 浅灰色
│   │   └── Font Size: 14
│   ├── PerformancePanel (性能面板)
│   │   ├── RmaxLabel
│   │   │   └── Text: "Rmax"
│   │   │   └── Color: 浅灰色
│   │   ├── RmaxValue
│   │   │   └── Text: "1,682.65 TFLOPS"
│   │   │   └── Color: 亮红色
│   │   │   └── Font Size: 24
│   │   │   └── Font Weight: Bold
│   │   ├── RpeakLabel
│   │   │   └── Text: "Rpeak"
│   │   ├── RpeakValue
│   │   │   └── Text: "2,000.00 TFLOPS"
│   │   │   └── Color: 灰色
│   │   └── Font Size: 12
│   ├── SpecsPanel (规格面板)
│   │   ├── CoresText
│   │   │   └── Text: "8,730,112 Cores"
│   │   ├── NodesText
│   │   │   └── Text: "76,032 Nodes"
│   │   ├── InterconnectText
│   │   │   └── Text: "InfiniBand HDR"
│   │   └── VendorText
│   │       └── Text: "HPE"
│   └── LineSeparator (分隔线)
│       └── Color: 红色

数据格式

输入数据结构

{
  "id": "top500_1",
  "name": "Frontier",
  "source": "top500",
  "data_type": "supercomputer",
  "location": {
    "latitude": 33.7756,
    "longitude": -84.3962,
    "altitude": 0
  },
  "country": "US",
  "city": "Atlanta",
  "metadata": {
    "rmax": 1682.65,
    "rpeak": 2000.00,
    "cores": 8730112,
    "nodes": 76032,
    "interconnect": "InfiniBand HDR",
    "operating_system": "Linux",
    "vendor": "HPE",
    "model": "ExaScale"
  }
}

性能格式化函数

FormatPerformance (Float TFLOPS) → String

如果 TFLOPS >= 1000000:
    返回 = FString::Printf(TEXT("%.2f EFLOPS"), TFLOPS / 1000000)
否则如果 TFLOPS >= 1000:
    返回 = FString::Printf(TEXT("%.2f PFLOPS"), TFLOPS / 1000)
否则:
    返回 = FString::Printf(TEXT("%.2f TFLOPS"), TFLOPS)

FormatNumber (Integer) → String

如果 Number >= 1000000:
    返回 = FString::Printf(TEXT("%dM"), Number / 1000000)
否则如果 Number >= 1000:
    返回 = FString::Printf(TEXT("%dK"), Number / 1000)
否则:
    返回 = FString::Printf(TEXT("%d"), Number)

TOP500 前 10 名 (测试数据)

排名 名称 位置 Rmax (PFLOPS) 国家
1 Frontier 美国 1,682.65 🇺🇸
2 Aurora 美国 1,206.00 🇺🇸
3 Eagle 美国 561.00 🇺🇸
4 MareNostrum5 西班牙 175.00 🇪🇸
5 LUMI 芬兰 151.90 🇫🇮
6 Leonardo 意大利 148.70 🇮🇹
7 Summit 美国 148.60 🇺🇸
8 Sierra 美国 119.40 🇺🇸
9 Sunway TaihuLight 中国 93.01 🇨🇳
10 Tianhe-2A 中国 61.44 🇨🇳

交互效果

悬停效果 (OnHover)

1. [播放] Niagara Burst (红色粒子)
   └─ 粒子数量: 30
2. [播放] Sound "Hover_Enter"
3. [设置] RingMesh.Visible = true
4. [播放] Timeline "RingExpand"
   └─ 持续时间: 0.3秒
5. [设置] WidgetPanel.Opacity = 1.0

点击效果 (OnClick)

1. [播放] Sound "Select"
2. [播放] Timeline "Pulse"
   └─ 持续时间: 0.5秒
   └─ 缩放变化: 1.0x → 1.3x → 1.0x
3. [调用] FocusCamera()

聚焦相机 (FocusCamera)

1. [获取] Self.Location → PointLoc
2. [获取] BP_GlobeController.Camera
3. [计算] CameraOffset = (0, 0, 500000)
4. [调用] Camera.SetViewTargetWithBlend(PointLoc + CameraOffset)
5. [播放] Camera Shake "Focus"

颜色方案

性能级别 颜色 RGB 圆环颜色
> 1 EFLOPS 暗红色 (0.8, 0, 0) 脉冲红
500T - 1E 红色 (1.0, 0.1, 0.1) 脉冲橙
100T - 500T 橙色 (1.0, 0.4, 0.1) 脉冲黄
< 100T 黄色 (1.0, 0.7, 0.1) 脉冲白