一、项目简介
项目技术栈
CesiumNative + Dear ImGui + Vulkan 1.3 三维地理可视化系统
详细项目功能说明
1. 3DTiles渲染功能
- 实现完整的3DTiles格式解析与加载引擎
- 支持LOD(Level of Detail)分层细节渲染
- 可加载建筑模型、点云等3DTiles资产
- 示例:加载城市级建筑3DTiles数据,实现流畅的缩放浏览
2. WGS84椭球体渲染
- 精确呈现地球椭球体模型
- 支持WGS84坐标系的自动转换
- 实现经纬度网格和参考椭球面的渲染
- 示例:显示带有地形起伏的地球表面
3. TMS/WMS瓦片服务
- 完整支持TMS(瓦片地图服务)协议
- 兼容WMS(Web地图服务)标准
- 实现动态瓦片加载和缓存管理
- 示例:接入OpenStreetMap等在线地图服务
项目开发脚手架
1. CMake构建系统
- 采用模块化CMakeLists.txt配置
- 支持跨平台构建(Windows/Linux)
- 集成第三方库自动查找和链接
2. VSCode开发环境
- 配置完整的.vscode开发调试环境
- 包含tasks.json构建任务
- 配置launch.json调试参数
- 使用C++智能提示插件增强开发体验
3. 空间计算库
- 使用glm数学库处理3D变换
- 实现坐标转换和投影计算
- 包括矩阵运算、向量计算等基础功能
- 示例:使用glm进行模型矩阵变换和视角计算
Cesium-Vulkan
├─ .vscode/ # VS Code 工作区配置目录(如 tasks/launch/settings 等)
├─ assets/ # 资源目录
│ └─ skybox/ # 天空盒资源子目录
│ └─ test.jpg # 示例纹理/天空盒图片
├─ bin/
│ └─ Debug/ # Debug 构建输出目录
│ ├─ assets/ # 输出的资源目录(可能与根 assets 关联)
│ ├─ shaders/ # 输出的着色器目录(可能与根 shaders 关联)
│ ├─ CesiumVulkanDemo.exe # 可执行文件
│ ├─ CesiumVulkanDemo.pdb # 调试符号文件
│ └─ imgui.ini # Dear ImGui 配置文件(运行时生成/配置)
├─ build/ # CMake 构建中间产物目录( Ninja/Makefile 等)
├─ extern/ # 第三方依赖库目录(通过 git submodule 或手动放置)
│ ├─ cesium-native/ # Cesium Native 依赖
│ ├─ glad/ # Glad(OpenGL 函数加载器)
│ ├─ glfw/ # GLFW(窗口/上下文创建)
│ ├─ glm/ # GLM(数学库)
│ ├─ imgui/ # Dear ImGui(GUI 库)
│ ├─ KHR/ # Khronos 头文件(如 vulkan 相关)
│ └─ stb/ # stb 单文件库(图像加载等)
├─ include/ # 项目自定义头文件目录
│ ├─ renderer/ # 渲染模块头文件子目录(可按需扩展)
│ ├─ FileHelper.h # 文件辅助工具头文件
│ └─ HelloRect.h # 示例矩形渲染头文件
├─ scripts/ # 脚本目录(如构建/部署脚本,若有)
├─ shaders/ # 着色器源文件目录(GLSL/SPIR-V 等)
├─ src/ # 项目源代码目录
│ ├─ renderer/ # 渲染模块实现子目录(与 include/renderer 对应)
│ ├─ FileHelper.cpp # 文件辅助工具实现
│ ├─ HelloRect.cpp # 示例矩形渲染实现
│ └─ main.cpp # 程序入口
├─ .clang-format # clang-format 代码格式化配置
├─ .gitignore # Git 忽略规则
├─ .gitmodules # Git 子模块配置(关联 extern/ 里的依赖)
├─ CMakeLists.txt # CMake 构建脚本
├─ imgui.ini # Dear ImGui 配置模板(可能与 bin/Debug 里的运行时文件区分)
├─ LICEN