Freigeben über


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

 

Vertex-Shaderregister