ps _ 3 _ 0-Anweisungen

Dieser Abschnitt enthält Referenzinformationen für die Anweisungen in Version 3 0 des _ Pixelshader.

Es gibt mehrere Arten von Pixelshaderanweisungen, wie in der Tabelle gezeigt. Spalten auf der rechten Seite bedeuten Folgendes:

  • Anweisungsslots: Anzahl von Anweisungsslots, die von jeder Anweisung verwendet werden.
  • Setup: Ein Pixelshader muss über eine Versionsanweisung verfügen und muss die erste Anweisung sein.
  • Arithmetisch: Diese Anweisungen stellen die mathematischen Operationen in einem Shader bereit.
  • Textur: Diese Anweisungen werden verwendet, um Texturdaten zu laden und zu probieren sowie Texturkoordinaten zu ändern.
  • Flow-Steuerelement: Diese Anweisungen stellen eine statische und dynamische Ablaufsteuerung für die Ausführung von Anweisungen bereit.
  • Neu: Diese Anweisungen sind für diese Version neu.

Instruktionssatz

Name BESCHREIBUNG Anweisungsslots Setup Arithmetik Struktur Flusssteuerung Neu
abs – ps Absoluter Wert 1 x
add – ps Hinzufügen von zwei Vektoren 1 x
break – ps Break out of a loop... endloop oder rep... endrep-Block 1 x
break _ comp - ps Bedingtes Unterbrechen einer Schleife... endloop oder rep... endrep-Block mit einem Vergleich 3 x
breakp – ps break out of a loop... endloop oder rep... endrep-Block basierend auf einem Prädikat 3 x
call - ps Aufrufen einer Unterroutine 2 x
callnz bool – ps Aufrufen einer Unterroutine, wenn ein boolescher Register nicht 0 (null) ist 3 x
callnz pred – ps Aufrufen einer Unterroutine, wenn ein Prädikatregister nicht 0 (null) ist 3 x
cmp – ps Vergleichen der Quelle mit 0 1 x
crs - ps Produktübergreifend 2 x
dcl _ samplerType (sm2, sm3 – ps asm) Deklarieren der Texturdimension für einen Sampler 0 x
_dcl-Semantik (sm3 – ps asm) Deklarieren von Eingabe- und Ausgaberegistern 0 x x
def - ps Definieren von Konstanten 0 x
defb – ps Definieren einer booleschen Konstante 0 x
defi – ps Definieren einer ganzzahligen Konstante 0 x
dp2add – ps 2D-Punktprodukt und Hinzufügen 2 x
dp3 – ps 3D-Punktprodukt 1 x
dp4 – ps 4D-Punktprodukt 1 x
dsx – ps Änderungsrate in x-Richtung 2 x
dsy – ps Änderungsrate in y-Richtung 2 x
else - ps Starten eines else-Blocks 1 x
endif – ps Beenden Sie eine if... else-Block 1 x
endloop – ps Beenden einer Schleife 2 x x
endrep – ps Ende eines Wiederholungsblocks 2 x
exp – ps Vollständige Genauigkeit 2x 1 x
frc – ps Fractional-Komponente 1 x
if bool - ps Starten eines if-Blocks 3 x
if _ comp - ps Starten eines if-Blocks mit einem Vergleich 3 x
if pred - ps Starten eines if-Blocks mit Prädikation 3 x
label – ps Bezeichnung 0 x
log – ps Protokoll mit vollständiger Genauigkeit₂(x) 1 x
loop – ps Loop 3 x x
lrp – ps Lineare Interpolation 2 x
m3x2 – ps 3x2 Multiplikation 2 x
m3x3 – ps 3x3 multiplizieren 3 x
m3x4 – ps Multiplizieren von 3 x 4 4 x
m4x3 – ps Multiplizieren von 4 x 3 3 x
m4x4 – ps 4x4 multiplizieren 4 x
mad - ps Multiplizieren und Hinzufügen 1 x
max – ps Maximum 1 x
min – ps Minimum 1 x
mov – ps Move 1 x
mul - ps Multiplizieren 1 x
nop – ps Keine Operation 1 x
nrm - ps Normalize 3 x
pow – ps xy 3 x
ps Version 0 x
rcp – ps Gegenseitige 1 x
rep – ps Repeat 3 x
ret - ps Ende einer Unterroutine 1 x
rsq - ps Reziproke Quadratwurzel 1 x
setp _ comp Festlegen des Prädikatregisters 1 x
sincos – ps Sinus und Kosinus 8 x
sub – ps Subtrahieren 1 x
texkill - ps Rendern von Pixeln zum Kill 2 x
texld – ps _ 2 _ 0 und mehr Beispiel für eine Textur Siehe Hinweis 1. x
texldb – ps Textursampling mit Detailgenauigkeitsvoreingenommenheit von w-component 6 x
texldl - ps Textursampling mit Detailebene aus w-component Siehe Hinweis 2 x x
texldd – ps Textursampling mit vom Benutzer bereitgestellten Farbverläufen 3 x
texldp – ps Textursampling mit projektiver Division durch w-Komponente Siehe Hinweis 3 x

Hinweise:

  1. Wenn es sich bei der Textur um eine Cubemap handelt, sind Slots = 4; andernfalls Slots = 1.
  2. Wenn es sich bei der Textur um eine Cubemap handelt, sind Slots = 5; andernfalls slots = 2.
  3. Wenn es sich bei der Textur um eine Cubemap handelt, sind Slots = 4; andernfalls slots = 3.

Pixelshaderanweisungen