Megosztás a következőn keresztül:


D3DFVF

A rugalmas csúcsformázási állandók vagy FVF-kódok a rögzített függvényfolyamat által feldolgozandó egyetlen adatfolyamban lévő csúcspontok tartalmának leírására szolgálnak.

Csúcs adatjelzők

Az alábbi jelzők egy csúcsformátumot írnak le. További információ a csúcsformátumokról: Rögzített függvény FVF-kódjai (Direct3D 9).

#define Leírás Adatsorrend és -típus
D3DFVF_DIFFUSE A csúcsformátum diffúz színösszetevőt tartalmaz. DWORD ARGB sorrendben. Lásd: D3DCOLOR_ARGB.
D3DFVF_NORMAL A csúcsformátum egy normál csúcsvektort tartalmaz. Ez a jelölő nem használható a D3DFVF_XYZRHW jelzővel. float, float, float
D3DFVF_PSIZE Pontméretben megadott csúcsformátum. Ez a méret a nem átalakított és kivilágított csúcsok kameratéregységeiben, valamint az átalakított és megvilágított csúcsok eszköztéregységeiben van kifejezve. lebeg
D3DFVF_SPECULAR A csúcsformátum egy színösszetevőt tartalmaz. DWORD ARGB sorrendben. Lásd: D3DCOLOR_ARGB.
D3DFVF_XYZ A csúcsformátum tartalmazza a nem formázott csúcsok pozícióját. Ez a jelölő nem használható a D3DFVF_XYZRHW jelzővel. lebegés, lebegés, lebegés.
D3DFVF_XYZRHW A csúcsformátum tartalmazza az átalakított csúcsok pozícióját. Ez a jelölő nem használható D3DFVF_XYZ vagy D3DFVF_NORMAL jelzőkkel. float, float, float, float.
D3DFVF_XYZB1 through D3DFVF_XYZB5 A csúcsformátum pozícióadatokat és megfelelő számú súlyozási (béta) értéket tartalmaz a multimatrix csúcspontok keverési műveleteihez. A Direct3D jelenleg legfeljebb három súlyozási értékkel és négy keverési mátrixmal kombinálható. A keverési mátrixok használatáról további információt Indexelt csúcsok keverése (Direct3D 9)című témakörben talál. 1, 2 vagy 3 lebeg. A D3DFVF_LASTBETA_UBYTE4 használatakor a rendszer az utolsó keverési súlyt DWORD-ként kezeli.
D3DFVF_XYZW A csúcsformátum átalakított és levágott (x, y, z, w) adatokat tartalmaz. A ProcessVertices nem hívja meg a vágót, hanem adatokat ad ki a klip koordinátáiban. Ez az állandó a programozható csúcsfolyamathoz van kialakítva, és csak azokkal használható. float, float, float, float

 

Textúrajelzők

Az alábbi jelzők a rögzített függvényű folyamat által használt textúrajelölőket írják le.

#define Leírás
D3DFVF_TEX0 – D3DFVF_TEX8 A csúcsponthoz tartozó textúrakoordináta-készletek száma. Ezeknek a jelzőknek a tényleges értékei nem szekvenciálisak.
D3DFVF_TEXCOORDSIZEN(coordIndex) Textúrakoordináta-adatkészlet definiálása. n a textúra koordinátáinak dimenzióját jelzi. a coordIndex a textúra koordináta-indexszámát jelzi. Lásd: D3DFVF_TEXCOORDSIZEN és textúrakoordináta és a textúraszakaszok.

 

Maszkjelölők

Az alábbi jelzők a rögzített függvényű folyamat által használt maszkjelölőket írják le.

#define Leírás
D3DFVF_POSITION_MASK Pozícióbitek maszkolása.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 A fenntartott bitek maszkolása az FVF-ben. Ne használja.
D3DFVF_TEXCOUNT_MASK Maszk értéke a textúrajelölő bitjeihez.

 

Egyéb jelzők

Az alábbi jelzők a rögzített függvényű folyamat által használt különböző jelzőket írják le.

#define Leírás
D3DFVF_LASTBETA_D3DCOLOR A csúcspont pozícióadatainak utolsó bétamezője D3DCOLOR típusú lesz. A bétamezőkben lévő adatok mátrixpalettával vannak elszínezve a mátrixindexek megadásához.
D3DFVF_LASTBETA_UBYTE4 A csúcspont pozícióadatainak utolsó bétamezője UBYTE4 típusú lesz. A bétamezőkben lévő adatok mátrixpalettával vannak elszínezve a mátrixindexek megadásához.
// Given the following vertex data definition: 
struct VERTEXPOSITION
{
   float pos[3];
   union 
   {
      float beta[5];
      struct
      {
         float weights[4];
         DWORD MatrixIndices;  // Used as UBYTEs
      }
   }
};

Mivel az FVF a következőképpen van deklarálva: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. A Weight és a MatrixIndices a bétaverzióban[5], ahol D3DFVF_LASTBETA_UBYTE4 azt mondja, hogy az utolsó DWORD-t a bétaverzióban[5] UBYTE4 típusként értelmezi.

D3DFVF_TEXCOUNT_SHIFT Azoknak a biteknek a száma, amelyekkel eltolható egy egész szám, amely azonosítja a csúcsok textúrakoordinátáinak számát. Ez az érték az alábbi módon használható.

              
              DWORD dwNumTextures = 1; A csúcspontnak csak egy koordinátakészlete van. 

A rugalmas csúcsformátumú (FVF) kombinációk létrehozásakor használható érték eltolása. dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

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

 

Példák

Az alábbi példák más gyakori jelölőkombinációkat mutatnak be.

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

Állandó információ

Követelmény Érték
Fejléc d3d9types.h
Minimális operációs rendszer Windows 98

 

Direct3D-konstansok

Rögzített függvény FVF-kódjai (Direct3D 9)

geometriai keverés (Direct3D 9)