# 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: 红色
```

## 数据格式

### 输入数据结构

```json
{
  "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) | 脉冲白 |
