티스토리 뷰

CG

glBindBuffer, glEnableVertexAttribArray

4whomtbts 2020. 7. 6. 04:17

https://stackoverflow.com/questions/19102180/how-does-gldrawarrays-know-what-to-draw

 

How does glDrawArrays know what to draw?

I am following some begginer OpenGL tutorials, and am a bit confused about this snippet of code: glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObject); //Bind GL_ARRAY_BUFFER to our handle

stackoverflow.com

의 번역본 

 

OpenGL 에서 무언가를 그릴때 항상 쌍으로 따라다니는 메소드들이 있다. 

glBindBuffer는 OpenGL에게 GL_ARRAY_BUFFER 가 필요할 때, vertex buffer object(VBO)를 사용하라고 알려주는 역할이고

glEnableVertexAttribArray 는 OpenGL에게 vertext attribute array를 사용하라고 말하는 역할이다.

이것을 호출하지 않으면 제공한 데이터는 무시된다.

 

glVertexAttribPointer는 OpenGL이 제공받은 배열 데이터를 가지고 무엇을 할 지 알려주는 것이다. 

OpenGL은 어떤 데이터 포맷이 들어오게 될지 모르기 때문이다.

 

glDrawArrays는 위의 데이터들을 가지고 점을 그린다.

OpenGL은 하나의 거대한 상태기계여서, OpenGL 함수 호출은 전역 상태를 바꾸게 된다.

코드를 항상 glDisableVertexAttribArray로 끝내는 이유가 바로 이것이다.

 

'CG' 카테고리의 다른 글

[OpenGL] buffer  (0) 2020.07.04
댓글