Aracılığıyla paylaş


D3DFVF

Esnek Köşe Biçimi Sabitleri veya FVF kodları, sabit işlevli işlem hattı tarafından işlenecek tek bir veri akışında kesişen köşelerin içeriğini açıklamak için kullanılır.

Köşe Veri Bayrakları

Aşağıdaki bayraklar köşe biçimini açıklar. Köşe biçimleri hakkında bilgi için bkz. Sabit İşlevli FVF Kodları (Direct3D 9).

#define Açıklama Veri sırası ve türü
D3DFVF_DIFFUSE Köşe biçimi, dağınık bir renk bileşeni içerir. ARGB sırasıyla DWORD. bkz. D3DCOLOR_ARGB.
D3DFVF_NORMAL Köşe biçimi, köşe normal vektör içerir. Bu bayrak D3DFVF_XYZRHW bayrağıyla kullanılamaz. float, float, float
D3DFVF_PSIZE Nokta boyutu olarak belirtilen köşe biçimi. Bu boyut, dönüştürülmemiş ve aydınlatılmayan köşeler için kamera uzay birimlerinde ve dönüştürülmüş ve aydınlatılmış köşeler için cihaz alanı birimlerinde ifade edilir. yüzmek
D3DFVF_SPECULAR Köşe biçimi, belirtik bir renk bileşeni içerir. ARGB sırasıyla DWORD. bkz. D3DCOLOR_ARGB.
D3DFVF_XYZ Köşe biçimi, çevrilmemiş bir köşenin konumunu içerir. Bu bayrak D3DFVF_XYZRHW bayrağıyla kullanılamaz. float, float, float.
D3DFVF_XYZRHW Köşe biçimi, dönüştürülmüş bir köşenin konumunu içerir. Bu bayrak D3DFVF_XYZ veya D3DFVF_NORMAL bayraklarıyla kullanılamaz. float, float, float, float.
D3DFVF_XYZB5 aracılığıyla D3DFVF_XYZB1 Köşe biçimi konum verilerini ve multimatrix köşe karıştırma işlemleri için kullanılacak karşılık gelen ağırlıklama (beta) değerlerini içerir. Şu anda Direct3D en fazla üç ağırlık değeri ve dört karıştırma matrisi ile karıştırılabilir. Karıştırma matrislerini kullanma hakkında daha fazla bilgi için bkz. Dizinli Köşe Karıştırma (Direct3D 9). 1, 2 veya 3 float. D3DFVF_LASTBETA_UBYTE4 kullanıldığında, son karıştırma ağırlığı DWORD olarak değerlendirilir.
D3DFVF_XYZW Köşe biçimi dönüştürülmüş ve kırpılmış (x, y, z, w) veriler içerir. ProcessVertices, clipper'ı çağırmaz, bunun yerine klip koordinatlarında veri çıkışı yapar. Bu sabit, yalnızca programlanabilir köşe işlem hattı için tasarlanmıştır ve ile kullanılabilir. float, float, float, float

 

Doku Bayrakları

Aşağıdaki bayraklar, sabit işlevli işlem hattı tarafından kullanılan doku bayraklarını açıklar.

#define Açıklama
D3DFVF_TEX0 - D3DFVF_TEX8 Bu köşe için doku koordinat kümelerinin sayısı. Bu bayrakların gerçek değerleri sıralı değildir.
D3DFVF_TEXCOORDSIZEN(coordIndex) Doku koordinatı veri kümesi tanımlayın. n, doku koordinatlarının boyutunu gösterir. coordIndex, doku koordinatı dizin numarasını gösterir. Bkz. doku koordinatlarını ve Doku Aşamalarını D3DFVF_TEXCOORDSIZEN ve.

 

Maske Bayrakları

Aşağıdaki bayraklar, sabit işlevli işlem hattı tarafından kullanılan maske bayraklarını açıklar.

#define Açıklama
D3DFVF_POSITION_MASK Konum bitleri için maske.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 FVF'de ayrılmış bitlerin değerlerini maskeler. Kullanmayın.
D3DFVF_TEXCOUNT_MASK Doku bayrağı bitleri için maske değeri.

 

Çeşitli Bayraklar

Aşağıdaki bayraklar, sabit işlevli işlem hattı tarafından kullanılan çeşitli bayrakları açıklar.

#define Açıklama
D3DFVF_LASTBETA_D3DCOLOR Köşe konumu verilerindeki son beta alanı D3DCOLOR türünde olacaktır. Beta alanlarındaki veriler matris dizinlerini belirtmek için matris paleti kaplamasıyla birlikte kullanılır.
D3DFVF_LASTBETA_UBYTE4 Köşe konumu verilerindeki son beta alanı UBYTE4 türünde olacaktır. Beta alanlarındaki veriler matris dizinlerini belirtmek için matris paleti kaplamasıyla birlikte kullanılır.
// Given the following vertex data definition: 
struct VERTEXPOSITION
{
   float pos[3];
   union 
   {
      float beta[5];
      struct
      {
         float weights[4];
         DWORD MatrixIndices;  // Used as UBYTEs
      }
   }
};

FVF şu şekilde bildirilir: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Weight ve MatrixIndices beta[5] sürümüne dahil edilir; burada D3DFVF_LASTBETA_UBYTE4 beta[5] sürümündeki son DWORD'ü UBYTE4 türü olarak yorumlamayı söyler.

D3DFVF_TEXCOUNT_SHIFT Köşe için doku koordinatlarının sayısını tanımlayan bir tamsayı değerinin kaydırıldığı bit sayısı. Bu değer aşağıda gösterildiği gibi kullanılabilir.

              
              DWORD dwNumTextures = 1; Köşenin tek bir koordinat kümesi vardır. 

// esnek köşe biçimi (FVF) bileşimi oluştururken kullanılacak değeri kaydırma. dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

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

 

Örnekler

Aşağıdaki örneklerde diğer yaygın bayrak bileşimleri gösterilmektedir.

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

Sabit Bilgi

Gereksinim Değer
Üstbilgi d3d9types.h
En düşük işletim sistemi Windows 98

 

Direct3D Sabitleri

Sabit İşlev FVF Kodları (Direct3D 9)

Geometri Karıştırma (Direct3D 9)