gamemath-chapter 07 조명

28
Chapter 07 Chapter 07 조명 조명 작성자 허 창 오 작성자 허 창 오 [email protected] [email protected]

Upload: choi-junhyeok

Post on 05-Jul-2015

1.012 views

Category:

Education


1 download

TRANSCRIPT

Page 1: GameMath-Chapter 07 조명

Chapter 07 Chapter 07 조명조명

작성자 허 창 오작성자 허 창 오

[email protected]@korea.com

Page 2: GameMath-Chapter 07 조명

조명조명

목적목적 물체가 입체감을 갖기 위해선 조명이 필요물체가 입체감을 갖기 위해선 조명이 필요

3D 3D 환경에서 조명이 어떻게 구현되는지 안다환경에서 조명이 어떻게 구현되는지 안다

완벽한 세미나완벽한 세미나

Page 3: GameMath-Chapter 07 조명

01. 01. 광원광원

물체가 보이는 원리물체가 보이는 원리 ?? 광원에서 발사된 빛이 물체에 반사되어 눈이 광원에서 발사된 빛이 물체에 반사되어 눈이

인식인식

3D3D 에서 광원의 종류에서 광원의 종류 Directional LightDirectional Light

Point Light Point Light

Spot LightSpot Light

Page 4: GameMath-Chapter 07 조명

01. 01. 광원광원

Directional Light - Directional Light - 무한 거리에 위치한 광원무한 거리에 위치한 광원

표현 표현 - (x, y, z, 0)- (x, y, z, 0)

Page 5: GameMath-Chapter 07 조명

01. 01. 광원광원

Point Light – Point Light – 한 점에서 골고루 분산된 광원한 점에서 골고루 분산된 광원

표현 표현 - (x, y, z, 1)- (x, y, z, 1)

Page 6: GameMath-Chapter 07 조명

01. 01. 광원광원

Spot Light – Spot Light – 방향광과 점광의 조합방향광과 점광의 조합

표현 표현 - - 방향 벡터방향 벡터 , Cut-off angle(, Cut-off angle( 조명 범위조명 범위각각 ))

Page 7: GameMath-Chapter 07 조명

02. 02. 재질재질

물체의 색은 빛이 표면에서 반사 될때 물물체의 색은 빛이 표면에서 반사 될때 물체 표면의 재질에 따라 결정체 표면의 재질에 따라 결정

색상의 표현색상의 표현 RGBA RGBA 색상 벡터색상 벡터

(Red, Green, Blue, Alpha)(Red, Green, Blue, Alpha)

0.0 ~ 1.0 or 0 ~ 2550.0 ~ 1.0 or 0 ~ 255

Page 8: GameMath-Chapter 07 조명

02. 02. 재질재질

Specular Reflection

Diffuse Reflection

Ambient Reflection

Page 9: GameMath-Chapter 07 조명

02. 02. 재질재질

Ambient Material(Ambient Material( 주변 재질 색상주변 재질 색상 )) 다른 물체에 의해 반사되어 나타나는 주변 반다른 물체에 의해 반사되어 나타나는 주변 반

사광의 색상사광의 색상

Diffuse Material(Diffuse Material( 난반사 재질 색상난반사 재질 색상 )) 물체 표면 자체의 색상 표현물체 표면 자체의 색상 표현

Page 10: GameMath-Chapter 07 조명

02. 02. 재질재질

Specular Material(Specular Material( 전반사 재질색상전반사 재질색상 )) 광원이 반사되어 가장 밝게 빛나는 부분의 색광원이 반사되어 가장 밝게 빛나는 부분의 색

상상 Shininess(Shininess( 반사도반사도 ) ) 상수값 필요상수값 필요

Emissive Material(Emissive Material( 방사 재질 색상방사 재질 색상 )) 발광체 물체를 표현발광체 물체를 표현 Ex) Ex) 전구전구

Page 11: GameMath-Chapter 07 조명

03. Illumination(03. Illumination( 조명조명 ))

Lighting Model(Lighting Model( 조명 모델조명 모델 )) 재질 뿐만 아니라 물체의 모양에 따라 효과가 달라짐재질 뿐만 아니라 물체의 모양에 따라 효과가 달라짐

모양과의 상호 작용을 모델링 한 것모양과의 상호 작용을 모델링 한 것

계산이 단순해야 함계산이 단순해야 함

조명 결정은 조명 결정은 33 가지 성분의 합으로가지 성분의 합으로 Diffuse Component (Diffuse Component ( 분산 성분분산 성분 ))

Specular Component (Specular Component ( 전반사 성분전반사 성분 ))

Ambient Component (Ambient Component ( 주변 성분주변 성분 ))

Page 12: GameMath-Chapter 07 조명

03.1 Diffuse Component 03.1 Diffuse Component

Surface Normal Vector

Light Vector

Incident Angle

Diffuse Reflection

Incident Light

Page 13: GameMath-Chapter 07 조명

03.1 Diffuse Component 03.1 Diffuse Component

난반사난반사 (Diffuse Reflection)(Diffuse Reflection) Lambert’s lawLambert’s law

관측자가 보는 빛의 양은 관측자의 위치에는 상관 없고 오직 관측자가 보는 빛의 양은 관측자의 위치에는 상관 없고 오직 빛의 입사각에 의존한다빛의 입사각에 의존한다

dA

NN

ΘdA

cos( )θ

Page 14: GameMath-Chapter 07 조명

03.1 Diffuse Component03.1 Diffuse Component

Rd = cos = N • LRd = cos = N • L

N – N – 평면 법선 벡터평면 법선 벡터

L – L – 광원 법선 벡터광원 법선 벡터

φ

N

L

φ

Page 15: GameMath-Chapter 07 조명

