Partager via


D3DFVF

Les constantes de format de vertex flexibles ou les codes FVF permettent de décrire le contenu des sommets entrelacés dans un seul flux de données qui sera traité par le pipeline de 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 codes FVF de fonction fixe (Direct3D 9).

#define Description Ordre et type de 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 normal de vertex. Cet indicateur ne peut pas être utilisé avec l’indicateur D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Format de vertex spécifié en taille de point. Cette taille est exprimée en unités d’espace de caméra pour les sommets qui ne sont pas transformés et allumés, et dans les unités d’espace d’appareil pour les sommets transformés et allumés. flotter
D3DFVF_SPECULAR Le format de vertex inclut 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 vertex nontransformé. 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 fusionner 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 vertex 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 presse-papiers, 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 de fonction fixe.

#define Description
D3DFVF_TEX0 - D3DFVF_TEX8 Nombre d’ensembles de coordonnées de texture pour ce sommet. 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 D3DFVF_TEXCOORDSIZEN et coordonnées de texture et étapes de texture.

 

Indicateurs de masque

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

#define Description
D3DFVF_POSITION_MASK Masque pour les bits de position.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Masquez les valeurs des bits réservés dans la FVF. N’utilisez pas.
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 de fonction fixe.

#define Description
D3DFVF_LASTBETA_D3DCOLOR Le dernier champ bêta des 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 la FVF est déclarée comme suit : D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Weight and MatrixIndices sont inclus dans la version bêta[5], où D3DFVF_LASTBETA_UBYTE4 indique d’interpréter le dernier DWORD en 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 ; Vertex n’a qu’un seul ensemble de coordonnées. 

Déplacez 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 montrent 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

Exigence 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)