次の方法で共有


rsq - vs

ソース スカラーの逆数の平方根 (正の値のみ) を計算します。

構文

rsq dst, src

この場合

  • dst はデスティネーション レジスタです。
  • src はソース レジスタです。ソース レジスタでは、複製スィズルを明示的に使う必要があります。つまり、.x、.y、.z、.w スィズル要素 (または同等の .r、.g、.b、.a) のうち 1 つだけを指定しなければなりません。

解説 

頂点シェーダーのバージョン 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/(222) 以内の誤差を持つものである必要があります。これは、通常の実装では仮数と指数が分離されるためです。

ソースに添字がない場合は、x 要素が使われます。入力が 1.0 の場合は、出力も 1.0 になる必要があります。0.0 のソースは無限大です。