D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 結構 (d3d12.h)

定義光線追蹤加速結構建置作業的輸入。 此結構由 ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructureID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo 使用。

語法

typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE        Type;
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
  UINT                                                NumDescs;
  D3D12_ELEMENTS_LAYOUT                               DescsLayout;
  union {
    D3D12_GPU_VIRTUAL_ADDRESS            InstanceDescs;
    const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs;
    const D3D12_RAYTRACING_GEOMETRY_DESC const * * ppGeometryDescs;
  };
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;

成員

Type

要建置的加速結構類型。

Flags

組建旗標。

NumDescs

如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL,則此值是以 DescsLayout 為基礎的實例數目。

如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL,這個值就是 pGeometryDescsppGeometryDescs 所參考的元素數目。 使用哪一個字段取決於 DescsLayout

DescsLayout

如何指定幾何描述;描述的陣列或描述的指標陣列。

InstanceDescs

如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL,這是指描述實例之 GPU 記憶體中的 NumDescsD3D12_RAYTRACING_INSTANCE_DESC 結構。 每個實例都必須對齊 16 個字節,定義為 D3D12_RAYTRACING_INSTANCE_DESC_BYTE_ALIGNMENT

如果未D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVELType,則不會使用此參數。

如果 DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY,InstanceDescs 會指向 GPU 記憶體中的實例描述陣列。

如果 DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS,InstanceDescs 會指向 GPU 記憶體中的陣列,D3D12_GPU_VIRTUAL_ADDRESS實例描述的指標。

指向的記憶體必須處於狀態 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE

pGeometryDescs

如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL,且 DescsLayout是D3D12_ELEMENTS_LAYOUT_ARRAY,則會使用此字段,並指向 CPU 上的 NumDescs 連續 D3D12_RAYTRACING_GEOMETRY_DESC 結構,並描述個別幾何。

如果未D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVELTypeDescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY,則不會使用此參數。

ppGeometryDescs

如果 TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL,而 DescsLayout是D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS,則會使用此欄位,並指向 CPU 上D3D12_RAYTRACING_GEOMETRY_DESC結構的 NumDescs 指標陣列,並描述個別幾何。

備註

與實際執行組建的 GetRaytracingAccelerationStructurePrebuildInfo 搭配使用時,透過 D3D12_GPU_VIRTUAL_ADDRESS 參考的任何參數都會 (GPU 記憶體中的位址) ,例如 InstanceDescs,將無法由作業存取。 因此,此記憶體不需要初始化,或處於特定資源狀態。 即使指標未取值,GPU 位址還是無法由作業檢查。

規格需求

需求
標頭 d3d12.h