OpenGL 발표일 : 2006. 11. 20 발표자 : 조윤혜.

Slides:



Advertisements
Similar presentations
멀티미디어 4 조 최종발표 팀장 : 박형민 팀원 : 김인호, 이종혁, 이준희, 허용 우 교수 : 박광훈 교수님 경희대학교 컴퓨터공학과
Advertisements

.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
수학을 통해 배우는 IT 과학의 세계 전북대: 한상언 교수.
School of Computer, Information and Communication Engineering
Chapter 3. 뷰잉(Viewing).
Multimedia Programming 14: Image Warping 2
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
3D Computer Graphics 5. Viewing 동신대학교 멀티미디어컨텐츠 연구센터 Viewing Process first part : model-view in Chapter 4 second part : projection in Chapter.
163535/A25002 컴퓨터 그래픽스 Chap 6. Shading Copyright ⓒ 2001 N Baek.
Mathematics for Computer Graphics
Mathematics for Graphics
OpenGL Programming (III) 1. Drawing in 3D 2. Manipulating 3D Space
그래픽 하드웨어.
Chapter09 CSS3 애니메이션 HTML5 Programming.
5. 좌표변환과 OpenGL행렬 이론.
OpenGL 시작하기.
Two-Dimensional Geometric Transformations
Lecture #7 제 4 장. 기하학적 객체와 변환 (2).
기하학적 객체와 변환.
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
Chapter 5. 라이팅(Lighting)
Lecture #8 제 5 장. 관측(viewing).
모 바 일 게 임 제 작 한국IT전문학교 박재성.
멀티미디어 기본+활용 제대로 배우기.
Chap 9. 텍스쳐(Texture).
음 영 (Shading).
사원수 (Quaternion)
콘텐츠 제작 프로젝트 [교재] - OpenGL 프로그래밍 가이드, 제4판, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis 공저, 남기혁 역, 정 보문화사, [참고자료] OpenGL Programming.
1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용 4장 – 기하학적 객체와 변환 5장 관측
학습목표 7장. 투상변환과 뷰포트변환 평행투상과 원근투상의 차이점을 이해한다. 가시부피 설정방식을 이해한다.
학습목표 7장. 투상변환과 뷰포트변환 평행투상과 원근투상의 차이점을 이해한다. 가시부피 설정방식을 이해한다.
OpenGL Programming (II) 3D Graphics Fundamentals
Open Graphics Library 팀 명 : Spes 송정웅 김정환
기초 이론.
Sang Il Park Sejong University
그래픽스 시스템과 모델.
제 1 장. 컴퓨터 그래픽스 시스템과 모델 - 3D 컴퓨터 그래픽스 구조 - OpenGL API 개요
Java 기초 (Java JDK 설치 및 환경설정)
Multimedia Programming 11: Image Warping
Lecture #9 제 6장. 음영법(Shading).
12장 유연한 카메라 클래스 만들기 한성대학교 멀티미디어공학과 게임 프로그래밍-I 강의노트
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
The Graphics Rendering Pipeline Transforms
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
OpenGL.
Geometric Transformations
Hanyang University Jungsik Park
3차원 물체 그리기.
Computer Animation Algorithms and Techniques
OpenGL PROJECT 우광식 성기영 서창수 이인주.
Matrix 및 Rendering 파이프라인
Method & library.
Computer Graphics OpenGL 설치 및 설정
핸드폰 시뮬레이션 김 형 도 송 미 경.
광원 제어 하기.
Draw the basic Geometry Objects
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 05
LabVIEW WiznTec 주임 박명대 1.
UNIT 25 SPI 로봇 SW 교육원 조용수.
OpenGL Introduction 컴퓨터 그래픽스 김 창 헌.
오토베이스9 사용자 라이브러리 오토베이스 교육센터 그래픽 모듈 설정과 화면전환에 대하여 자세히 알아본다. <목차>
MATLAB Image Processing Toolbox
서울대학교 컴퓨터공학부 김명수 행렬과 2차원 변환 서울대학교 컴퓨터공학부 김명수
벡터의 성질 - 벡터와 스칼라 (Vector and Scalars) - 벡터의 합 -기하학적인 방법
1차 발표: 프로젝트 발표 안내 및 형식 학번: 이름: 김경우.
UNIT 25 SPI 로봇 SW 교육원 조용수.
9 브라우저 객체 모델.
Lecture #6 제 4 장. 기하학적 객체와 변환 (1).
Presentation transcript:

OpenGL 발표일 : 2006. 11. 20 발표자 : 조윤혜

Context 1. OpenGL 라이브러리 등록 및 기본 2. 색상, 재질, 조명 3. Various Effect 4. Transformation

OpenGL이란? 그래픽 하드웨어에 대한 소프트웨어 인터페이스 (Open Graphics Library) 대화형 3차원 애플리케이션 제작가능 하드웨어 독립적(윈도우 관련작업이나 사용자 입력을 위한 사항은 포함되지 않음)

1. OpenGL 라이브러리 등록 및 기본

1.OpenGL 라이브러리 등록 File Location Gl.h Glut.h Glu.h [compiler]\include\gl Opengl32.lib Glut32.lib Glu32.lib [compiler]\lib Opengl32.dll Glut32.dll Glu32.dll [system]

