Microsoft DirectX 8.0 (C++) |
Vertices サンプル プロジェクトでは、3 つの頂点を使って 2D の三角形をレンダリングする。ここでは、頂点を格納およびレンダリングするために使用される Microsoft® Direct3D® オブジェクトである、頂点バッファの概念を導入している。頂点は、カスタム頂点構造体および対応するカスタム FVF (柔軟な頂点フォーマット) を指定することによって、多くの方法で定義できる。Vertices サンプル プロジェクトの頂点のフォーマットを、次のサンプル コードに示す。
struct CUSTOMVERTEX { FLOAT x, y, z, rhw; // 頂点のトランスフォーム後の位置座標。 DWORD color; // 頂点カラー。 };
上記の構造体は、カスタム頂点タイプのフォーマットを指定する。次のステップは、頂点バッファ内の頂点の内容を記述する FVF を定義することである。次のサンプル コードでは、上で作成したカスタム頂点タイプに対応する FVF を定義している。
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
柔軟な頂点フォーマット フラグは、使用するカスタム頂点のタイプを指定する。上記のサンプル コードでは、D3DFVF_XYZRHW および D3DFVF_DIFFUSE フラグを使用して、カスタム頂点タイプがトランスフォームされた頂点と色成分を持つことを頂点バッファに通知している。
カスタム頂点フォーマットおよび FVF が指定されたので、次のステップでは、頂点バッファに頂点を入力する。これについては、「ステップ 2 : 頂点バッファの設定」で説明する。
注 Vertices サンプル プロジェクトの頂点はトランスフォームされている。つまり、頂点は既に 2D ウィンドウ座標で表されている。これは、ポイント (0,0) が左上隅であり、正の x 軸が右方向、正の y 軸が下方向であることを意味する。これらの頂点にライトを当てることもできる。これは、頂点は Direct3D ライティングを使用していないが、独自の色を持っていることを意味する。