Share via


EvaluateAttributeSnapped 函式

以位移在圖元心評估。

語法

numeric EvaluateAttributeSnapped(
  in attrib numeric value,
  in 
            int2 offset
);

參數

value [in]

類型: attrib 數值

輸入值。

offset [in]

類型: int2

使用 16x16 格線從圖元中心進行 2D 位移。

備註

位移參數的範圍必須由下列位元組程式碼定義。

只會使用前兩個元件 (U 的最小有效 4 位,使用圖元位移的 V) 。 從 4 位固定點轉換成 float 的轉換如下 (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)

注意

圖元的左邊緣和上邊緣會包含在位移中;不過,不包含底部和右邊緣。 忽略您和 V 位移值之 32 位整數中的所有其他位。

 

實作可以採用著色器所提供的位移,並藉由執行下列計算,以取得完整的 32 位固定點值 (28.4) :

iU = (iU<<28)>>28  // keep lowest 4 bits and sign extend, which yields [-8..7]

如果實作必須將位移對應至浮點位移,它會執行下列計算:

fU = ((float)iU)/16

最小著色器模型

下列著色器模型中支援此函式。

著色器模型 支援
著色器模型 5 和更高的著色器模型

 

下列著色器類型支援此函式:

頂點 船體 網域 幾何形狀 像素 計算
x

 

另請參閱

內建函式

著色器模型 5