03.1 Diffuse Component03.1 Diffuse Component

diffuse = (Kd Ld) max(N • L, 0) ⊗ ∗diffuse = (Kd Ld) max(N • L, 0) ⊗ ∗ Kd – Kd – 표면 난반사 재질표면 난반사 재질

Ld – Ld – 광원 난반사 재질광원 난반사 재질

Kd Ld – ⊗Kd Ld – ⊗ 벡터 요소간의 곱벡터 요소간의 곱

max(N • L, 0)max(N • L, 0)

최종 최종 diffusediffuse 는 는 4 * 1 RGBA 4 * 1 RGBA 색상벡터색상벡터

Page 16: GameMath-Chapter 07 조명

03.2 Specular Component03.2 Specular Component

Highlight – Highlight – 가장 밝은 부분가장 밝은 부분

눈의 위치에 따라 영향을 받음눈의 위치에 따라 영향을 받음

Specular Material Color & Shininess Specular Material Color & Shininess 에 에 영향영향

Page 17: GameMath-Chapter 07 조명

03.2 Specular Component03.2 Specular Component

Shininess 3 6 9 25 200Shininess 3 6 9 25 200

0.250.25

0.50.5

0.750.75

Page 18: GameMath-Chapter 07 조명

03.2 Specular Component03.2 Specular Component

R – R – 반사 벡터반사 벡터 S – S – 시점 방향 벡터시점 방향 벡터 N – N – 표면 법선 벡터표면 법선 벡터 L – L – 광원 방향 벡터광원 방향 벡터

Page 19: GameMath-Chapter 07 조명

03.2 Specular Component03.2 Specular Component

N

L

φ

R = 2(N • L)N - L2(N • L)N - L

φ N • LN • L

2(N • L)N2(N • L)N

< 반사 벡터 R 연산 >

Page 20: GameMath-Chapter 07 조명

03.2 Specular Component03.2 Specular Component

좀 더 빠른 계산이 필요 좀 더 빠른 계산이 필요 Blinn Blinn 방정식방정식

광원의 위치가 고정되어 있을 경우광원의 위치가 고정되어 있을 경우 , , 조명 조명 계산을 매우 빠르게 수행 가능계산을 매우 빠르게 수행 가능

< 반사각 벡터 H>

Page 21: GameMath-Chapter 07 조명

03.2 Specular Component03.2 Specular Component

Specular = Specular =

visibility * (Ks Ls) * (max(N•H, 0))^shin⊗visibility * (Ks Ls) * (max(N•H, 0))^shin⊗ Visibility – Visibility – 표면의 조명여부표면의 조명여부 Ks – Ks – 전반사 재질 색상전반사 재질 색상 Ls – Ls – 광원의 전반사 색상광원의 전반사 색상 N – N – 표면의 단위 법선벡터표면의 단위 법선벡터 H – H – 표면상의 표면상의 PP 로 부터 반각벡터로 부터 반각벡터 Shininess – Shininess – 표면의 반사도표면의 반사도

Page 22: GameMath-Chapter 07 조명

03.3 Ambient Component03.3 Ambient Component

다른 물체를 한 번 거쳐 반사된 간접 조명다른 물체를 한 번 거쳐 반사된 간접 조명

Ambient = Ka La⊗Ambient = Ka La⊗ Ka = Ka = 주변광 재질 색상주변광 재질 색상

La = La = 광원의 주변광 색상광원의 주변광 색상

Ray Tracing Ray Tracing 기법을 이용기법을 이용

Page 23: GameMath-Chapter 07 조명

03.4 Total Illumination03.4 Total Illumination

Total Illumination Total Illumination

= Ambient + Diffuse + Specular= Ambient + Diffuse + Specular

Page 24: GameMath-Chapter 07 조명

04. Shading(04. Shading( 음영음영 ))

삼각형 메쉬 모델링삼각형 메쉬 모델링 181p [181p [ 그림 그림 7 -1 5] 7 -1 5] 참조참조

182p [182p [ 그림 그림 7 -1 6] 7 -1 6] 참조참조

삼각형의 면을 채우는 과정삼각형의 면을 채우는 과정 182p [182p [ 그림 그림 7 -1 7] 7 -1 7] 참조참조

Page 25: GameMath-Chapter 07 조명

04.1 Flat Shading(04.1 Flat Shading( 평면 음영평면 음영 ))

법선 벡터 한 개만을 사용법선 벡터 한 개만을 사용

다각형의 첫번째 정점 사용다각형의 첫번째 정점 사용

glShadeModel(GL_FLAT)glShadeModel(GL_FLAT)

Page 26: GameMath-Chapter 07 조명

04.2 Gouraud Shading04.2 Gouraud Shading

세개의 꼭지점에서 조명결과를 이용 후 색세개의 꼭지점에서 조명결과를 이용 후 색상을 보간상을 보간

glShadeModel(GL_SMOOTH)glShadeModel(GL_SMOOTH)

모서리 부분 어색모서리 부분 어색

Page 27: GameMath-Chapter 07 조명

04.3 Phong Shading04.3 Phong Shading

각 꼭지점에 지정된 법선 벡터를 보간각 꼭지점에 지정된 법선 벡터를 보간

연산 수행 시간이 오래 걸림연산 수행 시간이 오래 걸림

Page 28: GameMath-Chapter 07 조명

04. 04. 기타기타

Programmable ShaderProgrammable Shader Shader – Shader – 하드웨어에서 렌더링 담당 부분하드웨어에서 렌더링 담당 부분

CG(C for Graphics)CG(C for Graphics) NVIDIANVIDIA 에서 발표한 셰이딩 언어에서 발표한 셰이딩 언어

CC 와 유사와 유사