OpenGL 실습 1주차.

Slides:



Advertisements
Similar presentations
2 장 Initial Steps in Drawing Figures 창원대학교 정보통신공학과 박동규.
Advertisements

Chapter 3. 뷰잉(Viewing).
Chapter 4 컬러( COLOR ) 학기 가상현실.
2.1 The Sierpinski Gasket.
CG Programming (Modeling)
Implement of Input and Interaction
OpenGL 실습 12 로봇.
OpenGL Programming (III) 1. Drawing in 3D 2. Manipulating 3D Space
학습목표 5장. 오픈지엘 기본틀 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
2016 ITA 1월 강의 C Programming -4일차- 포인터배열 및 이중포인터 정대진 ( )
GTK+ 프로그래밍 (2) SNSLAB 발표 : 문동규.
OpenGL 시작하기.
블렌딩 안티앨리어싱, 안개효과 그리고 폴리곤 오프셋
Lecture #7 제 4 장. 기하학적 객체와 변환 (2).
4장 기하학적 객체와 변환 – OpenGL 변환 학습목표 OpenGL 에서 어떻게 변환을 수행하는지 OpenGL 행렬모드 회전
Chapter 5. 라이팅(Lighting)
7장 디스플레이 리스트.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용 4장 – 기하학적 객체와 변환
Practice - texture mapping
OpenGL 이란 그래픽스 하드웨어에 대한 소프트웨어 인터페이스 OpenGL의 전신은 실리콘그래픽스사의 IRIS GL
콘텐츠 제작 프로젝트 [교재] - OpenGL 프로그래밍 가이드, 제4판, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis 공저, 남기혁 역, 정 보문화사, [참고자료] OpenGL Programming.
선 택 과 피 드 백.
Department of Computer Engineering
OpenGL Programming (II) 3D Graphics Fundamentals
제 2 장. 그래픽스 프로그래밍 : OpenGL 개요/ 예제 프로그램
배열, 포인터, 참조 배열은 같은 형을 가지는 변수들의 묶음이다..
OpenGL Project (3D 움직이는 자동차)
Sang Il Park Sejong University
Department of Computer Engineering
25장. 메모리 관리와 동적 할당.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
Term Project Team Member
openGL Project 결과보고서 야구 시구 시뮬레이션
OpenGL.
Computer Graphics with OpenGL
UniSQL/X 실습과제 (1) ■ 실습 기간: ~
4. OpenGL 상태들과 기본 도형들.
Hanyang University Jungsik Park
Computer Animation Algorithms and Techniques
OpenGL PROJECT 우광식 성기영 서창수 이인주.
openGL Project 제안서 비 오는 정류장에서
Chapter 3 클래스. 최호성.
버퍼 (Buffer).
Computer Graphics OpenGL 설치 및 설정
광원 제어 하기.
가상현실연구실 박정식 증강현실 예제 가상현실연구실 박정식
OpenCV 설치 및 구성 OpenCV
Draw the basic Geometry Objects
19. 함수 포인터와 void 포인터.
Chapter 4 컬러( COLOR ).
Computer Animation Algorithms and Techniques
콘텐츠 제작 프로젝트 [교재] - OpenGL 프로그래밍 가이드, 제4판, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis 공저, 남기혁 역, 정 보문화사, [참고자료] OpenGL Programming.
OpenGL Introduction 컴퓨터 그래픽스 김 창 헌.
OpenGL 프로젝트 김병욱 김상진 김성환.
Department of Computer Engineering
Part III 애니메이션 Chapter 9 곡선.
openGL Project 제안서 - 해상 전투
18장. 다차원 배열 그리고 포인터.
OpenGL Project.
4. 시간의 표현 (6장. 시간의 표현).
LOGOTYPE 춤추는 풍선 팀장 : 이준호 팀원 : 장원진.
Execution with Unnecessary Privileges
Computer Graphics with OpenGL
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
실습과제 1번 /* 1. 멤버 변수로 반경 radius를 갖고, 그 값을 모니터에 출력하는
argc, argv 의 사용방법 #include <stdio.h>
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
17장. 포인터의 포인터.
C.
Presentation transcript:

OpenGL 실습 1주차

OpenGL 실습내용 실습 1주차 실습 2주차 실습 3주차 실습 4주차 초기화 및 점, 선, 면 Color Cube 만들기 이동, 회전, 크기변경 실습 4주차 광원 및 재질

GLUT install GLUT.H GLUT.lib GLUT32.lib GLUT.dll GLUT32.dll c:\Program Files\Microsoft Visual Studio\vc98\Include\ c:\Program Files\Microsoft Visual Studio\vc98\Include\GL\ GLUT.lib GLUT32.lib c:\Program Files\Microsoft Visual Studio\vc98\Lib GLUT.dll GLUT32.dll c:\windows\system32

윈도우 초기화 #include <GL/glut.h> void display(void) { } int main(int argc, char** argv) glutInit ( &argc, argv ); glutInitWindowSize ( 500, 500 ); glutInitWindowPosition ( 0, 0 ); glutCreateWindow ( "윈도우 창을 열자" ); glutDisplayFunc ( display ); glutMainLoop(); 대부분의 비대화식 프로그램에 대하여 동작되는 main 프로그램 glutInit(int *argcp, char **argv) glut 및 OpenGL을 초기화 glutCreateWindow(char *name) 인자 name은 윈도우의 타이틀 glutInitWindowSize ( 500, 500 ); 500 * 500 pixel window glutInitWindowPosition ( 0, 0 ); 설정된 좌표축으로 윈도우 배치 glutDisplayFunc ( display ); 윈도우가 오픈될 때 display call back이 불림 glutMainLoop(); 이벤트 루프에 들어감

윈도우 초기화 결과

윈도우 내부 색 설정 glClear(GL_COLOR_BUFFER_BIT); 윈도우를 클리어 glFlush(); 버퍼들을 클리어 #include <GL/glut.h> void display(void) { glClear(GL_COLOR_BUFFER_BIT); glFlush(); } void init(void) glClearColor(0.0, 0.0, 1.0, 1.0); int main(int argc, char *argv[]) glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutCreateWindow(argv[0]); glutDisplayFunc(display); init(); glutMainLoop(); return 0; glClear(GL_COLOR_BUFFER_BIT); 윈도우를 클리어 glFlush(); 버퍼들을 클리어 glClearColor(GLclampf R, GLclampf G, GLclampf B, GLclampf A) GLclamp R, G, B 각기 RGB값 Glclamp A 에서 A는 α 값으로 투명도를 나타냄 ( 0 : 투명, 1 : 불투명)

윈도우 내부 색 설정 결과

점 그리기 void display(void) { glPointSize(2.0f); glBegin(GL_POINTS); glVertex2d(0.0f, 0.0f); glEnd(); } void glBegin(GLnum mode) glBegin() 의 인자 mode 에는 도형의 타입을 지정 void glEnd(void) 도형을 그리려면, glBegin() ~glEnd() 사이에 도형의 각 정점 좌표치를 설정하는 함수를 기술 glPointSize GL_POINTS로 그리는 점의 크기를 설정, OpenGL에서 지원하는 점의 크기는 0.5에서 10.0까지 사용가능하며, 증가치는 0.125

점 그리기 결과 ( 0.0, 0.0 )

glBegin()의 인자에 사용할 수 있는 값들

선 그리기 void display(void) { glLineWidth(2.0f); glBegin(GL_LINES); glVertex2d(-0.5f, -0.5f); glVertex2d(0.5f, -0.5f); glVertex2d(0.5f, 0.5f); glVertex2d(-0.5f, 0.5f); glEnd(); } glLineWidth : GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP등으로 그릴 라인의 굵기를 설정 ( 0.5 ~ 10.0, +-0.125 )

선 그리기 결과 ( 0.5, 0.5 ) ( -0.5, 0.5 )

Polygon을 사용한 면 그리기 void display(void) { glBegin(GL_POLYGON); glVertex2d(-0.5f, -0.5f); glVertex2d(0.5f, -0.5f); glVertex2d(0.5f, 0.5f); glVertex2d(-0.5f, 0.5f); glEnd(); }

Polygon을 사용한 면 그리기 결과

Color 사각형 그리기 void display(void) { glClear(GL_COLOR_BUFFER_BIT);      // 윈도우 클리어 glBegin(GL_QUADS); glColor3f(1.0, 0.0, 0.0);      // 적색 glVertex2d(-0.5, -0.5);                glColor3f(0.0, 1.0, 0.0);      // 녹 glVertex2d(0.5, -0.5); glColor3f(0.0, 0.0, 1.0);      // 파 glVertex2d(0.5, 0.5); glColor3f(1.0, 1.0, 0.0);      // 황 glVertex2d(-0.5, 0.5); glEnd(); glFlush(); }

Color 사각형 그리기 결과