enumerazione D3D12DDI_RAYTRACING_INSTANCE_FLAGS (d3d12umddi.h)

Contrassegnare le opzioni durante la generazione di dati dell'istanza nella CPU da caricare nella GPU, durante la compilazione della struttura di accelerazione di ray tracing.

Sintassi

typedef enum D3D12DDI_RAYTRACING_INSTANCE_FLAGS {
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_NONE,
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE,
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE,
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE,
  D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
} ;

Costanti

 
D3D12DDI_RAYTRACING_INSTANCE_FLAG_NONE
Nessuna opzione è stata specificata.
D3D12DDI_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE
Disabilita l'analisi per questa istanza. I flag di enumerazione D3D12DDI_CULL_MODE D3D12DDI_CULL_MODE_FRONT e D3D12DDI_CULL_MODE_BACK non avranno effetto su questa istanza.
D3D12DDI_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE
Questo flag inverte il fronte e il retro, che è utile se, ad esempio, 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 determinanti negativi (ad esempio il mirroring di una geometria), non cambia la faccia dei triangoli all'interno dell'istanza. Le trasformazioni per geometria, al contrario, (definite in D3D12DDI_RAYTRACING_GEOMETRY_DESC_0054), vengono combinate con i dati dei vertici associati nello spazio degli oggetti, quindi una matrice determinantenegativaae viene eseguita in un triangolo di scorrimento
D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE
L'istanza funzionerà come se il flag di D3D12DDI_RAYTRACING_GEOMETRY_FLAG_OPAQUE dell'enumerazione D3D12DDI_RAYTRACING_GEOMETRY_FLAGS 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 D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE. Questo flag si escludono a vicenda al flag D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE.
D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
L'istanza funzionerà come se il flag di D3D12DDI_RAYTRACING_GEOMETRY_FLAG_OPAQUE dell'enumerazione D3D12DDI_RAYTRACING_GEOMETRY_FLAGS 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 D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE. Questo flag è a vicenda esclusivo del flag D3D12DDI_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE.

Commenti

Questa enumerazione viene usata nella struttura D3D12DDI_RAYTRACING_INSTANCE_DESC_0054 per specificare un'opzione da applicare all'istanza.

Requisiti

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