D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC-Struktur (d3d12.h)

Beschreibt eine Raytracing-Beschleunigungsstruktur. Übergeben Sie diese Struktur an ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure , um die zu erstellende Beschleunigungsstruktur zu beschreiben.

Syntax

typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
  D3D12_GPU_VIRTUAL_ADDRESS                            DestAccelerationStructureData;
  D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
  D3D12_GPU_VIRTUAL_ADDRESS                            SourceAccelerationStructureData;
  D3D12_GPU_VIRTUAL_ADDRESS                            ScratchAccelerationStructureData;
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;

Member

DestAccelerationStructureData

Speicherort zum Speichern der resultierenden Beschleunigungsstruktur. ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo meldet die Menge an Arbeitsspeicher, die für das Ergebnis hier unter Berücksichtigung einer Reihe von Buildparametern der Beschleunigungsstruktur erforderlich ist.

Die Adresse muss an 256 Bytes ausgerichtet sein, die als D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT definiert sind.

Wichtig

Der Arbeitsspeicher muss sich im Zustand D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE befinden.

Inputs

Beschreibung der Eingabedaten für den Beschleunigungsstrukturbuild. Dies sind Daten, die in einer separaten Struktur gespeichert werden, da sie auch mit GetRaytracingAccelerationStructurePrebuildInfo verwendet werden.

SourceAccelerationStructureData

Adresse einer vorhandenen Beschleunigungsstruktur, wenn eine Beschleunigungsstrukturaktualisierung (ein inkrementeller Build) angefordert wird, indem D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE im Flags-Parameter festgelegt wird. Andernfalls muss diese Adresse NULL sein.

Wenn diese Adresse mit DestAccelerationStructureData identisch ist, muss die Aktualisierung direkt durchgeführt werden. Jede andere Form der Überlappung von Quell- und Zielspeicher ist ungültig und erzeugt ein nicht definiertes Verhalten.

Die Adresse muss an 256 Bytes ausgerichtet werden, die als D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT definiert sind, was automatisch der Fall sein sollte, da jede vorhandene Beschleunigungsstruktur, die hier übergeben wird, bereits mit einer solchen Ausrichtung platziert werden musste.

Wichtig

Der Arbeitsspeicher muss sich im Zustand D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE befinden.

ScratchAccelerationStructureData

Speicherort, an dem der Build temporäre Daten speichert. GetRaytracingAccelerationStructurePrebuildInfo meldet die Menge an Arbeitsspeicher, die die Implementierung für einen bestimmten Satz von Buildparametern für die Beschleunigungsstruktur benötigt.

Wichtig

Der Arbeitsspeicher muss sich im Zustand D3D12_RESOURCE_STATE_UNORDERED_ACCESS befinden.

ScratchAccelerationStructureData

Anforderungen

   
Kopfzeile d3d12.h