Renderização de um buffer de vértice (Direct3D 9)

Renderizar dados de vértice de um buffer de vértice requer algumas etapas. Primeiro, você precisa definir a origem do fluxo chamando o método IDirect3DDevice9::SetStreamSource , conforme mostrado no exemplo a seguir.

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

O primeiro parâmetro de IDirect3DDevice9::SetStreamSource informa ao Direct3D a origem do fluxo de dados do dispositivo. O segundo parâmetro é o buffer de vértice a ser associado ao fluxo de dados. O terceiro parâmetro é o deslocamento do início do fluxo até o início dos dados de vértice, em bytes. O quarto parâmetro é o passo do componente, em bytes. No código de exemplo acima, o tamanho de um CUSTOMVERTEX é usado para o passo do componente.

A próxima etapa é informar ao Direct3D qual sombreador de vértice usar chamando o método IDirect3DDevice9::SetVertexShader . O código de exemplo a seguir define um código FVF para o sombreador de vértice. Isso informa o Direct3D sobre os tipos de vértices com os quais ele está lidando.

d3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );

Depois de definir a origem do fluxo e o sombreador de vértice, todos os métodos de desenho usarão o buffer de vértice. O exemplo de código abaixo mostra como renderizar vértices de um buffer de vértice com o método IDirect3DDevice9::D rawPrimitive .

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

O segundo parâmetro que IDirect3DDevice9::D rawPrimitive aceita é o índice do primeiro vetor no buffer de vértice a ser carregado.

Buffers de vértice

Renderização de buffers de vértice e índice (Direct3D 9)