Rendering da un buffer vertex (Direct3D 9)

Il rendering dei dati dei vertici da un buffer dei vertici richiede alcuni passaggi. Prima di tutto, è necessario impostare l'origine di flusso chiamando il metodo IDirect3DDevice9::SetStreamSource , come illustrato nell'esempio seguente.

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

Il primo parametro di IDirect3DDevice9::SetStreamSource indica a Direct3D l'origine del flusso di dati del dispositivo. Il secondo parametro è il buffer del vertice da associare al flusso di dati. Il terzo parametro è l'offset dall'inizio del flusso all'inizio dei dati del vertice, in byte. Il quarto parametro è lo stride del componente, in byte. Nel codice di esempio precedente, le dimensioni di un CUSTOMVERTEX vengono usate per lo stride del componente.

Il passaggio successivo consiste nell'informare Direct3D quale vertex shader usare chiamando il metodo IDirect3DDevice9::SetVertexShader . Il codice di esempio seguente imposta un codice FVF per il vertex shader. Ciò informa Direct3D dei tipi di vertici che sta gestendo.

d3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );

Dopo aver impostato l'origine del flusso e il vertex shader, tutti i metodi di disegno useranno il buffer dei vertici. L'esempio di codice seguente illustra come eseguire il rendering dei vertici da un buffer vertex con il metodo IDirect3DDevice9::D rawPrimitive .

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

Il secondo parametro che IDirect3DDevice9::D rawPrimitive accetta è l'indice del primo vettore nel buffer del vertice da caricare.

Buffer vertex

Rendering da vertex e buffer di indice (Direct3D 9)