ps_1_1, ps_1_2, ps_1_3, ps_1_4

Der Pixelshader-Assembler besteht aus einer Reihe von Anweisungen, die mit in Registern enthaltenen Pixeldaten arbeiten. Vorgänge werden als Anweisungen ausgedrückt, die aus einem Operator und einem oder mehreren Operanden bestehen. Anweisungen verwenden Register zum Übertragen von Daten in und aus dem Pixelshader ALU. Register können auch von einigen Anweisungen verwendet werden, um temporäre Ergebnisse zu speichern.

Hinweis

DIE HLSL-Unterstützung für Pixelshader 1.x ist veraltet.

 

Anweisungen

Es gibt zwei Standard Kategorien von Pixelshaderanweisungen: arithmetische Anweisungen und Anweisungen zur Texturadressierung. Arithmetische Anweisungen ändern Farbdaten. Texturadressierungsvorgänge verarbeiten Texturkoordinatendaten und in den meisten Fällen stichprobenweise eine Textur. Pixelshaderanweisungen werden pro Pixel ausgeführt. Das heißt, sie haben keine Kenntnis von anderen Pixeln in der Pipeline.

Anweisungen zur Texturadressierung belegen jeweils einen Slot, aber arithmetische Anweisungen können gekoppelt werden, um sowohl Farbkomponenten (RGB) als auch eine Alphakomponentenanweisung in einem einzelnen Slot zu ermöglichen.

ps_1_1, ps_1_2, ps_1_3, ps_1_4 Anweisungen enthält eine Liste der verfügbaren Anweisungen.

Wenn Multisampling aktiviert ist, werden Pixelshader nur einmal pro Pixel ausgeführt, nicht einmal für jedes Subpixel. Multisampling erhöht nur die Auflösung von Polygonrändern sowie Tiefen- und Schablonentests. Wenn beispielsweise 3x3 Multisampling aktiviert ist und ein Dreieck, das gerastert wird, fünf der neun Subpixel für ein bestimmtes Pixel abdeckt, wird der Pixelshader einmal ausgeführt, und dasselbe Farbergebnis wird auf alle fünf Subpixel angewendet.

Register

ps_1_1__ps_1_2__ps_1_3__ps_1_4 Register listet die verschiedenen Register auf, die vom Shader ALU verwendet werden.

Zusatztasten

Modifizierer für ps_1_X können verwendet werden, um die Funktionalität einer Anweisung oder die Daten zu ändern, die aus einem Register gelesen oder in ein Register geschrieben werden.

Direct3D 9 erfordert Zwischenberechnungen, um mindestens 8-Bit-Genauigkeit für alle Oberflächenformate zu gewährleisten. Sowohl eine höhere Genauigkeit (12 Bit) für die In-Stage-Mathematik als auch die Sättigung auf 8 Bits zwischen Texturphasen werden empfohlen. Es werden keine änderbaren Rundungsmodi oder Ausnahmen unterstützt. Die Multiplikation sollte mit einer Rund-zu-Nächstgenauigkeit unterstützt werden, um den Genauigkeitsverlust auf ein Minimum zu beschränken.

Sampleranzahl

Die Anzahl der verfügbaren Textursammler lautet:

  • Für ps_1_0 – ps_1_3 ist der Höchstwert 4.
  • Für ps_1_4 ist der Höchstwert 6.

Pixelshader