정점 배열 객체 이해(glGenVertexArrays)
VAO(Vertex Array Object)를 생성/생성할 때 다음과 같은 점과 혼동이 있습니다.
glGenVertexArrays(GLsizei n, GLuint *arrays);
그리고.
glBindVertexArray(GLuint);
버퍼 객체를 생성할 수 있고 정점에 대해 설명할 수 있으며 버퍼 객체를 다음과 같이 설명할 수 있기 때문입니다.glVertexAttribPointer
그리고.glEnableVertexAttribArray
VAO를 만들지 않고도 말입니다.
버퍼 객체의 데이터를 설명하기 위해 실제로 VAO를 생성할 필요가 없는 경우 OpenGL SuperBible 5ed와 같은 소스에 VBO를 생성할 때 VAO를 생성하기 위한 호출이 포함되는 이유는 무엇입니까?아직 발견하지 못한 더 고급 주제에만 사용되는 건가요, 완전히 혼란스러운 건가요?
또한 VBO에서 위키미디어 항목을 읽을 때 이 질문을 처음 접했는데 샘플 코드에는 다음에 대한 호출이 포함되지 않습니다.glGenVertexArrays()
하지만 그들은 여전히 데이터를 설명합니다.glVertexAttribPointer()
.Wiki VBO 항목 -- 어떤 이유로 VAO가 생성되는 예?
성능 향상.
호스트에서 속성을 설정하려면 많은 수의 API 호출과 구현 내부의 중요한 검증이 필요한 경우가 많습니다.
이 모든 작업을 한 번 수행하고 VAO를 사용하면 해당 작업을 상각할 수 있습니다.
예를 들어, 실제 데이터에 대한 Graham Sellers의 분석을 참조하십시오.
세 개의 VBO가 필요한 객체를 구축한다고 가정합니다(차양을 위한 서로 다른 데이터, 아마도 위치, 정규식 및 일부 화려한 효과 매개변수).이 개체를 그릴 때마다 이 모든 VBO를 바인딩하고 추가 매개 변수를 설정해야 합니다.VAO를 사용하는 경우 (꼭짓점 배열을 바인딩하는) 호출 하나만 사용하면 특정 개체에 대한 전체 환경이 설정됩니다.
그 답은 당신이 생각했던 것만큼 어렵지 않습니다.재미있는 비유라고 생각해보세요.VertexArrayObject
사장이고 여러명의 직원들을 관리합니다.VetexBufferObjects
.
언급URL : https://stackoverflow.com/questions/5970087/understanding-vertex-array-objects-glgenvertexarrays
'programing' 카테고리의 다른 글
getDefaultSharedPreferences와 getSharedPreferences의 차이 (0) | 2023.10.29 |
---|---|
자바스크립트에서 이것과 self의 차이점 (0) | 2023.10.29 |
C 표준 라이브러리의 기능을 C++에서 사용할 수 있습니까? (0) | 2023.10.24 |
CSS: 글꼴 크기 100% - 무엇의 100%? (0) | 2023.10.24 |
XML 네임스페이스의 용도는 무엇입니까? (0) | 2023.10.24 |