本项目旨在开发一款跨平台(Windows/Linux)的开源 3D 遥测可视化软件,功能参考 Tacview,专注于对飞行器/潜航器等目标的轨迹和状态数据的实时/回放可视化。目标为科研人员和爱好者提供一个轻量级、高扩展性、可定制的分析工具。
本项目采用模块化设计,主要由以下子系统构成:
- 功能:解析并缓存遥测数据(如目标位置、速度、航向等)
- 数据格式:支持 CSV / JSON / 自定义格式(未来可考虑兼容 Tacview 的 ACMI)
- 管理所有目标实体(飞行器/潜艇)及其状态
- 实现状态随时间演化(时间轴推进)
- 使用 OpenGL 绘制 3D 模型、轨迹、地形等
- 包括视角控制(自由视角、锁定目标等)
- 使用 Qt5 进行主界面构建(菜单、信息面板、时间轴等)
- OpenGL 渲染区集成于 Qt 窗口中(使用 QOpenGLWidget)
- 使用 GLFW 处理窗口创建 & 输入捕捉
- 与 Qt 进行集成或分离处理,兼顾灵活性
| 组件 | 名称 | 说明 |
|---|---|---|
| C++ | Visual Studio 17 2022 | 高性能、跨平台 |
| 渲染 | OpenGL | 自定义图形渲染 |
| UI | Qt 5.15.10 | 稳定成熟,兼容性强 |
| 构建系统 | CMake | 跨平台构建 |
| 模型加载(预选) | Assimp | 加载 .obj/.fbx 等3D模型格式(可选) |
| 日志(暂定) | spdlog 或 QtLogging | 控制台与GUI日志输出 |
- [√] 初始化 CMake 脚本,支持 Windows/Linux 构建
- [√] 配置 Qt + OpenGL 混合开发环境
- [√] 创建最小示例(Qt 窗口中嵌入 OpenGL 渲染)
- [√] 设计并实现数据结构:目标状态、轨迹、时间轴等
- [√] 搭建主框架:主窗口 + 渲染视图
- 实现基础场景坐标系
- 加载并显示轨迹点线(折线)
- 显示目标模型(简化模型或立方体)
- 实现相机控制(旋转、缩放、跟随)
- 实现 CSV 轨迹数据读取(位置、航向、速度)
- 支持基本时间播放控制(播放、暂停、拖动)
- 时间轴控件(Qt滑动条)
- 信息面板:目标实时状态显示
- 目标选择与视角锁定功能
- 加载地形高度图或网格
- 加载多目标 & 多类型模型
- 支持热键或脚本操作
- 设计自定义数据格式(兼容或扩展 ACMI)
- Qt 5.15.10
- CMake >= 3.15
- C++17 编译器(MSVC, GCC, Clang 均可)
- GLFW
- OpenGL 驱动(系统原生)
run.bat 支持一个可选参数:
第一个参数:Qt 安装的 base 路径
示例:D:\Software\qt5.15.10-win64-debug-release-msvc2022-shared\msvc64
如果未传入参数,则会尝试从环境变量 QT_ROOT 中读取路径。
推荐用法:使用 Windows CMD 终端运行
请 使用 CMD 命令提示符(不是 PowerShell),否则 set 设置的环境变量在 run.bat 中将不可见。(适用于反复调试)
set QT_ROOT=D:\Software\qt5.15.10-win64-debug-release-msvc2022-shared\msvc64
.\run.bat