D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS枚举 (d3d12umddi.h)

指定光线跟踪加速结构生成标志。

语法

typedef enum D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
} ;

常数

 
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE
没有为加速结构生成指定的选项。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE
通过标志D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE生成加速结构,使其支持将来的更新,而无需完全重新生成应用。 此选项可能会导致内存消耗量和生成时间增加,以及光线跟踪性能降低。 但是,将来的更新应该比从头开始构建等效的加速结构要快。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION
通过使用压缩模式调用 CopyRaytracingAccelerationStructure,启用压缩结构的选项。 请参阅 D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE
此选项可能会导致内存消耗量和生成时间增加。 但是,在将来压缩后,生成的加速结构应占用更小的内存占用量,而不是从头开始构建加速结构。

此标志与所有其他标志兼容。 如果指定为加速结构更新的一部分,则源加速结构也必须使用此标志生成。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE
构建一个高质量的加速结构,以牺牲额外的生成时间来最大程度地提高光线跟踪性能。 一个粗略的经验法则是,实现应该花费大约 2-3 倍的默认生成时间才能获得更好的跟踪性能。

特别是对于静态几何图形,建议使用此标志。 它还与除D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD以外的所有其他标志兼容。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD
构建质量较低的加速结构,以交易光线跟踪性能来加快生成速度。 一个粗略的经验法则是,在跟踪性能方面,实现应在默认生成时大约需要 1/2 到 1/3。

此标志与除D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE以外的所有其他标志兼容。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY
最大程度地减少加速结构生成期间使用的暂存内存量以及结果的大小。 此选项可能会导致生成时间和/或光线跟踪时间增加。

这与D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION标志是正交的,也是它启用的显式加速结构压缩。 合并标志可能意味着初始加速结构以及压缩它使用更少的内存的结果。
在执行生成以检索生成内存要求之前,调用 GetRaytracingAccelerationStructurePrebuildInfo 的结果反映了使用此标志生成的影响。

此标志与所有其他标志兼容。
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
执行加速结构更新,而不是从头开始生成。 这比完整生成更快,但可能会对光线跟踪性能产生负面影响,尤其是在更新之前基础对象的位置已显著从原始加速结构内部版本发生重大变化时。

如果源和目标加速结构的地址相同,则会就地执行更新。 源和目标地址范围的任何其他重叠都无效。 对于非重叠的源和目标,源加速结构未修改。 输出加速结构的内存要求与输入加速结构中的内存要求相同。

此标志与所有其他标志兼容。 D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE可能或可能未设置,它不会产生任何影响,因为将继续允许更新。 除了D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE和D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE之外,其他标志选择必须与源加速结构中的标志匹配。

可以连续无限地执行加速结构更新。 源加速结构必须通过D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE、D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE创建,或者如果进行克隆,则必须通过以下方式之一生成原始加速结构。 实质上,加速结构必须构造,并期望更新可能发生。

要求

要求 价值
最低支持的客户端 Windows 10 版本 1809
标头 d3d12umddi.h