Dela via


D3DFVF

Flexibla hörnformatkonstanter, eller FVF-koder, används för att beskriva innehållet i hörn som interfolieras i en enda dataström som bearbetas av pipelinen med fast funktion.

Hörndataflaggor

Följande flaggor beskriver ett hörnformat. Information om hörnformat finns i FVF-koder för fast funktion (Direct3D 9).

#define Beskrivning Dataordning och typ
D3DFVF_DIFFUSE Hörnformatet innehåller en diffus färgkomponent. DWORD i ARGB-ordning. Se D3DCOLOR_ARGB.
D3DFVF_NORMAL Hörnformatet innehåller en hörnnormal vektor. Den här flaggan kan inte användas med flaggan D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Hörnformat som anges i punktstorlek. Den här storleken uttrycks i kamerautrymmesenheter för hörn som inte transformeras och tänds, och i enheter med enhetsutrymme för transformerade och upplysta hörn. flyta
D3DFVF_SPECULAR Hörnformatet innehåller en spektrulär färgkomponent. DWORD i ARGB-ordning. Se D3DCOLOR_ARGB.
D3DFVF_XYZ Hörnformatet innehåller positionen för ett otransformerat hörn. Den här flaggan kan inte användas med flaggan D3DFVF_XYZRHW. float, float, float.
D3DFVF_XYZRHW Hörnformatet innehåller positionen för ett transformerat hörn. Den här flaggan kan inte användas med flaggorna D3DFVF_XYZ eller D3DFVF_NORMAL. float, float, float, float.
D3DFVF_XYZB1 genom D3DFVF_XYZB5 Hörnformatet innehåller positionsdata och ett motsvarande antal viktningsvärden (beta) som ska användas för blandningsåtgärder för multimatrixhörn. För närvarande kan Direct3D blandas med upp till tre viktningsvärden och fyra blandningsmatriser. Mer information om hur du använder blandningsmatriser finns i Indexed Vertex Blending (Direct3D 9). 1, 2 eller 3 flyter. När D3DFVF_LASTBETA_UBYTE4 används behandlas den sista blandningsvikten som ett DWORD.
D3DFVF_XYZW Hörnformatet innehåller transformerade och klippta data (x, y, z, w). ProcessVertices anropar inte Urklipp, utan matar ut data i clip-koordinater. Den här konstanten är utformad för och kan endast användas med den programmerbara hörnpipelinen. float, float, float, float

 

Texturflaggor

Följande flaggor beskriver texturflaggor som används av pipelinen för fast funktion.

#define Beskrivning
D3DFVF_TEX0 - D3DFVF_TEX8 Antal strukturkoordinatuppsättningar för det här hörnet. De faktiska värdena för dessa flaggor är inte sekventiella.
D3DFVF_TEXCOORDSIZEN(coordIndex) Definiera en strukturkoordinatdatauppsättning. n anger dimensionen för strukturkoordinaterna. coordIndex anger strukturkoordinatindexnummer. Se D3DFVF_TEXCOORDSIZEN- och Strukturkoordinater och Struktursteg.

 

Maskera flaggor

Följande flaggor beskriver maskflaggor som används av pipelinen för fast funktion.

#define Beskrivning
D3DFVF_POSITION_MASK Maskera för positionsbitar.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Maskera värden för reserverade bitar i FVF. Använd inte.
D3DFVF_TEXCOUNT_MASK Maskeringsvärde för texturflagga bitar.

 

Diverse flaggor

Följande flaggor beskriver en mängd olika flaggor som används av pipelinen för fast funktion.

#define Beskrivning
D3DFVF_LASTBETA_D3DCOLOR Det sista betafältet i hörnpositionsdata kommer att vara av typen D3DCOLOR. Data i betafälten används med matrispalettens skalning för att ange matrisindex.
D3DFVF_LASTBETA_UBYTE4 Det sista betafältet i hörnpositionsdata kommer att vara av typen UBYTE4. Data i betafälten används med matrispalettens skalning för att ange matrisindex.
// Given the following vertex data definition: 
struct VERTEXPOSITION
{
   float pos[3];
   union 
   {
      float beta[5];
      struct
      {
         float weights[4];
         DWORD MatrixIndices;  // Used as UBYTEs
      }
   }
};

Med tanke på att FVF deklareras som: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Weight och MatrixIndices ingår i beta[5], där D3DFVF_LASTBETA_UBYTE4 säger att tolka det sista DWORD i beta[5] som typ UBYTE4.

D3DFVF_TEXCOUNT_SHIFT Antalet bitar som ett heltalsvärde ska flyttas med som identifierar antalet strukturkoordinater för ett hörn. Det här värdet kan användas enligt nedan.

              
              DWORD dwNumTextures = 1; Hörn har bara en uppsättning koordinater. 

Flytta värdet för användning när du skapar en kombination av // flexibelt hörnformat (FVF). dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

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

 

Exempel

I följande exempel visas andra vanliga flaggkombinationer.

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

Konstant information

Krav Värde
Rubrik d3d9types.h
Lägsta operativsystem Windows 98

 

Direct3D-konstanter

FVF-koder för fast funktion (Direct3D 9)

geometriblandning (Direct3D 9)