Windows/OpenGL

04. OpenGL 설치 및 테스트

Ohjeonghak 2014. 10. 11. 18:44
반응형

OpenGL 라이브러리의 종류

- GL(OpenGL Core Library)

  : 렌더링 기능을 제공하는 함수 라이브러리로 지엘은 단지 렌더링 기능만 수행할 뿐 사용자의 입력을 받는 기능과 출력하는 기능이 없다.

- GLU(OpenGL Utility Library)

  : GL 함수로 작성되어 있는 고급 기능을 제공하는 함수들의 집합

- GLUT(OpenGL Utility Toolkit)

  : 사용자 입력을 받거나 화면 윈도우를 제어하기 위한 함수로 운영체제를 호출한다.

 

 

Visual Studio 의 경우

OpenGL 다운로드 

 

https://www.opengl.org/ 

 

OpenGL 공식 홈페이지에 들어가면 상단에 Coding Resources 메뉴에 GLUT & Utility Libraries 항목이 있다.

 

 

 

Coding Resources > GLUT & Utility Libraries 항목에 들어오면 오른쪽 메뉴에 GLUT 가 있는데 이 페이지로 이동하자.

 

 

 

 

GLUT 페이지의 맨 하단에 보면 OpenGL 라이브러리를 다운로드할 수 있다.

 

 

 

 

파일의 내용은 다음과 같이 구성되어 있다.

 

 

여기에서 각각의 파일들을 복사를 해서 옮겨 주어야 한다.

복사를 해 줘야하는 위치는 os의 bit와 visual studio 버전에 따라 다른 듯하다.

 

운영체제의 bit 종류에 따라 "Program Files"에 (x86)이 붙은 경로일 수 있고 안 붙은 경로일 수 있으며,

visual studio의 버전에 따라 각각의 파일을 복사해줘야 하는 위치가 바뀔 수 있다  

그리고 visual studio가 설치되어 있는 디렉토리에 각각의 파일을 복사하면 된다.

visual studio의 버전에 따라 디렉토리 경로가 "Windows Kits\8.1\" 가 아닐 수 있음을 주의 하자.

visual studio의 버전에 따라 설치된 경로를 알고 있다면 OpenGL을 사용하기가 쉽다.

 

 "gult.h"

이 파일은

"C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl"

 위치에 복사해 준다. 나는 windows8.1 64bit에 visual studio 2013 버전을 사용하기 때문에 다음과 같은 위치에 저장했다

 

"glut.lib", "glut32.lib"

이 파일은

"C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86"

 위치에 복사해 준다.

 

"glut.dll", "glut32.dll"

이 파일은

"C:\Windows\System32"

 위치에 복사해 준다.

 

그리고 MS Visual Studio를 실행하고 프로젝트를 생성해서 프로젝트 속성에 있는 링커 항목에

입력 항목으로 들어가서 추가 종속성에

glut32.lib;
glu32.lib;
opengl32.lib;

를 입력하여 링커 시켜주어야 한다.

 

 

 

Eclipse의 경우 

 

MinGW 다운로드 

 

하기 링크를 통해 다운로드하고 설치한다.

설치 후엔 환경변수 설정을 해줘야 한다.

http://www.mingw.org/ 

 

Eclipse CDT 설치

help > install new software... 메뉴를 통해 CDT 설치

 

 

http://download.eclipse.org/tools/cdt/releases/8.8.1 

 

 

 

FreeGLUT 다운로드 

 

하기 Freeglut를 다운로드하고 "C:\Windows\System32" 경로에 "freeglut.dll"복사해둔다.

freegult의 파일 내용 중 bin, include, lib 내용의 mingw에도 각각의 해당 경로에 복사해준다.

 

http://freeglut.sourceforge.net/index.php#download 

 

Eclipse link 설정

프로젝트의 properties에서 c/c++ build > settings > tool settings > mingw c++ linker의 libraries (-l)에

opengl32

glu32

freeglut

 

내용 추가해준다.

 

*추가적으로 FreeGult를 사용하면 빌드된 exe 파일과 freeglut.dll 파일이 같은 디렉토리에 존재해야 한다.

 

 

 

Test 방법

 

설치가 잘 되었는지 테스트는 아래 소스와 같이 하면 된다.

 

#include <gl⁄glut.h>
void MyDisplay()
{
	glClear(GL_COLOR_BUFFER_BIT); //색 버퍼 비우기
	glBegin(GL_POLYGON); //다각형 그리기
    
		//다각형의 꼭지점 포인트
		glVertex3f(-0.5, -0.5, 0.0);
		glVertex3f(0.5, -0.5, 0.0);
		glVertex3f(0.5, 0.5, 0.0);
		glVertex3f(-0.5, 0.5, 0.0);
        
    glEnd(); //다각형 그리기 종료
    glFlush(); //버퍼의 내용을 화면에 뿌리고 새로운 내용이 버퍼에 쓰여짐.
}
    
int main(void)
//int main(int argc, char *argv[]) //freegult를 사용한 경우 main 함수의 인자값을 받아 init이 필요하다.
{
	// glutInit(&argc, argv); //freegult를 사용한 경우 main 함수의 인자값을 받아 init이 필요하다.
    glutCreateWindow("OpenGL Drawing Exaple");
    glutDisplayFunc(MyDisplay); //디스플레이 이벤트에 대한 콜백 함수로 등록
    glutMainLoop(); //main() 무한루프
    return 0;
}

 

만약 컴파일하고 실행했을 때 다음과 같은 오류가 난다면 컴파일된 실행파일의 위치에 glut32.dll파일을 복사해서 넣어주면 해결된다. 아니면 "C:\Windows\SysWOW64" 디렉토리에 "glut.dll", "glut32.dll" , FreeGLUT 인 

경우 "freeglut.dll파일을 복사해서 넣어주면 매번 번거롭게 실행파일 위치에 복사해 줄 필요가 없이 바로 실행된다.

 

 

 

 

 

실행을 해보면 다음과 같은 아무 문제없이 올바른 결과물이 출력된다.

 

 

 

 

반응형