Recentemente, comecei a portar algumas demos de renderização antigas que fiz para o OpenGL moderno. Eu tinha uma classe de desenho de depuração no meu código antigo que usava o modo imediato glBegin (), glEnd () etc. para renderizar objetos de depuração, como triângulos, cubos e esferas, etc.
Originalmente, substituí o código nessas funções pelo código para gerar os VAO e VBOs (para posição e cor), vinculá-los, atribuir os dados do vértice, renderizar e desativar e excluir os VBOs e VAO. Há algo de errado nisso?
Eu estive pensando em modificar a classe para que, toda vez que receba uma chamada primitiva, gere o VAO e os VBOs e atribua os dados do vértice, mas na verdade não faça a renderização até que todas as outras renderizações tenham sido concluídas. Em seguida, renderiza todos os prims de depuração que foram armazenados de uma só vez.
Não tenho certeza dos benefícios de qualquer maneira de fazer isso e estava me perguntando o que as pessoas pensavam.