2014/03/26

OpenGL 공부를 시작했습니다.

 뭐 이것저것 뜬금없이 튜토리얼만 계속 해보는 중입니다. ㅋㅋ

 http://www.extremetech.com/gaming/179010-who-needs-directx-amd-nvidia-and-intel-team-up-demonstrate-ultra-low-overhead-opengl

 뭐가 어떻게 돌아가는 지는 잘 모르겠지만, 대강 이해하기로는,

- GPU 제조회사들간에 API를 각각 만들다가, (예를 들면, NVidia의 CUDA나 Tegra처럼)

- 그럼 너무 비용이 많이 들어가니 OpenGL로 통일하자.

라는 것 같은데요. 그래서 일단 OpenGL이 뭔지나 알고 넘어가자, 싶어서 튜토리얼을 펼쳐봤습니다.

(사족이지만, OpenCL도 있고 뭐 이것저것 많은 것 같습니다. 중요한건, 병렬 컴퓨팅을 이용한다는 거겠죠. 뭐 나중에 다 통합될 수도 있지 않을까 싶습니다만. 근데 OpenCL은 너무 어렵더군요. --;;)

http://openglbook.com/the-book/chapter-1-getting-started/

 그냥 있는 코드 그대로 갖다 붙였습니다. 컴파일할 때의 플래그는 "-lglut -lGLU -lGL -lX11 -lm"을 붙이면 어찌어찌 됩니다. ㅋ Eclipse에서는 Cross G++ Linker에 있는 Libraries 세팅에 넣어줘야 됩니다.(앞의 '-l' 빼구요)

 그런데 안되는 겁니다. 다른 예 ( http://ogldev.atspace.co.uk/index.html)는 그냥 잘 되서 참 좋아하던 참인데요. --;;

 그래서 이것저것 뒤져보던 참에 알게 된 것 중에 하나는 xorg.init파일을 수정하라는 거였는데요. 제 경우에는 그것 때문만은 아닌 것 같구요. 예제 중에

glutInitContextVersion( int, int )

이라는 함수가 사용되는데요. OpenCL버전을 넣는 함수인것 같습니다. 앞의 숫자는 major버전, 뒤의 숫자는 minor버전인데요. 저의 경우에는 3.3버전을 쓰고 있었는데, 튜토리얼에 있는 그대로 4랑 0을 넣었더니 resource가 안 맞는다면서 에러가 나더군요. 저 숫자를 설치되어 있는 버전인 (3,3)으로 바꾸니 제대로 구동하더군요.

댓글 없음: