Download presentation
Presentation is loading. Please wait.
1
Open GL GLUT 라이브러리 국내 관련사이트 www.opengl.org에서 다운받으세요.
*.h는 Visual Studio 디렉토리의 include/gl/ 폴더에 *.lib는 Visual Studio 디렉토리의 lib 폴더에 *.dll은 윈98의 경우 windows/system 폴더 2000은 winNT/system32 폴더 국내 관련사이트
2
Open GL 헤더, 전역변수, 함수 #include <gl/glut.h>
#include <math.h> GLfloat Rot; //자동차의 회전량 저장 GLfloat xMove, yMove; // 자동차의 움직임량 저장 //윈도우 사이즈 변경시 호출되는 함수 void ChangeSize(GLsizei w, GLsizei h); //그림을 그리는 함수 void RenderScene(void); //키입력을 처리하는 함수 void SpecialKeys(int key, int x, int y); //바퀴를 그리는 함수 void wheel(void);
3
Open GL Main함수 에니메이션을 위한 더블버퍼링과, RGB컬러를 사용
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); 윈도우 이름을 Multimedia로 설정 glutCreateWindow(“Multimedia"); 키 입력에 대한 함수 SpecialKeys 연결 glutSpecialFunc(SpecialKeys); 윈도우 사이즈 변경에 대한 함수 ChangeSize 연결 glutReshapeFunc(ChangeSize); 그림을 그릴 함수 RenderScene 연결 glutDisplayFunc(RenderScene); 프로그램을 시작 glutMainLoop();
4
Open GL ChangeSize 함수 SpecialKeys 함수
윈도우의 크기 변경시 호출되며 전달된 윈도우의 크기에 따라 관측공간을 재설정 한다. gluPerspective함수를 사용하여 원근감이 표현되는 공간을 설정한다 SpecialKeys 함수 사용자의 입력된 키값에 따라 자동차의 회전과 이동값을 주어진다 좌우버튼 입력시 일정량의 회전값을 저장하며 앞뒤버튼 입력시 변경된 회전방향으로 전진 또는 후진되는 값을 저장한다. glutPostRedisplay 함수를 이용하여 변경된 값에 따라 화면을 다시 그린다.
5
Open GL glutInitDisplayMode(unsigned int mode);
Glut기반의 프로그램에서 OpenGL윈도우 셋업할때 호출되어야 할 첫번째함수. Open GL에서 드로잉 연산에 사용하는 윈도우의 특성을 설정한다. 파라미터 GLUT_SINGLE 싱글버퍼 윈도우 GLUT_DOUBLE 더블버퍼 윈도우 GLUT_RGBA RGBA모드 윈도우 GLUT_DEPTH 32비트 깊이(depth) 버퍼 SLUT_STENCIL 스텐실(stencil)버퍼 GLUT_ACCUM 누적(accumulation)버퍼 GLUT_ALPHA 알파(destination alpha) 버퍼 glutSpecialFunc(void (*func)(int kye, int x, inty)); Non-ASCII키 입력시 GLUT에 위해 호출되는 콜백함수를 설정한다. (*func)(int key, int x, int y)형 : non-ASCII키 입력이 일어날때 GLUT에 의해 호출될 함수 이름
6
Open GL glutReshapeFunc(void (*func)(int width, int height));
파라미터 (*func)(int width, int height) : 윈도우 사이즈 변경시 GLUT가 호출하는 함수 이름이다. glutDisplayFunc(void (*func)(void)); 현재 윈도우에 대한 디스플레이 콜백함수를 설정한다 (*func)(void) : 렌더링하는 함수의 이름이다. glutMainLoop(void); GLUT의 메인 이벤트 핸들링 루푸를 시작한다. 이벤트 루프에서 모든 키보드, 마우스, 타이머, 다시 그리기 등과 여러가지 윈도우 메시지를 처리하게 된다. 이 함수는 프로그램을 종료할 때까지 리턴하지 않는다.
7
Open GL glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
클리핑 공간 좌표를 실제 윈도우 좌표로 매핑하기 위해 사용되는 윈도우 영역을 설정한다. 파라미터 GLint x : 윈도우의 왼쪽 모서리로부터 뷰포트의 시작점까지의 픽셀수 GLint y : 윈도우의 아래 모서리로부터 뷰포트의 시작점까지의 픽셀수 GLsizei width : 필셀 단위의 뷰포트 폭이다. GLsizei height : 픽셀 단위의 뷰포트 높이이다. gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar); 관측 투시투영 행렬을 정의한다. GLdouble fovy : 각도(degree)로 나타낸 화각이다. Y축 방향이다 GLdouble aspect : 종횡비(x/y)이다 GLdouble zNear, zFar : 관측자와 near, for 절단 평면 사이의 거리이다. 이 값은 항상 양의 값을 갖는다.
8
Open GL glMatrixMode(GLenum mode); glLoadIdentity(void);
이 함수는 행렬 연산시 어느 행렬 스택을 사용할지 결정할 때 사용한다. 파라미터 GL_MODELVIEW 행렬 연산이 모델관측 스택에 적용된다 (장면 상에서 물체를 이동할때 사용된다) GL_PROJECTION 행렬 연산이 투영 행렬 스택에 적용된다 (클리핑 공간을 정의할 때 사용한다) GL_TEXTURE 행렬 연산이 텍스쳐 행렬 스택에 적용된다 (텍스쳐 좌표를 조작한다) glLoadIdentity(void); 이 함수는 현재 변환 행렬을 주어진 단위 행렬로 바꾼다. 이는 본질적으로 좌표계를 시각 좌표계로 초기화하는 것과 같다.
9
Open GL glFrontFace(GLenum mode);
폴리곤의 어느면이 앞면 혹은 뒷면인지 정의한다. 파라미터 GL_CW : 시계방향 GL_CCW : 반시계방향 glEnable(GLenum feature); / glDisable glDisable/glEnable은 Open GL 드로잉 관련 기능을 disable/ enable한다 glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampft alpha); color버퍼를 clear하기 위한 color와 alpha값을 설정한다 적새고, 녹색, 청색, 알파
10
Open GL glPushMatrix(void); glPopMatrix(void);
glTranslate(GLdouble x, GLdouble y, GLdouble z); 현재 행렬을 이동변환 행렬과 곱한다 파라미터 : x축의 이동량, y축의 이동량, z축의 이동량 glRotate(GLdouble angle, GLdouble x, GLdouble y, GLdouble z) 현재 행렬을 회전행렬로 지정된 만큼 회전한다. 파라미터 angle : 회전각을 degree(도)단위로 나타낸다. x, y, z축을 중심
11
Open GL glColor(GL red, GL green, GL blue);
현재색을 각각의 적색, 녹색, 청색 성분을 명시하여 설정하도록 한다. 파라미터 적색, 녹색 청색 삽입 glVertex(GL x, GL, y, GL z); x, y, z에 해당하는곳에 점을 찍는다. glBegin(GLenum mode); glEnd와 함께 Vertex들을 이어준다 GL_POINTS : 점을 생성한다 GL_LINES : 2개의 점으로 한 개의 선분을 생성한다 GL_POLYGONE : 주어진 정점들을 이용하여 폴리곤을 생성한다 GL_TRIANGLE_FAN : 주어진 정점들을 이용하여 삼각형 팬을 생성한다. glutSolidTeapot(GLint Size) Size의 크기로 주전자를 생성한다.
Similar presentations