저는 오늘이 튜토리얼에서 OpenGL을 배우기 시작했습니다 : http://openglbook.com/the-book/
저는 삼각형을 그리는 2 장에 도달했고 VAO를 제외한 모든 것을 이해합니다 (이 두문자어는 괜찮습니까?). 튜토리얼에는 다음 코드가 있습니다.
glGenVertexArrays(1, &VaoId);
glBindVertexArray(VaoId);
나는 코드가 필요하다는 것을 이해하지만 그것이 무엇을하는지 전혀 모른다. 이 시점 이후에는 VaoId를 사용하지 않지만 (파괴 제외) 코드가 없으면 작동하지 않습니다. 바인딩이 필요하기 때문이라고 생각하지만 그 이유는 모르겠습니다. 이 정확한 코드가 모든 OpenGL 프로그램의 일부 여야합니까? 이 튜토리얼에서는 VAO를 다음과 같이 설명합니다.
Vertex Array Object (또는 VAO)는 Vertex Buffer Object (또는 VBO)에 정점 속성이 저장되는 방법을 설명하는 객체입니다. 이것은 VAO가 정점 데이터를 저장하는 실제 객체가 아니라 정점 데이터의 설명 자임을 의미합니다. 정점 속성은 glVertexAttribPointer 함수와 두 자매 함수 인 glVertexAttribIPointer 및 glVertexAttribLPointer로 설명 할 수 있습니다. 첫 번째는 아래에서 살펴볼 것입니다.
VAO가 정점 속성을 어떻게 설명하는지 이해하지 못합니다. 나는 그것들을 어떤 식으로도 설명하지 않았습니다. glVertexAttribPointer에서 정보를 얻습니까? 나는 이것이 틀림 없다고 생각한다. VAO는 단순히 glVertexAttribPointer의 정보에 대한 대상입니까?
참고로 내가 따르는 튜토리얼이 허용됩니까? 주의해야 할 사항이나 따라야 할 더 나은 튜토리얼이 있습니까?