DirectX 9: Vertex-Shader-Attribut Quelle
Frage
Das ist über DirectX 9.
Im typischen Fall mit Vertex-Shader-Rendering, gibt es ein oder mehr Strom in der Vorrichtung festgelegt Quellen, und das Format der Quellendatum definiert Vertex Erklärung verwendet wird.
Nun, wenn ein Vertex-Shader müssen einige Attribute verwendet wird (zum Beispiel ein mit D3DDECLUSAGE_NORMAL und UsageIndex 1 oder 2), aber Vertex Erklärung, hat zur Verfügung gestellt hat nicht das Attribut enthielt (dh. In Strom Quellen zur Verfügung gestellte Daten nicht umfasst das Attribut) und DrawPrimitive genannt wird, in dem DirectX-Wert für das Attribut bekommt?
Lösung
„Wenn die Daten in dem Scheitelpunkt Strom weniger Komponenten als der entsprechende Shader-Datentyp enthalten, werden die fehlenden Komponenten auf 0 initialisiert werden (mit Ausnahme von W, das auf 1 initialisiert wird).“
Genommen von "Windows DirectX Graphics Dokumentation (August 2009)"
Inhalt> HLSL> Programming Guide> Schreiben HLSL Shaders in Direct3D 9> Wechselnde Shader-Eingänge und Semantics
Andere Tipps
Die DirectX-9-Spezifikation "default" Werte für nicht deklarierte Attribute definiert, in der Regel (0,0,0,1). Entweder ist der Gerätetreiber oder GPU schafft sie.