共用方式為


從頂點緩衝區轉譯 (Direct3D 9)

從頂點緩衝區渲染頂點資料需要幾個步驟。 首先,您必須呼叫 IDirect3DDevice9::SetStreamSource 方法來設定數據流來源,如下列範例所示。

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

IDirect3DDevice9::SetStreamSource 的第一個參數 會告訴 Direct3D 裝置數據流的來源。 第二個參數是要系結至數據流的頂點緩衝區。 第三個參數是從數據流開頭到頂點數據開頭的位移,以位元組為單位。 第四個參數是以位元組為單位的元件步幅。 在上述範例程式碼中,CUSTOMVERTEX 的大小用於計算元件的步幅。

下一個步驟是呼叫 IDirect3DDevice9::SetVertexShader 方法,通知 Direct3D 要使用的頂點著色器。 下列範例程式代碼會設定頂點著色器的 FVF 程式代碼。 這會告知 Direct3D 它正在處理的不同類型頂點。

d3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );

設定數據流來源和頂點著色器之後,任何繪製方法都會使用頂點緩衝區。 下列程式代碼範例示範如何使用 IDirect3DDevice9::DrawPrimitive 方法,從頂點緩衝區轉譯頂點。

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

IDirect3DDevice9::DrawPrimitive 接受的第二個參數是頂點緩衝區中要載入的首個向量的索引。

頂點緩衝區

從頂點和索引緩衝區渲染(Direct3D 9)