Condividi tramite


enumerazione D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS (d3d12umddi.h)

Specifica i flag di compilazione della struttura di accelerazione di ray tracing.

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
Creare la struttura di accelerazione in modo che supporti gli aggiornamenti futuri, tramite il flag D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, anziché l'app deve ricompilare completamente. Questa opzione può comportare un aumento del consumo di memoria e dei tempi di compilazione e una riduzione delle prestazioni di traccia dei raggi. Gli aggiornamenti futuri, tuttavia, devono essere più veloci rispetto alla creazione 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 più piccolo, non più grande della costruzione della struttura di accelerazione da zero.

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

Questo flag è consigliato per la geometria statica in particolare. È 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, le prestazioni di traccia dei raggi di trading per la velocità di compilazione. Una regola approssimativa è che l'implementazione deve richiedere circa 1/2 a 1/3 del tempo di compilazione predefinito in un sacrificio nelle 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 zero usata durante la compilazione della struttura di accelerazione e le dimensioni del risultato. Questa opzione può comportare un aumento dei tempi di compilazione e/o dei tempi di traccia dei raggi.

Si tratta di un'ortogonale al flag D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION e alla compattazione esplicita della struttura di accelerazione che consente. La combinazione dei flag può significare sia la struttura di accelerazione iniziale che il risultato della compattazione 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é la compilazione da zero. Questa operazione è più veloce di una compilazione completa, ma può influire negativamente sulle prestazioni di ray tracing, soprattutto se le posizioni degli oggetti sottostanti sono state modificate significativamente dalla compilazione 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 di accelerazione di origine non viene modificata. Il requisito di memoria per la struttura di accelerazione dell'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 potrebbe o non essere impostato, non fa differenza perché gli aggiornamenti continueranno a essere consentiti. Le altre selezioni di flag, oltre a 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 se altrimenti clonata, la struttura di accelerazione di origine doveva essere prodotta in uno di questi modi. Essenzialmente, la struttura di accelerazione doveva essere stata costruita con l'aspettativa che gli aggiornamenti possano verificarsi.

Requisiti

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