Eingaberegister
Vertex-Shader-Eingaberegister.
Daten aus jedem Scheitelpunkt (unter Verwendung eines oder mehrerer Eingabevertexdatenströme) werden in die Vertexeingaberegister geladen, bevor der Vertex-Shader ausgeführt wird. Die Eingaberegister bestehen aus 16 Gleitkommavektoren mit vier Komponenten, die als v0 bis v15 bezeichnet werden. Diese Register sind schreibgeschützt. Ein Eingaberegister wird über eine Vertexdeklaration an Vertexdaten gebunden.
Die folgenden Registereigenschaften steuern das Verhalten der einzelnen Register:
Eigenschaft | BESCHREIBUNG |
---|---|
Name | v[n] – n ist eine optionale Registernummer. 0 ist der verwendete Standardwert, wenn er nicht angegeben wird. |
Anzahl | Maximal 16 Register, v0 - v15. |
E/A-Berechtigungen | Schreibgeschützt. Dieses Register kann nicht von der API oder innerhalb des Shaders geschrieben werden. |
Ports lesen | 1. Dies ist die Häufigkeit, mit der ein Register innerhalb einer einzelnen Anweisung gelesen werden kann. Siehe unten. |
Jede einzelne Anweisung kann nur auf ein Vertex-Eingaberegister zugreifen. Jede Quelle in der Anweisung kann diesen Vektor jedoch beim Lesen unabhängig voneinander verwerfen und negieren.
Beispiel
Hier sehen Sie ein Beispiel, das eine Vertexdeklaration verwendet, um 2D-Vertexpositionsdaten an die Registrierung von v0 zu binden.
Die Vertexdeklaration gehört in die Anwendung:
D3DVERTEXELEMENT9 decl[] =
{
{ 0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
D3DDECL_END()
};
Hier ist die entsprechende Vertex-Shaderdeklaration:
dcl_position v0
Vertex-Shaderversionen | 1_1 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|
Positionsregister | x | x | x | x | x | x |
Zugehörige Themen