共用方式為


從頂點緩衝區轉譯 (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::D rawPrimitive 方法,從頂點緩衝區轉譯頂點。

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

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

頂點緩衝區

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