# 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) | 脉冲白 |