D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS enumerazione (d3d12umddi.h)

Specifica i flag di compilazione della struttura di accelerazione di traccia dei raggi.

Sintassi

typedef enum D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
} ;

Costanti

 
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE
Nessuna opzione specificata per la compilazione della struttura di accelerazione.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE
Compilare la struttura di accelerazione in modo che supporti gli aggiornamenti futuri, tramite il flag D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, anziché la necessità di ricompilare completamente l'app. Questa opzione può comportare un aumento del consumo di memoria e dei tempi di compilazione e prestazioni di traccia dei raggi inferiori. Gli aggiornamenti futuri, tuttavia, dovrebbero essere più veloci rispetto alla compilazione della struttura di accelerazione equivalente da zero.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION
Consente di compattare la struttura di accelerazione chiamando CopyRaytracingAccelerationStructure con la modalità compatta. Vedere D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE.
Questa opzione può comportare un aumento del consumo di memoria e dei tempi di compilazione. Dopo la compattazione futura, tuttavia, la struttura di accelerazione risultante deve utilizzare un footprint di memoria inferiore, non più grande della compilazione della struttura di accelerazione da zero.

Questo flag è compatibile con tutti gli altri flag. Se viene specificato come parte di un aggiornamento della struttura di accelerazione, anche la struttura di accelerazione di origine deve essere stata compilata con questo flag.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE
Costruire una struttura di accelerazione di alta qualità che massimizza le prestazioni di traccia dei raggi a scapito del tempo di compilazione aggiuntivo. Una regola generale è che l'implementazione deve richiedere circa 2-3 volte il tempo di compilazione predefinito per ottenere prestazioni di traccia migliori.

Questo flag è consigliato in particolare per la geometria statica. È anche compatibile con tutti gli altri flag, ad eccezione di D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD
Costruire una struttura di accelerazione di qualità inferiore, scambiando le prestazioni di traccia dei raggi per la velocità di compilazione. Una regola generale è che l'implementazione deve richiedere da 1/2 a 1/3 del tempo di compilazione predefinito in modo da sacrificare le prestazioni di traccia.

Questo flag è compatibile con tutti gli altri flag, ad eccezione di D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY
Ridurre al minimo la quantità di memoria scratch usata durante la compilazione della struttura di accelerazione e le dimensioni del risultato. Questa opzione può comportare tempi di compilazione e/o tempi di traccia dei raggi maggiori.

Questo è ortogonale al flag D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION e alla compattazione esplicita della struttura di accelerazione che abilita. La combinazione dei flag può significare sia la struttura di accelerazione iniziale che il risultato della compattazione che usa meno memoria.
L'impatto dell'uso di questo flag per una compilazione si riflette nel risultato della chiamata a GetRaytracingAccelerationStructurePrebuildInfo prima di eseguire la compilazione per recuperare i requisiti di memoria per la compilazione.

Questo flag è compatibile con tutti gli altri flag.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
Eseguire un aggiornamento della struttura di accelerazione, anziché compilare da zero. Questa operazione è più veloce rispetto a una compilazione completa, ma può influire negativamente sulle prestazioni di traccia dei raggi, soprattutto se le posizioni degli oggetti sottostanti sono cambiate in modo significativo rispetto alla build originale della struttura di accelerazione prima degli aggiornamenti.

Se gli indirizzi delle strutture di accelerazione di origine e di destinazione sono identici, l'aggiornamento viene eseguito sul posto. Qualsiasi altra sovrapposizione di intervalli di indirizzi dell'origine e della destinazione non è valida. Per le destinazioni e l'origine non sovrapposte, la struttura dell'accelerazione di origine non è modificata. Il requisito di memoria per la struttura di accelerazione di output è lo stesso della struttura di accelerazione di input.

Questo flag è compatibile con tutti gli altri flag. D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE possibile impostare o meno gli aggiornamenti, non fa alcuna differenza perché gli aggiornamenti continueranno a essere consentiti. Le altre selezioni di flag, oltre D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE e D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, devono corrispondere ai flag nella struttura di accelerazione di origine.

Gli aggiornamenti della struttura di accelerazione possono essere eseguiti in successione illimitata. La struttura di accelerazione di origine deve essere stata creata con D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE, D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE o, in caso contrario, clonata, la struttura di accelerazione di origine deve essere stata prodotta in uno di questi modi. In sostanza, la struttura di accelerazione doveva essere costruita con l'aspettativa che gli aggiornamenti possano verificarsi.

Requisiti

   
Client minimo supportato Windows 10, versione 1809
Intestazione d3d12umddi.h