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


Textúrakoordináta-formátumok (Direct3D 9)

A Direct3D textúrakoordinátái egy, két, három vagy négy lebegőpontos elemet tartalmazhatnak a különböző dimenziószintekkel rendelkező textúrák kezelésére. Az 1D textúra - egy 1-by-n texels méretű textúrafelület - egy anyagminta-koordinátával foglalkozik. A leggyakoribb eset, a 2D textúrák, két textúra koordinátákkal foglalkozik, amelyeket gyakran Önnek és v-nek hívnak. A Direct3D kétféle 3D textúrát, köbkörnyezeti térképet és kötetmintát támogat. A köbkörnyezeti térképek nem igazán 3D-sek, de 3 elemből állnak. További információ: Cubic Environment Mapping (Direct3D 9).

Az Rögzített függvény FVF-kódjai (Direct3D 9)leírtak szerint az alkalmazások csúcsformátumban kódolják a textúra koordinátáit. A csúcsformátum több textúrakoordinátát is tartalmazhat. A D3DFVF_TEX0 D3DFVF_TEX8 D3DFVF használatával olyan csúcsformátumot írhat le, amely nem tartalmaz textúrakoordinátákat, vagy akár nyolc készletet is.

Minden textúrakoordináta-készlet egy és négy elem között lehet. A D3DFVF_TEXTUREFORMAT1 D3DFVF_TEXTUREFORMAT4 jelzők írják le a szerkezetkoordináta elemeinek számát egy halmazban, de ezeket a jelzőket önmagukban nem használják. Ehelyett a D3DFVF_TEXCOORDSIZEN makrókészlet ezeket a jelzőket használja bitminták létrehozására, amelyek a csúcspontformátumban egy adott textúrakoordináta-készlet által használt elemek számát írják le. Ezek a makrók egyetlen paramétert fogadnak el, amely azonosítja annak a koordinátakészletnek az indexét, amelynek az elemeinek száma definiálva van. Az alábbi példa bemutatja, hogyan használják ezeket a makrókat.

// This vertex format contains two sets of texture coordinates.
// The first set (index 0) has 2 elements, and the second set 
// has 1 element. The description for this vertex format would be: 
//     dwFVF = D3DFVF_XYZ  | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX2 |
//             D3DFVF_TEXCOORDSIZE2(0) | D3DFVF_TEXCOORDSIZE1(1); 
//
typedef struct CVF
{
    D3DVECTOR position;
    D3DVECTOR normal;
    D3DCOLOR  diffuse;
    float     u, v;   // 1st set, 2D
    float     t;      // 2nd set, 1D
} CustomVertexFormat;

Jegyzet

A köbkörnyezeti térképek és a kötetmintázatok kivételével a raszterizátorok legfeljebb két elem használatával tudják kezelni a textúrákat. Az alkalmazások legfeljebb három elemet adhatnak meg a textúrakoordinátához, de csak akkor, ha az anyagminta kockatérkép, kötetmintázat vagy D3DTTFF_PROJECTED textúraátalakítási jelzőt használ. A D3DTTFF_PROJECTED jelölő hatására a raszterizátor az első két elemet a harmadik (vagy n) elemmel osztja el. További információ: Textúrakoordináta-átalakítások (Direct3D 9).

 

Textúra koordinátái