Partilhar via


D3DFVF

As 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 Vertex

Os sinalizadores a seguir descrevem um formato de vértice. Para obter informações sobre formatos de vértice, consulte Fixed Function FVF Codes (Direct3D 9).

#define Descrição Ordem e tipo de dados
D3DFVF_DIFFUSE O formato Vertex inclui um componente de cor difusa. DWORD na ordem ARGB. Ver D3DCOLOR_ARGB.
D3DFVF_NORMAL O formato de vértice inclui um vetor normal de vértice. Este sinalizador não pode ser usado com o sinalizador D3DFVF_XYZRHW. flutuar, flutuar, flutuar
D3DFVF_PSIZE Formato de vértice especificado no tamanho do ponto. Este tamanho é expresso em unidades de espaço de câmara para vértices que não são transformados e iluminados, e em unidades de espaço-dispositivo para vértices transformados e iluminados. flutuar
D3DFVF_SPECULAR O formato Vertex inclui um componente de cor especular. DWORD na ordem ARGB. Ver D3DCOLOR_ARGB.
D3DFVF_XYZ O formato de vértice inclui a posição de um vértice não transformado. Este sinalizador não pode ser usado com o sinalizador D3DFVF_XYZRHW. flutuar, flutuar, flutuar.
D3DFVF_XYZRHW O formato de vértice inclui a posição de um vértice transformado. Este sinalizador não pode ser usado com os D3DFVF_XYZ ou D3DFVF_NORMAL bandeiras. flutuar, flutuar, flutuar, flutuar.
D3DFVF_XYZB1 através D3DFVF_XYZB5 O formato Vertex contém dados de posição e um número correspondente de valores de ponderação (beta) a serem usados para operações de mistura de vértices multimatrizes. Atualmente, o Direct3D pode se misturar com até três valores de ponderação e quatro matrizes de mistura. Para obter mais informações sobre como usar matrizes de mistura, consulte Indexed Vertex Blending (Direct3D 9). 1, 2 ou 3 flutuadores. Quando D3DFVF_LASTBETA_UBYTE4 é utilizado, o último peso de mistura é tratado como um DWORD.
D3DFVF_XYZW O formato Vertex contém dados transformados e cortados (x, y, z, w). ProcessVertices não invoca o clipper, em vez disso, emite dados em coordenadas de clipe. Essa constante é projetada para, e só pode ser usada com, o pipeline de vértice programável. flutuar, flutuar, flutuar, flutuar

 

Sinalizadores de textura

Os sinalizadores a seguir descrevem 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 este vértice. Os valores reais para esses 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 do índice de coordenadas de textura. Consulte D3DFVF_TEXCOORDSIZEN e Coordenadas de textura e Estágios de textura.

 

Bandeiras de máscara

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

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

 

Bandeiras diversas

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 da posição do vértice será do tipo D3DCOLOR. Os dados nos campos beta são usados com o skinning da paleta de matriz para especificar índices de matriz.
D3DFVF_LASTBETA_UBYTE4 O último campo beta nos dados da posição do vértice será do tipo UBYTE4. Os dados nos campos beta são usados com o skinning da paleta de matriz 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], onde D3DFVF_LASTBETA_UBYTE4 diz para interpretar o último DWORD em beta[5] como tipo UBYTE4.

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

              
              DWORD dwNumTextures = 1; Vertex 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ção Constante

Exigência Valor
Cabeçalho d3d9types.h
Sistema operativo mínimo Janelas 98

 

constantes Direct3D

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

Mistura de geometria (Direct3D 9)