qué alguien cuidado de explicar la diferencia entre un ser VertexBuffer, un VertexArray, un VertexBufferObject, y una VertexArrayObject? Ni siquiera estoy seguro de si estos son términos para cosas diferentes, pero los he visto aparecer en las especificaciones de OpenGL.OpenGL confusión búfer de vértices
Sé que un VertexBuffer simplemente contiene vértices y nada más, una vez encuadernado, y una vez que haya establecido los punteros de los vértices, puedo usar DrawArrays para dibujarlo. Lo he hecho de esta manera muchas veces.
Estoy usando lo que creo que es un VertexArray, que almacena el estado de cualquier búfer de vértice que se establezca, y también cualquier puntero de vértice. La vinculación de un VertexArray vincula automáticamente el búfer de vértices y establece los punteros de vértice. Lo he usado (la mayoría) con éxito también.
Pero lo que es un VertexBufferObject, y una VertexArrayObject? ¿Están mejor? ¿VertexArray no me da todo lo que necesito?
Entonces lo que mencioné en mi tercer párrafo era muy probablemente un objeto de matriz de vértices, que es el mejor para las aplicaciones normales. Gracias por aclarar esto para mí. – Hannesh
En relación con _VAO son una conveniencia y no estrictamente necesarios_: si lo entiendo correctamente, esto es incorrecto al usar un perfil de núcleo OpenGL 3.1+. Trabajar con un VBO ahora requiere tener un VAO. Por ejemplo, 'glEnableVertexAttribArray' [falla] (http://www.opengl.org/wiki/GLAPI/glEnableVertexAttribArray#Errors) si no hay un límite VAO. Sin embargo, es posible introducir un VAO "global", [como se sugiere en esta respuesta] (http://stackoverflow.com/a/13405205/1804173). – bluenote10
@ bluenote10: Sí, para la versión 3.1 y contextos de perfil de núcleo más altos, debe obligar al menos un VAO (no es necesario que utilice varios para cambiar, sin embargo). Pero eso no es lo que quise decir. VAO es _ "algo conveniente que no es estrictamente necesario" _ en la medida en que no hace nada "especial" que de otro modo no podría hacer. Solo hace que cambiar el estado combinado sea más rápido y más fácil. No podría hacer lo que hace una textura o lo que hace un búfer de vértices sin una textura o sin un búfer de vértices. Pero podría hacer lo que hace con un VAO sin un VAO (solo más llamadas de función). – Damon