Skip to main content
定义光线追踪加速结构构建操作的输入。此结构由 ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructureID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo 使用。

语法

成员

Type
类型:D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
要构建的加速结构的类型。 Flags
类型:D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
构建标志。 NumDescs
类型:UINT
如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL,则此值为实例的数量,按 DescsLayout 布局。 如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL,则此值为 pGeometryDescsppGeometryDescs 引用的元素数量。使用其中哪个字段取决于 DescsLayout DescsLayout
类型:D3D12_ELEMENTS_LAYOUT
如何指定几何描述;可以是描述数组,也可以是指向描述的指针数组。 InstanceDescs
类型:D3D12_GPU_VIRTUAL_ADDRESS
如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL,则此项指向 GPU 内存中描述实例的 NumDescsD3D12_RAYTRACING_INSTANCE_DESC 结构。每个实例必须按 16 字节对齐,其定义为 D3D12_RAYTRACING_INSTANCE_DESC_BYTE_ALIGNMENT 如果 Type 不是 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL,则不使用此参数。 如果 DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAYInstanceDescs 指向 GPU 内存中的实例描述数组。 如果 DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERSInstanceDescs 指向 GPU 内存中的一个数组,该数组包含指向实例描述的 D3D12_GPU_VIRTUAL_ADDRESS 指针。 所指向的内存必须处于 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 状态。 pGeometryDescs
类型:const D3D12_RAYTRACING_GEOMETRY_DESC *
如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELDescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY,则使用此字段,指向 CPU 上 NumDescs 个连续的 D3D12_RAYTRACING_GEOMETRY_DESC 结构,用于描述单个几何图形。 如果 Type 不是 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELDescsLayout 不是 D3D12_ELEMENTS_LAYOUT_ARRAY,则不使用此参数。 ppGeometryDescs
类型:const D3D12_RAYTRACING_GEOMETRY_DESC *const *
如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELDescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS,则使用此字段,指向 CPU 上的一个数组,该数组包含 NumDescs 个指向 D3D12_RAYTRACING_GEOMETRY_DESC 结构的指针,用于描述单个几何图形。

备注

在与 GetRaytracingAccelerationStructurePrebuildInfo(该方法实际执行构建)一起使用时,任何通过 D3D12_GPU_VIRTUAL_ADDRESS(GPU 内存中的地址)引用的参数(例如 InstanceDescs)不会被该操作访问。因此,这块内存无需已初始化,也无需处于特定的资源状态。虽然指针不会被解引用,但该操作可以检查 GPU 地址是否为空。

要求

头文件: d3d12_xs.h
库: d3d12_xs.lib
支持的平台:XBOX Series 主机
最后修改于 2026年8月24日