ToTacview 是基于 Cesium 三维地球引擎的仿真数据回放与数据分析系统,定位为"任务&战术级"数据分析工具。

一、数据来源
| 模式 | 来源 | 说明 |
|---|---|---|
| 回放模式 | AFSIM或其他仿真推演工具导出的 ACMI 文件 | 加载本地仿真记录,支持暂停/快进/倒退/跳转 |
| 实时遥测 | Warlock(AFSIM) 实时数据流 | 经桥接服务器接收实时遥测,被动跟随态势推演 |
| 人在回路 | 实时遥测 + 遥控 | 通过遥控数据链路对仿真实体进行键盘控制 |
二、核心功能模块
1. 数据解析与索引
- ACMI 2.2 协议行级解析(T 字段、对象属性、事件)
- 帧索引引擎:环形缓冲 + 帧间插值(位置 lerp / 姿态 slerp)
- 大文件分页索引:>20MB 自动走 Worker 后台索引 + IndexedDB 三级缓存
- 扩展属性解析:IAS/AOA/G/Throttle/雷达包线(RadarRange/Mode/Beamwidth)
2. 态势渲染
- 平台实体:GLB 3D 模型 + 标签 + 类型/阵营着色
- 尾迹线:时间窗口滑动,支持虚线脉冲流动
- 翼带:高效带状几何,自动缩放 + 消亡渐进淡出
- 交互线:锁定目标连线,多目标支持
- 雷达锥:包线可视化,数据驱动显隐(仅 Air 平台)
- 坐标轴:诊断用三轴指示器
- 特效系统:爆炸(3D 纹理 + 粒子碎片)、烟雾、火焰、淡出
3. 舱内视角 HUD
- 第一人称相机:跟随平台位置/姿态,HMD 3D 准直显示
- ISA 标准大气模型:CAS↔TAS 可压缩流互逆修正
- 三级数据优先级:L1 注入属性 → L2 帧间差分 → L3 ISA 推导
- HUD 元素:航向带、CAS/高度刻度尺、俯仰梯、横滚指示器、FPM 速度矢量、目标标记、告警指示器、油门柱
- 头部追踪:鼠标驱动视角偏转
4. 回放控制
- 播放引擎:rAF 主动推进,倍速 0.1×~16×
- 时间轴:uPlot Canvas 高性能绘制,事件标记 + 拖拽跳转
- 模式切换:回放 ↔ 实时遥测无缝切换
5. UI 面板体系
- 平台浏览器:阵营/存活筛选,事件驱动增量更新
- 平台详情:选中实体属性实时展示
- 事件日志:Hit/Fired/Miss/Destroyed 等事件链路
- 性能监控:FPS/帧时间/快照统计/模型池
- 全局设置:模型/标签/尾迹/翼带/交互线/雷达锥/特效参数实时生效
- 平台选项:6 组选项 × 四级作用域(全局/阵营/类型/单平台)
- 模型库:GLB 预览 + 校正矩阵 + 别名管理
- 地形面板:实体/线框/高程/等高线四种模式
6. 网络与桥接
- LiveTelemetrySource:WebSocket 接收桥接服务器转发的 ACMI 流
- 桥接服务器:Node.js 零依赖,TCP↔WebSocket 协议转换
- TypeModelMapper:ACMI Type → GLB 模型映射 + models.json 配置
7. 人在回路控制
- FlightController:通过桥接服务器转发杆量控制到 AFSIM
- 键盘映射:W/S 油门、↑↓ 俯仰、←→ 滚转、A/D 偏航、Space 加力
三、技术栈
- 渲染引擎:Cesium(三维地球 + Entity/Primitive)
- 构建工具:Vite(ESM 模块)
- 时间轴图表:uPlot(Canvas 2D)
- 桥接服务:Node.js 内置模块(零依赖)
- 持久化:localStorage(配置)+ IndexedDB(分页缓存)
- 目标规模:20000 平台,>20MB 文件分页索引
四、架构分层
数据接入层(ACMI 文件 / TCP 流)
↓ AcmiLineParser 统一解析
数据缓冲层(FrameIndex / PagedFrameIndex)
↓ 帧索引接口
播放控制层(PlaybackEngine / LiveEngine)
↓ onObjectAdded/Updated/Event
态势显示层(EntityRegistry → SceneObject → Cesium)
↓ PlatformEventBus 事件驱动
数据分析层(EventLog / Timeline / PerformanceMonitor / 面板体系等)
1469



被折叠的 条评论
为什么被折叠?



