Estou fazendo um jogo em primeira pessoa em 3D. Devo atribuir a cada personagem seu próprio VBO ou devo agrupar todos os caracteres em um único VBO? Quais são os prós / contras?
Estou fazendo um jogo em primeira pessoa em 3D. Devo atribuir a cada personagem seu próprio VBO ou devo agrupar todos os caracteres em um único VBO? Quais são os prós / contras?
Respostas:
Essa é realmente uma escolha entre desempenho e flexibilidade, mas vou listar minhas opiniões sobre isso.
Um único VBO
Os lados positivos são:
e os lados negativos são:
VBO individual: s
Os lados positivos são:
e os lados negativos são:
Sumário
Eu recomendo que você crie um perfil do seu aplicativo; obtenha seu gargalo real nos dados que você pode ver. A otimização prematura pode ser mostrada (neste caso) como desnecessária. No entanto, dito isso, se você descobrir uma perda real de desempenho em seu aplicativo, dado o cenário individual da VBO: s , poderá começar a implementar uma única VBO.
No entanto, contanto que não seja necessário (o número de objetos é baixo, não há muitas alterações de estado no geral, etc.) eu recomendaria usar VBO: s individuais, a menos que você veja que isso não vai funcionar.
Editar
Eu esqueci de mencionar que ficaria tudo bem com várias chamadas de empate. O mais importante em tempos críticos de desempenho é manter as mudanças de estado no mínimo. Você pode simplesmente definir o número de índices a serem processados e um deslocamento para cada chamada de empate, e isso é bom. Mas, no entanto, mantenha as mudanças de estado o mais baixas possível e faça o menor número possível de chamadas, esse é o grande olá desta resposta, ou pelo menos o que tentei dizer.