Open GL www opengl org 1 API 1

  • Slides: 26
Download presentation
Open. GL 소개 www. opengl. org 실습 1

Open. GL 소개 www. opengl. org 실습 1

API 발전과정 1) CORE(SIGGRAPH) - 1977년 SIGGRAPH에서 정한 Graphics package의 표준 2) GKS(Graphic Kernel

API 발전과정 1) CORE(SIGGRAPH) - 1977년 SIGGRAPH에서 정한 Graphics package의 표준 2) GKS(Graphic Kernel System) - ISO(1984), ANSI(1985) 공인, - 1988년 GKS 3 D로 발전 3) PHIGS(Programmer’s Hierachical Interactive Graphics Standard) - ANSI(1988)공인, GKS 확장 -그래픽을 계층적(Hierarchical)으로 구성하 기 위한 표준

Open. GL Library 와 file GLAUX : glaux. h, glaux. lib Note: Open. GL

Open. GL Library 와 file GLAUX : glaux. h, glaux. lib Note: Open. GL 4. 1 Reference Pages http: //www. opengl. org/sdk/docs/man 4/

운영체제에 따른 Open. GL Library • GLUT – Open. GL과 운영체제와 Interface – 제한된

운영체제에 따른 Open. GL Library • GLUT – Open. GL과 운영체제와 Interface – 제한된 GUI – OS에서 제공하는 다양한 기능을 사용하기 위 해 OS마다 제공되는 확장 Library 사용 운영체제 Open. GL Library Code Unix (X Window) GLX (The Open. GL Extension to X Window) gl. X~ Apple i. OS AGL (Apple Graphics Library) agl~ Microsoft Windows WGL (The Open. GL Extension to the Windows) wgl~

Open. GL 설치와 설정 • http: //www. opengl. org/resources/libraries/glut/glu t_downloads. php 에서 glut library인

Open. GL 설치와 설정 • http: //www. opengl. org/resources/libraries/glut/glu t_downloads. php 에서 glut library인 glutdlls 37 beta. zip를 download • dll 파일 – 32 bit : C: Windowssystem 32 – 64 bit : C: WindowsSys. WOW 64 (32 bit 폴더에도 복사) • Xp, Visual Sutio 2009 – lib 파일은 C: Program FilesMcrosoft Visual Studio 9. 0 VC Lib – header 파일은 C: Program FilesMicrosoft Visual Studio 9. 0 VC Include GL • Window 7, Visual Studio 2010 – lib 파일은 C: Program FilesMcrosoft SDKsWindowsv 7. 0 ALib – header 파일은 C: Program FilesMcrosoft SDKsWindowsv 7. 0 AIncludegl – 64 bit 환경에서 32 bit 인 경우 C: Program Files(x 86)

Open. GL Data 형식

Open. GL Data 형식

함수 이름 규칙 <Library Prefix> <Root Command> <Optional argument count> <Optional argument type> 인자의

함수 이름 규칙 <Library Prefix> <Root Command> <Optional argument count> <Optional argument type> 인자의 타입 예) glcolor 3 f(. . . ) 인자의 개수 gl라이브러리 명령

윈도우 관리 GLUT 함수 • 윈도우를 초기화 및 관리 하기 위한 루틴들 ▶ glut.

윈도우 관리 GLUT 함수 • 윈도우를 초기화 및 관리 하기 위한 루틴들 ▶ glut. Init(int &argc, char argv) - Glut 라이브러리 초기화 후 운영체제와 연결 ▶ glut. Init. Window. Position(int x, int y) - 스크린에서 윈도의 좌측 상단 모서리가 원점 (0, 0) ▶ glut. Init. Window. Size(int width, int height) ▶ glut. Init. Display. Mode(unsigned int mod) - single buffer, double buffer 사용여부 : GLUT_SINGLE, GLUT_DOUBLE - color mode: GLUT_RGB, GLUT_INDEX (예)glut. Init. Display. Mode(GLUT_SINGLE | GLUT_RGB) ▶ int glut. Create. Window(char *string) ▶ int glut. Reshape. Window(int width, int height)

Reshape 콜백함수 ▶ void glut. Reshape. Func(void (*func)(int width, int height)); - func •

Reshape 콜백함수 ▶ void glut. Reshape. Func(void (*func)(int width, int height)); - func • The new reshape callback function. • glut. Reshape. Func sets the reshape callback for the current window. The reshape callback is triggered when a window is reshaped • (예) glut. Reshape. Func(reshape); : reshape(int w, int h) 콜백함수

Open. GL 예제 2 ▶ Idle 상태일 때 glut. Idle. Func()에 의해 호출되는 함수

Open. GL 예제 2 ▶ Idle 상태일 때 glut. Idle. Func()에 의해 호출되는 함수 void spin. Display(void){ spin = spin + 2. 0 ; if(spin > 360. 0) spin = spin-360 ; glut. Post. Redisplay(); //현재 윈도우의 장면을 다시 그리다. }

Open. GL 예제 2 ▶ 현재 윈도우에 대한 마우스 콜백함수 설정 void mouse(int button,

Open. GL 예제 2 ▶ 현재 윈도우에 대한 마우스 콜백함수 설정 void mouse(int button, int state, int x, int y){ // 마우스이벤트가 발생할 때 마다 glut. Mouse. Func()가 호출되 어 //인수값을 설정된 함수에게 반환 switch(button){ case GLUT_LEFT_BUTTON: if ( state==GLUT_DOWN) glut. Idle. Func(spin. Display); //이벤트가 유휴(idle)상태에 있을 때 실행할 함수 지정 break; case GLUT_RIGHT_BUTTON: if ( state==GLUT_DOWN) glut. Idle. Func(NULL); //함수실행 중단 break; default: break; } }

Open. GL 예제 2 ▶ main 작성 #include<glglut. h> #include<stdlib. h> //NULL static GLfloat

Open. GL 예제 2 ▶ main 작성 #include<glglut. h> #include<stdlib. h> //NULL static GLfloat spin=0. 0; int main(int argc, char **argv) { 작성하여 보시오 1. Double buffer, RGB 사용 2. Window Size와 위치 지정 3. 윈도우에 “spining”라고 쓸 것 4. 초기화 5. 객체 디스플레이 6. 마우스콜백함수 설정 7. 프로그램 실행 }