enumerazione D3D12_RAY_FLAGS (d3d12.h)
Flag passati alla funzione TraceRay per eseguire l'override della trasparenza, dell'analisi e del comportamento iniziale.
Sintassi
typedef enum D3D12_RAY_FLAGS {
D3D12_RAY_FLAG_NONE = 0,
D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1,
D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2,
D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4,
D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8,
D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
D3D12_RAY_FLAG_SKIP_TRIANGLES,
D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES
} ;
Costanti
D3D12_RAY_FLAG_NONE Valore: 0 Nessuna opzione selezionata. |
D3D12_RAY_FLAG_FORCE_OPAQUE Valore: 0x1 Tutte le intersezioni ray-primitive rilevate in un raytrace vengono considerate opache. Pertanto, nessun hit shader verrà eseguito indipendentemente dal fatto che la geometria di hit specifica D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE e indipendentemente dai flag di istanza nell'istanza che è stata raggiunta. Questo flag si escludono a vicenda con RAY_FLAG_FORCE_NON_OPAQUE, RAY_FLAG_CULL_OPAQUE e RAY_FLAG_CULL_NON_OPAQUE. |
D3D12_RAY_FLAG_FORCE_NON_OPAQUE Valore: 0x2 Tutte le intersezioni ray-primitive rilevate in un raytrace vengono considerate non opache. Pertanto, eventuali hit shader, se presenti, verranno eseguiti indipendentemente dal fatto che la geometria di hit specifica D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE e indipendentemente dai flag di istanza nell'istanza che è stata raggiunta. Questo flag si escludono a vicenda con RAY_FLAG_FORCE_\OPAQUE, RAY_FLAG_CULL_OPAQUE e RAY_FLAG_CULL_NON_OPAQUE. |
D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH Valore: 0x4 La prima intersezione ray-primitive rilevata in un raytrace causa automaticamente la chiamata di AcceptHitAndEndSearch immediatamente dopo l'hit shader, incluso se non è presente alcun hit shader. L'unica eccezione è quando l'ultimo hit shader chiama IgnoreHit, nel qual caso il raggio continua a non essere interessato in modo che il successivo hit diventi un altro candidato per essere il primo colpo. Per applicare questa eccezione, l'eventuale hit shader deve essere effettivamente eseguito. Quindi, se l'hit shader viene ignorato perché il colpo viene considerato opaco (ad esempio, a causa di RAY_FLAG_FORCE_OPAQUE o D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE o D3D12_RAYTRACING_INSTANCE_FLAG_OPAQUE impostato), viene chiamato AcceptHitAndEndSearch . Se un hit shader più vicino è presente al primo colpo, viene richiamato a meno che non sia presente anche RAY_FLAG_SKIP_CLOSEST_HIT_SHADER. L'unico colpo trovato è considerato "più vicino", anche se altri potenziali colpi che potrebbero essere più vicini al raggio potrebbero non essere stati visitati. Un uso tipico per questo flag è per le ombreggiature, dove deve essere trovato solo un singolo colpo. |
D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER Valore: 0x8 Anche se almeno un hit è stato eseguito e il gruppo di hit per il hit più vicino contiene un hit shader più vicino, ignorare l'esecuzione di tale shader. |
D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES Valore: 0x10 Abilita l'abbattimento dei triangoli visi indietro. Vedere D3D12_RAYTRACING_INSTANCE_FLAGS per selezionare i triangoli che si trovano di fronte, per istanza. Nelle istanze che specificano D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE, questo flag non ha alcun effetto. Nei tipi geometry diversi da D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, questo flag non ha alcun effetto. Questo flag si escludono a vicenda con RAY_FLAG_CULL_FRONT_FACING_TRIANGLES. |
D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES Valore: 0x20 Abilita l'abbattimento dei triangoli frontali. Vedere D3D12_RAYTRACING_INSTANCE_FLAGS per selezionare i triangoli che si trovano di fronte, per istanza. Nelle istanze che specificano D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE, questo flag non ha alcun effetto. Nei tipi geometry diversi da D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, questo flag non ha alcun effetto. Questo flag si escludono a vicenda con RAY_FLAG_CULL_FRONT_FACING_TRIANGLES. |
D3D12_RAY_FLAG_CULL_OPAQUE Valore: 0x40 Culls tutte le primitive considerate opache in base ai flag di geometria e istanza. Questo flag è a vicenda esclusivo con RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE e RAY_FLAG_CULL_NON_OPAQUE. |
D3D12_RAY_FLAG_CULL_NON_OPAQUE Valore: 0x80 Elimina tutte le primitive considerate non opache in base ai flag di geometria e istanza. Questo flag è a vicenda esclusivo con RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE e RAY_FLAG_CULL_OPAQUE. |
Requisiti
Intestazione | d3d12.h |