enumerazione D3D12_RAYTRACING_INSTANCE_FLAGS (d3d12.h)

Flag per un'istanza della struttura di accelerazione raytracing. Questi flag possono essere usati per eseguire l'override di D3D12_RAYTRACING_GEOMETRY_FLAGS per singole istanze.

Sintassi

typedef enum D3D12_RAYTRACING_INSTANCE_FLAGS {
  D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
  D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
  D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8
} ;

Costanti

 
D3D12_RAYTRACING_INSTANCE_FLAG_NONE
Valore: 0
Nessuna opzione è stata specificata.
D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE
Valore: 0x1
Disabilita la culling anteriore/posteriore per questa istanza. I flag Ray RAY_FLAG_CULL_BACK_FACING_TRIANGLES e RAY_FLAG_CULL_FRONT_FACING_TRIANGLES non avranno effetto su questa istanza.
D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE
Valore: 0x2
Questo flag inverte il fronte e il retro, che è utile se l'ordine di avvolgimento naturale dell'applicazione è diverso dal valore predefinito. Per impostazione predefinita, un triangolo viene anteriore se i vertici appaiono in senso orario dall'origine del raggio e indietro se i vertici appaiono in senso antiorario dall'origine del raggio, nello spazio degli oggetti in un sistema di coordinate a sinistra.

Poiché queste regole di direzione di avvolgimento sono definite nello spazio degli oggetti, non sono interessate dalle trasformazioni dell'istanza. Ad esempio, una matrice di trasformazione dell'istanza con determinante negativo (ad esempio il mirroring di alcune geometrie) non cambia la faccia dei triangoli all'interno dell'istanza. Le trasformazioni per geometria definite in D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC , al contrario, vengono combinate con i dati dei vertici associati nello spazio degli oggetti, quindi una matrice determinantenegativaaeaa viene eseguita con il triangolo di scorrimento.
D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE
Valore: 0x4
L'istanza fungerà come se D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE fosse stato specificato per tutte le geometrie nella struttura di accelerazione a livello inferiore a cui fa riferimento l'istanza. Si noti che questo comportamento può essere sottoposto a override dal flag ray RAY_FLAG_FORCE_NON_OPAQUE.

Questo flag si escludono a vicenda al flag di D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE .
D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
Valore: 0x8
L'istanza fungerà come se D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE non fosse stato specificato per una delle geometrie nella struttura di accelerazione a livello inferiore a cui fa riferimento l'istanza. Si noti che questo comportamento può essere sottoposto a override dal flag ray RAY_FLAG_FORCE_OPAQUE.

Questo flag si escludono reciprocamente al flag D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE .

Requisiti

Requisito Valore
Intestazione d3d12.h