Freigeben über


Eingaberegister

Vertex-Shadereingaberegister.

Daten aus jedem Scheitelpunkt (mit einem oder mehreren Eingabevertexdatenströmen) werden in die Vertexeingaberegister geladen, bevor der Vertex-Shader ausgeführt wird. Die Eingaberegister bestehen aus 16 Vierkomponenten-Gleitkommavektoren, die als v0 bis v15 festgelegt sind. Diese Register sind schreibgeschützt. Ein Eingaberegister ist über eine Vertexdeklaration an Vertexdaten gebunden.

Die folgenden Registereigenschaften steuern, wie sich jedes Register verhält:

Eigentum Beschreibung
Name v[n] - n ist eine optionale Registernummer. 0 ist der verwendete Standardwert, wenn er weggelassen wird.
Zählen Maximal 16 Register, v0 - v15.
E/A-Berechtigungen Schreibgeschützt. Dieses Register kann nicht von der API oder innerhalb des Shaders geschrieben werden.
Lesen von Ports 1. Dies ist die Häufigkeit, mit der ein Register innerhalb einer einzigen Anweisung gelesen werden kann. Siehe unten.

 

Jede einzelne Anweisung kann nur auf ein Vertexeingaberegister zugreifen. Jede Quelle in der Anweisung kann jedoch unabhängig voneinander schwappen und diesen Vektor ablösen, wie er gelesen wird.

Beispiel

Nachfolgend sehen Sie ein Beispiel für die Verwendung einer Vertexdeklaration zum Binden von 2D-Vertexpositionsdaten zum Registrieren von v0.

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-Shader registriert