D3D12_RAYTRACING_INSTANCE_FLAGS-Enumeration (d3d12.h)

Flags für eine Raytracing-Beschleunigungsstruktur instance. Diese Flags können verwendet werden, um D3D12_RAYTRACING_GEOMETRY_FLAGS für einzelne Instanzen zu überschreiben.

Syntax

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
} ;

Konstanten

 
D3D12_RAYTRACING_INSTANCE_FLAG_NONE
Wert: 0
Es wurden keine Optionen angegeben.
D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE
Wert: 0x1
Deaktiviert front/back face culling für diese instance. Die Ray-Flags RAY_FLAG_CULL_BACK_FACING_TRIANGLES und RAY_FLAG_CULL_FRONT_FACING_TRIANGLES haben keine Auswirkungen auf diese instance.
D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE
Wert: 0x2
Dieses Flag kehrt die Front- und Rückseite um, was nützlich ist, wenn sich die natürliche Wickelreihenfolge der Anwendung von der Standardeinstellung unterscheidet. Standardmäßig ist ein Dreieck nach vorne ausgerichtet, wenn seine Scheitelpunkte vom Strahlenursprung im Uhrzeigersinn und umgekehrt erscheinen, wenn seine Scheitelpunkte vom Strahlenursprung im Objektraum in einem linkshändigen Koordinatensystem gegen den Uhrzeigersinn erscheinen.

Da diese Wickelrichtungsregeln im Objektraum definiert sind, sind sie von instance Transformationen nicht betroffen. Beispielsweise ändert eine instance Transformationsmatrix mit negativer Determinante (z. B. spiegelung einer Geometrie) die Seitenlage der Dreiecke innerhalb des instance nicht. In D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC definierte Geometrietransformationen werden dagegen mit den zugeordneten Vertexdaten im Objektraum kombiniert, sodass eine negative Determinantenmatrix dort dreiecksgedreht wird.
D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE
Wert: 0x4
Die instance verhält sich so, als ob D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE für alle Geometrien in der Beschleunigungsstruktur der unteren Ebene angegeben worden wäre, auf die vom instance verwiesen wird. Beachten Sie, dass dieses Verhalten durch das Ray-Flag RAY_FLAG_FORCE_NON_OPAQUE überschrieben werden kann.

Dieses Flag schließt sich gegenseitig für das D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE-Flag aus.
D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
Wert: 0x8
Die instance verhält sich so, als ob D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE für keine der Geometrien in der Beschleunigungsstruktur der unteren Ebene angegeben worden wäre, auf die vom instance verwiesen wird. Beachten Sie, dass dieses Verhalten durch das Ray-Flag RAY_FLAG_FORCE_OPAQUE überschrieben werden kann.

Dieses Flag schließt sich gegenseitig vom D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE-Flag aus.

Anforderungen

Anforderung Wert
Header d3d12.h