交叉属性结构
在 HLSL 中声明的一个结构,表示固定函数三角形交集的命中属性,或用于过程基元交集的轴对齐边界框。
固定函数三角形交集
以下结构在 HLSL 中声明,表示固定函数三角形交集的命中属性:
struct BuiltInTriangleIntersectionAttributes
{
float2 barycentrics;
};
使用固定函数三角形交集调用的任何命中和最近命中着色器都必须将此结构用于命中属性。 给定三角形的 3 个顶点的属性 a0、a1 和 a2,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。