[OpenGL] OpenGL 시작하기 (FreeGLUT) 그래픽

참고
  • http://www.swiftless.com/tutorials/opengl/window.html
  • http://fly.cc.fer.hr/~unreal/theredbook/
  • http://diehard98.tistory.com/archive/201003
환경
  • Windows Vista
  • Microsoft Visual Studio 2005 (이하 VS2005)

프로젝트 만들기 & 환경 설정

1. 프로젝트 만들기
VS2005 를 띄우고 Visual C++/Win32/Win32 콘솔 응용 프로그램 으로 프로젝트를 만든다. 이름은 FirstOpenGL 이라고 하였다.

2. FreeGLUT, GLEW를 위한 환경 설정
2.1 라이브러리 다운로드
2.2 다운받은 FreeGLUT과 GLEW의 압축을 푼다. 프로젝트 폴더 밑에 external 이라는 폴더를 만들고 집어넣었다.
2.3 프로젝트 폴더 밑에 external 이라는 폴더를 만들어 아래 그림과 같이 프로젝트에 포함시켰다.



2.4 프로젝트 속성 설정
  • [추가 포함 디렉터리] 에 external\freeglut\include;external\glew\include
  • [추가 종속성]에 external\glew\lib\glew32.lib external\freeglut\lib\freeglut.lib
  • [증분 링크 사용]에 아니요

코딩

예제는 OpenGL Programming Guide 의 첫 번째 예제를 Aux가 아닌 FreeGLUT을 사용하여 재구성해 보았다. http://www.swiftless.com/tutorials/opengl/window.html 이곳도 참고하였음.
[FirstOpenGL.cpp]
#include "stdafx.h"

#include <GL/glut.h> // Include the GLEW header file
#include <GL/glew.h> // Include the GLUT header file

void display(void)
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Clear the background of our window to black
glClear(GL_COLOR_BUFFER_BIT); // Clear the colour buffer (more buffers later on)
glLoadIdentity(); // Load the Identity Matrix to reset our drawing locations

glColor3f(1.0, 1.0, 1.0); // Set the current color (white)
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); // Specify the coordinate system
glBegin(GL_POLYGON); // Define the object to be drawn (polygon)
glVertex2f(-0.5, -0.5); // Define the corners of the polygon
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glEnd();

glFlush(); // Flush the OpenGL buffers to the window
}

int _tmain(int argc, _TCHAR* argv[])
{
glutInit(&argc, NULL); // Initialize GLUT
glutInitDisplayMode(GLUT_SINGLE); // Set the basic display buffer (only single buffered for now)
glutInitWindowSize(300, 300); // Set the width and height of the window
glutInitWindowPosition(100, 100); // Set the position of the window
glutCreateWindow("You're my first OpenGL Window"); // Set the title for the window

glutDisplayFunc(display); // Tell GLUT to use the method "display" for rendering

glutMainLoop(); // Enter GLUT's main loop

return 0;
}

실행 및 결과

출력 폴더(exe 파일이 나오는 곳)에 반드시 freeglut.dll 을 넣어 주어야 한다.




덧글

  • rednine78 2011/12/25 07:42 # 삭제 답글

    #include 위치 순서가 바뀌어 있음... -__;
  • hijacker 2012/05/18 18:49 #

    크으~ 이런 실수를 ㅎㅎ
댓글 입력 영역