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