D3DFVF

Les constantes de format de vertex flexibles, ou codes FVF, sont utilisées pour décrire le contenu des sommets entrelacés dans un seul flux de données qui sera traité par le pipeline à fonction fixe.

Indicateurs de données de vertex

Les indicateurs suivants décrivent un format de vertex. Pour plus d’informations sur les formats de vertex, consultez Fixed Function FVF Codes (Direct3D 9).

#define Description Ordre et type des données
D3DFVF_DIFFUSE Le format de vertex inclut un composant de couleur diffuse. DWORD dans l’ordre ARGB. Voir D3DCOLOR_ARGB.
D3DFVF_NORMAL Le format de vertex inclut un vecteur de vertex normal. Cet indicateur ne peut pas être utilisé avec l’indicateur D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Format de vertex spécifié dans la taille du point. Cette taille est exprimée en unités d’espace de caméra pour les sommets qui ne sont pas transformés et éclairés, et dans les unités d’espace d’appareil pour les sommets transformés et éclairés. float
D3DFVF_SPECULAR Le format de vertex comprend un composant de couleur spéculaire. DWORD dans l’ordre ARGB. Voir D3DCOLOR_ARGB.
D3DFVF_XYZ Le format de vertex inclut la position d’un sommet non transformé. Cet indicateur ne peut pas être utilisé avec l’indicateur D3DFVF_XYZRHW. float, float, float.
D3DFVF_XYZRHW Le format de vertex inclut la position d’un sommet transformé. Cet indicateur ne peut pas être utilisé avec les indicateurs D3DFVF_XYZ ou D3DFVF_NORMAL. float, float, float, float.
D3DFVF_XYZB1 via D3DFVF_XYZB5 Le format de vertex contient des données de position et un nombre correspondant de valeurs de pondération (bêta) à utiliser pour les opérations de fusion de vertex multimatrix. Actuellement, Direct3D peut se mélanger avec jusqu’à trois valeurs de pondération et quatre matrices de fusion. Pour plus d’informations sur l’utilisation de matrices de fusion, consultez Fusion de sommets indexés (Direct3D 9). 1, 2 ou 3 flotteurs. Lorsque D3DFVF_LASTBETA_UBYTE4 est utilisé, le dernier poids de fusion est traité comme un DWORD.
D3DFVF_XYZW Le format de vertex contient des données transformées et clippées (x, y, z, w). ProcessVertices n’appelle pas le clipper, au lieu de sortir les données dans les coordonnées de clip. Cette constante est conçue pour, et ne peut être utilisée qu’avec, le pipeline de vertex programmable. float, float, float, float

 

Indicateurs de texture

Les indicateurs suivants décrivent les indicateurs de texture utilisés par le pipeline à fonction fixe.

#define Description
D3DFVF_TEX0 - D3DFVF_TEX8 Nombre d’ensembles de coordonnées de texture pour ce vertex. Les valeurs réelles de ces indicateurs ne sont pas séquentielles.
D3DFVF_TEXCOORDSIZEN(coordIndex) Définissez un jeu de données de coordonnées de texture. n indique la dimension des coordonnées de texture. coordIndex indique le numéro d’index de coordonnées de texture. Consultez coordonnées D3DFVF_TEXCOORDSIZEN et texture et Étapes de texture.

 

Indicateurs de masque

Les indicateurs suivants décrivent les indicateurs de masque utilisés par le pipeline à fonction fixe.

#define Description
D3DFVF_POSITION_MASK Masque pour les bits de position.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Valeurs de masque pour les bits réservés dans le FVF. Ne pas utiliser.
D3DFVF_TEXCOUNT_MASK Valeur de masque pour les bits d’indicateur de texture.

 

Indicateurs divers

Les indicateurs suivants décrivent une variété d’indicateurs utilisés par le pipeline à fonction fixe.

#define Description
D3DFVF_LASTBETA_D3DCOLOR Le dernier champ bêta dans les données de position de vertex sera de type D3DCOLOR. Les données des champs bêta sont utilisées avec l’apparence de la palette de matrices pour spécifier des index de matrice.
D3DFVF_LASTBETA_UBYTE4 Le dernier champ bêta dans les données de position de vertex sera de type UBYTE4. Les données des champs bêta sont utilisées avec l’apparence de la palette de matrices pour spécifier des index de 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
      }
   }
};

Étant donné que le FVF est déclaré comme suit : D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Weight et MatrixIndices sont inclus dans beta[5], où D3DFVF_LASTBETA_UBYTE4 dit d’interpréter le dernier DWORD de la version bêta[5] comme type UBYTE4.

D3DFVF_TEXCOUNT_SHIFT Nombre de bits par lesquels déplacer une valeur entière qui identifie le nombre de coordonnées de texture pour un sommet. Cette valeur peut être utilisée comme indiqué ci-dessous.

DWORD dwNumTextures = 1 ; Le vertex n’a qu’un seul ensemble de coordonnées.

Modifiez la valeur à utiliser lors de la création d’une combinaison de format de vertex flexible (FVF). dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT ;

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

 

Exemples

Les exemples suivants illustrent d’autres combinaisons d’indicateurs courantes.

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

Informations constantes

Condition requise Valeur
En-tête d3d9types.h
Système d’exploitation minimal Windows 98

 

Constantes Direct3D

Codes FVF de fonction fixe (Direct3D 9)

Fusion géométrique (Direct3D 9)