Freigeben über


Modifizierer für ps_2_0 und höher

Anweisungsmodifizierer wirken sich auf das Ergebnis der Anweisung aus, bevor sie in das Zielregister geschrieben wird.

Dieser Abschnitt enthält Referenzinformationen für die Anweisungsmodifizierer, die von Pixel-Shader Version 2_0 und höher implementiert werden.

Name Syntax 2_0 2_x 2_sw 3_0 3_sw
Centroid _Schwerpunkt x x x x x
Partial_Precision _PP x x x x x
Sättigung _saß x x x x x

 

Schwerpunkt

Der Schwerpunktmodifizierer ist ein optionaler Modifizierer, der die Attributinterpolation innerhalb des Grundtypbereichs einschränkt, wenn ein Multisample-Pixelzentrierung nicht vom Grundtyp abgedeckt wird. Dies ist in Centroid Samplingzu sehen.

Sie können den Centroid-Modifizierer wie hier gezeigt auf eine Assemblyanweisung anwenden:

dcl_texcoord0_centroid v0

Sie können den Centroid-Modifizierer auch auf eine Semantik anwenden, wie hier gezeigt:

float4 TexturePointCentroidPS( float4 TexCoord : TEXCOORD0_centroid ) : COLOR0
{
    return tex2D( PointSampler, TexCoord );
}

Darüber hinaus werden alle Eingabefarbregister (v#) deklariert, die mit einer Farbsemantik deklariert sind, automatisch Zentrierung angewendet. Farbverläufe, die aus Attributen berechnet werden, die zentriert sind, sind nicht garantiert genau.

Partielle Genauigkeit

Der Teilgenauigkeits-Anweisungsmodifizierer (_pp) gibt Bereiche an, in denen die teilweise Genauigkeit akzeptabel ist, vorausgesetzt, die zugrunde liegende Implementierung unterstützt sie. Implementierungen können den Modifizierer immer ignorieren und die betroffenen Vorgänge in voller Genauigkeit ausführen.

Der _pp Modifizierer kann in zwei Kontexten auftreten:

  • Aktivieren Sie in einer Texturkoordinatendeklaration das Übergeben von Texturkoordinaten an den Pixelshader in teilweiser Genauigkeit. Dies ermöglicht beispielsweise die Verwendung von Texturkoordinaten zum Weiterleiten von Farbdaten an den Pixelshader, was bei einigen Implementierungen schneller mit teilweiser Genauigkeit als mit voller Genauigkeit sein kann. Ohne diesen Modifizierer müssen Texturkoordinaten in voller Genauigkeit übergeben werden.
  • Anweisungen zum Laden von Texturen Dies weist darauf hin, dass die Implementierung die Anweisung mit teilweiser Genauigkeit ausführen und ein Teilgenauigkeitsergebnis speichern darf. Wenn kein expliziter Modifizierer vorhanden ist, muss die Anweisung mit voller Genauigkeit (unabhängig von der Eingabegenauigkeit) ausgeführt werden.

Beispiele:

dcl_texcoord0_pp t1
cmp_pp r0, r1, r2, r3

Sättigen

Der Sättigungs-Anweisungsmodifizierer (_sat) Sättigung (oder Klammern) des Anweisungsergebnisses für den Bereich [0, 1] vor dem Schreiben in das Zielregister.

Der _sat Anweisungsmodifizierer kann mit jeder Anweisung verwendet werden, außer frc - ps, sincos - psund alle Tex*-Anweisungen.

Für ps_2_0, ps_2_x und ps_2_sw kann der _sat Anweisungsmodifizierer nicht mit Anweisungen verwendet werden, die in alle Ausgaberegister geschrieben werden (Ausgabefarbregister oder Ausgabetiefe register). Diese Einschränkung gilt nicht für ps_3_0 und höher.

Beispiel:

dp3_sat r0, v0, c1

-Pixelshaderanweisungen