vs_3_0
Ein programmierbarer Vertex-Shader besteht aus einer Reihe von Anweisungen, die mit Vertexdaten arbeiten. Registriert die Übertragung von Daten in und aus dem ALU. Zusätzliches Steuerelement kann angewendet werden, um die Anweisung, die Ergebnisse oder die Daten zu ändern, die ausgeschrieben werden.
Die Vertex-Shaderversion vs_3_0 erweitert den von vs_2_x unterstützten Featuresatz. Jedes der Features in vs_2_X, für die eine Feststelltaste festgelegt werden muss, ist in vs_3_0 verfügbar, ohne dass die Kappe erforderlich ist.
- Anweisungen - vs_3_0 enthält eine Liste der verfügbaren Anweisungen.
- Register - vs_3_0 listet die verschiedenen Registertypen auf, die vom Vertexshader ALU verwendet werden.
- Vertex-Shader-Registermodifizierer werden verwendet, um die Funktionsweise einer Anweisung zu ändern.
- Vertexshader-Quellregistermodifizierer die Quellregisterdaten vor der Ausführung der Anweisung ändern.
- Source Register Swizzling bietet zusätzliche Kontrolle darüber, welche Registerkomponenten gelesen, kopiert oder geschrieben werden.
- Zielregistermaske bestimmt, welche Komponenten des Zielregisters geschrieben werden.
Neue Features
Neue Features der Vertex-Shaderversion vs_3_0 sind in den folgenden Abschnitten aufgeführt.
Indizierungsregister
In den früheren Shadermodellen konnte nur die Konstantenregisterbank indiziert werden. In diesem Modell können die folgenden Registerbanken mithilfe des Schleifenzählerregisters (aL) indiziert werden:
- Eingaberegister (v#)
- Ausgaberegister (o#)
Vertextexttexturen
Dieses Shadermodell unterstützt die Textursuche im Vertex-Shader mithilfe von Texldl. Das Vertexmodul verfügt über vier Textur-Samplerphasen (die sich von dem Verdrängungszuordnungs-Sampler und den Textursamplern im Pixelmodul unterscheiden), die zum Beispiel für Texturen verwendet werden können, die in diesen Phasen festgelegt werden. Siehe Vertextexttexturen in vs_3_0 (DirectX HLSL).
Vertexdatenstromhäufigkeit
Mit diesem Feature kann eine Teilmenge der Eingaberegister mit einer anderen Rate als einmal pro Scheitelpunkt initialisiert werden. Siehe Zeichnen nicht indizierte Geometrie.
Shaderausgabe
Ähnlich wie vs_2_0 kann die Ausgabe des Shaders mit der statischen Flusssteuerung variieren. Achten Sie bei dynamischer Verzweigung darauf, da dies dazu führen kann, dass Shaderausgaben pro Scheitelpunkt variieren. Dies führt zu unvorhersehbaren Ergebnissen auf unterschiedlicher Hardware.
Dynamische Flusssteuerung
Alle Anweisungen zur dynamischen Flusssteuerung werden unterstützt. Der maximal zulässige Schachtelungstiefewert beträgt 24. (Weitere Informationen finden Sie unter Schachtelungsgrenzwerte für Flusssteuerungen.)
Temporäre Register
Insgesamt werden 32 temporäre Register (r#) unterstützt.
Statische Flusssteuerung
Die maximale Schachtelungstiefe für Schleife ( vs/Rep - vs ist 4. Die maximale Schachtelungstiefe für Anruf - vs/callnz bool - vs/callnz pred - vs ist 4. Für , wenn bool - vsist der maximal zulässige Schachtelungstiefewert 24. (Weitere Informationen finden Sie unter Schachtelungsgrenzwerte für Flusssteuerungen.)
Aussage
Anweisungsvorgabe wird unterstützt. Verwenden Sie setp_comp - vs, um das Prädikatregister festzulegen.
Anzahl der Anweisungen
Jeder Vertex-Shader ist von 512 bis zur Anzahl der Slots in MaxVertexShader30InstructionSlots in D3DCAPS9zulässig. Die Anzahl der Anweisungen kann aufgrund der Schleifen-/Rep-Unterstützung viel höher sein; Dies wird jedoch von MaxVShaderInstructionsExecuted in D3DCAPS9 begrenzt, das mindestens 0xFFFF sein sollte.
Gerätekappen
Wenn Vertex-Shader 3_0 unterstützt wird, werden die folgenden Großbuchstaben in der Hardware unterstützt (mindestens):
Mütze | Fähigkeit |
---|---|
Shaderkappen |
|
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom | 8K |
VertexShaderVersion | 3_0 |
MaxVertexShaderConst | 256 |
MaxVertexShader30InstructionSlots | 512 |
Nebelunterstützung | D3DPRASTERCAPS_FOGVERTEX |
VertexTextureFilterCaps | |
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET | Vertexelemente in einer Vertexdeklaration können denselben Datenstromversatz gemeinsam nutzen. |
Vertexformate |
|
Verwandte Themen