Freigeben über


D3D12_RAYTRACING_GEOMETRY_FLAGS-Enumeration (d3d12.h)

Gibt Flags für Raytracinggeometrie in einer D3D12_RAYTRACING_GEOMETRY_DESC-Struktur an.

Syntax

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

Konstanten

 
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE
Wert: 0
Es wurden keine Optionen angegeben.
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE
Wert: 0x1
Wenn Strahlen auf diese Geometrie stoßen, wirkt die Geometrie so, als sei kein Treffer-Shader vorhanden. Es wird empfohlen, dass Apps dieses Flag liberal verwenden, da es wichtige Rayverarbeitungsoptimierungen ermöglichen kann. Beachten Sie, dass dieses Verhalten auf instance Basis mit D3D12_RAYTRACING_INSTANCE_FLAGS und mit Rayflags in TraceRay überschrieben werden kann.
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION
Wert: 0x2
Standardmäßig ist das System frei, einen beliebigen Treffershader für eine bestimmte ray-primitive Schnittmenge mehrmals auszulösen. Diese Flexibilität trägt in bestimmten Fällen zur Verbesserung der Durchlaufeffizienz von Beschleunigungsstrukturen bei. Wenn die Beschleunigungsstruktur für instance intern mit begrenzungsenden Volumes implementiert wird, kann es für die Implementierung vorteilhaft sein, relativ lange Dreiecke in mehreren begrenzungsenden Feldern anstelle eines größeren einzelnen Felds zu speichern. Für einige Anwendungsanwendungsfälle ist es jedoch erforderlich, dass Schnittmengen höchstens einmal an den beliebigen Treffershader gemeldet werden. Dieses Flag ermöglicht diese Garantie für die angegebene Geometrie, möglicherweise mit einigen Auswirkungen auf die Leistung.

Dieses Flag gilt für alle Geometrietypen.

Anforderungen

Anforderung Wert
Header d3d12.h