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).
Kapcsolódó témakörök