De hecho, hay algunas maneras de hacer una cuadrícula de este tipo.
La forma más eficiente sería la instancia. De esta manera, crea su hexágono solo una vez en un VBO y lo renderiza cien, mil o un millón de veces. Puede hacerlo manualmente usando sombreadores con uniformes como dijo en el punto 1, pero también tiene una funcionalidad OpenGL incorporada. Para eso, eche un vistazo a glDrawElementsInstanced .
Tenga en cuenta que la creación de instancias solo es más rápida que otros métodos si dibuja más de una cierta cantidad de objetos instanciados. Por ejemplo, dibujar 300 puede ser más rápido usando 1 VBO grande, pero dibujar 2 millones puede ser más rápido si usa renderizado instanciado.
Si utiliza la representación instanciada, puede enviar datos por objeto utilizando divisores de atributos . En su caso, desearía enviar la posición y el color.
Un buen tutorial sobre renderizado instanciado: haga clic
Realmente, la mejor manera es probar ambos métodos y verificar la cantidad de milisegundos que se necesitan para dibujar 1 fotograma. De esta manera también aprendes en ambos sentidos, lo que siempre es bueno.
También tenga en cuenta que el renderizado instanciado es una funcionalidad moderna de OpenGL, y que tendrá que usar sombreadores para usarlo. Pero siempre es mejor aprenderlo de la manera correcta desde el principio.