D3DFVF

フレキシブル頂点形式定数 (FVF コード) は、固定関数パイプラインによって処理される 1 つのデータ ストリームでインターリーブされた頂点の内容を記述するために使用されます。

頂点データ フラグ

次のフラグは、頂点の形式を示しています。 頂点形式の詳細については、「 固定関数 FVF コード (Direct3D 9)」を参照してください。

#define 説明 データの順序と種類
D3DFVF_DIFFUSE 頂点形式には、拡散色コンポーネントが含まれます。 ARGB オーダーの DWORD。 「D3DCOLOR_ARGB」を参照してください。
D3DFVF_NORMAL 頂点形式には、頂点法線ベクトルが含まれます。 このフラグは、D3DFVF_XYZRHW フラグと共に使用できません。 float、float、float
D3DFVF_PSIZE ポイント サイズで指定された頂点形式。 このサイズは、変換および点灯されていない頂点のカメラ空間ユニットで表され、変換された頂点と点灯した頂点の場合はデバイス空間単位で表されます。 float
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 は、最大 3 つの重み付け値と 4 つのブレンド マトリックスとブレンドできます。 ブレンド マトリックスの使用の詳細については、「 インデックス付き頂点ブレンド (Direct3D 9)」を参照してください。 1、2、または 3 floats。 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 頂点位置データの最後のベータ フィールドは D3DCOLOR 型になります。 ベータ フィールドのデータは、マトリックス パレット スキニングと共に使用され、マトリックス インデックスを指定します。
D3DFVF_LASTBETA_UBYTE4 頂点位置データの最後のベータ フィールドは、UBYTE4 型になります。 ベータ フィールドのデータは、マトリックス パレット スキニングと共に使用され、マトリックス インデックスを指定します。
// 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;頂点に含める座標のセットは 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)