Buffers de vértice FVF (Direct3D 9)

Definir o parâmetro FVF do método IDirect3DDevice9::CreateVertexBuffer como um valor diferente de zero, que deve ser um código FVF válido, indica que o conteúdo do buffer deve ser caracterizado por um código FVF. Um buffer de vértice criado com um código FVF é conhecido como um buffer de vértice FVF. Alguns métodos ou usos de IDirect3DDevice9 exigem buffers de vértice FVF e outros exigem buffers de vértice não FVF. Buffers de vértice FVF são necessários como o argumento de buffer de vértice de destino para IDirect3DDevice9::P rocessVertices.

Buffers de vértice FVF podem ser associados a um fluxo de dados de origem para qualquer número de fluxo.

A presença do componente D3DFVF_XYZRHW em buffers de vértice FVF indica que os vértices nesse buffer foram processados. Buffers de vértice usados para buffers de vértice de destino IDirect3DDevice9::P rocessVertices devem ser pós-processados. Buffers de vértice usados para entradas de sombreador de função fixa podem ser pré-processados ou pós-processados. Se o buffer de vértice for pós-processado, o sombreador será efetivamente ignorado e os dados serão passados diretamente para o módulo primitivo de recorte e configuração.

Buffers de vértice FVF podem ser usados com sombreadores de vértice. Além disso, os fluxos de vértice podem representar os mesmos formatos de vértice que os buffers de vértice não FVF podem. Eles não precisam ser usados para inserir dados de buffers de vértice separados. A flexibilidade adicional dos novos fluxos de vértice permite que aplicativos que precisam manter seus dados separados funcionem melhor, mas isso não é necessário. Se o aplicativo puder manter dados intercalados com antecedência, isso será um aumento de desempenho. Se o aplicativo só intercalar os dados antes de cada chamada de renderização, ele deverá habilitar a API ou o hardware para fazer isso com vários fluxos.

O mais importante com o desempenho do vértice é usar um vértice de 32 bytes e manter uma boa ordenação de cache.

Buffers de vértice