Funzione TraceRay

Invia un raggio in una ricerca di colpi in una struttura di accelerazione.

Sintassi

Questa definizione di funzione intrinseca equivale al modello di funzione seguente:

Template<payload_t>
void TraceRay(RaytracingAccelerationStructure AccelerationStructure,
              uint RayFlags,
              uint InstanceInclusionMask,
              uint RayContributionToHitGroupIndex,
              uint MultiplierForGeometryContributionToHitGroupIndex,
              uint MissShaderIndex,
              RayDesc Ray,
              inout payload_t Payload);

Parametri

AccelerationStructure

Struttura di accelerazione di primo livello da usare. La specifica di una struttura di accelerazione NULL forza una mancata.

RayFlags

Combinazione valida di valori di ray_flag . Solo i flag di raggio definiti vengono propagati dal sistema, ovvero sono visibili all'intrinseco shader RayFlags .

InstanceInclusionMask

Intero senza segno, i 8 bit inferiori usati per includere o rifiutare istanze geometry in base a InstanceMask in ogni istanza. Ad esempio:

if(!((InstanceInclusionMask & InstanceMask) & 0xff)) { //ignore intersection }

RayContributionToHitGroupIndex

Intero senza segno che specifica l'offset da aggiungere ai calcoli di indirizzamento nelle tabelle shader per l'indicizzazione del gruppo di hit. Vengono usati solo i 4 bit inferiori di questo valore.

MultiplierForGeometryContributionToHitGroupIndex

Intero senza segno che specifica lo stride da moltiplicare per GeometryContributionToHitGroupIndex, che è solo l'indice basato su 0 fornito dall'app nella struttura di accelerazione a livello inferiore. Vengono usati solo i 16 bit inferiori di questo valore di moltiplicatore.

MissShaderIndex

Intero senza segno che specifica l'indice dello shader mancante all'interno di una tabella shader.

Ray

RayDesc che rappresenta il raggio da tracciare.

Payload

Un payload del raggio definito dall'utente ha eseguito l'accesso sia per l'input che per l'output da parte dei shader richiamati durante il raytracing. Al termine di TraceRay , il chiamante può accedere anche al payload.

Valore restituito

void

Commenti

Questa funzione può essere chiamata dai tipi di shader raytracing seguenti:

Vedi anche

Informazioni di riferimento su Direct3D 12 Raytracing HLSL