Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "OpenGL 발표일 : 2006. 11. 20 발표자 : 조윤혜."— Presentation transcript:

1 OpenGL 발표일 : 발표자 : 조윤혜

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

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

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

5 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]

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

7 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();

8 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();

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

10 2. 색상, 재질, 조명

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

12 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);

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

14 3. Various Effect 4. Transformation

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

16 3. Various Effect Texture mapping blending Fog

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

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

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

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

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

22 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.

23 3. Rotation

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

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

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

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

28 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)

29 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)


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

Similar presentations


Ads by Google