Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Definiert die Eingaben für einen Buildvorgang für die Raytracingbeschleunigungsstruktur. Diese Struktur wird von ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure und ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo verwendet.
Syntax
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;
const D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC *pOpacityMicromapArrayDesc;
};
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
Member
Type
Der Typ der zu erstellenden Beschleunigungsstruktur.
Flags
Die Buildflags.
NumDescs
Wenn TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL ist, ist dieser Wert die Anzahl der Instanzen, die basierend auf DescsLayout angeordnet sind.
Wenn TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL ist, ist dieser Wert die Anzahl der Elemente, auf die von pGeometryDescs oder ppGeometryDescs verwiesen wird. Welches dieser Felder verwendet wird, hängt von DescsLayout ab.
DescsLayout
Angabe von Geometriebeschreibungen; entweder ein Array von Beschreibungen oder ein Array von Zeigern auf Beschreibungen.
InstanceDescs
Wenn TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL ist, bezieht sich dies auf NumDescsD3D12_RAYTRACING_INSTANCE_DESC Strukturen im GPU-Speicher, die Instanzen beschreiben. Jede instance muss an 16 Bytes ausgerichtet werden, die als D3D12_RAYTRACING_INSTANCE_DESC_BYTE_ALIGNMENT definiert sind.
Wenn Type nicht D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL ist, wird dieser Parameter nicht verwendet.
Wenn DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY ist, verweist InstanceDescs auf ein Array von instance Beschreibungen im GPU-Speicher.
Wenn DescLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS ist, zeigt InstanceDescs auf ein Array im GPU-Speicher mit D3D12_GPU_VIRTUAL_ADDRESS Zeigern auf instance Beschreibungen.
Der Speicher, auf den verwiesen wird, muss sich im Zustand D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE befinden.
pGeometryDescs
Wenn TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL und DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY ist, wird dieses Feld verwendet und verweist auf numDescs zusammenhängende D3D12_RAYTRACING_GEOMETRY_DESC Strukturen auf der CPU, wobei einzelne Geometrien beschrieben werden.
Wenn Type nicht D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL oder DescsLayout nicht D3D12_ELEMENTS_LAYOUT_ARRAY ist, wird dieser Parameter nicht verwendet.
ppGeometryDescs
Wenn TypeD3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL und DescsLayoutD3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS ist, wird dieses Feld verwendet und verweist auf ein Array von NumDescs-Zeigern auf D3D12_RAYTRACING_GEOMETRY_DESC Strukturen auf der CPU, wobei einzelne Geometrien beschrieben werden.
pOpacityMicromapArrayDesc
Hinweise
Bei Verwendung mit GetRaytracingAccelerationStructurePrebuildInfo, die tatsächlich einen Build ausführen, wird nicht auf alle Parameter zugegriffen, auf die über D3D12_GPU_VIRTUAL_ADDRESS (eine Adresse im GPU-Speicher) verwiesen wird, z. B. InstanceDescs. Daher muss dieser Arbeitsspeicher noch nicht initialisiert werden oder sich in einem bestimmten Ressourcenzustand befinden. Ob GPU-Adressen NULL sind oder nicht, kann vom Vorgang überprüft werden, auch wenn die Zeiger nicht dereferenziert sind.
Anforderungen
| Anforderung | Wert |
|---|---|
| Header | d3d12.h |