Condividi tramite


struttura D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC (d3d12.h)

Descrive una struttura di accelerazione raytracing. Passare questa struttura in ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure per descrivere la struttura di accelerazione da compilare.

Sintassi

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;

Members

DestAccelerationStructureData

Posizione in cui archiviare la struttura di accelerazione risultante. ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo segnala la quantità di memoria necessaria per il risultato, dato un set di parametri di compilazione della struttura di accelerazione.

L'indirizzo deve essere allineato a 256 byte, definito come D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT.

Importante

La memoria deve essere nello stato D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

Inputs

Descrizione dei dati di input per la compilazione della struttura di accelerazione. Si tratta di dati archiviati in una struttura separata perché viene usata anche con GetRaytracingAccelerationStructurePrebuildInfo.

SourceAccelerationStructureData

Indirizzo di una struttura di accelerazione esistente se viene richiesto un aggiornamento della struttura di accelerazione (compilazione incrementale), impostando D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE nel parametro Flags. In caso contrario, questo indirizzo deve essere NULL.

Se questo indirizzo corrisponde a DestAccelerationStructureData, l'aggiornamento deve essere eseguito sul posto. Qualsiasi altra forma di sovrapposizione della memoria di origine e di destinazione non è valida e produce un comportamento non definito.

L'indirizzo deve essere allineato a 256 byte, definito come D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT, che dovrebbe essere automaticamente il caso perché qualsiasi struttura di accelerazione esistente passata qui sarebbe già stata richiesta per essere posizionata con tale allineamento.

Importante

La memoria deve essere nello stato D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

ScratchAccelerationStructureData

Percorso in cui la compilazione archivierà i dati temporanei. GetRaytracingAccelerationStructurePrebuildInfo segnala la quantità di memoria scratch necessaria per un determinato set di parametri di compilazione della struttura di accelerazione.

Importante

La memoria deve essere nello stato D3D12_RESOURCE_STATE_UNORDERED_ACCESS.

ScratchAccelerationStructureData

Requisiti

   
Intestazione d3d12.h