頂点バッファからのレンダリング
頂点バッファからのレンダリング
頂点バッファから頂点データをレンダリングするには、いくつかのステップが必要である。まず、IDirect3DDevice9::SetStreamSource メソッドを呼び出して、ストリーム ソースを設定する必要がある。次のコードに例を示す。
d3dDevice->SetStreamSource( 0, g_pVB, sizeof(CUSTOMVERTEX) );
IDirect3DDevice9::SetStreamSource の第 1 引数は、Microsoft® Direct3D® にデバイス データ ストリームのソースを知らせる。第 2 引数は、データ ストリームにバインドする頂点バッファである。第 3 引数は、コンポーネントのサイズをバイト単位で指定する。上のサンプル コードでは、CUSTOMVERTEX のサイズが成分のサイズに使用されている。
次のステップでは、IDirect3DDevice9::SetVertexShader メソッドを呼び出して、使用する頂点シェーダを Direct3D に知らせる。次のサンプル コードでは、柔軟な頂点フォーマット (FVF) コードを頂点シェーダに設定している。これにより、処理する頂点のタイプを Direct3D に知らせる。
d3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
ストリーム ソースおよび頂点シェーダを設定した後、描画メソッドで頂点バッファを使用する。次のコードは、IDirect3DDevice9::DrawPrimitive メソッドを使って、頂点バッファから頂点をレンダリングする方法を示している。
d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );
IDirect3DDevice9::DrawPrimitive が受け取る第 2 引数は、ロードする頂点バッファにある最初のベクトル バッファのインデックスである。