Files
XCEngine/MVS/VolumeRenderer/README.md

87 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# XCVolumeRenderer
XCEngine 游戏引擎的体积渲染模块,使用 NanoVDB 格式实现云、烟雾等体积数据的实时渲染。
## 技术栈
- **模块定位**: XCEngine 游戏引擎的体积渲染功能
- **语言**: C++17
- **构建系统**: CMake
- **依赖库**: DirectX 12 SDK, stb_image, NanoVDB
## 项目结构
```
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/ # 构建目录
```
## 构建方法
### 前置要求
- Windows 10/11
- Visual Studio 2019 或更高版本
- CMake 3.15+
### 构建步骤
```bash
# 创建并进入构建目录
mkdir build && cd build
# 配置项目
cmake ..
# 编译
cmake --build . --config Release
```
### 运行
编译完成后,运行 `XCVolumeRenderer.exe` 或使用 `run.bat`
## 功能特性
### 核心渲染
- DirectX 12 渲染管线
- 几何着色器GS支持
- 纹理映射
- 常量缓冲区CBV/SRV
### 体积渲染
- NanoVDB 格式支持
- 光线步进Ray Marching
- HDDA 空间跳跃加速
- 体积阴影Volumetric Shadow
- 指数步长抖动采样
- Gamma 校正
### 参数配置
- DensityScale - 密度缩放
- StepSize - 步进大小
- MaxSteps - 最大步数
- LightDir - 光照方向
- LightSamples - 阴影采样数
## 资源说明
- 着色器文件位于 `Res/Shader/` 目录
- 模型文件为 `.lhsm` 格式
- 纹理支持 PNG、JPG 格式
- 体积数据支持 NanoVDB `.nvdb` 格式