Structure des attributs d’intersection
Structure déclarée en HLSL pour représenter des attributs d’accès pour l’intersection de triangle de fonction fixe ou le cadre englobant aligné sur l’axe pour l’intersection de la primitive procédurale.
Intersection de triangle de fonction fixe
La structure suivante est déclarée en HLSL pour représenter des attributs d’accès pour l’intersection de triangle de fonction fixe :
struct BuiltInTriangleIntersectionAttributes
{
float2 barycentrics;
};
Les nuanceurs atteints et les nuanceurs atteints les plus proches , appelés à l’aide d’une intersection de triangle à fonction fixe, doivent utiliser cette structure pour les attributs d’accès. Les attributs donnés a0, a1 et a2 pour les 3 vertex d’un triangle, barycentrics. x est le poids de a1 et barycentrics. y est le poids de a2. Par exemple, l’application peut interpoler en procédant comme suit : a = a0 + barycentrics. x * (a1-a0) + barycentrics. y * (a2 – a0).
Cadre englobant aligné sur l’axe pour l’intersection de la primitive procédurale
Lorsque les zones englobantes alignées sur l’axe sont utilisées pour l’intersection avec les primitives procédurales, un nuanceur d’intersection est déclenché. Ce nuanceur fournit une structure d’attribut d’intersection définie par l’utilisateur à l’appel ReportHit . Les nuanceurs d’atteinte et les nuanceurs atteints les plus proches dans le même groupe d’accès avec ce nuanceur d’intersection doivent utiliser la même structure pour les attributs de positionnement, même si les attributs ne sont pas référencés. La taille maximale de la structure des attributs est de 32 octets, définie comme _ _ _ taille d’attribut D3D12 RAYTRACING Max _ _ en _ octets.