Partager via


Fonction TraceRay

Envoie un rayon dans une recherche d’accès dans une structure d’accélération.

Syntaxe

Cette définition de fonction intrinsèque est équivalente au modèle de fonction suivant :

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

Paramètres

AccelerationStructure

Structure d’accélération de niveau supérieur à utiliser. La spécification d’une structure d’accélération NULL force une absence.

RayFlags

Combinaison valide de valeurs ray_flag . Seuls les indicateurs de rayon définis sont propagés par le système, c’est-à-dire visibles par l’intrinsèque du nuanceur RayFlags .

InstanceInclusionMask

Entier non signé, dont les 8 bits inférieurs sont utilisés pour inclure ou rejeter des instances geometry basées sur instanceMask dans chaque instance. Par exemple :

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

RayContributionToHitGroupIndex

Entier non signé spécifiant le décalage à ajouter aux calculs d’adressage dans les tables de nuanceur pour l’indexation des groupes de résultats. Seuls les 4 bits inférieurs de cette valeur sont utilisés.

MultiplierForGeometryContributionToHitGroupIndex

Entier non signé spécifiant la foulée à multiplier par GeometryContributionToHitGroupIndex, qui est simplement l’index de base 0 que la géométrie a été fournie par l’application dans sa structure d’accélération de niveau inférieur. Seuls les 16 bits inférieurs de cette valeur multiplicateur sont utilisés.

MissShaderIndex

Entier non signé spécifiant l’index du nuanceur manquant dans une table de nuanceur.

Ray

RayDesc représentant le rayon à tracer.

Payload

Une charge utile de rayon définie par l’utilisateur a accédé à la fois pour l’entrée et la sortie par les nuanceurs appelés pendant le raytracing. Une fois TraceRay terminé, l’appelant peut également accéder à la charge utile.

Valeur renvoyée

void

Notes

Cette fonction peut être appelée à partir des types de nuanceurs de raytracing suivants :

Voir aussi

Référence HLSL Direct3D 12 Raytracing