D3DFVF
Flexible Vertex-Formatkonstanten oder FVF-Codes werden verwendet, um den Inhalt von Scheitelpunkten zu beschreiben, die in einem einzelnen Datenstrom verschachtelt sind und von der Pipeline mit festen Funktionen verarbeitet werden.
Scheitelpunktdatenflags
Die folgenden Flags beschreiben ein Scheitelpunktformat. Informationen zu Vertexformaten finden Sie unter Fixed Function FVF Codes (Direct3D 9).
#define | BESCHREIBUNG | Datenreihenfolge und -typ |
---|---|---|
D3DFVF_DIFFUSE | Das Vertexformat enthält eine diffuse Farbkomponente. | DWORD in ARGB-Reihenfolge. Siehe D3DCOLOR_ARGB. |
D3DFVF_NORMAL | Das Vertexformat enthält einen Vertex-Normalvektor. Dieses Flag kann nicht mit dem D3DFVF_XYZRHW-Flag verwendet werden. | float, float, float, float |
D3DFVF_PSIZE | Scheitelpunktformat in Punktgröße angegeben. Diese Größe wird in Kameraraumeinheiten für Scheitelpunkte ausgedrückt, die nicht transformiert und beleuchtet werden, und in Geräteraumeinheiten für transformierte und beleuchtete Scheitelpunkte. | float |
D3DFVF_SPECULAR | Das Vertexformat enthält eine spiegelförmige Farbkomponente. | DWORD in ARGB-Reihenfolge. Siehe D3DCOLOR_ARGB. |
D3DFVF_XYZ | Das Vertexformat enthält die Position eines untransformierten Scheitelpunkts. Dieses Flag kann nicht mit dem D3DFVF_XYZRHW-Flag verwendet werden. | float, float, float. |
D3DFVF_XYZRHW | Das Vertexformat enthält die Position eines transformierten Scheitelpunkts. Dieses Flag kann nicht mit dem D3DFVF_XYZ- oder D3DFVF_NORMAL-Flags verwendet werden. | float, float, float, float, float. |
D3DFVF_XYZB1 bis D3DFVF_XYZB5 | Das Vertexformat enthält Positionsdaten und eine entsprechende Anzahl von Gewichtungswerten (Beta), die für Multimatrix-Vertex-Blending-Vorgänge verwendet werden sollen. Derzeit kann Direct3D mit bis zu drei Gewichtungswerten und vier Mischmatrizen kombiniert werden. Weitere Informationen zur Verwendung von Füllmatrizen finden Sie unter Indizierte Vertexmischung (Direct3D 9). | 1, 2 oder 3 Floats. Wenn D3DFVF_LASTBETA_UBYTE4 verwendet wird, wird die letzte Mischgewichtung als DWORD behandelt. |
D3DFVF_XYZW | Vertexformat enthält transformierte und abgeschnittene Daten (x, y, z, w). ProcessVertices ruft den Clipper nicht auf, sondern gibt Daten in Clipkoordinaten aus. Diese Konstante ist für die programmierbare Vertexpipeline konzipiert und kann nur mit verwendet werden. | float, float, float, float, float |
Texturflags
Die folgenden Flags beschreiben Texturflags, die von der Pipeline mit festen Funktionen verwendet werden.
#define | BESCHREIBUNG |
---|---|
D3DFVF_TEX0 – D3DFVF_TEX8 | Anzahl der Texturkoordinatensätze für diesen Scheitelpunkt. Die tatsächlichen Werte für diese Flags sind nicht sequenziell. |
D3DFVF_TEXCOORDSIZEN(coordIndex) | Definieren Sie ein Texturkoordinaten-Dataset. n gibt die Dimension der Texturkoordinaten an. coordIndex gibt die Indexnummer der Texturkoordinate an. Siehe D3DFVF_TEXCOORDSIZEN- und Texturkoordinaten und Texturphasen. |
Maskierungsflaggen
Die folgenden Flags beschreiben Maskenflags, die von der Pipeline mit festen Funktionen verwendet werden.
#define | BESCHREIBUNG |
---|---|
D3DFVF_POSITION_MASK | Maskierung für Positionsbits. |
D3DFVF_RESERVED0, D3DFVF_RESERVED2 | Maskieren Sie Werte für reservierte Bits in der FVF. Darf nicht verwendet werden. |
D3DFVF_TEXCOUNT_MASK | Maskierungswert für Texturflaggenbits. |
Sonstige Flags
Die folgenden Flags beschreiben eine Vielzahl von Flags, die von der Pipeline mit festen Funktionen verwendet werden.
#define | BESCHREIBUNG | |
D3DFVF_LASTBETA_D3DCOLOR | Das letzte Betafeld in den Vertexpositionsdaten ist vom Typ D3DCOLOR. Die Daten in den Betafeldern werden mit Matrixpaletten-Skinning verwendet, um Matrixindizes anzugeben. | |
D3DFVF_LASTBETA_UBYTE4 | Das letzte Betafeld in den Vertexpositionsdaten ist vom Typ UBYTE4. Die Daten in den Betafeldern werden mit Matrixpaletten-Skinning verwendet, um Matrixindizes anzugeben.
Da der FVF wie folgt deklariert ist: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Weight und MatrixIndices sind in beta[5] enthalten, wobei D3DFVF_LASTBETA_UBYTE4 angibt, die letzte DWORD in beta[5] als Typ UBYTE4 zu interpretieren. |
|
D3DFVF_TEXCOUNT_SHIFT | Die Anzahl der Bits, um die ein ganzzahliger Wert verschoben werden soll, der die Anzahl der Texturkoordinaten für einen Scheitelpunkt angibt. Dieser Wert kann wie unten dargestellt verwendet werden.
|
Beispiele
Die folgenden Beispiele zeigen andere gängige Flagkombinationen.
// Untransformed vertex for lit, untextured, Gouraud-shaded content.
dwFVF = ( D3DFVF_XYZ | D3DFVF_DIFFUSE );
// Untransformed vertex for unlit, untextured, Gouraud-shaded
// content with diffuse material color specified per vertex.
dwFVF = ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE );
// Untransformed vertex for light-map-based lighting.
dwFVF = ( D3DFVF_XYZ | D3DFVF_TEX2 );
// Transformed vertex for light-map-based lighting with shared rhw.
dwFVF = ( D3DFVF_XYZRHW | D3DFVF_TEX2 );
// Heavyweight vertex for unlit, colored content with two
// sets of texture coordinates.
dwFVF = ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE |
D3DFVF_SPECULAR | D3DFVF_TEX2 );
Konstante Informationen
Anforderung | Wert |
---|---|
Header | d3d9types.h |
Mindestbetriebssystem | Windows 98 |
Zugehörige Themen