OpenGL pipeline OpenGL API 호출 OpenGL 명령 버퍼 변환 및 조명 적용 래스터 라이즈 프레임버퍼

Draw Object Basic OpenGL Coding Style glBegin(GL_QUADS); //glBindTexture(GL_TEXTURE_2D, pTexture->mTexture[0]); glNormal3f(0.0f, 1.0f, 0.0f); //glTexCoord2f(0.0f, 1.0f); glVertex3f(-3.0f,-5.0f,-1.0f); //glTexCoord2f(0.0f, 0.0f); glVertex3f(-3.0f,-5.0f, -1.0f); //glTexCoord2f(1.0f, 0.0f); glVertex3f( 3.0f,-5.0f, 1.0f); //glTexCoord2f(1.0f, 1.0f); glVertex3f( 3.0f,-5.0f,-1.0f); glEnd();

Matrix Stack 현재의 변환 상태를 저장해 두었다가 이후에 다시 복구할 때 사용. 모델뷰 행렬과 투영행렬을 저장해두는 일종의 저장공간 glPushMatrix glPopMatrix Matrix Stack glPushMatrix(); glRotatef(45.0f, 0.0f, 0.0f, 1.0f); glTranslatef(-70.0f, 0.0f, 0.0f); DrawObject(); glPopMatrix();

Three-Dimensional Viewing ViewPlane ViewPlane Projection Reference Pointc 직교투영(Orthographic) 원근투영(Perspective)

2. 색상, 재질, 조명

실제 세계의 색상 주변광(Ambient) 분산광(Diffuse) 반사광(Specular) 세가지 빛의 결합 = 실세계의 빛

OpenGL에서 조명의 추가 조명 효과의 설정 조명 모델의 설정 재질 속성의 설정 glEnable(GL_LIGHTING); // 조명사용이 가능하도록 설정 조명 모델의 설정 Glfloat mLightAmbient[] = { 1.0f, 1.0f, 1.0f, 1.0f}; // 최고 강도를 가진 밝고 흰 조명 glLightfv(GL_LIGHT1, GL_AMBIENT, mLightAmbient); 조명모델 설정 glLightfv(GL_LIGHT1, GL_DIFFUSE, mLightDiffuse); glLightfv(GL_LIGHT1, GL_SPECULAR, mSpecular); glLightfv(GL_LIGHT1, GL_POSITION, mLightPosition); 재질 속성의 설정 glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gray);

법선벡터의 지정 법선벡터 - 버텍스에서 시작해서 정확히 윗방향으로 뻗어있는 벡터 (평면과 90도) 빛을 반사할 방향을 결정 (1, 10, 0) 전면 (1, 1, 0) 후면

3. Various Effect 4. Transformation

3. Various Effect Perspective - Line Culling One Color – Inverse effect  Various Color Light Shadow

3. Various Effect Texture mapping blending Fog

3D 그래픽의 핵심 - 행렬 OpenGL의 모든 변환은 두 개 이상의 벡터곱으로 표현이 가능하다.

1. Translations We can translate or move points to a new position by adding offsets to their coordinates T(tx, ty, tz) ty tx

2. Scaling Scaling a coordinate means multiplying each of its components by a scalar 2 X  2, Y  0.5

2. Scaling Scaling Matrix scaling matrix a = b = c : 크기조정연산 균등 역변환 S^-1(s) = S(1/a, 1/b, 1/c)

3. Rotation rotation about the X-axis rotation about the Y-axis rotation about the Z-axis

3. Rotation Rotation about arbitrary point p (xr, yr) (General pivot-point Rotation) step1) translate P to origin step2) Rotation about origin step3) Re-translation to position P.

3. Rotation

4. The Rigid-Body Transform Translation + Rotation 길이와 각도가 보존된다. R00 R01 R02 tx R10 R11 R12 ty R20 R21 R22 tz 0 0 0 1 X = T(t)R =

5.Shear Transform 전체장면을 찡그려 환상적인 효과를 내거나, 흐트림(jittering)에 의해 불규칙한 반사(fuzzy reflection)효과를 만들어내는데 이용 (6개의 기본 쉬어 행렬 존재) 1 0 s 0 0 1 0 0 0 0 1 0 0 0 0 1 Hxz(s) = Hxz(s) s

6. Normal Transform 특정 행렬의 역행렬의 전치행렬 N = (M^(-1))^T

7. Inverse Transform 필요한 경우 - ex) 좌표계간의 상호변환을 하는경우 단일변환이거나 단순 변환들일경우 : 매개변수를 반전시키고 행렬의 적용순서를 바꿈 행렬이 직교한다면 전치 행렬이 역행렬이 된다. (회전은 몇 번을 결합해도 직교행렬) M^(-1) = R(-q)T(-t) M = T(t)R(q) M^(-1) = M^T

Drawing 3D scenes with OpenGL OpenGL Tools for Modeling and Viewing glTranslate (tx, ty, tz) glRotate (angle, rx, ry, rz) glScale (sx, sy, sz) Setting the Camera in OpenGL glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(angle, aspect, near, far)

Drawing 3D scenes with OpenGL Positioning and Aiming the Camera glMatrixMode(GL_MODELVIEW) glLoadIdentity() gluLookAt(eye.x, eye.y, eye.z, look.x, look.y, loo.z, up.x, up.y, up.z)