Bagikan melalui


D3DFVF

Flexible Vertex Format Constants, atau kode FVF, digunakan untuk menjelaskan konten simpul yang diselingi dalam satu aliran data yang akan diproses oleh alur fungsi tetap.

Bendera Data Vertex

Bendera berikut menjelaskan format puncak. Untuk informasi mengenai format vertex, lihat Kode FVF Fungsi Tetap (Direct3D 9).

#define Deskripsi Urutan dan jenis data
D3DFVF_DIFFUSE Format vertex menyertakan komponen warna yang berbeda. DWORD dalam urutan ARGB. Lihat D3DCOLOR_ARGB.
D3DFVF_NORMAL Format vertex mencakup vektor normal vertex. Bendera ini tidak dapat digunakan dengan bendera D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Format vertex ditentukan dalam ukuran titik. Ukuran ini dinyatakan dalam unit ruang kamera untuk simpul yang tidak diubah dan menyala, dan dalam unit ruang perangkat untuk simpul yang ditransformasi dan menyala. float
D3DFVF_SPECULAR Format puncak mencakup komponen warna spekular. DWORD dalam urutan ARGB. Lihat D3DCOLOR_ARGB.
D3DFVF_XYZ Format vertex mencakup posisi vertex yang tidak ditransformasi. Bendera ini tidak dapat digunakan dengan bendera D3DFVF_XYZRHW. float, float, float.
D3DFVF_XYZRHW Format vertex mencakup posisi vertex yang diubah. Bendera ini tidak dapat digunakan dengan bendera D3DFVF_XYZ atau D3DFVF_NORMAL. float, float, float, float.
D3DFVF_XYZB1 melalui D3DFVF_XYZB5 Format vertex berisi data posisi, dan jumlah nilai pembobotan (beta) yang sesuai untuk digunakan untuk operasi penpaduan verteks multimatrix. Saat ini, Direct3D dapat memadukan hingga tiga nilai pembobotan dan empat matriks campuran. Untuk informasi selengkapnya tentang menggunakan matriks campuran, lihat Blending Vertex Terindeks (Direct3D 9). 1, 2, atau 3 float. Ketika D3DFVF_LASTBETA_UBYTE4 digunakan, bobot campuran terakhir diperlakukan sebagai DWORD.
D3DFVF_XYZW Format puncak berisi data yang diubah dan diklip (x, y, z, w). ProcessVertices tidak memanggil clipper, sebagai gantinya mengeluarkan data dalam koordinat klip. Konstanta ini dirancang untuk, dan hanya dapat digunakan dengan, alur vertex yang dapat diprogram. float, float, float, float

 

Bendera Tekstur

Bendera berikut menjelaskan bendera tekstur yang digunakan oleh alur fungsi tetap.

#define Deskripsi
D3DFVF_TEX0 - D3DFVF_TEX8 Jumlah set koordinat tekstur untuk puncak ini. Nilai aktual untuk bendera ini tidak berurutan.
D3DFVF_TEXCOORDSIZEN(coordIndex) Tentukan himpunan data koordinat tekstur. n menunjukkan dimensi koordinat tekstur. coordIndex menunjukkan nomor indeks koordinat tekstur. Lihat koordinat D3DFVF_TEXCOORDSIZEN dan Tekstur dan Tahapan Tekstur.

 

Bendera Masker

Bendera berikut menjelaskan bendera masker yang digunakan oleh alur fungsi tetap.

#define Deskripsi
D3DFVF_POSITION_MASK Masker untuk bit posisi.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Menutupi nilai untuk bit yang dipesan di FVF. Jangan gunakan.
D3DFVF_TEXCOUNT_MASK Nilai mask untuk bit bendera tekstur.

 

Bendera Lain-lain

Bendera berikut menjelaskan berbagai bendera yang digunakan oleh alur fungsi tetap.

#define Deskripsi
D3DFVF_LASTBETA_D3DCOLOR Bidang beta terakhir dalam data posisi puncak akan berjenis D3DCOLOR. Data dalam bidang beta digunakan dengan pengkulian palet matriks untuk menentukan indeks matriks.
D3DFVF_LASTBETA_UBYTE4 Bidang beta terakhir dalam data posisi puncak akan berjenis UBYTE4. Data dalam bidang beta digunakan dengan pengkulian palet matriks untuk menentukan indeks matriks.
// Given the following vertex data definition: 
struct VERTEXPOSITION
{
   float pos[3];
   union 
   {
      float beta[5];
      struct
      {
         float weights[4];
         DWORD MatrixIndices;  // Used as UBYTEs
      }
   }
};

Mengingat FVF dinyatakan sebagai: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Berat dan MatrixIndices disertakan dalam beta[5], di mana D3DFVF_LASTBETA_UBYTE4 mengatakan untuk menafsirkan DWORD terakhir dalam beta[5] sebagai jenis UBYTE4.

D3DFVF_TEXCOUNT_SHIFT Jumlah bit untuk menggeser nilai bilangan bulat yang mengidentifikasi jumlah koordinat tekstur untuk vertex. Nilai ini mungkin digunakan seperti yang ditunjukkan di bawah ini.

              
              DWORD dwNumTextures = 1; Vertex hanya memiliki satu set koordinat.

Geser nilai untuk digunakan saat membuat kombinasi format verteks fleksibel // (FVF). dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

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

 

Contoh

Contoh berikut menunjukkan kombinasi bendera umum lainnya.

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

Informasi Konstanta

Persyaratan Nilai
Header d3d9types.h
Sistem operasi minimum Windows 98

 

Konstanta Direct3D

Memperbaiki Kode FVF Fungsi (Direct3D 9)

Blending Geometri (Direct3D 9)