Estructura de atributos de intersección
Estructura declarada en HLSL para representar atributos de acierto para la intersección de triángulos de función fija o el rectángulo de selección alineado con el eje para la intersección primitiva de procedimientos.
Intersección de triángulos de función fija
La siguiente estructura se declara en HLSL para representar atributos de acierto para la intersección de triángulos de función fija:
struct BuiltInTriangleIntersectionAttributes
{
float2 barycentrics;
};
Los sombreadores de aciertos y más cercanos invocados mediante la intersección de triángulos de función fija deben usar esta estructura para los atributos de acierto. Dados atributos a0, a1 y a2 para los 3 vértices de un triángulo, barycentrics.x es el peso de a1 y barycentrics.y es el peso de a2. Por ejemplo, la aplicación puede interpolar haciendo: a = a0 + barycentrics.x * (a1-a0) + barycentrics.y* (a2 – a0).
Cuadro de límite alineado con eje para la intersección primitiva de procedimientos
Cuando se usan cuadros de límite alineados con eje para la intersección con primitivos de procedimientos, se desencadena un sombreador de intersección. Ese sombreador proporciona una estructura de atributos de intersección definida por el usuario a la llamada ReportHit . Los sombreadores de aciertos y más cercanos enlazados en el mismo grupo de aciertos con este sombreador de intersección deben usar la misma estructura para los atributos de posicionamiento, incluso si no se hace referencia a los atributos. El tamaño máximo de la estructura de atributo es de 32 bytes, definido como D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES.