TraceRay-Funktion
Sendet einen Ray in eine Suche nach Treffern in einer Beschleunigungsstruktur.
Syntax
Diese definition von intrinsischen Funktionen entspricht der folgenden Funktionsvorlage:
Template<payload_t>
void TraceRay(RaytracingAccelerationStructure AccelerationStructure,
uint RayFlags,
uint InstanceInclusionMask,
uint RayContributionToHitGroupIndex,
uint MultiplierForGeometryContributionToHitGroupIndex,
uint MissShaderIndex,
RayDesc Ray,
inout payload_t Payload);
Parameter
AccelerationStructure
Die zu verwendende Beschleunigungsstruktur der obersten Ebene. Das Angeben einer NULL-Beschleunigungsstruktur erzwingt einen Fehler.
RayFlags
Gültige Kombination von ray_flag Werten. Nur definierte Rayflags werden vom System weitergegeben, d. h. sie sind für den intrinsischen RayFlags-Shader sichtbar.
InstanceInclusionMask
Eine ganze Zahl ohne Vorzeichen, von der die unteren 8 Bits zum Einschließen oder Ablehnen von Geometrieinstanzen basierend auf der InstanceMask in jedem instance verwendet werden. Beispiel:
if(!((InstanceInclusionMask & InstanceMask) & 0xff)) { //ignore intersection }
RayContributionToHitGroupIndex
Eine ganze Zahl ohne Vorzeichen, die den Offset angibt, der in Adressberechnungen in Shadertabellen für die Treffergruppenindizierung hinzugefügt werden soll. Es werden nur die unteren 4 Bits dieses Werts verwendet.
MultiplierForGeometryContributionToHitGroupIndex
Eine ganze Zahl ohne Vorzeichen, die den Schritt angibt, der mit GeometryContributionToHitGroupIndex multipliziert werden soll. Dabei handelt es sich nur um den 0-basierten Index, den die Geometrie von der App in ihrer Beschleunigungsstruktur der unteren Ebene bereitgestellt hat. Es werden nur die unteren 16 Bits dieses Multiplikatorwerts verwendet.
MissShaderIndex
Eine ganze Zahl ohne Vorzeichen, die den Index des Miss-Shaders in einer Shadertabelle angibt.
Ray
Ein RayDesc , der den zu verfolgenden Strahl darstellt.
Payload
Eine benutzerdefinierte Raynutzlast, auf die sowohl für die Eingabe als auch für die Ausgabe von Shadern zugegriffen wird, die während des Raytracings aufgerufen werden. Nach Abschluss von TraceRay kann der Aufrufer auch auf die Nutzlast zugreifen.
Rückgabewert
void
Bemerkungen
Diese Funktion kann von den folgenden Raytracing-Shadertypen aufgerufen werden:
Siehe auch