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