새소식

etc

OpenGL 우분투, 리눅스 설치 / OpenGL 예제, 컴파일

  • -

안녕하세요 호호만두에요

오늘은 오랜만에 코딩 공부한 글을 써보려고 해요

딱히 코딩공부라고도 할 수는 없지만..

나중에 다시 opengl 공부시 설치해야할 때를 위해 글 남깁니다!!

 

일단 제가 해보니까 윈도우10 우분투에서는 안되더라구요 ㅠㅠㅠ

컴파일은 되는데 실행파일이 실행이 안되요!!

따로 어떤 설정을 해주어야만 실행이 되는것 같은데 저는 실패했습니다...

 

결국 vmware의 우분투 환경에서 실행했어요!!

(비주얼 스튜디오가 깔기 싫었음...ㅎ)

 

실행해야 하는 명령어

sudo apt-get install -y build-essential
sudo apt-get install freeglut3-dev libglu1-mesa-dev mesa-common-dev

 

위의 명령어 실행 후 별 오류 없이 설치가 되었다면 /usr/include/GL이 생겼을거에요

 

그리고 간단한 예제

리눅스 환경에서의 코드입니다!!

윈도우는 include하는 헤더가 달라요 

#include "GL/freeglut.h" 

void init();
void display();
void drawPoints();
void keyboard(unsigned char key, int x, int y);

void drawPoints(){
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3f(1.0, 1.0, 1.0);
	glBegin(GL_POLYGON);
	glVertex2f(-0.5, 0.0);
	glVertex2f(0.5, 0.0);
	glVertex2f(0.0, 1.0);
	glEnd();
	glFlush();
}

void keyboard(unsigned char key, int x, int y){
	switch(key){
		case 'q':
		case 'Q':
			exit(EXIT_SUCCESS);
			break;
		case 'r' :
		case 'R' :
			glClearColor(1.0, 0.0, 0.0, 1.0);
			break;
	}
	glutPostRedisplay();

}

int main(int argc, char **argv) {
	int mode = GLUT_RGB | GLUT_SINGLE;
		
	// GLUT_RGB : True Color Mode
	// GLUT_DOUBLE : Use Double Buffer
	// Default Mode : GLUT_RGB | GLUT_SINGLE

	// Init GLUT & create Window
	glutInit(&argc, argv);
	glutInitDisplayMode(mode);	// Set drawing surface property
	glutInitWindowPosition(100, 100);	// Set window Position at Screen
	glutInitWindowSize(400,400);	// Set window size. Set printed working area size. Bigger than this size
	glutCreateWindow("OpenGL");	// Generate window. argument is window's name
	glutSetWindowTitle("exam");
	
	// Register Callback function before set glutMainLoop()
	glutDisplayFunc(drawPoints);
	glutKeyboardFunc(keyboard);
	glutMainLoop();	// Monitor message queue and Run the corresponding callback function
    return 1;
}

 

그리고 아래의 명령어 입력을 통해 작성한 예제코드 컴파일 하기!!

exam.c의 뒷부분은 라이브러리를 추가해주는거에요

꼭 쓰셔야되요!!

gcc exam.c -lglut -lGL -lGLU

 

입력하면 a.out이라는 새로운 실행파일이 생겨요. 다음 명령어 실행

./a.out

그러면 실행이 된답니다!!

 

간단하게 검은 바탕에 흰색으로 삼각형 그려봤어요

잘 나오네요

예제 여러개 섞어서 해보다가 좀 헤맸는데 성공!!

좌표에서 0.0이 window의 중심인 것 같아요

참고해서 더 예쁘게 그려보세요 ㅎㅎㅎ

 

이제 설치가 제대로 되었으니 다음에는

함수 하나 하나씩 해보면서 설명 적어보려구요

열공하세요~~!!

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.