Buffer vertex FVF (Direct3D 9)

Impostando il parametro FVF del metodo IDirect3DDevice9::CreateVertexBuffer su un valore diverso da zero, che deve essere un codice FVF valido, indica che il contenuto del buffer deve essere caratterizzato da un codice FVF. Un buffer del vertice creato con un codice FVF viene definito buffer del vertice FVF. Alcuni metodi o usi di IDirect3DDevice9 richiedono buffer dei vertici FVF e altri richiedono buffer dei vertici non FVF. I buffer dei vertici FVF sono necessari come argomento del buffer del vertice di destinazione per IDirect3DDevice9::P rocessVertices.

I buffer dei vertici FVF possono essere associati a un flusso di dati di origine per qualsiasi numero di flusso.

La presenza del componente D3DFVF_XYZRHW nei buffer del vertice FVF indica che i vertici di tale buffer sono stati elaborati. I buffer vertex usati per IDirect3DDevice9::P rocessVertices buffer di destinazione devono essere post-elaborati. I buffer vertex usati per gli input dello shader per le funzioni fisse possono essere pre-elaborati o postprocessati. Se il buffer del vertice viene post-elaborato, lo shader viene ignorato in modo efficace e i dati vengono passati direttamente al modulo di ritaglio e configurazione primitivo.

I buffer dei vertici FVF possono essere usati con vertex shader. Inoltre, i flussi dei vertici possono rappresentare gli stessi formati dei vertici che possono essere memorizzati nei buffer dei vertici non FVF. Non devono essere usati per inserire i dati da buffer di vertice separati. La flessibilità aggiuntiva dei nuovi flussi di vertice consente alle applicazioni che devono mantenere i dati separati per funzionare meglio, ma non è necessario. Se l'applicazione può mantenere in anticipo i dati interleaved, questo è un aumento delle prestazioni. Se l'applicazione interlerà solo i dati prima di ogni chiamata di rendering, dovrebbe abilitare l'API o l'hardware per eseguire questa operazione con più flussi.

Le cose più importanti con le prestazioni dei vertici sono l'uso di un vertice di 32 byte e per mantenere un buon ordinamento della cache.

Buffer vertex