D3DFVF
フレキシブル頂点フォーマット定数、つまり FVF コードは、固定機能のパイプラインによって処理される単一のデータ ストリームにインターリーブされる頂点の内容を記述するために使用されます。
頂点データ フラグ
頂点フォーマットは、次のフラグによって記述されます。頂点フォーマットについては、「固定機能 FVF コード (Direct3D 9)」を参照してください。
#define | 説明 | データの順序と型 |
---|---|---|
D3DFVF_DIFFUSE | 頂点フォーマットはディフューズ カラー成分を含みます。 | DWORD (順序は ARGB)。「D3DCOLOR_ARGB」を参照してください。 |
D3DFVF_NORMAL | 頂点フォーマットは頂点法線ベクトルを含みます。このフラグを D3DFVF_XYZRHW フラグと一緒に使用することはできません。 | float, float, float |
D3DFVF_PSIZE | 頂点フォーマットはポイント サイズで指定されています。このサイズは、トランスフォームもライティングもされていない頂点の場合はカメラ空間単位で、トランスフォームとライティングがされた頂点の場合はデバイス空間単位で表されます。 | float |
D3DFVF_SPECULAR | 頂点フォーマットはスペキュラ カラー成分を含みます。 | DWORD (順序は ARGB)。「D3DCOLOR_ARGB」を参照してください。 |
D3DFVF_XYZ | 頂点フォーマットは、トランスフォームされていない頂点の位置座標を含みます。このフラグを D3DFVF_XYZRHW フラグと一緒に使用することはできません。 | float, float, float. |
D3DFVF_XYZRHW | 頂点フォーマットは、トランスフォームされた頂点の位置座標を含みます。このフラグを D3DFVF_XYZ フラグまたは D3DFVF_NORMAL フラグと一緒に使用することはできません。 | float, float, float, float. |
D3DFVF_XYZB1 ~ D3DFVF_XYZB5 | 頂点フォーマットは、位置座標データ、および複数の行列による頂点ブレンディング処理用の加重 (ベータ) 値の対応数を含みます。現在、Direct3D では、最大 3 つの加重値および 4 つのブレンディング行列でブレンディングが可能です。ブレンディング行列の使用方法の詳細については、「インデックス付き頂点ブレンディング (Direct3D 9)」を参照してください。 | float が、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 | 頂点の位置座標データの最後のベータ フィールドは D3DCOLOR 型になります。ベータ フィールドのデータは、行列パレット スキニングで行列インデックスを指定するために使われます。 |
D3DFVF_LASTBETA_UBYTE4 | 頂点の位置座標データの最後のベータ フィールドは UBYTE4 型になります。ベータ フィールドのデータは、行列パレット スキニングで行列インデックスを指定するために使われます。
FVF は D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4 として宣言されます。重みと MatrixIndices は beta[5] に含まれており、D3DFVF_LASTBETA_UBYTE4 によって beta[5] 内の最後の DWORD は UBYTE4 型として解釈されます。 |
D3DFVF_TEXCOUNT_SHIFT | 頂点のテクスチャー座標数を識別する整数値を何ビット分シフトするかを示す数です。この値は、次のように使用することができます。
|
例
よく使われるフラグの組み合わせ例を次に示します。
// 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 |