在 Win32 API 的 Direct3D 12 中,D3D12_RAYTRACING_TIER 枚举用于指定系统对光线追踪的支持层级。这个枚举定义在 D3d12.h 头文件中,包含以下成员:

1. D3D12_RAYTRACING_TIER_NOT_SUPPORTED: 不支持光线追踪。
2. D3D12_RAYTRACING_TIER_1_0: 支持 DirectX 12 光线追踪层级 1.0 版本。
3. D3D12_RAYTRACING_TIER_1_1: 支持 DirectX 12 光线追踪层级 1.1 版本。

这些层级标志用于检查系统是否支持特定版本的光线追踪。

以下是一个示例代码片段,演示了如何使用 D3D12_RAYTRACING_TIER 枚举:
#include <d3d12.h>

// 其他代码...

// 查询系统对光线追踪的支持层级
D3D12_RAYTRACING_TIER raytracingTier = D3D12_RAYTRACING_TIER_NOT_SUPPORTED;
D3D12_FEATURE_DATA_D3D12_OPTIONS5 featureData = {};

HRESULT hr = device->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS5, &featureData, sizeof(featureData));
if (SUCCEEDED(hr))
{
    raytracingTier = featureData.RaytracingTier;
}

// 检查支持的光线追踪层级
switch (raytracingTier)
{
case D3D12_RAYTRACING_TIER_NOT_SUPPORTED:
    // 不支持光线追踪
    break;
case D3D12_RAYTRACING_TIER_1_0:
    // 支持 DirectX 12 光线追踪层级 1.0 版本
    break;
case D3D12_RAYTRACING_TIER_1_1:
    // 支持 DirectX 12 光线追踪层级 1.1 版本
    break;
default:
    // 未知层级
    break;
}

在这个例子中,通过调用 CheckFeatureSupport 函数查询系统对光线追踪的支持层级,然后根据返回的层级进行相应的处理。请注意,具体的层级及其用途可能会随着 Direct3D 版本的更新而有所改变,因此建议查阅最新的官方文档或 SDK 版本。


转载请注明出处:http://www.zyzy.cn/article/detail/26084/Win32 API/D3d12.h/D3D12_RAYTRACING_TIER