Microsoft DirectX 8.0 (Visual Basic)

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

Vertices サンプル プロジェクトでは、3 つの頂点を使って 2D の三角形をレンダリングする。ここでは、頂点を格納およびレンダリングするために使用される Microsoft® Direct3D® オブジェクトである、頂点バッファの概念を導入している。頂点は、カスタム頂点構造体および対応するカスタム FVF (柔軟な頂点フォーマット) を指定することによって、多くの方法で定義できる。Vertices サンプル プロジェクトの頂点のフォーマットを、次のコードに示す。

Private Type CUSTOMVERTEX
    x As Single         'スクリーン空間での x
    y As Single         'スクリーン空間での y
    z As Single         '正規化された z
    rhw As Single       '正規化された rhw
    color As Long       '頂点カラー
End Type

上記の構造体は、カスタム頂点タイプのフォーマットを指定する。次のステップは、頂点バッファ内の頂点の内容を記述する FVF を定義することである。次のコードでは、上で作成したカスタム頂点タイプに対応する FVF を定義している。

Const D3DFVF_CUSTOMVERTEX = (D3DFVF_XYZRHW Or D3DFVF_DIFFUSE)

柔軟な頂点フォーマット フラグは、使用するカスタム頂点のタイプを指定する。Vertices サンプル プロジェクトでは、D3DFVF_XYZRHW および D3DFVF_DIFFUSE フラグを使用して、カスタム頂点タイプがトランスフォームされたポイントと色成分を持つことを頂点バッファに通知している。

カスタム ベクトル フォーマットおよび FVF が指定されたので、次のステップでは、頂点バッファに頂点を入力する。これについては、「ステップ 2 : 頂点バッファの設定」で説明する。

  Vertices サンプル プロジェクトの頂点はトランスフォームされている。つまり、頂点は既に 2D ウィンドウ座標で表されている。これは、ポイント (0,0) が左上隅であり、正の x 軸が右方向、正の y 軸が下方向であることを意味する。これらの頂点にライトを当てることもできる。これは、頂点は Direct3D ライティングを使用していないが、独自の色を提供していることを意味する。