EvaluateAttributeSnapped 函数
在具有偏移量的像素质心处求值。
语法
numeric EvaluateAttributeSnapped(
in attrib numeric value,
in
int2 offset
);
参数
-
value [in]
-
类型: attrib numeric
输入值。
-
offset [in]
-
类型: int2
使用 16x16 网格距像素中心的 2D 偏移量。
备注
offset 参数的范围必须由以下字节代码定义。
仅使用像素偏移量的前两个分量的最小有效 4 位 (U、V) 。 从 4 位固定点到浮点的转换如下 (MSB...LSB) ,其中 MSB 既是分数的一部分,又决定符号:
- 1000 = -0.5f (-8 / 16)
- 1001 = -0.4375f (-7 / 16)
- 1010 = -0.375f (-6 / 16)
- 1011 = -0.3125f (-5 / 16)
- 1100 = -0.25f (-4 / 16)
- 1101 = -0.1875f (-3 / 16)
- 1110 = -0.125f (-2 / 16)
- 1111 = -0.0625f (-1 / 16)
- 0000 = 0.0f ( 0 /16)
- 0001 = 0.0625f ( 1 / 16)
- 0010 = 0.125f ( 2 / 16)
- 0011 = 0.1875f ( 3 / 16)
- 0100 = 0.25f ( 4 / 16)
- 0101 = 0.3125f ( 5 / 16)
- 0110 = 0.375f ( 6/16)
- 0111 = 0.4375f ( 7 / 16)
注意
像素的左边缘和上边缘包含在偏移量中;但是,不包括下边缘和右边缘。 将忽略 32 位整数 you 和 V 偏移值中的所有其他位。
实现可以采用着色器提供的偏移量,并通过执行以下计算, (28.4) 获取跨有效范围的 32 位固定点值:
iU = (iU<<28)>>28 // keep lowest 4 bits and sign extend, which yields [-8..7]
如果实现必须将偏移映射到浮点偏移量,它将执行以下计算:
fU = ((float)iU)/16
最小着色器模型
以下着色器模型中支持此函数。
着色器模型 | 支持 |
---|---|
着色器模型 5 及更高着色器模型 | 是 |
以下类型的着色器支持此函数:
顶点 | 外壳 | 域 | Geometry | 像素 | 计算 |
---|---|---|---|---|---|
x |
另请参阅