'OpenGL 활용/OpenGL 설치'에 해당되는 글 1건
- 2013.01.19 OpenGL 설치 2
OpenGL Installation
여기서는 Microsoft Windows 운영체계에서 Visual Studio C++ 2010 을 사용하는 경우에 OpenGL 설치방법에 대해서 간단히 설명하기로 한다.
설치된 Program 및 Folder:
Visual Studio .NET 2010 SDK 를 설치함에 따라, 다음의 OpenGL Library 와 Header 파일들은 다음의 적합한 위치에 설치된다.
-
gl.h, glu.h - C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl
-
opengl32.lib, glu32.lib - C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
-
opengl32.dll, glu32.dll - C:\Windows\System32
64bit Visual Studio SDK 를 사용하는 경우에 64bit 용 .lib 파일들은 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64 에 .dll 파일들은 C:\Windows\SysWOW64 에 설치되어 있다.
참고로 Microsoft 사는 1995년 이후, GLU (Graphic Library Utility) version 1.22 만을 제공하고 있어, 이후의 업그레이드 된 GLU version 을 사용하기 위해서는 Linux 환경에서 OpenGL을 사용하는 것이 바람직하다.
필수 설치 Program:
OpenGL 프로그래밍의 편리를 위해 다음 3개의 필수요소를 다운로드하여 설치하는것이 바람직하다.
GLUT (The OpenGL Utility Toolkit), FreeGLUT,
GLEW (The OpenGL Extension Wrangler Library)
GLUT : http://user.xmission.com/~nate/glut.html - glut-3.7.6-bin.zip
FreeGLUT : http://freeglut.sourceforge.net/ - freeglut-MSVC-2.8.0-1.mp.zip
GLEW : http://glew.sourceforge.net/install.html - glew-1.9.0-win32.zip 또는 glew-1.9.0-win64.zip
위의 버젼은 2012년 12월 까지의 버젼으로 최신 version 이 나왔으면 이를 확인하여 설치하는것이 좋다.
모두다 이미 컴파일된 Binary 파일이므로 굳이 Source 파일을 다운받아 Window 에서 컴파일 할 필요가 없다.
먼저 GLUT 파일을 풀어
.h 파일들은 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl 에
.lib 파일들은 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib 에
.dll 파일들은 C:\Windows\System32 에 복사하면 된다.
다음에 FreeGLUT 및 GLEW 을 풀어서 위의 과정을 되풀이 한다. FreeGLUT 을 설치할 겨우 이미 설치된 같은 이름의 파일이 있으면 덮어 씌우면 된다.
주의 사항:
64 bit Windows 운영체계내에서 32 bit Visual Studio 를 설치했다면, 위의 모든 폴더 (C:\Windows\SysWOW64 및 ~\Lib\x64 포함) 에 위의 32 bit 용 파일들을 복사해야 한다. 만일 각각의 64 bit 용 폴더에 64 bit 파일들을 설치할 경우 컴파일시 에러를 유발 시킬 수 있다.
Test Program:
위의 파일들이 완전히 설치되었으면 다음의 Source Code를 가지고 Test 해보자.
Visual Studio C++ 를 Console Mode 에서 새 프로젝트를 생성한 후 다음의 Code를 입력한다.
/** Simple OpenGL Program #include <gl/glew.h>
// function prototypes
/******************************************************************************!
// register callbacks
// enter GLUT event processing cycle
return 0;
/******************************************************************************!
return;
/******************************************************************************!
glColor4f( 1.0, 1.0, 0.0, 1.0 );
glFlush(); |
위의 Source Code 를 입력한 후 .NET Framework 의 옵션을 다음과 같이 변경한다.
메뉴의 "프로젝트(P) -> ~~~ 속성(P)" 로 간 다음, ~~~속성 페이지에서
"구성속성 -> 링커 -> 입력" 의 오른쪽 "추가종속성" 오른쪽 란에 마우스를 클릭하면 아래 화살표가 나온다. 아래 화살표를 클릭하여 <편집...> 을 누른다음 다음의 4 줄을 Typing 하여 집어넣는다. 모든게 완료되면 확인 버튼을 누르고 난 다음 컴파일 한다.
opengl32.lib
glu32.lib
glut32.lib
glew32.lib
별로 많이 사용되지는 않지만 "glaux.lib" 를 사용할 때가 있으면 이것도 함께 추가종속을 시켜야 한다.
프로젝트를 할 때마다 이 과정을 반복하는 일이 불편할 경우에 또는 보편적인 프로그램을 할 경우에는 프로그램에서 pragma 를 사용해 #include <...> 라인 다음에 다음과 같이 라인을 첨가해도 된다.
#pragma comment(lib, "glew32.lib")
#pragma comment(lib, "glut32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glaux.lib")
컴파일시 만약 다음과 같은 error message 가 뜬다면 아래와 같이 해결한다.
error C2664: 'MessageBoxW' : 매개 변수 2을(를) 'const char [29]'에서 'LPCWSTR'(으)로 변환할 수 없습니다.
가리킨 형식이 관련이 없습니다. 변환하려면 reinterpret_cast, C 스타일 캐스트 또는 함수 스타일 캐스트가 필요합니다.
메뉴의 "프로젝트(P) -> ~~~ 속성(P)" 로 간 다음, ~~~속성 페이지에서
"구성속성 -> 일반 -> 문자집합"의 "유니코드 문자 집합 사용" 을 "멀티바이트 문자 집합 사용" 으로 변경한다.
또 다른 방법으로는 프로그램의 "MessageBox" 대신에 "MessageBoxA" 를 사용하거나, 또는 "MessageBox" 내의 Text 부분 (" " 부분) 을 TEXT() 매크로를 사용, Message( hWnd, TEXT("End of Program"), TEXT("End Message"), MB_OK ); 의 형태로 사용한다.
컴파일이 완성된 후 Run 하면 Information 창과 함께 다음과 같은 결과물 창이 나타나면 설치가 완벽하게 된 것이다.
다른 유용한 Libraries:
여기에 더해, GLFW : http://www.glfw.org/ 도 살펴보는것도 좋을듯 하다.
Shading Laguage 인 GLSL 을 한다면... MIT 에서 개발한 GLM (Graphics Library Mathematics) Header file을 설치하는것이 바람직 하다.
GLM (OpenGL Mathematics) : http://glm.g-truc.net/
- GLM is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specification.
파일을 다운받아 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\ 아래에 \GLM 폴더를 만들고 그 안에 위의 파일을 풀어 넣으면 된다.
다음은 OpenGL 과 연계된 이미지 및 멀티미디어에 대한 Site 이다.
SOIL (Simple OpenGL Image Library) : http://www.lonesock.net/soil.html
SOIL provides a way to load an image file in PNG, JPG and a few other formats, designed for OpenGL integration. It's a pretty minimal library with no dependency. It's used under the hood by SFML (although SFML also uses libjpeg and libpng directly).
SFML (Simple & Fast Multimedia Library) : http://www.sfml-dev.org/
SFML is a free multimedia C++ API that provides low and high level access to graphics, input, audio, etc.
Reference:
http://visualambition.wordpress.com/2010/08/12/glut-and-visual-studio-2010/#comments
Windows 용 OpenGL 설치파일 모음: GL files for Windows (2010).zip