A instância melhora o desempenho (significativamente) ao renderizar várias cópias (centenas? Milhares?) Da mesma malha ao mesmo tempo. Mas quanto sobrecarga ela tem ao renderizar exatamente uma cópia com uma chamada de desenho? Seria uma boa ou má idéia usar instanciamento para toda a geometria renderizada pelo mecanismo?
Edit: Digamos que estamos criando um jogo de FPS. A maioria dos objetos tem apenas um exemplo: uma faca, uma arma, uma metralhadora, um prédio e uma torre de rádio. Mas também existem alguns objetos com várias instâncias: árvores (por exemplo, três tipos de árvores com centenas de instâncias), grama e assim por diante ... O que quero dizer é: em vez de renderizar os objetos de uma instância da maneira "tradicional" e árvores e grama usando instanciamento, renderizamos todos eles usando instanciação. Portanto, nossa torre de rádio possui apenas uma instância (cujas informações armazenamos em um buffer de dados da instância) e processamos essa torre usando algum tipo de DrawInstanced()
chamada com contagem de instâncias igual 1
. O mesmo acontece com todos os outros objetos (é claro, árvores e grama têm várias instâncias).
Então, minha pergunta é: é uma má idéia desenhar uma única instância de um objeto usando instanciamento? O instanciamento tem muita sobrecarga (em termos de memória e desempenho) ou é de alguma forma indesejável para renderizar objetos de instância única?