Skip to content

brucecui1998/Tacview-Like

Repository files navigation

TacView-Like 开源遥测可视化软件(暂名)

项目简介

本项目旨在开发一款跨平台(Windows/Linux)的开源 3D 遥测可视化软件,功能参考 Tacview,专注于对飞行器/潜航器等目标的轨迹和状态数据的实时/回放可视化。目标为科研人员和爱好者提供一个轻量级、高扩展性、可定制的分析工具。


软件架构设计

本项目采用模块化设计,主要由以下子系统构成:

1. 数据模块(Data Module)

  • 功能:解析并缓存遥测数据(如目标位置、速度、航向等)
  • 数据格式:支持 CSV / JSON / 自定义格式(未来可考虑兼容 Tacview 的 ACMI)

2. 场景管理模块(Scene Manager)

  • 管理所有目标实体(飞行器/潜艇)及其状态
  • 实现状态随时间演化(时间轴推进)

3. 渲染模块(Rendering Engine)

  • 使用 OpenGL 绘制 3D 模型、轨迹、地形等
  • 包括视角控制(自由视角、锁定目标等)

4. UI 控制模块(UI Layer)

  • 使用 Qt5 进行主界面构建(菜单、信息面板、时间轴等)
  • OpenGL 渲染区集成于 Qt 窗口中(使用 QOpenGLWidget)

5. 平台适配层(Platform Abstraction)

  • 使用 GLFW 处理窗口创建 & 输入捕捉
  • 与 Qt 进行集成或分离处理,兼顾灵活性

🛠 技术选型说明

组件 名称 说明
C++ Visual Studio 17 2022 高性能、跨平台
渲染 OpenGL 自定义图形渲染
UI Qt 5.15.10 稳定成熟,兼容性强
构建系统 CMake 跨平台构建
模型加载(预选) Assimp 加载 .obj/.fbx 等3D模型格式(可选)
日志(暂定) spdlog 或 QtLogging 控制台与GUI日志输出

📋 TODO List

📁 项目搭建

  • [√] 初始化 CMake 脚本,支持 Windows/Linux 构建
  • [√] 配置 Qt + OpenGL 混合开发环境
  • [√] 创建最小示例(Qt 窗口中嵌入 OpenGL 渲染)

🧱 基础架构

  • [√] 设计并实现数据结构:目标状态、轨迹、时间轴等
  • [√] 搭建主框架:主窗口 + 渲染视图

🖼 渲染系统

  • 实现基础场景坐标系
  • 加载并显示轨迹点线(折线)
  • 显示目标模型(简化模型或立方体)
  • 实现相机控制(旋转、缩放、跟随)

🧪 数据支持

  • 实现 CSV 轨迹数据读取(位置、航向、速度)
  • 支持基本时间播放控制(播放、暂停、拖动)

🖱 UI 功能

  • 时间轴控件(Qt滑动条)
  • 信息面板:目标实时状态显示
  • 目标选择与视角锁定功能

🧩 扩展目标(中后期)

  • 加载地形高度图或网格
  • 加载多目标 & 多类型模型
  • 支持热键或脚本操作
  • 设计自定义数据格式(兼容或扩展 ACMI)

📦 构建与运行

依赖项(需预先安装)

  • Qt 5.15.10
  • CMake >= 3.15
  • C++17 编译器(MSVC, GCC, Clang 均可)
  • GLFW
  • OpenGL 驱动(系统原生)

构建示例(Linux / Windows)

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

About

跨平台(Windows/Linux)的开源 3D 遥测可视化软件,功能参考 Tacview

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors