交集属性结构

在 HLSL 中声明的结构,表示固定函数三角形交集的命中属性或过程基元交集的轴对齐边界框。

固定函数三角形交集

以下结构在 HLSL 中声明,表示固定函数三角形交集的命中属性:

struct BuiltInTriangleIntersectionAttributes
{
    float2 barycentrics;
};

使用固定函数三角形交集调用的任何命中着色器和最近的命中着色器都必须将此结构用于命中属性。 给定属性 a0、a1 和 a2 表示三角形的 3 个顶点,barycentrics.x 是 a1 的权重,而 barycentrics.y 是 a2 的权重。 例如,应用可以通过执行以下作进行内插:a = a0 + barycentrics.x * (a1-a0) + barycentrics.y* (a2 – a0)。

过程基元交集的轴对齐边界框

当轴对齐边界框用于与过程基元的交集时,将触发交集着色器。 该着色器为 ReportHit 调用提供用户定义的交集属性结构。 与此交集着色器在同一命中组中绑定的任何命中着色器和最近的命中着色器都必须对命中属性使用相同的结构,即使未引用这些属性。 最大属性结构大小为 32 字节,定义为 D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES