共用方式為


D3DFVF

彈性頂點格式常數或 FVF 程式代碼是用來描述頂點交錯在固定函式管線所處理之單一數據流中的內容。

頂點數據旗標

下列旗標描述頂點格式。 如需頂點格式的相關信息,請參閱 固定函式 FVF 代碼 (Direct3D 9)

#define 描述 數據順序和類型
D3DFVF_DIFFUSE 頂點格式包含擴散色彩元件。 以ARGB順序排列的 DWORD。 請參閱 D3DCOLOR_ARGB
D3DFVF_NORMAL 頂點格式包含頂點法向量。 這個旗標不能與 D3DFVF_XYZRHW 旗標搭配使用。 float、float、float
D3DFVF_PSIZE 點大小中指定的頂點格式。 此大小會以未轉換和點亮的頂點相機空間單位,以及用於轉換和點亮頂點的裝置空間單位表示。
D3DFVF_SPECULAR 頂點格式包含反射色彩元件。 以ARGB順序排列的 DWORD。 請參閱 D3DCOLOR_ARGB
D3DFVF_XYZ 頂點格式包含未轉換頂點的位置。 這個旗標不能與 D3DFVF_XYZRHW 旗標搭配使用。 float、float、float。
D3DFVF_XYZRHW 頂點格式包含已轉換頂點的位置。 這個旗標不能與D3DFVF_XYZ或D3DFVF_NORMAL旗標搭配使用。 float、float、float、float。
透過D3DFVF_XYZB5 D3DFVF_XYZB1 頂點格式包含位置數據,以及用於多線程頂點混合作業的對應加權值數目。 目前,Direct3D 可以混合最多三個加權值和四個混合矩陣。 如需使用混合矩陣的詳細資訊,請參閱 索引頂點混合 (Direct3D 9) 1、2 或 3 個浮點數。 使用D3DFVF_LASTBETA_UBYTE4時,最後一個混合權數會被視為 DWORD。
D3DFVF_XYZW 頂點格式包含已轉換和裁剪的數據(x、y、z、w) 數據。 ProcessVertices 不會叫用剪輯器,而是將數據輸出到剪輯座標中。 這個常數是針對且只能搭配可程式化頂點管線使用。 float、float、float、float

 

紋理旗標

下列旗標描述固定函式管線所使用的紋理旗標。

#define 描述
D3DFVF_TEX0 - D3DFVF_TEX8 這個頂點的紋理座標集數目。 這些旗標的實際值不是循序的。
D3DFVF_TEXCOORDSIZEN(coordIndex) 定義紋理座標數據集。 n表示紋理座標的維度。 coordIndex 表示紋理座標索引編號。 請參閱 D3DFVF_TEXCOORDSIZEN紋理座標和紋理階段

 

遮罩旗標

下列旗標描述固定函式管線所使用的遮罩旗標。

#define 描述
D3DFVF_POSITION_MASK 位置位的遮罩。
D3DFVF_RESERVED0,D3DFVF_RESERVED2 遮罩 FVF 中保留位的值。 請勿使用。
D3DFVF_TEXCOUNT_MASK 紋理旗標位的遮罩值。

 

其他旗標

下列旗標描述固定函式管線所使用的各種旗標。

#define 描述
D3DFVF_LASTBETA_D3DCOLOR 頂點位置數據中的最後一個 Beta 字段類型為 D3DCOLOR。 Beta 欄位中的數據會搭配矩陣調色盤外觀來指定矩陣索引。
D3DFVF_LASTBETA_UBYTE4 頂點位置數據中的最後一個 Beta 欄位會是 UBYTE4 類型。 Beta 欄位中的數據會搭配矩陣調色盤外觀來指定矩陣索引。
// 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 宣告為:D3DFVF_XYZB5 |D3DFVF_LASTBETA_UBYTE4。 Weight 和 MatrixIndices 包含在 beta[5]中,其中D3DFVF_LASTBETA_UBYTE4表示將 beta[5] 中的最後一個 DWORD 解譯為類型 UBYTE4。

D3DFVF_TEXCOUNT_SHIFT 要移位整數值的位數,用來識別頂點的紋理座標數目。 此值可能會使用,如下所示。

              
              DWORD dwNumTextures = 1;頂點只有一組座標。

在建立 / 彈性頂點格式 (FVF) 組合時,移位要使用的值。 dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

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

 

例子

下列範例顯示其他通用旗標組合。

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

常數資訊

要求 價值
頁眉 d3d9types.h
最低作系統 Windows 98

 

Direct3D 常數

固定函式 FVF 代碼 (Direct3D 9)

幾何混合 (Direct3D 9)