Condividi tramite


D3DFVF

Le costanti in formato vertice flessibile o FVF vengono usate per descrivere il contenuto dei vertici interleaved in un singolo flusso di dati che verrà elaborato dalla pipeline a funzione fissa.

Flag di dati dei vertici

I flag seguenti descrivono un formato di vertice. Per informazioni sui formati dei vertici, vedere Fixed Function FVF Codes (Direct3D 9).

#define Descrizione Ordine e tipo di dati
D3DFVF_DIFFUSE Il formato dei vertici include un componente di colore diffuso. DWORD nell'ordine ARGB. Vedere D3DCOLOR_ARGB.
D3DFVF_NORMAL Il formato vertice include un vettore normale dei vertici. Questo flag non può essere usato con il flag D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Formato vertice specificato nella dimensione del punto. Questa dimensione è espressa in unità di spazio della fotocamera per vertici che non vengono trasformati e illuminati e in unità di spazio dispositivo per vertici trasformati e illuminati. float
D3DFVF_SPECULAR Il formato vertice include un componente di colore speculare. DWORD nell'ordine ARGB. Vedere D3DCOLOR_ARGB.
D3DFVF_XYZ Il formato vertice include la posizione di un vertice non trasformato. Questo flag non può essere usato con il flag D3DFVF_XYZRHW. float, float, float.
D3DFVF_XYZRHW Il formato vertice include la posizione di un vertice trasformato. Questo flag non può essere usato con i flag D3DFVF_XYZ o D3DFVF_NORMAL. float, float, float, float.
D3DFVF_XYZB1 tramite D3DFVF_XYZB5 Il formato vertice contiene i dati di posizione e un numero corrispondente di valori di ponderazione (beta) da usare per le operazioni di fusione dei vertici multimatrix. Attualmente Direct3D può combinare fino a tre valori di ponderazione e quattro matrici di fusione. Per altre informazioni sull'uso delle matrici di fusione, vedere Blending vertice indicizzato (Direct3D 9). 1, 2 o 3 float. Quando si utilizza D3DFVF_LASTBETA_UBYTE4, l'ultimo peso di fusione viene considerato come DWORD.
D3DFVF_XYZW Il formato vertice contiene dati trasformati e ritagliati (x, y, z, w). ProcessVertices non richiama la clipper, ma restituisce i dati nelle coordinate clip. Questa costante è progettata per e può essere usata solo con la pipeline dei vertici programmabile. float, float, float, float

 

Flag trama

I flag seguenti descrivono i flag di trama usati dalla pipeline a funzione fissa.

#define Descrizione
D3DFVF_TEX0 - D3DFVF_TEX8 Numero di set di coordinate della trama per questo vertice. I valori effettivi per questi flag non sono sequenziali.
D3DFVF_TEXCOORDSIZEN(coordIndex) Definire un set di dati delle coordinate della trama. n indica la dimensione delle coordinate della trama. coordIndex indica il numero di indice della coordinata della trama. Vedi coordinate di D3DFVF_TEXCOORDSIZEN e trame e fasi trama.

 

Flag maschera

I flag seguenti descrivono i flag mask usati dalla pipeline a funzione fissa.

#define Descrizione
D3DFVF_POSITION_MASK Maschera per i bit di posizione.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Mascherare i valori per i bit riservati in FVF. Non usare.
D3DFVF_TEXCOUNT_MASK Valore della maschera per i bit dei flag di trama.

 

Bandiere varie

I flag seguenti descrivono un'ampia gamma di flag usati dalla pipeline a funzione fissa.

#define Descrizione
D3DFVF_LASTBETA_D3DCOLOR L'ultimo campo beta nei dati della posizione dei vertici sarà di tipo D3DCOLOR. I dati nei campi beta vengono usati con l'interfaccia della tavolozza matrice per specificare gli indici della matrice.
D3DFVF_LASTBETA_UBYTE4 L'ultimo campo beta nei dati della posizione dei vertici sarà di tipo UBYTE4. I dati nei campi beta vengono usati con l'interfaccia della tavolozza matrice per specificare gli indici della matrice.
// Given the following vertex data definition: 
struct VERTEXPOSITION
{
   float pos[3];
   union 
   {
      float beta[5];
      struct
      {
         float weights[4];
         DWORD MatrixIndices;  // Used as UBYTEs
      }
   }
};

Dato che il FVF è dichiarato come: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Weight e MatrixIndices sono inclusi nella beta[5], dove D3DFVF_LASTBETA_UBYTE4 dice di interpretare l'ultimo DWORD nella beta[5] come tipo UBYTE4.

D3DFVF_TEXCOUNT_SHIFT Numero di bit in base al quale spostare un valore intero che identifica il numero di coordinate di trama per un vertice. Questo valore può essere usato come illustrato di seguito.

              
              DWORD dwNumTextures = 1; Il vertice ha solo un set di coordinate.

Spostare il valore da usare durante la creazione di una combinazione FVF (Flexible Vertex Format). dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

// Now, create an FVF combination using the shifted value.

 

Esempio

Gli esempi seguenti illustrano altre combinazioni di flag comuni.

// 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 );

Informazioni costanti

Requisito Valore
Intestazione d3d9types.h
Sistema operativo minimo Windows 98

 

Costanti Direct3D

Codici FVF a funzione fissa (Direct3D 9)

Fusione geometrica (Direct3D 9)