rsq – vs
Berechnet die reziproke Quadratwurzel (nur positiv) des Quellskalars.
Syntax
| rsq dst, src |
|---|
where
- dst ist das Zielregister.
- src ist ein Quellregister. Das Quellregister erfordert die explizite Verwendung von "replicate swizzle", d.h. genau eine der .x-, .y-, .z-, .w swizzle-Komponenten (oder die Entsprechungen .r, .g, .b, .a) muss angegeben werden.
Hinweise
| Vertex-Shaderversionen | 1_1 | 2 _ 0 | 2 _ x | 2 _ sw | 3 _ 0 | 3 _ sw |
|---|---|---|---|---|---|---|
| rsq | x | x | x | x | x | x |
Das folgende Codefragment zeigt die ausgeführten Vorgänge.
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;
Der absolute Wert wird vor der Verarbeitung übernommen.
Die Genauigkeit sollte mindestens 1,0/(2): absoluter Fehler über dem Bereich (1,0, 4,0) sein, da allgemeine Implementierungen Mantisse und Exponent trennen.
Wenn source keine Unterskripts enthält, wird die x-Komponente verwendet. Die Ausgabe muss genau 1,0 sein, wenn die Eingabe genau 1,0 ist. Eine Quelle von 0,0 ergibt unendlich.