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

 

另请参阅

内部函数

着色器模型 5