Título: VAOs en OpenGL Publicado por: 4dr14n31t0r en 28 Enero 2017, 19:22 pm Por lo que tengo entendido, se supone que si llamas a glBindVertexArray, a partir de ahi cuando llames al metodo glBindBuffer el buffer asociado se guardara en el VAO. De modo que si haces esto:
Código
Entonces a partir de aqui cada vez que hagas esto: Código
Automaticamente seria como si estuvieras haciendo esto: (Aunque no lo "haces" porque ya esta hecho, solo restauras el buffer que ya esta "hecho") Código
Pero cuando hago varios VAOs y a cada VAO le pongo un VBO, por alguna razon cuando pongo el primer, segundo o tercer VAO y compruebo cual es el VBO actual, se me queda en el ultimo VBO con el que llame al metodo glBindBuffer. ¿Por que? Yo digo algo asi: Código
Título: Re: VAOs en OpenGL Publicado por: ivancea96 en 29 Enero 2017, 00:32 am No has puesto glVertexAttribPointer tras cada glBindBuffer. glBindBuffer no modifica el VAO.
Título: Re: VAOs en OpenGL Publicado por: 4dr14n31t0r en 30 Enero 2017, 22:01 pm Entonces cuando llamo a glVertexAttribPointer es cuando lo meto dentro del VAO? ok
Pero entonces ¿Como puedo guardar en un VAO varios VBOs? ¿Y como puedo usarlos? Título: Re: VAOs en OpenGL Publicado por: ivancea96 en 31 Enero 2017, 00:12 am Mm te dejoe ste link que encontré con un ejemplo: http://www.morethantechnical.com/2013/11/09/vertex-array-objects-with-shaders-on-opengl-2-1-glsl-1-2-wcode/ (http://www.morethantechnical.com/2013/11/09/vertex-array-objects-with-shaders-on-opengl-2-1-glsl-1-2-wcode/)
El primer argumento de glVertexAttribPointer es el índice en el que almacenará el VBO. Luego, en el vertex shader, se asignará los valores del VBO a los attribute en las posiciones que mandaste en el primer argumento. (Todo esto lo ves mejor con el código de la web esa, los 2 primeros bloques de código) |