1. 윈도우 초기화

 void glutInit( int *argc, char **argv )

 윈도우와 운영체제의 세션(통신을 하기 위한 연결점) 연결 

 void glutInitWindowPosition( int x, int y );

 윈도우의 위치 설정 (GLUT의 화면 좌표계는 윈도우 운영체제의 좌표계와 일치하지만 OPENGL의 화면 좌표계와는 다르다) 

 void glutInitWindowSize( int width, int height ); 

 윈도우의 크기 설정 

 void glutInitDisplayMode( unsigned int mode ); 

 디스플레이 모드 설정


 glutInitDisplayMode - 디스플레이 모드의 종류

GLUT_RGBA RGBA모드의 창을 선택한다. GLUT_RGBA나 GLUT_INDEX로 지정되지 않는다면 이 값이 기본설정값이 된다. 
GLUT_RGB GLUT_RGBA와 동일하다. 
GLUT_INDEX 인덱스를 가진 색상만 지원하는 창모드를 선택한다. GLUT_RGBA위에 덮어 써진다.. 
GLUT_SINGLE 단일버퍼를 가진 창을 선택한다. 이값이 기본설정이다. 
GLUT_DOUBLE 이중버퍼를 가진 창을 선택한다. 이 값은 GLUT_SINGLE위에 덮어 써진다. 
GLUT_ACCUM 누적버퍼를 가진 창을 선택한다. 
GLUT_ALPHA 색상버퍼에 알파값을 가진 창을 선택한다. 
GLUT_DEPTH 깊이버퍼를 가진 창을 선택한다. 
GLUT_STENCIL 형판버퍼(stencil buffer)를 가진 창을 선택한다.
GLUT_MULTISAMPLE 다중맵플링(multismapling)을 지원하는 창을 선택한다.
GLUT_STEREO입체창(stereo window)을 선택한다. 
GLUT_LUMINANCE휘도를 가진 색상모델을 다루는 입체창을 선택한다.


2. 윈도우 관리

 void glutSetWindowTitle( char *name ); 

 윈도우 타이틀 설정 

 void glutCreateWindow( char *name ); 

 새로운 윈도우 생성 

 void glutReshapeWindow( int width, int height ); 

 렌더링 크기 변경에 따른 윈도우 크기 재설정 

 void glutPostRedisplay( void );

 현재의 윈도우를 새로고침 하도록 요구하는 것 

 void glutSwapBuffers( void ); 

 프런트 버퍼와 백 버퍼를 swapping 하기 위한 것

 *더블 버퍼링에서는 프런트 버퍼 내용이 화면에 뿌려지는 동안 새로운 내용이 백 버퍼에 쓰여지고, 백 버퍼에 기록이 다 되면 프런트 버퍼와 백 버퍼가 바뀐다. 싱글 버퍼에서는 버퍼의 내용을 화면에 뿌리고 새로운 내용이 버퍼에 쓰여진다. glutSwapBuffers()함수가 실행되면 묵시적으로 glFlush()가 호출된다. 

 void glutDisplaFunc( void(*)(void) ); 

 렌더 콜백 함수이며, CallBack 함수로 등록하여 OpenGL에서 렌더링을 필요로 할 때 접근하는 함수이다. 

 void glFlush( void ); 

 gl 명령이 완전히 실행되기까지 기다린 후 쌓여있는 명령들을 모두 비우고, 즉시 실행이 되도록 한다. 

 void glFinish( void ); 

 gl 명령이 완전히 실행되기 전에 쌓여있는 명령들을 모두 비우고, 즉시 실행이 되도록 한다. 


GLUT API의 자세한 정보는 아래 공식 홈페이지를 추천한다. (*The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3)

https://www.opengl.org/resources/libraries/glut/spec3/spec3.html


참조 : http://kuroikuma.tistory.com/115

http://www.linuxfocus.org/Korean/January1998/article16.html#animation

'Programming > OpenGL' 카테고리의 다른 글

OpenGL의 함수 구조  (0) 2017.01.16
OpenGL 설치  (0) 2017.01.16

OpenGL의 함수 구조 : [라이브러리][함수][파라미터 수][데이터 타입]

glVertex3f(x,y,x);

1) 라이브러리 : OpenGL

2) 함수명 : Vertex

3) 파라미터 수 : 3

4) 데이터 타입 : float

접미사 

데이터 타입 

C/CPP 타입명 

OpenGL 타입명 

f

32-bit floating point

float

GLfloat

d

64-bit floating point

double

GLdouble

i

32-bit integer

int, long

GLint

s

16-bit integer

short

GLshort

ub

8-bit unsigned integer

unsgined char

GLboolean


참조 : http://kuroikuma.tistory.com/114

'Programming > OpenGL' 카테고리의 다른 글

GLUT API  (0) 2017.01.16
OpenGL 설치  (0) 2017.01.16

0. OpenGL 실행에 필요한 라이브러리
 - GL ( OpenGL Core Library) : 렌더링 기능을 제공하는 함수 라이브러리

 - GLU ( OpenGL Utility Library) : GL 함수로 작성되어 있는 고급기능을 제공하는 함수들의 집합

 - GLUT ( OpenGL Utility Toolkit) : 사용자 입력을 받거나 화면 윈도우를 제어하기 위한 함수로 운영체제를 호출


윈도우와 Visual C가 설치되어 있다면 OpenGL, GLU 라이브러리는 이미 설치되어 있으므로, GLUT 라이브러리만 다운로드 받아서 설치

1. GLUT 라이브러리 다운로드
OpenGL 공식홈 : https://www.opengl.org/resources/libraries/glut/


2. GLUT 설치 (Visual Studio 2010)

1) glut.h

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl 에 복사

2) glut32.lib

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib 에 복사

3) glut32.dll

C:\Windows\System32 에 복사


3. 프로젝트 생성

1) Win32 콘솔 응용 프로그램 -> 프로젝트명 적고 확인 -> 빈 프로젝트에 체크 -> 마침

2) 리소스 파일 -> 마우스 우측 클릭 -> 추가 -> 새 항목 -> 파일명.cpp -> 추가


4. 프로젝트 속성 - 라이브러리 추가

1) 프로젝트 속성 -> 링커 -> 입력 -> 추가 종속성 -> 편집

2) opengl 라이브러리 (아래 3개) 입력 후 확인

opengl32.lib

glut32.lib

glu32.lib


5. 프로젝트 실행

1) 소스 코드 작성 (참조 : OpenGL로 배우는 컴퓨터 그래픽스, 주우석 저, 한빛미디어)

2) 실행 화면 (F5)



참조 : http://babytiger.tistory.com/entry/OpenGL-%EC%84%A4%EC%B9%98

'Programming > OpenGL' 카테고리의 다른 글

GLUT API  (0) 2017.01.16
OpenGL의 함수 구조  (0) 2017.01.16

+ Recent posts