본문 바로가기

Graphics Note

glHint

glHint는 어떠한 연산을 할 때 드라이버에게 주는 언질(?) 같은거다.

기능의 수행을 강제하는것이 아니기 때문에 이 함수를 통해 어떤 기능을 수행하라고 '언질'을 줘도 드라이버에서 그냥 무시할지도 모른다.

 

glHint( GLenum target, GLenum mode );

 

대체로 주요한 기능이 아닌, 조금 더 멋지게 그릴 수 있는 기능들에 대하여 기능의 수행에 힌트를 주게된다. 사용 가능한 타겟은 이렇다.

GL_FOG_HINT, GL_GENERATE_MIPMAP_HINT, GL_LINE_SMOOTH_HINT, GL_PERSPECTIVE_CORRECTION_HINT, GL_POINT_SMOOTH_HINT, GL_POLYGON_SMOOTH_HINT, GL_TEXTURE_COMPRESSION_HINT, GL_FRAGMENT_SHADER_DERIVATIVE_HINT

 

그리고 이들의 수행에 대한 힌트는,

GL_FASTEST, GL_NICEST, GL_DONT_CARE

 

들 중 하나가 될 수 있다. 이들 값을 본다면 glHint의 쓰임세는 감이 온다. target의 기능에 좀 빨리 그리도록 하거나(GL_FASTEST), 최대한 멋지게 그려지도록 하거나(GL_NICEST), 별 상관없이 알아서 그리도록(GL_DONT_CARE) 말해줄 수 있다.

 

자세한 api reference는 opengl 사이트를 참고하자: http://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml

 

어디까지나 '빠르게'나 '멋지게' 하라는 말은 상대적인 개념이다. 즉 힌트를 준다고 해서 정말로 빠르게 혹은 멋지게 그려지느냐 하면 디바이스 구현마다 또 다르다. 제멋대로인 함수이지만 시대의 흐름에 맞게 내부적으로 기능의 수준이 달라질 수 있다는 점에서 개인적으론 굉장히 마음에 드는 함수이다. C 수준의 api에서 추상화 같다고나 할까..?  api 설계자들의 의도나 작명센스는 볼수록 탄복하게되는것 같다.

'Graphics Note' 카테고리의 다른 글

cube map upside-down  (0) 2014.01.22
Normal Matrix  (1) 2013.12.15
Vector/Matrix class  (0) 2013.12.02
glRotatef+glTranslatef VS gluLookAt for View transformation  (4) 2013.12.02
Delaunay triangulation in 2D  (1) 2013.10.06