D3DFVF
Flexible Vertex-Formatkonstanten oder FVF-Codes werden verwendet, um den Inhalt von Scheitelpunkten zu beschreiben, die in einem einzelnen Datenstrom interleaviert werden, der von der Pipeline mit fester Funktion verarbeitet wird.
Vertexdatenkennzeichnungen
Die folgenden Flags beschreiben ein Vertexformat. Informationen zu Vertexformaten finden Sie unter 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 Vertexnormalvektor. Dieses Kennzeichen kann nicht mit dem D3DFVF_XYZRHW Flag verwendet werden. | float, float, float |
D3DFVF_PSIZE | Vertexformat 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. | schweben |
D3DFVF_SPECULAR | Das Vertexformat enthält eine glanzliche Farbkomponente. | DWORD in ARGB-Reihenfolge. Siehe D3DCOLOR_ARGB. |
D3DFVF_XYZ | Das Vertexformat enthält die Position eines untransformierten Scheitelpunkts. Dieses Kennzeichen kann nicht mit dem D3DFVF_XYZRHW Flag verwendet werden. | float, float, float. |
D3DFVF_XYZRHW | Das Vertexformat enthält die Position eines transformierten Scheitelpunkts. Dieses Kennzeichen kann nicht mit den 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 Vertexmischungsvorgänge mit mehreren Matrix verwendet werden sollen. Derzeit kann Direct3D bis zu drei Gewichtungswerte und vier Blendungsmatrizen kombinieren. Weitere Informationen zur Verwendung von Mischmatrizen finden Sie unter Indizierten Vertex-Blending (Direct3D 9). | 1, 2 oder 3 Floats. Wenn D3DFVF_LASTBETA_UBYTE4 verwendet wird, wird die letzte Mischgewichtung als DWORD behandelt. |
D3DFVF_XYZW | Das 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 ausgelegt und kann nur mit dieser verwendet werden. | float, float, float, float, float |
Texturkennzeichnungen
Die folgenden Flags beschreiben Texturkennzeichnungen, die von der Pipeline mit fester Funktion 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 einen Texturkoordinatendatensatz. n gibt die Dimension der Texturkoordinaten an. coordIndex gibt die Indexnummer der Texturkoordinate an. Siehe D3DFVF_TEXCOORDSIZEN und Texturkoordinaten und Texturphasen. |
Maskenkennzeichnungen
Die folgenden Flags beschreiben Maskenkennzeichnungen, die von der Pipeline mit fester Funktion verwendet werden.
#define | Beschreibung |
---|---|
D3DFVF_POSITION_MASK | Maske für Positionsbits. |
D3DFVF_RESERVED0, D3DFVF_RESERVED2 | Maskierungswerte für reservierte Bits im FVF. Nicht verwenden. |
D3DFVF_TEXCOUNT_MASK | Maskenwert für Texturkennzeichnungsbits. |
Verschiedene Kennzeichnungen
Die folgenden Flags beschreiben eine Vielzahl von Flags, die von der Pipeline mit fester Funktion 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 als: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Gewichtungs- und MatrixIndizes sind in beta[5] enthalten, wobei D3DFVF_LASTBETA_UBYTE4 sagt, das 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 weitere gängige Kennzeichenkombinationen.
// 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 );
Konstanteninformationen
Anforderung | Wert |
---|---|
Kopfball | d3d9types.h |
Mindestbetriebssystem | Windows 98 |
Verwandte Themen