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 |
另請參閱