TOMATOWAX


HOME THE MAN WHAT'S NEW GAME ISLAND TECHNOLOGY NUT HAM RADIO READER LAND LINKS

DISPLAY


OpenGL - Logo.jpg

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/
조회 수 :
4427
등록일 :
2009.04.19
22:19:20 (*.165.38.21)
엮인글 :
http://www.tomatowax.com/ZeroboardXE/7574/37f/trackback
게시글 주소 :
http://www.tomatowax.com/ZeroboardXE/7574

'3' 댓글

후배

2009.06.19
01:08:37
(*.251.26.14)
OGL은 C기반으로서 D3D에 비해 융통성이 좋아 저는 OGL을 선호하죠. 오히려 생각해보면 그런 융통성을 위한 아주 원시적이고 기본에 충실한 설계와 기능들(오른손 좌표계로써 불편한 점, 모델뷰행렬로 통합되어있다는 점, 자체 리소스매니저가 없다는 점. 등) 만의 조합의 역효과로 (물론 GLUT라는 편리한 라이브러리가 있긴하지만 D3D만큼은 아닌...) 입문자에게 있어서 D3D쪽으로 유혹되는 요소가 아닐까 생각됩니다. 솔직히 말하자면 방금 말한 요소는 3D 입문자에게만 해당되는 단기적인 요소인 것 같고, 그렇게 썩 잘 알고있지 않지만서도, 결정적으로는 OGL의 융통성은 엔진제작에 정말 좋은반면 드라이버 지원미비, 벤더함수의 증가로써 낮은 통일성(이 부분은 OGL3에서 어느정도 해결이 되었지만), 좀 억지지만 부분적인 보수적이고 융통성이 없는 기본수학에 충실한 점 등등 때문에 PC 게임의 기업들이 잘 사용하지 않는 것 같다고 생각하네요. 이렇게 쓰고보니 옛날에 계획되었던 Fahrenheit가 제작이 되었더라면 과연 OGL과 D3D의 장점을 모두 갖추고 거기에 필적할만한 라이브러리가 없는 그런 3D API가 되었을지 궁금하군요. 아무튼 앞으로의 OGL에 대한 포스팅을 기대하겠습니다.

토마토왁스

2009.07.13
22:51:56
(*.165.38.24)

음~~~ 어쩐지 OGL 의 다양한 포스팅을 기대해버리는 글이 되버렸네요?^^ 하핫.. 사실 프로그래밍 분야는 글을 잘 안쓰다보니 OGL 관련 글은 아직 이게 처음이네요. 프로그래밍 지식까지 공유하기에는 내공이 많이 부족해서요..^^ 관심 감사합니다~

 

ps. 제가 제작하는 엔진은 플랫폼에 맞추어 DirectX, OpenGL 을 내부적으로 사용하도록 디자인 되었는데.. 즉, 3D API 와 무관하게 통일된 인터페이스를 엔진 단에서 제공을 해주도록 말이죠. 이 때 직관적으로 프로그래밍을 하면서 통합이 애매한 부분들은 제법 OpenGL 쪽에서 생기더군요. OpenGL 이 엔진제작에 좋은지는 아직 잘 못느끼겠구요..^^ Native 한 면이 직관적이라고 볼 수 있겠으나, 실제 엔진에서 요구하는 것들을 맞추기에는 DirectX 가 조금 더 편했습니다. 그렇다고 DirectX 가 엔진에 더 잘 어울렸냐구요? 아뇨, 실은 OpenGL 이 더 잘 어울렸습니다. DirectX 는 너무 많은 부분이 Wrapping 되어 있기 때문이죠. 다만 둘 다 Primitive 한 부분만 놓고 보자면 DirectX 가 더 선호되었던 것 같네요. (무엇보다 OpenGL 은 넘겨주는 Parameter 가 단순한 Hint 로 작동되는 부분이 여럿 있어서요.) 사실 둘다 장단점이 존재하다보니 그런것들을 맞추어 나가는 과정이 더 재밌게 느껴지더군요..^^ 어느 함수에서는 어떤 API 가 더 효율적이고, 아니고-가 디자인되다 보니까요. 다만 OpenGL Source 를 넘겨주는 플랫폼에서-라면 무조건 OpenGL 환영입니다. :)

토마토왁스

2010.01.18
11:42:16
(*.190.32.37)
최근 스마트폰 열풍으로 OpenGL 에 대한 이슈와 관심이 더욱 많아지고 있는데요, 이에 대한 궁금증은 www.GameDevNut.net 에 문의해주시면 좋겠습니다. 정확히는 www.TechnologyNut.org 에 접속해보시면 포럼중에서 모바일 관련 포럼이 있습니다.
문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
옵션 :
:
:
:
:
List of Articles
번호 제목 글쓴이 날짜 조회 수
20 iPhone 아이폰 어플 종료하기 토마토왁스 2010-05-12 2427
19 iPhone 아이폰 fopen 활용 파일 생성 및 열기 [1] 토마토왁스 2010-05-10 2127
18 iPhone 멀티 터치 관련해서 - 마우스, 터치, 멀티터치 [2] 토마토왁스 2010-05-02 1385
17 iPhone 맥 OS X 에서 아이폰 키체인 요청, 생성이 실패할 때 토마토왁스 2010-05-02 2366
» OpenGL Hello, OpenGL !! [3] imagefile 토마토왁스 2009-04-19 4427
15 Math Bounding Circle 과 Bounding Box 의 중심점 차이 [3] imagefile 토마토왁스 2009-03-11 3204
14 Windows Forms ListBox 의 IndexFromPoint 동작 에러 imagefile 토마토왁스 2009-03-09 2701
13 General sscanf_s 제대로 사용하기 [1] imagefile 토마토왁스 2009-03-09 5367
12 Windows Forms System.Resources.MissingManifestResourceException 대처 imagefile 토마토왁스 2009-02-28 2601
11 Math 벡터의 내적, 외적과 투영 imagefile 토마토왁스 2009-02-21 8152
10 Windows Forms Mouse Clipping by 'RectangleToScreen' imagefile 토마토왁스 2009-02-20 2616
9 General VC++ 워닝과 LNK4099 에 관한 의견 imagefile 토마토왁스 2009-01-15 3797
8 Etc. 3DMark 실행 시 에러 대처법 [3] imagefile 토마토왁스 2009-01-06 7599
7 DirectX DirectX SDK 9.0c 의 Pure Device 에 대한 보고 imagefile 토마토왁스 2008-12-20 2876
6 DirectX D3DXMatrixPerspectiveFovLH() - Aspect Formula Error ?? [2] imagefile 토마토왁스 2008-12-15 3399
5 Windows Forms Windows Forms Error in Mixed Projects, _CrtIsValidHeapPointer(pUserData) [7] imagefile 토마토왁스 2008-12-10 4452
4 Etc. Html Help Workshop 의 설치와 실행 - 실행시 Ordinal Error 의 hha.dll 에 대한 대처 [2] imagefile 토마토왁스 2008-11-13 6546
3 Etc. 각종 참조를 가르켜주는 Dependency Walker imagefile 토마토왁스 2008-11-03 3160
2 General End Of Line Warning 에 대한 짧은 고백 imagefile 토마토왁스 2008-10-21 2893
1 General Visual Studio C++ Express 로 WTL (Windows Template Library) '제대로' 컴파일 하기. imagefile 토마토왁스 2008-10-20 3872



HAM RADIO


NOTICE
GOSSIP
PROGRAMMING
GUEST BOOK




Subject_NewArticles.jpg

Subject_NewComments.jpg

오늘 :
37
어제 :
148
전체 :
535,003



COPYRIGHT