• 북마크
  • 추가메뉴
어디로 앱에서 쉽고 간편하게!
애플 중고 거래 전문 플랫폼
오늘 하루 보지 않기
KMUG 케이머그

소프트웨어

[App 개발] NeHe Tutorial 따라가기 (0)

본문

OpenGL 사이트 중에서 꽤 명성이 있는 NeHe 프로젝트의 튜토리얼을 따라가 보려고 합니다. 저는 지금까지 Win32와 DirectX 프로그래밍을 주로 해 왔고, 따라서 매킨토시의 Xcode도 처음이고, OpenGL도 처음입니다. 저 혼자 공부하는 것보다는 게시판에 기록을 남기는 것이 제게도 정리하는데 도움이 되고, 관심있으신 분들께서도 도움이 될까 해서 저의 졸필을 남깁니다.
참고로, 저는 아직 Cocoa는 못 하고 Carbon으로 할 계획입니다.


0. 준비작업 - Xcode에서 GLUT를 컴파일하는 방법

매킨토시의 개발 환경이 예전에는 Symantec C에서 CodeWorrior로, 지금은 OS X로 넘어오면서 ApplicationBuilder로, 10.3에서는 Xcode로 발전해 왔습니다. 초기에는 툴박스가 파스칼 형식으로 되어서 C를 쓰시는 분들은 데이터 타입을 모두 파스칼로 변환하여야 하는 불편함이 있었습니다만, Carbon으로 와서는 이제 그런 불편은 많이 사라진 것 같습니다.

GLUT는 OpenGL 프로그래밍을 좀 더 쉽게 하기 위하여 마련된 유틸리티 라이브러리입니다. GLUT를 사용하지 않고 직접 핸들러를 짜는 것이 궁극적으로는 좋겠지만, 당장 배우는 입장에서는 골치아픈 루틴들은 모두 GLUT에 맡기고, OpenGL의 기본 기능을 먼저 익히는 방향으로 나가는 것이 좋을 것 같습니다.

문제는, 프로그래밍 환경이 계속 변화하다보니 새로 발표된 개발환경에서 어떻게 컴파일을 할 것인지를 먼저 확인하고 넘어가는 것이 좋을 것 같습니다.

GLUTXcode01.jpg

먼저 Xcode는 설치하셨겠지요? 그러면 Xcode를 실행시킨 후, File -> New Project 를 선택해 봅시다.


GLUTXcode02.jpg

Assistant 화면이 출력되면서 New Project의 종류를 선택하는 메뉴가 나타날 것입니다. 저는 Carbon으로 프로그램을 작성할 것임으로, Application->Carbon Application을 선택했습니다.

GLUTXcode03.jpg

그리고 나면 새로운 Application 프로젝트 파일을 생성할 폴더의 위치를 물어볼 것입니다. 저는 홈 밑에 프로젝트 폴더를 따로 만들어서 그곳에 저장하였습니다만, 매킨토시 사용자들은 주로 데스크탑에 늘어놓고 작업하시는 것을 좋아하시죠? ^^

GLUTXcode04.jpg

이제 버튼을 누르시면 자동으로 생성되는 Template파일들을 보실 수 있습니다. 이 중에서 main.c 가 우리가 앞으로 짤 프로그램의 메인 루틴이 될 것입니다.

한 가지 특이한 것은 프로젝트 항목들을 보시면 framework 라는 것들이 보일 것입니다. 바로 우리가 등록하여야 할 것이 저것입니다. 지금은 Carbon Application으로 선택하였기 때문에 Carbon에 필요한 항목들만이 선택되어 있습니다. GLUT에 필요한 framework을 선택하도록 하겠습니다.

GLUTXcode05.jpg

프로젝트 항목에 마우스를 놓고 오른쪽 버튼을 누르시면 Popup메뉴가 나오는데, 그 중에서 Add->Existing Frameworks를 선택하셔도 좋고, 메뉴에서 Project->Add Frameworks를 선택하셔도 됩니다.

GLUTXcode06.jpg

선택해야 할 것은 두 가지입니다. 하나는 당연히 GLUT.framework이 되겠고, 또 한가지는 Cocoa.framework입니다. 왜냐하면 GLUT.framework이 Cocoa로 작성되었기 때문이라고 하는군요.

GLUTXcode07.jpg

두 개의 framework을 무사히 등록하고 나면 이제 컴파일할 준비가 다 된 것입니다. 만약 아래의 샘플 코드가 무사히 컴파일되면 다음 단계로 넘어갈 수 있습니다.^^

#include
#include
#include

void display(void)
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ) ;

glBegin(GL_QUADS) ;
glVertex2f(-0.75f, -0.75f) ;
glVertex2f( 0.75f, -0.75f) ;
glVertex2f( 0.75f,??0.75f) ;
glVertex2f(-0.75f,??0.75f) ;
glEnd() ;

glutSwapBuffers() ;
}

void reshape( int width, int height )
{
glViewport( 0, 0, width, height) ;
}

void idle( void )
{
glutPostRedisplay() ;
}

int main( int argc, char** argv )
{
glutInit( &argc, argv ) ;

glutInitDisplayMode( GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH ) ;
glutInitWindowSize( 640, 480 ) ;

glutCreateWindow( "GLUT Program" ) ;

glutDisplayFunc( display ) ;
glutReshapeFunc( reshape ) ;
glutIdleFunc( idle ) ;

glutMainLoop() ;
return EXIT_SUCCESS ;
}
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 228,692
가입일 :
2003-02-18 14:12:30
서명 :
미입력
자기소개 :
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 4

hongjuny님의 댓글

음 geocities에 그림을 살짝 올려놓고 링크를 걸었는데 안 보이는군요. ㅡㅡ; URL은 확실히 맞으니 불편하시더라도 손수 하나씩 보심이... 담부터는 잘 하겠습니다. 지성함돠... ㅡㅜ;

박성일님의 댓글

그림이 하나도 안보여요.-_-

김영환님의 댓글

저도 오픈GL 프로그래밍을 처음 배우고자 정보를 찾고 있었는데,
덕분에 도움이 되었습니다. 이어지는 강좌도 참고 하겠습니다~

배금동님의 댓글

이미지가 있었으면 참 좋았겠는데요..ㅡ,.ㅡ
배우고 싶습니다만, 에러가 나네요. ㅡ,.ㅡ
file not found: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE

프레임워크가 없다고 그러는거 같은데.. ㅡ,.ㅡ