從頂點緩衝區轉譯 (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接受的第二個參數是要載入頂點緩衝區中第一個向量的索引。
相關主題