Delen via


D3DFVF

Flexibele vertex-indelingsconstanten, of FVF-codes, worden gebruikt om de inhoud van hoekpunten te beschrijven die in één gegevensstroom worden verwerkt door de pijplijn met vaste functies.

Hoekpuntgegevensvlagmen

De volgende vlaggen beschrijven een hoekpuntindeling. Zie FVF-codes voor vaste functie (Direct3D 9)voor meer informatie over hoekpuntindelingen.

#define Beschrijving Gegevensvolgorde en -type
D3DFVF_DIFFUSE Hoekpuntindeling bevat een diffuse kleurcomponent. DWORD in ARGB-volgorde. Zie D3DCOLOR_ARGB.
D3DFVF_NORMAL Hoekpuntindeling bevat een normale hoekpuntvector. Deze vlag kan niet worden gebruikt met de vlag D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Hoekpuntindeling opgegeven in puntgrootte. Deze grootte wordt uitgedrukt in cameraruimte-eenheden voor hoekpunten die niet worden getransformeerd en verlicht, en in apparaatruimte-eenheden voor getransformeerde en verlichte hoekpunten. drijven
D3DFVF_SPECULAR Hoekpuntindeling bevat een speculair kleurenonderdeel. DWORD in ARGB-volgorde. Zie D3DCOLOR_ARGB.
D3DFVF_XYZ De hoekpuntindeling bevat de positie van een niet-vertaald hoekpunt. Deze vlag kan niet worden gebruikt met de vlag D3DFVF_XYZRHW. float, float, float.
D3DFVF_XYZRHW Hoekpuntindeling bevat de positie van een getransformeerd hoekpunt. Deze vlag kan niet worden gebruikt met de D3DFVF_XYZ of D3DFVF_NORMAL vlaggen. float, float, float, float.
D3DFVF_XYZB1 via D3DFVF_XYZB5 Hoekpuntindeling bevat positiegegevens en een bijbehorend aantal wegingswaarden (bèta) dat moet worden gebruikt voor multimatrix-hoekpuntmixbewerkingen. Op dit moment kan Direct3D worden gecombineerd met maximaal drie wegingswaarden en vier matrices. Zie Indexed Vertex Blending (Direct3D 9)voor meer informatie over het gebruik van blending matrices. 1, 2 of 3 floats. Wanneer D3DFVF_LASTBETA_UBYTE4 wordt gebruikt, wordt het laatste mengselgewicht behandeld als een DWORD.
D3DFVF_XYZW Hoekpuntindeling bevat getransformeerde en geknipte gegevens (x, y, z, w). ProcessVertices roept de clipper niet aan, maar voert gegevens in clipcoördinaten uit. Deze constante is ontworpen voor en kan alleen worden gebruikt met de programmeerbare hoekpuntpijplijn. float, float, float, float

 

Patroonvlagmen

In de volgende vlaggen worden patroonvlagmen beschreven die worden gebruikt door de pijplijn met vaste functies.

#define Beschrijving
D3DFVF_TEX0 - D3DFVF_TEX8 Aantal bitmapcoördinaatsets voor dit hoekpunt. De werkelijke waarden voor deze vlaggen zijn niet opeenvolgend.
D3DFVF_TEXCOORDSIZEN(coordIndex) Definieer een gegevensset met bitmappatrooncoördinaat. n geeft de dimensie van de patrooncoördinaten aan. coordIndex geeft het indexnummer van de patrooncoördinaat aan. Zie D3DFVF_TEXCOORDSIZEN en texturecoördinaten en patroonfasen.

 

Maskervlagmen

In de volgende vlaggen worden maskervlagmen beschreven die worden gebruikt door de pijplijn met vaste functies.

#define Beschrijving
D3DFVF_POSITION_MASK Masker voor positie-bits.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Masker waarden voor gereserveerde bits in de FVF. Niet gebruiken.
D3DFVF_TEXCOUNT_MASK Maskerwaarde voor bitmapvlag-bits.

 

Diverse vlaggen

In de volgende vlaggen worden verschillende vlaggen beschreven die worden gebruikt door de pijplijn met vaste functies.

#define Beschrijving
D3DFVF_LASTBETA_D3DCOLOR Het laatste bètaveld in de hoekpuntpositiegegevens is van het type D3DCOLOR. De gegevens in de bètavelden worden gebruikt met matrixpalet skinning om matrixindexen op te geven.
D3DFVF_LASTBETA_UBYTE4 Het laatste bètaveld in de hoekpuntpositiegegevens is van het type UBYTE4. De gegevens in de bètavelden worden gebruikt met matrixpalet skinning om matrixindexen op te geven.
// Given the following vertex data definition: 
struct VERTEXPOSITION
{
   float pos[3];
   union 
   {
      float beta[5];
      struct
      {
         float weights[4];
         DWORD MatrixIndices;  // Used as UBYTEs
      }
   }
};

Aangezien de FVF wordt gedeclareerd als: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Gewicht en MatrixIndices zijn opgenomen in bèta[5], waarbij D3DFVF_LASTBETA_UBYTE4 zegt dat het laatste DWORD in bèta[5] als type UBYTE4 moet worden geïnterpreteerd.

D3DFVF_TEXCOUNT_SHIFT Het aantal bits waarmee een geheel getal moet worden verplaatst waarmee het aantal patrooncoördinaten voor een hoekpunt wordt aangegeven. Deze waarde kan worden gebruikt zoals hieronder wordt weergegeven.

              
              DWORD dwNumTextures = 1; Hoekpunt heeft slechts één set coördinaten. 

Verschuif de waarde die moet worden gebruikt bij het maken van een FVF-combinatie (Flexibele hoekpuntindeling). dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

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

 

Voorbeelden

In de volgende voorbeelden ziet u andere veelgebruikte vlagcombinaties.

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

Constante informatie

Eis Waarde
Rubriek d3d9types.h
Minimaal besturingssysteem Windows 98

 

Direct3D Constanten

FVF-codes voor vaste functie (Direct3D 9)

Geometry Blending (Direct3D 9)