Anweisungen im Vergleich _ zu 3 _ 0

Dieser Abschnitt enthält Referenzinformationen für die Vertex-Shaderversion 3 _ 0-Anweisungen.

Es gibt verschiedene Typen von Vertex-Shaderanweisungen, wie in der Tabelle gezeigt. Spalten auf der rechten Seite bedeuten Folgendes:

  • Anweisungsslots: Anzahl von Anweisungsslots, die von jeder Anweisung verwendet werden.
  • Setup: Nicht arithmetische Anweisungen. Jeder Shader muss über eine Versionsanweisung verfügen und die erste Anweisung sein.
  • Arithmetisch: Diese Anweisungen stellen die mathematischen Operationen in einem Shader zur Verfügung.
  • Textur: Diese Anweisungen unterstützen die Texturadressensuche.
  • Flow-Steuerelement: Mit diesen Anweisungen wird die Flusssteuerung hinzugefügt, z. B. Schleifen, Wiederholungen und if bool - vs... else... endif-Vergleiche.
  • Neu: Diese Anweisungen sind neu in dieser Version.

Instruktionssatz

Name BESCHREIBUNG Anweisungsslots Einrichten Arithmetik Struktur Flusssteuerung Neu
abs – vs Absoluter Wert 1 x
hinzufügen – im Vergleich zu Hinzufügen von zwei Vektoren 1 x
Break - vs Break out of a loop - vs... endloop – vs oder rep... endrep-Block 1 x
break _ comp – vs Bedingtes Ausbrechen einer Schleife im Vergleich zu... endloop – vs oder rep... endrep-Block mit einem Vergleich 3 x
Breakp im Vergleich zu Break out of a loop - vs... endloop – vs oder rep... endrep-Block basierend auf einem Prädikat 3 x
call – vs Aufrufen einer Unterroutine 2 x
callnz bool – vs Aufrufen einer Unterroutine, wenn ein boolescher Register nicht 0 (null) ist 3 x
callnz pred – vs Aufrufen einer Unterroutine, wenn ein Prädikatregister nicht 0 (null) ist 3 x
crs – im Vergleich zu Produktübergreifend 2 x
dcl _ usage input (sm1, sm2, sm3 – vs asm) Deklarieren von Eingabevertexregistern (siehe Register – im Vergleich zu _ 3 _ 0) 0 x
dcl _ samplerType (sm3 – vs asm) Deklarieren der Texturdimension für einen Sampler 0 x x
def – vs Definieren von Konstanten 0 x
defb – vs Deklarieren einer booleschen Konstante 0 x
defi – vs Deklarieren einer ganzzahligen Konstante 0 x
dp3 – vs Punktprodukt mit drei Komponenten 1 x
dp4 – vs Punktprodukt mit vier Komponenten 1 x
dst – vs Distance 1 x
else – vs Starten eines else-Blocks 1 x
endif – vs Beenden eines if bool - vs... else-Block 1 x
endloop – vs Ende einer Schleife – vs. Block 2 x
endrep – vs Ende eines Wiederholungsblocks 2 x
exp – vs Vollständige Genauigkeit 2x 1 x
exp – vs Teilweise Genauigkeit 2x 1 x
frc – vs Bruchkomponente 1 x
if bool – vs Begin an if bool - vs block (using a Boolean condition) 3 x
if _ comp - vs Beginnen eines if bool - vs-Blocks mit einem Vergleich 3 x
if pred – vs Begin an if bool - vs block with a predicate condition 3 x
label – im Vergleich zu Bezeichnung 0 x
lit – vs Berechnen der Beleuchtung 3 x
log – im Vergleich zu Protokoll mit vollständiger Genauigkeit₂(x) 1 x
logp – vs Protokoll mit partieller Genauigkeit₂(x) 1 x
-Schleife im Vergleich zu Loop 3 x
lrp – vs Lineare Interpolation 2 x
m3x2 – vs 3x2 multiplizieren 2 x
m3x3 – vs 3x3 Multiplikation 3 x
m3x4 – vs 3x4 Multiplikation 4 x
m4x3 – vs 4x3 multiplizieren 3 x
m4x4 – vs 4x4-Multiplikation 4 x
mad – vs Multiplizieren und Hinzufügen 1 x
max – vs Maximum 1 x
min – vs Minimum 1 x
mov – vs Move 1 x
mova im Vergleich zu Verschieben von Daten aus einem Gleitkommaregister in ein Ganzzahlregister 1 x
mul – vs Multiplizieren 1 x
nop – vs Keine Operation 1 x
nrm – vs Normalize 3 x
pow – vs xy 3 x
rcp – vergleicht Gegenseitige 1 x
rep – im Vergleich zu Repeat 3 x
ret – im Vergleich zu Ende einer Unterroutine 1 x
rsq – vs Reziproke Quadratwurzel 1 x
setp _ comp – vs Festlegen des Prädikatregisters 1 x
sge – im Vergleich zu Größer als oder gleich vergleicht 1 x
sgn – vs Signieren 3 x
sincos – vs Sinus und Kosinus 8 x
slt – vs Kleiner als vergleich 1 x
sub – vs Subtrahieren 1 x
texldl – vs Texturlast mit benutzerdefinierter Detailebene Siehe Hinweis 1 x x
Vs Version 0 x

Hinweise:

  • , wenn die Textur eine Cubemap ist, Slots = 5; andernfalls Slots = 2

Vertex-Shaderanweisungen