Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |
Verwandte Themen