Modifizierer für ps _ 2 _ 0 und höher
Anweisungsmodifizierer beeinflussen das Ergebnis der Anweisung, bevor sie in das Zielregister geschrieben wird.
Dieser Abschnitt enthält Referenzinformationen zu den Anweisungsmodifizierern, die von Pixel-Shader version 2 _ 0 und höher implementiert werden.
| Name | Syntax | 2 _ 0 | 2 _ x | 2 _ sw | 3 _ 0 | 3 _ sw |
|---|---|---|---|---|---|---|
| Schwerpunkt | _Schwerpunkt | x | x | x | x | x |
| Partielle _ Genauigkeit | _Pp | x | x | x | x | x |
| Sättigen | _Sat | x | x | x | x | x |
Schwerpunkt
Der Schwerpunktmodifizierer ist ein optionaler Modifizierer, der die Attributinterpolation innerhalb des Bereichs des Primitivs klammert, wenn ein Multisample-Pixelcenter nicht vom Primitiven abgedeckt wird. Dies ist unter Schwerpunktsstichproben zu sehen.
Sie können den Schwerpunktmodifizierer auf eine Assemblyanweisung anwenden, wie hier gezeigt:
dcl_texcoord0_centroid v0
Sie können den Schwerpunktmodifizierer auch auf eine Semantik anwenden, wie hier gezeigt:
float4 TexturePointCentroidPS( float4 TexCoord : TEXCOORD0_centroid ) : COLOR0
{
return tex2D( PointSampler, TexCoord );
}
Darüber hinaus wird für jedes Mit einer Farbsemantik deklarierte Eingabefarbregister (v) automatisch # ein Schwerpunkt angewendet. Farbverläufe, die aus Attributen berechnet werden, für die schwerpunktsyntierte Stichproben entnommen wurden, sind nicht garantiert genau.
Partielle Genauigkeit
Der Anweisungsmodifizierer für partielle Genauigkeit ( pp) gibt Bereiche an, in denen partielle Genauigkeit akzeptabel ist, vorausgesetzt, die zugrunde liegende _ Implementierung unterstützt sie. Implementierungen können den Modifizierer immer ignorieren und die betroffenen Vorgänge mit voller Genauigkeit ausführen.
Der _ pp-Modifizierer kann in zwei Kontexten auftreten:
- In einer Texturkoordinatendeklaration, um die Übergabe von Texturkoordinaten an den Pixels shader in Form von partieller Genauigkeit zu ermöglichen. Dies ermöglicht beispielsweise die Verwendung von Texturkoordinaten zum Weiterleiten von Farbdaten an den Pixel-Shader, die in einigen Implementierungen möglicherweise schneller mit teilweiser Genauigkeit als mit vollständiger Genauigkeit sind. Ohne diesen Modifizierer müssen Texturkoordinaten mit voller Genauigkeit übergeben werden.
- Für jede Anweisung, einschließlich Anweisungen zum Laden von Texturen. Dies gibt an, dass die Implementierung die Anweisung mit teilweiser Genauigkeit ausführen und ein Partielles Genauigkeitsergebnis speichern darf. Ohne expliziten Modifizierer muss die Anweisung mit voller Genauigkeit ausgeführt werden (unabhängig von der Eingabegenauigkeit).
Beispiele:
dcl_texcoord0_pp t1
cmp_pp r0, r1, r2, r3
Sättigung
Der Saturate-Anweisungsmodifizierer (sat) überträgt (oder klammert) das Anweisungsergebnis in den Bereich _ 0, 1, bevor er in das [ ] Zielregister schreibt.
Der Sat-Anweisungsmodifizierer kann mit jeder Anweisung außer _ frc - ps, sincos - psund allen tex-Anweisungen verwendet * werden.
Für ps 2 0, ps 2 x und ps 2 sw kann der Sat-Anweisungsmodifizierer nicht mit Anweisungen verwendet werden, die in Ausgaberegister schreiben ( Ausgabefarbregister oder _ _ _ _ _ _ _ Ausgabetiefenregister). Diese Einschränkung gilt nicht für ps _ 3 _ 0 und höher.
Beispiel:
dp3_sat r0, v0, c1