EvaluateAttributeSnapped 関数
オフセットを使用してピクセル重心で評価します。
構文
numeric EvaluateAttributeSnapped(
in attrib numeric value,
in
int2 offset
);
パラメーター
-
value [in]
-
型: attrib 数値
入力値。
-
offset [in]
-
型: int2
16x16 グリッドを使用したピクセルの中心からの 2D オフセット。
注釈
offset パラメーターの範囲は、次のバイト コードで定義する必要があります。
ピクセル オフセットの最初の 2 つのコンポーネント (U、V) の最下位 4 ビットのみが使用されます。 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)
注意
ピクセルの左端と上端はオフセットに含まれます。ただし、下端と右端は含まれません。 32 ビット整数の You オフセット値と V オフセット値内の他のすべてのビットは無視されます。
実装では、次の計算を実行することで、シェーダーによって提供されるオフセットを取得し、有効な範囲にまたがる完全な 32 ビット固定ポイント値 (28.4) を取得できます。
iU = (iU<<28)>>28 // keep lowest 4 bits and sign extend, which yields [-8..7]
実装でオフセットを浮動小数点オフセットにマップする必要がある場合は、次の計算を実行します。
fU = ((float)iU)/16
最小シェーダー モデル
この関数は、次のシェーダー モデルでサポートされています。
シェーダー モデル | サポートされています |
---|---|
シェーダー モデル 5 以降のシェーダー モデル | はい |
この関数は、次の種類のシェーダーでサポートされています。
Vertex | Hull | Domain | ジオメトリ | ピクセル | Compute |
---|---|---|---|---|---|
x |
こちらもご覧ください