원래 컴퓨터 관련 책을 사면 처음부터 순서대로 하나씩 해보는 것을 좋아해서 이번에도 마찬가지로 처음부터 순서대로 읽고 있다. 처음 OpenGL을 생각했을때는 운영체제에 상관없이 사용할 수있다... 윈도우에서도 지원이 된다라는 막연한 생각만 가지고 있었는데, 막상 프로그래밍을 해보니 이것도 단순한 것이 아니라는 것을 깨달았다.
일단 제일 먼저 깨달은 것은 OpenGL은 렌더링만을 담당하는 녀석이라는 것이다. 즉, 그래픽 모델링을 OpenGL을 가지고 하기에는 정말 힘들다는 사항을 깨달았다. 게다가 OpenGL은 사용할 수 있는 가장 하위에 있는 함수들의 목록이므로 그 위에 있는 GLUT을 잘 써야 한다는 점이다. 게다가 3차원 그래픽을 기본으로 하기 때문에 Viewpoint를 잘 생각해야 한다는 것도 좀 다른 점이다.
그리고 Event Driven한 동작을 보여 주기 위해서 callback 함수를 잘 써야 한다는 것이 또 다른 점이다. 그 중에서도 윈도우와 가장 다른 점은 TimerCallback 함수였다. TimerCallback 함수는 윈도우를 생각해보면 한번만 셋팅하면 Timer를 kill 하기 전에는 계속 동작하지만, OpenGL에서는 그렇지 않았다. TimerCallback은 OpenGL에서는 Timer에 맞추어서 한번만 동작을 한다. 그리고 계속 동작을 시키고 싶으면 TimerCallback 함수에서 또 TimerCallback을 register 해야 한다.
아주 예전부터 나는 그래픽 프로그래밍을 별로 하고 싶어하지 않았다. 특히나 윈도우 프로그래밍을 배우지 않은 것도 GUI 만들기를 싫어 해서 그랬고, 리눅스 프로그래밍을 공부한 것도 GUI 부분이나 그래픽 부분을 신경 쓰지 않아도 괜찮았기 때문이었다. 표준이라는 것을 찾아 보기 힘들고 하나의 플랫폼에 종속되는게 싫어서 그랬다.
그러다 아는 분이 Ogre3D 라는 멋진 Open Source 그래픽 엔진을 추천해 줬었다. 소스 자체도 OO적으로 엄청 잘 만들었다는 얘기를 들었다. 홈페이지를 읽어 보다가 드뎌 나두 그래픽 부분에 대한 지식을 쌓는게 좋을것 같다는 생각이 들어서, OpenGL을 공부하기로 결심했다. Ogre3D도 내부엔 OpenGL과 DirectX 두개 모두를 사용할 수 있게 되어 있고, 요즘은 하드웨어 자체가 좋아져서 OpenGL을 일반적인 PC에서 자유롭게 사용할 수 있게 되었기 때문이다.
어제 예전부터 봐 왔던 책인 "OpenGL로 배ㅇ는 컴퓨터 그래픽스"라는 책을 샀다. 일단 그래픽에 대한 기본적인 이론을 알아야 할것 같아서 어느 정도 이론을 알려 주면서 OpenGL로 그 구현등을 볼 수 있는 책이라서 구매해 버렸다. 가격이 3만원이 넘는 책이다....
사무실에서 조금씩 볼려고, 아예 사무실에 갔다 놨다. 열심히 보면서 필요한 내용들은 여기에 정리해 볼려고 한다.


글
댓글을 달아 주세요
댓글 RSS 주소 : http://www.cipher.pe.kr/tt/cipher/rss/comment/94댓글 ATOM 주소 : http://www.cipher.pe.kr/tt/cipher/atom/comment/94