Bagikan melalui


D3DFVF

Konstanta Format Vertex Fleksibel, 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 difus. 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 dinyalakan, dan dalam unit ruang perangkat untuk simpul yang diubah dan dinyalakan. mengapung
D3DFVF_SPECULAR Format vertex 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 verteks 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 pencambahan verteks multimatrix. Saat ini, Direct3D dapat menyatu dengan hingga tiga nilai pembobotan dan empat matriks campuran. Untuk informasi selengkapnya tentang menggunakan matriks blending, lihat Indexed Vertex Blending (Direct3D 9). 1, 2, atau 3 float. Ketika D3DFVF_LASTBETA_UBYTE4 digunakan, bobot campuran terakhir diperlakukan sebagai DWORD.
D3DFVF_XYZW Format vertex berisi data yang diubah dan diklip (x, y, z, w). ProcessVertices tidak memanggil clipper, sebagai gantinya menghasilkan 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 kumpulan koordinat tekstur untuk verteks 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 tekstur D3DFVF_TEXCOORDSIZEN dan dan Tahapan Tekstur.

 

Bendera Mask

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 di bidang beta digunakan dengan palet matriks menguliti untuk menentukan indeks matriks.
D3DFVF_LASTBETA_UBYTE4 Bidang beta terakhir dalam data posisi puncak akan berjenis UBYTE4. Data di bidang beta digunakan dengan palet matriks menguliti 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 verteks. 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 vertex 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

Syarat Nilai
Header d3d9types.h
Sistem operasi minimum Windows 98

 

Konstanta Direct3D

Kode FVF Fungsi Tetap (Direct3D 9)

Geometry Blending (Direct3D 9)