diff --git a/README.md b/README.md index c7569b8a..2153790a 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # XCVolumeRenderer -基于 DirectX 12 的体积渲染器,使用几何着色器(Geometry Shader)实现三维数据的可视化渲染。 +基于 DirectX 12 的体积渲染器,使用 NanoVDB 格式实现云、烟雾等体积数据的实时渲染。 ## 技术栈 - **渲染API**: DirectX 12 - **语言**: C++17 - **构建系统**: CMake -- **依赖库**: DirectX 12 SDK, stb_image +- **依赖库**: DirectX 12 SDK, stb_image, NanoVDB ## 项目结构 @@ -15,15 +15,20 @@ XCVolumeRenderer/ ├── main.cpp # 主程序入口 ├── BattleFireDirect.cpp/h # DirectX 12 核心渲染实现 +├── NanoVDBLoader.cpp/h # NanoVDB 体积数据加载器 ├── StaticMeshComponent.cpp/h # 静态网格组件 ├── Utils.cpp/h # 工具函数 -├── stbi/ # 图像加载库 +├── stbi/ # 图像加载库 ├── Res/ -│ ├── Shader/ # HLSL 着色器 -│ ├── Model/ # 模型文件 -│ └── Image/ # 纹理图片 -├── CMakeLists.txt # CMake 构建配置 -└── build/ # 构建目录 +│ ├── Shader/ # HLSL 着色器 +│ │ ├── volume.hlsl # 体积渲染着色器 +│ │ ├── gs.hlsl # 几何着色器 +│ │ └── PNanoVDB.hlsl # NanoVDB GPU 解析 +│ ├── Model/ # 模型文件 +│ ├── Image/ # 纹理图片 +│ └── NanoVDB/ # NanoVDB 体积数据 +├── CMakeLists.txt # CMake 构建配置 +└── build/ # 构建目录 ``` ## 构建方法 @@ -49,18 +54,34 @@ cmake --build . --config Release ### 运行 -编译完成后,在 `Release` 目录下运行 `XCVolumeRenderer.exe` +编译完成后,运行 `XCVolumeRenderer.exe` 或使用 `run.bat` ## 功能特性 -- DirectX 12 基础渲染管线 +### 核心渲染 +- DirectX 12 渲染管线 - 几何着色器(GS)支持 - 纹理映射 -- 常量缓冲区和常量缓冲区视图(CBV/SRV) -- 基础变换矩阵(投影、视图、模型) +- 常量缓冲区(CBV/SRV) + +### 体积渲染 +- NanoVDB 格式支持 +- 光线步进(Ray Marching) +- HDDA 空间跳跃加速 +- 体积阴影(Volumetric Shadow) +- 指数步长抖动采样 +- Gamma 校正 + +### 参数配置 +- DensityScale - 密度缩放 +- StepSize - 步进大小 +- MaxSteps - 最大步数 +- LightDir - 光照方向 +- LightSamples - 阴影采样数 ## 资源说明 - 着色器文件位于 `Res/Shader/` 目录 - 模型文件为 `.lhsm` 格式 - 纹理支持 PNG、JPG 格式 +- 体积数据支持 NanoVDB `.nvdb` 格式 \ No newline at end of file