refactor: 重构项目结构为 MVS 多示例版本,添加 README 文档

This commit is contained in:
2026-03-13 15:07:03 +08:00
parent faf99dfc68
commit 5efa171050
76 changed files with 23925 additions and 53 deletions

149
README.md
View File

@@ -1,37 +1,77 @@
# XCVolumeRenderer
# XCEngine
基于 DirectX 12 的体积渲染器,使用 NanoVDB 格式实现云、烟雾等体积数据的实时渲染
基于 DirectX 12 的渲染引擎项目,包含体积渲染器、基础渲染示例和 Unity 风格编辑器 UI
## 项目概述
XCEngine 是一个正在开发中的图形渲染引擎,使用 DirectX 12 作为底层渲染 API。项目采用模块化设计包含多个独立演示项目MVS - Multiple Version Samples
## 技术栈
- **渲染API**: DirectX 12
- **渲染 API**: DirectX 12
- **语言**: C++17
- **构建系统**: CMake
- **依赖库**: DirectX 12 SDK, stb_image, NanoVDB
- **UI 框架**: ImGui
## 项目结构
```
XCVolumeRenderer/
├── main.cpp # 主程序入口
├── BattleFireDirect.cpp/h # DirectX 12 核心渲染实现
├── NanoVDBLoader.cpp/h # NanoVDB 体积数据加载器
├── StaticMeshComponent.cpp/h # 静态网格组件
├── Utils.cpp/h # 工具函数
├── stbi/ # 图像加载库
├── Res/
├── Shader/ # HLSL 着色器
│ │ ├── volume.hlsl # 体积渲染着色器
│ │ ├── gs.hlsl # 几何着色器
│ │ └── PNanoVDB.hlsl # NanoVDB GPU 解析
├── Model/ # 模型文件
│ ├── Image/ # 纹理图片
└── NanoVDB/ # NanoVDB 体积数据
├── CMakeLists.txt # CMake 构建配置
└── build/ # 构建目录
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
└── ...
```
## 构建方法
## 快速开始
### 前置要求
@@ -39,49 +79,52 @@ XCVolumeRenderer/
- Visual Studio 2019 或更高版本
- CMake 3.15+
### 构建步骤
### 构建项目
每个子项目都可以独立构建,以 HelloEarth 为例:
```bash
# 创建并进入构建目录
cd MVS/HelloEarth
mkdir build && cd build
# 配置项目
cmake ..
# 编译
cmake --build . --config Release
```
### 运行
## 各模块说明
编译完成后,运行 `XCVolumeRenderer.exe` 或使用 `run.bat`
### HelloEarth
## 功能特性
### 核心渲染
- DirectX 12 渲染管线
- 几何着色器GS支持
基础的 DirectX 12 渲染示例,展示如何:
- 初始化 DirectX 12 渲染环境
- 加载和渲染静态网格
- 使用几何着色器
- 纹理映射
- 常量缓冲区CBV/SRV
- 常量缓冲区更新
### 体积渲染
- NanoVDB 格式支持
- 光线步进Ray Marching
### VolumeRenderer
基于 NanoVDB 的体积渲染器,支持:
- NanoVDB 格式体积数据加载
- 光线步进Ray Marching渲染
- HDDA 空间跳跃加速
- 体积阴影Volumetric Shadow
- 指数步长抖动采样
- Gamma 校正
- 体积阴影
- 多种渲染参数配置
### 参数配置
- DensityScale - 密度缩放
- StepSize - 步进大小
- MaxSteps - 最大步数
- LightDir - 光照方向
- LightSamples - 阴影采样数
### ui
## 资源说明
Unity 风格的编辑器 UI包含
- 层级面板Hierarchy Panel
- 检查器面板Inspector Panel
- 场景视图Scene View
- 游戏视图Game View
- 项目面板Project Panel
- 控制台面板Console Panel
- 日志系统
- 着色器文件位于 `Res/Shader/` 目录
- 模型文件为 `.lhsm` 格式
- 纹理支持 PNG、JPG 格式
- 体积数据支持 NanoVDB `.nvdb` 格式
## 文档
更多详细设计文档请参考 `docs/` 目录。
## 许可证
MIT License