修改内容: 1. NanoVDBLoader 添加边界框信息读取 (worldBBox[6]) 2. BattleFireDirect 添加 Volume 渲染相关函数: - InitVolumeRootSignature(): 体积渲染的 root signature - CreateVolumePSO(): 线框模式 PSO 3. main.cpp: - 打印 NanoVDB 边界框信息 - 创建立方体网格表示边界框 - 渲染绿色线框立方体 4. 修复 CreateShaderFromFile 支持 #include 5. 修复 volume.hlsl 使用 32 位地址模式 验证结果: - 成功显示 NanoVDB 边界框线框 - 着色器能正确读取 NanoVDB 数据
17 lines
399 B
C++
17 lines
399 B
C++
#pragma once
|
|
#include <d3d12.h>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
struct NanoVDBData {
|
|
ID3D12Resource* gpuBuffer;
|
|
void* cpuData;
|
|
uint64_t byteSize;
|
|
uint64_t elementCount;
|
|
double worldBBox[6];
|
|
};
|
|
|
|
bool LoadNanoVDB(const char* filePath, NanoVDBData& outData, ID3D12GraphicsCommandList* cmdList, ID3D12CommandAllocator* cmdAlloc = nullptr);
|
|
void FreeNanoVDB(NanoVDBData& data);
|
|
|