次の方法で共有


頂点バッファーからのレンダリング (Direct3D 9)

頂点バッファーから頂点データをレンダリングするには、いくつかの手順が必要です。 まず、次の例に示すように 、IDirect3DDevice9::SetStreamSource メソッドを呼び出してストリーム ソースを設定する必要があります。

d3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );

IDirect3DDevice9::SetStreamSource の最初のパラメーターは、デバイス データ ストリームのソースを Direct3D に指示します。 2 番目のパラメーターは、データ ストリームにバインドする頂点バッファーです。 3 番目のパラメーターは、ストリームの先頭から頂点データの先頭までのオフセット (バイト単位) です。 4 番目のパラメーターは、コンポーネントのストライド (バイト単位) です。 上記のサンプル コードでは、コンポーネントのストライドに CUSTOMVERTEX のサイズが使用されています。

次の手順では、 IDirect3DDevice9::SetVertexShader メソッドを呼び出して、どの頂点シェーダーを使用するかを Direct3D に通知します。 次のサンプル コードでは、頂点シェーダーの FVF コードを設定します。 これにより、処理する頂点の種類が Direct3D に通知されます。

d3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );

ストリーム ソースシェーダーと頂点シェーダーを設定すると、描画メソッドは頂点バッファーを使用します。 次のコード例は、 IDirect3DDevice9::D rawPrimitive メソッドを使用して頂点バッファーから頂点をレンダリングする方法を示しています。

d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );

IDirect3DDevice9::D rawPrimitive が受け入れる 2 番目のパラメーターは、読み込む頂点バッファー内の最初のベクトルのインデックスです。

頂点バッファー

頂点バッファーとインデックス バッファーからのレンダリング (Direct3D 9)