enumerazione D3D12_RAYTRACING_GEOMETRY_FLAGS (d3d12.h)

Specifica i flag per la geometria di raytracing in una struttura D3D12_RAYTRACING_GEOMETRY_DESC .

Sintassi

typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS {
  D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
  D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
  D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
} ;

Costanti

 
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE
Valore: 0
Nessuna opzione è stata specificata.
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE
Valore: 0x1
Quando i raggi incontrano questa geometria, la geometria agisce come se non sia presente alcun hit shader. È consigliabile che le app usino il flag in modo liberale, in quanto possono abilitare importanti ottimizzazioni di elaborazione dei raggi. Si noti che questo comportamento può essere sottoposto a override su base per istanza con D3D12_RAYTRACING_INSTANCE_FLAGS e su base per raggio usando i flag ray in TraceRay.
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION
Valore: 0x2
Per impostazione predefinita, il sistema è libero di attivare un hit shader più di una volta per una determinata intersezione ray-primitive. Questa flessibilità consente di migliorare l'efficienza attraversata delle strutture di accelerazione in determinati casi. Ad esempio, se la struttura di accelerazione viene implementata internamente con volumi di delimitamento, l'implementazione potrebbe risultare utile archiviare triangoli relativamente lunghi in più caselle di selezione anziché una singola casella più grande. Tuttavia, alcuni casi d'uso dell'applicazione richiedono che gli intersezioni vengano segnalati a qualsiasi hit shader al massimo una volta. Questo flag consente di garantire la geometria specificata, potenzialmente con un impatto sulle prestazioni.

Questo flag si applica a tutti i tipi geometry.

Requisiti

Requisito Valore
Intestazione d3d12.h