Microsoft DirectX 8.0 (C++)

ステップ 1 : カスタム頂点タイプの定義

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 ライティングを使用していないが、独自の色を持っていることを意味する。