rsq - vs
ソース スカラーの逆平方根 (正のみ) を計算します。
構文
rsq dst、src |
---|
where
- dst は宛先レジスタです。
- src はソース レジスタです。 ソース レジスタでは、レプリケート スウィズルを明示的に使用する必要があります。つまり、.x、.y、.z、.w swizzle コンポーネント (または 、.r、.g、.b、.a 相当物) のいずれかを指定する必要があります。
解説
頂点シェーダーのバージョン | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
rsq | x | x | x | x | x | x |
次のコード フラグメントは、実行された操作を示しています。
float f = abs(src0);
if (f == 0)
f = FLT_MAX
else
{
if (f != 1.0)
f = 1.0/(float)sqrt(f);
}
dest.z = dest.y = dest.z = dest.w = f;
絶対値は処理前に取得されます。
一般的な実装では仮数と指数が分離されるため、有効桁数は範囲 (1.0,4.0) に対する絶対誤差が少なくとも 1.0/(2²²) である必要があります。
source に添字がない場合は、x コンポーネントが使用されます。 入力が正確に 1.0 の場合、出力は正確に 1.0 である必要があります。 ソースが 0.0 の場合、無限大が得られます。
関連トピック