# XCEngine 基于 DirectX 12 的渲染引擎项目,包含体积渲染器、基础渲染示例和 Unity 风格编辑器 UI。 ## 项目概述 XCEngine 是一个正在开发中的图形渲染引擎,使用 DirectX 12 作为底层渲染 API。项目采用模块化设计,包含多个独立演示项目(MVS - Multiple Version Samples)。 ## 技术栈 - **渲染 API**: DirectX 12 - **语言**: C++17 - **构建系统**: CMake - **UI 框架**: ImGui ## 项目结构 ``` XCEngine/ ├── MVS/ # 多个示例版本 │ ├── HelloEarth/ # 基础渲染示例 │ │ ├── main.cpp # 程序入口 │ │ ├── BattleFireDirect.cpp/h # DirectX 12 核心 │ │ ├── StaticMeshComponent.cpp/h # 静态网格组件 │ │ ├── Utils.cpp/h # 工具函数 │ │ ├── stbi/ # 图像加载库 │ │ └── Res/ # 资源文件 │ │ ├── Shader/ # HLSL 着色器 │ │ ├── Model/ # 模型文件 │ │ └── Image/ # 纹理图片 │ │ │ ├── VolumeRenderer/ # 体积渲染器 │ │ ├── main.cpp # 主程序入口 │ │ ├── BattleFireDirect.cpp/h # DirectX 12 核心渲染 │ │ ├── NanoVDBLoader.cpp/h # NanoVDB 体积数据加载 │ │ ├── StaticMeshComponent.cpp/h # 静态网格组件 │ │ ├── Utils.cpp/h # 工具函数 │ │ ├── stbi/ # 图像加载库 │ │ ├── CMakeLists.txt # CMake 构建配置 │ │ ├── Res/ # 资源文件 │ │ │ ├── Shader/ # HLSL 着色器 │ │ │ ├── Model/ # 模型文件 │ │ │ ├── Image/ # 纹理图片 │ │ │ └── NanoVDB/ # NanoVDB 体积数据 │ │ └── README.md # 详细文档 │ │ │ └── ui/ # Unity 风格编辑器 UI │ ├── src/ │ │ ├── main.cpp # 程序入口 │ │ ├── Application.cpp/h # 应用主类 │ │ ├── Theme.cpp/h # 主题系统 │ │ ├── Core/ # 核心类 │ │ ├── Managers/ # 管理系统 │ │ │ ├── LogSystem # 日志系统 │ │ │ ├── ProjectManager # 项目管理 │ │ │ └── SceneManager # 场景管理 │ │ └── panels/ # UI 面板 │ │ ├── HierarchyPanel # 层级面板 │ │ ├── InspectorPanel # 检查器面板 │ │ ├── SceneViewPanel # 场景视图 │ │ ├── GameViewPanel # 游戏视图 │ │ ├── ProjectPanel # 项目面板 │ │ ├── ConsolePanel # 控制台面板 │ │ └── MenuBar # 菜单栏 │ ├── bin/Release/ # 输出目录 │ └── CMakeLists.txt │ └── docs/ # 设计文档 ├── XCVolumeRenderer渲染引擎架构设计.md ├── XCGameEngine架构设计.md └── ... ``` ## 快速开始 ### 前置要求 - Windows 10/11 - Visual Studio 2019 或更高版本 - CMake 3.15+ ### 构建项目 每个子项目都可以独立构建,以 HelloEarth 为例: ```bash cd MVS/HelloEarth mkdir build && cd build cmake .. cmake --build . --config Release ``` ## 各模块说明 ### HelloEarth 基础的 DirectX 12 渲染示例,展示如何: - 初始化 DirectX 12 渲染环境 - 加载和渲染静态网格 - 使用几何着色器 - 纹理映射 - 常量缓冲区更新 ### VolumeRenderer 基于 NanoVDB 的体积渲染器,支持: - NanoVDB 格式体积数据加载 - 光线步进(Ray Marching)渲染 - HDDA 空间跳跃加速 - 体积阴影 - 多种渲染参数配置 ### ui Unity 风格的编辑器 UI,包含: - 层级面板(Hierarchy Panel) - 检查器面板(Inspector Panel) - 场景视图(Scene View) - 游戏视图(Game View) - 项目面板(Project Panel) - 控制台面板(Console Panel) - 日志系统 ## 文档 更多详细设计文档请参考 `docs/` 目录。 ## 许可证 MIT License