본문 바로가기

Study

우분투에서 OpenGL 프로그래밍 하기

오늘 첫 스타트를 끊고자, wubi를 이용하여 우분투를 깔았습니다. 근데 직접 까는거보단 뭔가 느린 느낌이 확연하게 드네요... 전에도 이런 느낌 받았더랬죠...; 아마 wubi 처음 나왔을 때였던가요?ㅎㅎ;

그건 그렇고, 이번에 하게 된 건 우분투에서 OpenGL 프로그래밍을 하기 위한 전처리랄까요? 그런 작업을 하고자 이렇게 포스팅하게 됬습니다. 다른분들도 참고가 되셨으면 좋겠네요 ^^ 저도 처음에 해매다가 여기저기 들쑤시니까 나오네요 ㅋㅋ; 제가 보고 있는 책은 "OpenGL 프로그래밍 가이드 제3판 OpenGL 1.2 공식 학습 가이드" 라는 책인데요, 여기에서는 윈도우는 물론이고 리눅스에서 처음 시작하는 법도 안알려주더군요 ㅠㅠ... 어쩔수없이 윈도우에서 썼을때도 제가 스스로 찾아냈는데, 리눅스 저번에 시도했다가 결국은 못찾아서 말이죠 ㄷㄷ...

일단, 아래의 소스 코드를 입력해보시기 바랍니다. 뭐 파일명은 자유입니다만, 적당히 helloworld.c가 낫겠네요 ㅋ_ㅋ

#include <GL/glut.h> // <1번>
#include <stdlib.h>

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 1.0, 1.0);
    glBegin(GL_POLYGON);
        glVertex3f(0.25, 0.25, 0.0);
        glVertex3f(0.75, 0.25, 0.0);
        glVertex3f(0.75, 0.75, 0.0);
        glVertex3f(0.25, 0.75, 0.0);
    glEnd();
    glFlush();
}

void init(void)
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(250, 250);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Hello");
    init();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}

소스설명을 제가 일일이 할 순 없습니다만... [실력이 딸려서?] 저도 오픈지엘 이제 부딪히는 단계인지라 ^^; 대충 함수 이름보면 뭐하는 녀석인지는 알아먹으실 수 있을겁니다. 그만큼 쉽게 느껴진다능 ㅎㅎ; 잡솔은 그만 하구요, 위의 소스를 치시던 Ctrl+C, Ctrl+V하시던, 저장까지 하셨다면, 터미널에다가

$ gcc -o helloworld helloworld.c

라고 치시면 분명 에러가 뜰겁니다. 당연하죠... 사전준비를 하지 않았으니까요 ^^; 자, 이제 사전준비를 하도록 합시다 ^^

그냥 아래 딱 세줄이면 끝납니다.

$ sudo apt-cache search glut
$ sudo apt-get install glutg3
$ sudo apt-get install glutg3-dev

<출처 : http://link.allblog.net/7926675/http://pigvitamin.tistory.com/entry/%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90%EC%84%9C-OPENGLGLUT%EC%84%A4%EC%B9%98>
헉? 진짜? 라고 의심하시는 분들도 계실진 모르지만, 맞습니다 맞고요... [어?] 자, 이제 사전준비도 마쳤겠다, 컴파일해보잣!+_+ 하면서 바로 gcc -o helloworld helloworld.c 를 치고 계시는 분이 있지 않을까 생각해봅니다. 제가 그랬다능 ;ㅅ ; 하.지.만. 그게 다가 아닙니다. 물론 설치는 끝났습니다만, 컴파일할때 하나 추가하셔야할 것이 있답니다. 바로,

$ gcc -o helloworld helloworld.c -lglut

라는 녀석인데요, 저걸 집어넣으셔야 컴파일이 완료될겁니닷.

사용자 삽입 이미지

완성된 화면이라능!+_+ 비록 저 상자 하나 띄울려고 이런거지만 ㄷㄷ...


아, 그리고... 소스코드에 있는 <1번>의 경우에 꼭 GL[대문자]로 쓰셔야 합니다. 리눅스는 대소문자 구별 하잖아요 ㅎㅎ 소문자로 쓰시면 에러나니깐 주의하시구요 ^^;

자, 우리들의 프로젝트를 위한 사전준비는 끝났습니다. 가끔 OpenGL 공부하면서 포스팅도 함께 열심히 하도록 하겠스므니다 ㅎㅎ 수고하시길!+_+