D3DFVF

Constantes de formato de vértice flexível, ou códigos FVF, são usadas para descrever o conteúdo de vértices intercalados em um único fluxo de dados que será processado pelo pipeline de função fixa.

Sinalizadores de dados de vértice

Os sinalizadores a seguir descrevem um formato de vértice. Para obter informações sobre formatos de vértice, consulte Códigos FVF de função fixa (Direct3D 9).

#define Descrição Ordem e tipo de dados
D3DFVF_DIFFUSE O formato de vértice inclui um componente de cor difusa. DWORD na ordem ARGB. Consulte D3DCOLOR_ARGB.
D3DFVF_NORMAL O formato de vértice inclui um vetor normal de vértice. Esse sinalizador não pode ser usado com o sinalizador D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Formato de vértice especificado no tamanho do ponto. Esse tamanho é expresso em unidades de espaço da câmera para vértices que não são transformados e acesos e em unidades de espaço do dispositivo para vértices transformados e iluminados. FLOAT
D3DFVF_SPECULAR O formato de vértice inclui um componente de cor especular. DWORD na ordem ARGB. Consulte D3DCOLOR_ARGB.
D3DFVF_XYZ O formato de vértice inclui a posição de um vértice nãotransformado. Esse sinalizador não pode ser usado com o sinalizador D3DFVF_XYZRHW. float, float, float.
D3DFVF_XYZRHW O formato de vértice inclui a posição de um vértice transformado. Esse sinalizador não pode ser usado com os sinalizadores D3DFVF_XYZ ou D3DFVF_NORMAL. float, float, float, float.
D3DFVF_XYZB1 por meio de D3DFVF_XYZB5 O formato de vértice contém dados de posição e um número correspondente de valores de ponderação (beta) a serem usados para operações de mesclagem de vértice multimatrix. Atualmente, o Direct3D pode se misturar com até três valores de ponderação e quatro matrizes de mesclagem. Para obter mais informações sobre como usar matrizes de mesclagem, consulte Indexed Vétex Blending (Direct3D 9). 1, 2 ou 3 floats. Quando D3DFVF_LASTBETA_UBYTE4 é usado, o último peso de mesclagem é tratado como um DWORD.
D3DFVF_XYZW O formato de vértice contém dados transformados e recortados (x, y, z, w). ProcessVertices não invoca o clipper, em vez de gerar dados em coordenadas de clipe. Essa constante foi projetada para e só pode ser usada com o pipeline de vértice programável. float, float, float, float

 

Sinalizadores de textura

Os sinalizadores a seguir descrevem os sinalizadores de textura usados pelo pipeline de função fixa.

#define Descrição
D3DFVF_TEX0 - D3DFVF_TEX8 Número de conjuntos de coordenadas de textura para esse vértice. Os valores reais desses sinalizadores não são sequenciais.
D3DFVF_TEXCOORDSIZEN(coordIndex) Defina um conjunto de dados de coordenadas de textura. n indica a dimensão das coordenadas de textura. coordIndex indica o número de índice da coordenada de textura. Confira coordenadas de D3DFVF_TEXCOORDSIZEN e Textura e Estágios de Textura.

 

Sinalizadores de máscara

Os sinalizadores a seguir descrevem os sinalizadores de máscara usados pelo pipeline de função fixa.

#define Descrição
D3DFVF_POSITION_MASK Mascarar para bits de posição.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Mascarar valores para bits reservados no FVF. Não use.
D3DFVF_TEXCOUNT_MASK Valor de máscara para bits de sinalizador de textura.

 

Sinalizadores diversos

Os sinalizadores a seguir descrevem uma variedade de sinalizadores usados pelo pipeline de função fixa.

#define Descrição
D3DFVF_LASTBETA_D3DCOLOR O último campo beta nos dados de posição do vértice será do tipo D3DCOLOR. Os dados nos campos beta são usados com a capa da paleta de matrizes para especificar índices de matriz.
D3DFVF_LASTBETA_UBYTE4 O último campo beta nos dados de posição do vértice será do tipo UBYTE4. Os dados nos campos beta são usados com a capa da paleta de matrizes 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 o FVF é declarado como: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Weight e MatrixIndices estão incluídos em beta[5], em que D3DFVF_LASTBETA_UBYTE4 diz interpretar o último DWORD em beta[5] como o tipo UBYTE4.

D3DFVF_TEXCOUNT_SHIFT O número de bits pelos quais deslocar um valor inteiro que identifica o número de coordenadas de textura para um vértice. Esse valor pode ser usado conforme mostrado abaixo.

              
              DWORD dwNumTextures = 1; O vértice tem apenas um conjunto de coordenadas.

Altere o valor para uso ao criar uma combinação de formato de vértice flexível (FVF). dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

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

 

Exemplos

Os exemplos a seguir mostram outras combinações de sinalizadores comuns.

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

Informações constantes

Requisito Valor
parâmetro d3d9types.h
Sistema operacional mínimo Windows 98

 

Constantes Direct3D

Códigos FVF de função fixa (Direct3D 9)

Combinação de geometria (Direct3D 9)