D3DFVF

Las constantes flexibles de formato de vértices o los códigos FVF se usan para describir el contenido de los vértices intercalados en un único flujo de datos que la canalización de función fija procesará.

Marcas de datos de vértices

Las marcas siguientes describen un formato de vértice. Para obtener información sobre los formatos de vértice, vea Fixed Function FVF Codes (Direct3D 9).

#define Descripción Orden de datos y tipo
D3DFVF_DIFFUSE El formato de vértice incluye un componente de color difuso. DWORD en orden ARGB. Consulte D3DCOLOR_ARGB.
D3DFVF_NORMAL El formato de vértice incluye un vector normal de vértice. Esta marca no se puede usar con la marca D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Formato de vértice especificado en el tamaño de punto. Este tamaño se expresa en unidades de espacio de cámara para vértices que no se transforman y iluminan, y en unidades de espacio de dispositivo para vértices transformados e iluminados. FLOAT
D3DFVF_SPECULAR El formato de vértice incluye un componente de color especular. DWORD en orden ARGB. Consulte D3DCOLOR_ARGB.
D3DFVF_XYZ El formato de vértice incluye la posición de un vértice no transformado. Esta marca no se puede usar con la marca D3DFVF_XYZRHW. float, float, float.
D3DFVF_XYZRHW El formato de vértice incluye la posición de un vértice transformado. Esta marca no se puede usar con las marcas D3DFVF_XYZ o D3DFVF_NORMAL. float, float, float, float.
D3DFVF_XYZB1 a través de D3DFVF_XYZB5 El formato de vértice contiene datos de posición y un número correspondiente de valores de ponderación (beta) que se van a usar para las operaciones de fusión de vértices multimatrix. Actualmente, Direct3D puede combinarse con hasta tres valores de ponderación y cuatro matrices de mezcla. Para obtener más información sobre el uso de matrices de mezcla, vea Indexed Vertex Blending (Direct3D 9). 1, 2 o 3 flotadores. Cuando se usa D3DFVF_LASTBETA_UBYTE4, el último peso de mezcla se trata como DWORD.
D3DFVF_XYZW El formato de vértice contiene datos transformados y recortados (x, y, z, w). ProcessVertices no invoca el clipper, sino que genera datos en coordenadas de recorte. Esta constante está diseñada para, y solo se puede usar con la canalización de vértices programables. float, float, float, float

 

Marcas de textura

Las marcas siguientes describen las marcas de textura usadas por la canalización de función fija.

#define Descripción
D3DFVF_TEX0: D3DFVF_TEX8 Número de conjuntos de coordenadas de textura para este vértice. Los valores reales de estas marcas no son secuenciales.
D3DFVF_TEXCOORDSIZEN(coordIndex) Defina un conjunto de datos de coordenadas de textura. n indica la dimensión de las coordenadas de textura. coordIndex indica el número de índice de coordenadas de textura. Consulte D3DFVF_TEXCOORDSIZEN y coordenadas de textura y fases de textura.

 

Marcas de máscara

Las marcas siguientes describen las marcas de máscara usadas por la canalización de función fija.

#define Descripción
D3DFVF_POSITION_MASK Máscara para bits de posición.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Enmascara los valores de bits reservados en FVF. No debe usarse.
D3DFVF_TEXCOUNT_MASK Valor de máscara para bits de marca de textura.

 

Marcas varias

Las marcas siguientes describen una variedad de marcas usadas por la canalización de función fija.

#define Descripción
D3DFVF_LASTBETA_D3DCOLOR El último campo beta de los datos de posición de vértice será de tipo D3DCOLOR. Los datos de los campos beta se usan con la máscara de paleta de matrices para especificar índices de matriz.
D3DFVF_LASTBETA_UBYTE4 El último campo beta de los datos de posición de vértice será de tipo UBYTE4. Los datos de los campos beta se usan con la máscara de paleta de matrices para especificar índices de matriz.
// Given the following vertex data definition: 
struct VERTEXPOSITION
{
   float pos[3];
   union 
   {
      float beta[5];
      struct
      {
         float weights[4];
         DWORD MatrixIndices;  // Used as UBYTEs
      }
   }
};

Dado que el FVF se declara como: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Weight y MatrixIndices se incluyen en beta[5], donde D3DFVF_LASTBETA_UBYTE4 dice interpretar el último DWORD en beta[5] como tipo UBYTE4.

D3DFVF_TEXCOUNT_SHIFT Número de bits por el que se va a desplazar un valor entero que identifica el número de coordenadas de textura de un vértice. Este valor se puede usar como se muestra a continuación.

DWORD dwNumTextures = 1; El vértice solo tiene un conjunto de coordenadas.

Cambie el valor que se va a usar al crear una combinación de formato de vértice flexible (FVF). dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

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

 

Ejemplos

En los ejemplos siguientes se muestran otras combinaciones de marcas comunes.

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

Información constante

Requisito Value
Encabezado d3d9types.h
Sistema operativo mínimo Windows 98

 

Constantes de Direct3D

Códigos FVF de función fija (Direct3D 9)

Fusión de geometría (Direct3D 9)