Doku Koordinat Biçimleri (Direct3D 9)
Direct3D'deki doku koordinatları, farklı boyut düzeylerine sahip dokuları ele almak için bir, iki, üç veya dört kayan nokta öğesi içerebilir. 1B doku - 1-by-n texel boyutlarına sahip bir doku yüzeyi - tek doku koordinatı ile ele alınır. En yaygın durum olan 2B dokular, yaygın olarak siz ve v olarak adlandırılan iki doku koordinatıyla ele alınır. Direct3D, iki tür 3B dokuyu, kübik ortam haritalarını ve birim dokularını destekler. Kübik ortam haritaları gerçekten 3B değildir, ancak 3 öğeli vektörle ele alınır. Ayrıntılar için bkz. Küp Ortam Eşlemesi (Direct3D 9).
Sabit İşlevli FVF Kodları (Direct3D 9)açıklandığı gibi, uygulamalar doku koordinatlarını köşe biçiminde kodlar. Köşe biçimi birden çok doku koordinatı kümesi içerebilir. Doku koordinatları veya en fazla sekiz küme içeren bir köşe biçimini açıklamak için D3DFVF_TEX8 D3DFVF aracılığıyla D3DFVF_TEX0 kullanın.
Her doku koordinat kümesinin bir ile dört arasında öğesi olabilir. D3DFVF_TEXTUREFORMAT4 bayrakları aracılığıyla D3DFVF_TEXTUREFORMAT1, bir kümedeki doku koordinatı içindeki öğelerin sayısını açıklar, ancak bu bayraklar kendileri tarafından kullanılmaz. Bunun yerine, D3DFVF_TEXCOORDSIZEN makro kümesi, köşe biçiminde belirli bir doku koordinatları kümesi tarafından kullanılan öğe sayısını açıklayan bit desenleri oluşturmak için bu bayrakları kullanır. Bu makrolar, öğe sayısı tanımlanan koordinat kümesinin dizinini tanımlayan tek bir parametreyi kabul eder. Aşağıdaki örnekte bu makroların nasıl kullanıldığı gösterilmektedir.
// 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;
Not
Ortam küp eşlemeleri ve birim dokuları dışında, rasterleştiriciler ikiden fazla öğe kullanarak dokuları ele alamaz. Uygulamalar bir doku koordinatı için en fazla üç öğe sağlayabilir, ancak yalnızca doku bir küp haritası, birim dokusu veya D3DTTFF_PROJECTED doku dönüştürme bayrağı kullanılıyorsa. D3DTTFF_PROJECTED bayrağı, rasterleştiricinin ilk iki öğeyi üçüncü (veya n) öğeye bölmesine neden olur. Daha fazla bilgi için bkz. doku koordinat dönüştürmeleri (Direct3D 9) .
İlgili konular