Hola a todos, queria saber si me pueden ayudar con lo siguiente:
Antes que nada aclaro que busque información (mucha) pero sigo con la duda:
Estoy trabajando con opengl y lo que hago es dibujar varios objetos (cuadrados, triángulos, etc) con diferentes texturas.
Para dibujarlos, he probado hacerlo con VBO y shaders y pude hacerlo sin problemas creando un VBO por cada objeto a dibujar. El problema es que cuando son muchos objetos, hay que hacer demasiadas llamadas a glDrawElements () y no es nada bueno.
Lei que lo mejor es crear un solo VBO donde se dibujen los vertices, colores, indices, etc. Pero en este caso, el problema me surgio con las texturas... cada objeto tiene una textura distinta entonces no tengo manera de hacer glBindTexture () para cada objeto por que todo es dibujado de una sola vez en el VBO.
Lo que necesitaría es que a cada objeto se le aplique una textura diferente al momento de ser dibujado.
La pregunta es, cual es la mejor forma (la mas optima) de dibujar muchos objetos (entre 150 y 200) distintos (la geometría de los mismos no siempre es igual [no es una repeticion del mismo objeto]) y con distintas texturas (cada objeto lleva una textura diferente)?? si es posible, me gustaría lograrlo sin utilizar el ya deprecado modo inmediato glBegin () / glEnd() o glDrawArrays () (utilizo opengl 3.0 y superior).
Desde ya agradezco me puedan dar una ayuda con este tema, ya que lei y busque mucho pero no encuentro una solución, muchas gracias a todos.
PD: el lenguaje que utilizo con opengl es C++