1. Hello, OpenGL !!http://www.opengl.org/ 우선 OpenGL 을 위한 첫 포스트니까, OpenGL 의 소개로 시작하자. 위의 사이트는 OpenGL 의 공식 사이트이다. 이곳에서 OpenGL 에 관련된 최신 소식을 비롯하여 다양한 도구 및 라이센싱 문의를 할 수 있다. 해당 사이트는 OpenGL 의 PDF 형태로 된 Specifiactions Documentation 및 OpenGL Utilties (GLUT) 소스와 미리 컴파일된 DLL 들을 받아볼 수 있다.
OpenGL 은 SGI 에서 개발한 그래픽스 산업 표준 API 이다. 처음은 단순하게 수학적인 그래프들과 연산들의 결과물을 조금 더 빠르고 편리하게 표시하기 위한 용도로 표준을 제안한 것이 현재 게임 산업의 선두주자 API 로 자리매김하게 되었다. 때문에 OpenGL 은 게임 뿐 만 아니라 수학, 물리 및 의과 프로그램에서도 자주 쓰인다. 국내에서는 OpenGL 보다 DirectX 가 먼저 시장에서 자리매김하여 많은 프로그래머들에게 전파되었지만, 대부분의 최신 그래픽스 기술은 항상 OpenGL 을 통해 제공된다. 별로 놀랄 것도 없는 것이, GLUT 의 처음 개발자는 SGI 연구원이 아닌 nVidia 프로그래머였으며, nVidia 는 OpenGL 을 지지하는 일등 공신이다. 그래픽스 칩 제조회사에서 이렇게나 밀어주고 있는데 무슨 말이 더 필요한가. (추가로, 퀘이크와 둠으로 명성을 날릴 천재 프로그래머 존 카맥 역시 OpenGL 열혈 지지자이다. 최근은 DirectX 를 위해 몇번 손을 들어주기도 하였지만, 그의 게임은 항상 OpenGL 최적화 되어 있다.)
자 소개는 대충 이쯤에서 마무리하자. 어쨌거나 나는 OpenGL 이 빠르다는 점에서 지지하지만, DirectX 의 행렬 처리 방식을 더 선호한다. (다만 DirectX 의 모든 수학 객체들은 전부 자체적으로 연산을 바꿔 수행하기 때문에 우리가 표준으로 알고 있는 수학 공식들은 절대 DirectX 에서 통용되지 못한다는 사실이 간혹 머리를 아프게 하기도 한다.)
OpenGL 은 많은 리눅스 기반 플랫폼과 오픈 소스에서 자주 사용되는 그래픽스 API 이므로, 한 번쯤 공부해두는 것도 매우 즐거운 일이라고 생각한다. 우리는 이미 NDS 기반에서 게임을 올리기 위해 다양한 연구를 했었으며, 이 중 OpenGL 자체적인 연산에 대한 연구도 무척 가치있는 시간이었다고 생각한다. (참고로 NDS 는 OpenGL|ES 와 매우 흡사한 인터페이스로 동작하는데, 사실 이정도도 잘 지원을 못하기 때문에 다양한 측면에서 최적화를 필요로 한다. 바꿔말하자면, 우리의 엔진을 많이 애용해달라는 의미.)
2. OpenGL 프로그램 실행시 오류 발생가끔 OpenGL 프로그램을 실행하면 다음과 같은 오류가 발생된다. (이는 대부분의 프로그래머들이 OpenGL UT DLL 을 함께 배포하지 않기 때문이다.)
"glut32.dll 을(를) 찾을 수 없으므로 응용 프로그램을 시작하지 못했습니다. 이 문제를 해결하려면 응용 프로그램을 다시 설치하십시오."그러면 OpenGL 사이트나 다른 배포 사이트를 통해 DLL 을 해당 작업 폴더에 옮겨주거나, 윈도우 System 폴더에 옮겨주면 무난하게 실행이 된다. 그럼에도 불구하고 가끔씩 다음과 같은 메시지를 건네받기도 한다.
"프로세서 시작 지점 __glutInitWithExit 을(를) DLL glut32.dll 에서 찾을 수 없습니다."
이는 자신이 설치한 해당 DLL 이 윈도우 기반에서 제작된 DLL 이 아니기 때문에 그러하다. 윈도우 전용 x86 기반 DLL 은 따로 제공되므로 아래의 사이트를 통해 제공받도록 하자. 참고로 아래의 사이트에서는 윈도우 기반 OpenGL UT 의 소스도 다운받을 수 있다.
http://www.xmission.com/~nate/glut.html아차차, OpenGL Utilities, 즉 GLUT 는 OpenGL 개발 환경을 더욱 편리하게 제공받기 위한 추가 라이브러리 이다. 필수는 아니지만, 이를 활용하면 제법 쉽게 OpenGL API 를 다룰 수 있다.
3. 마무리OpenGL 은 그래픽스 산업 표준 API 로써 오랜시간 동안 그래픽스 발전에 공헌을 해왔으니 아직 접근을 해보지 못한 프로그래머라면 이번 기회에 꼬옥 예제를 한 번 다운받아서 둘러보자. OpenGL 을 더욱 쉽게 배울 수 있도록 해주고 널리 알리는데 공헌한 다른 프로그래머는 NeHe (NeHe's OpenGL Tutorials) 가 있다. 사이트 주소는 다음과 같다.
http://nehe.gamedev.net/