Estoy empezando a aprender OpenGL hoy de este tutorial: http://openglbook.com/the-book/
Llegué al capítulo 2, donde dibujo un triángulo, y entiendo todo, excepto VAO (¿este acrónimo es correcto?). El tutorial tiene este código:¿Qué son los objetos de matrices vértice?
glGenVertexArrays(1, &VaoId);
glBindVertexArray(VaoId);
Si bien entiendo que el código es necesario, no tengo idea de lo que hace. Aunque nunca uso VaoId después de este punto (excepto para destruirlo), el código no funciona sin él. Estoy asumiendo que esto se debe a que es obligatorio estar obligado, pero no sé por qué. ¿Este código exacto solo necesita ser parte de cada programa OpenGL? El tutorial explica VAOS como:
un vértice objeto de matriz (o VAO) es un objeto que describe cómo se almacenan los atributos de vértices en un objeto de Vertex Buffer (o VBO). Esto significa que el VAO no es el objeto real que almacena los datos de vértice, sino el descriptor de los datos de vértice. Los atributos de vértice pueden describirse mediante la función glVertexAttribPointer y sus dos funciones hermanas glVertexAttribIPointer y glVertexAttribLPointer, la primera de las cuales exploraremos a continuación.
No entiendo cómo el VAO describe los atributos de los vértices. No los he descrito de ninguna manera. ¿Obtiene la información del glVertexAttribPointer? Creo que esto debe ser. ¿El VAO es simplemente un destino para la información de glVertexAttribPointer?
En una nota lateral, ¿es aceptable el tutorial que estoy siguiendo? ¿Hay algo de lo que debería tener cuidado o un mejor tutorial para seguir?
'Objeto Vertex Array' es presentado por el Subcomité OpenGL ARB para Silly Names. ' Sí, un nombre tan tonto para un ** objeto ** que almacena enlaces de ** vertex ** ** array **. –
Si lo entiendo correctamente, al llamar 'glGenVertexArrays (1, & VaoId);' y 'glBindVertexArray (VaoId);' crea un VAO con los valores por defecto para guardarlo de 'glEnableClientState'? ¿O estoy completamente malentendiéndote? En el futuro, ¿es probable que use mucho 'glEnableClientState'? – Patrick
Además, todos los VAO están relacionados con 'glVertexAttribPointer' – Patrick