13 장 . 고급 렌더링

Post on 05-Jan-2016

122 views 2 download

description

13 장 . 고급 렌더링. 학습목표 그림자를 구현하기 위한 세 가지 방법을 이해한다 . 레이트레이싱의 정의와 구현방법을 이해한다 . 레디오서티의 정의와 구현방법을 이해한다 . 레이트레이싱과 레디오서티의 장단점을 비교하여 이해한다. 그림자. 셰이드 (Shade) 셰도우 (Shadow) 와 구별 상대적으로 단순한 연산으로 매우 사실적인 효과 조명과 별도로 취급 그림자 그림자 없음 : 공중에 떠있는 인상 광원특성 : 방향성 그림자 . 위치성 그림자. 반영과 본영. - PowerPoint PPT Presentation

Transcript of 13 장 . 고급 렌더링

1

13 장 . 고급 렌더링

학습목표

• 그림자를 구현하기 위한 세 가지 방법을 이해한다 . • 레이트레이싱의 정의와 구현방법을 이해한다 . • 레디오서티의 정의와 구현방법을 이해한다 . • 레이트레이싱과 레디오서티의 장단점을 비교하여 이해한다 .

2

그림자

셰이드 (Shade)• 셰도우 (Shadow) 와 구별• 상대적으로 단순한 연산으로 매우 사실적인 효과 • 조명과 별도로 취급

그림자• 그림자 없음 : 공중에 떠있는 인상• 광원특성 : 방향성 그림자 . 위치성 그림자

3

반영과 본영

본영 ( 本影 , 본 그림자 , Umbra, Hard Shadow)반영 ( 半影 , 반 그림자 , Penumbra, Soft Shadow) 그림자• 주변광에 의해 보임• 산란으로 인해 본영과 반영의 경계선이 흐려져 보임

4

소프트 셰도우 기법

면적 광원의 근사화• 교집합 : 본영• 합집합 – 교집합 : 반영 (Soft Shadow)

5

지면 그림자 (Ground Shadow)

지면 그림자 (Ground Plane Shadows)• 투상 그림자 (Projection Shadows)• 바닥에 투상된 그림자만을 고려 . 물체면 간의 그림자는 고려치 않음• 물체공간 알고리즘

6

지면 그림자

7

셰도우 맵 (Shadow Map)

화소 단위의 영상공간 알고리즘1. 광원기준 가장 가까운 물체면과의 거리 (A) 를 셰도우 지 - 버퍼에 저장2. 은면제거를 위해 시점기준 가장 가까운 물체면 화소를 구함3. 해당 화소 물체면으로부터 광원 (B) 까지의 거리를 구함 .4. B 가 A 보다 크면 해당 화소는 그림자 영역 내부에 존재함 .

8

셰도우 맵 (Shadow Map)

if (Zmap + Bias) < Zpixel the Pixel Is in the Shadow; else the Pixel Is Not in the Shadow;

• Bias: Zmap 과 Zpixel 이 정확히 일치하지 않을 때에 대비

광원기준 셰도우 맵 , 시점 기준 물체 렌더링

9

그림자 부피 (Shadow Volume)

가시부피와 그림자 부피가 중첩되는 곳이 그림자 영향권

10

지 패스 알고리즘 (Z-Pass Algorithm)

다수개의 다각형에 의한 그림자• 그림자 부피 안으로 들어갈 때 + 1, 나갈 때 -1• 결과적인 카운트 값이 0 보다 크면 그림자 색

11

지 - 페일 알고리즘 (Z-Fail Algorithm)

전방절단면 앞쪽이 이미 그림자 부피이면 지 - 패스는 오류지 - 페일 알고리즘• 무한대 거리에서 시점을 향해 오면서 카운트 값을 계산 • 그림자가 후방절단면 뒤쪽에 걸칠 때엔 이 역시 오류

12

지역조명모델과 전역조명모델

레이 트레이싱 ( 광선 추적 , Ray Tracing)• 대표적인 전역조명모델 (Global Illumination Model)• 순방향 레이트레이싱 ( 順方向 )

광원에서 나온 모든 광선을 추적 . 너무 많은 계산을 요함 .• 역방향 레이트레이싱 ( 逆方向 )

우리 눈에서 광선이 발사된다고 가정하고 추적 .

13

레이 트레이싱

광선의 방향• 화면에 수직• 평행투상 , 원근투상 모두 정규화 가시부피에서는 평행투상• 광선의 방향은 서로 독립적 . 병렬처리 (Parallel Processing) 에 유리

14

레이 트레이싱

가 ) 지역 조명모델에 의한 세기 ( 광원과 물체 사이 ) 나 ) 반사 광선에 의한 세기 ( 다른 물체 사이 )다 ) 굴절 광선에 의한 세기 ( 다른 물체 사이 )

지역 조명모델에 의한 세기

• 그림자 광선과 다른 물체가 만나면 C = 0

15

레이 트레이싱

반사 광선• 입사각과 반사각이 동일한 경면 반사만을 추적

굴절 광선• 물체면이 투명한 경우에 추적• 스넬의 법칙 (Snell's Law)

굴절광선의 진행방향

16

경면계수와 굴절계수

17

레이 트레이싱

재귀적 광선추적과 레이트리

18

재귀적 레이 트레이싱

void TraceRay (point start, vector direction, int depth, colors *color);{ int ray_hit( ); vector reflected_direction, transmitted_direction; colors local_color, reflected_color, transmitted_color; object hit_object; point hit_point; if (depth > MAXDEPTH) *color = BLACK; else { if (ray_hit(start, direction, &hit_object, &hit_point)) { shade (hit_object, hit_point, &local_color); calculate_reflection(hit_object, hit_point, reflected_direction); calculate_refraction(hit_object, hit_point, refracted_direction); TraceRay(hit_point, reflected_direction, depth+1, &reflected_color); TraceRay(hit_point, refracted_direction, depth+1, refracted_color); Combine (hit_object, local_color, reflected_color, transmitted_color, color); } else *color = BACKGROUND_COLOR; } }

19

레이 트레이싱

다각형 사이의 상호작용• 이면 제거 (Backface Culling) 를 허용하지 않음 .• 은면 제거 (Hidden Surface Removal) 를 허용하지 않음 .• 그림자 연산이 자동으로 이루어짐 .

2 개의 광원에 의한 하이라이트 , 하드 셰도우

20

레이트레이싱

레이트레이싱• 모든 화소에 대해 광선을 추적• 각각의 광선과 마주치는 모든 면을 발견• 이 모든 면에 대해 반사광과 굴절광의 세기를 계산

연산의 가속• 빛의 세기가 일정 한도에 다다르면 추적을 끝냄 : 임계치 설정• 다각형과의 교차점 계산에 BV 활용 : BV Test

21

교차점 계산

평면과의 교차점 : Ax + By + Cz = D 로 표현되는 평면

원구와의 교차점 : 중심 반지름 r 인 원구

• 2 개의 실근 , 중근 , 허근

22

레이 트레이싱 결과

23

레디오서티 (Radiosity)

레디오서티 • 전역 조명모델 : 물체면 상호간의 빛의 움직임을 조명모델에 반영• 확산광만을 추적 cf. 레이트레이싱 : 경면광과 굴절광을 추적• 시점의 위치에 무관 cf. 레이트레이싱 : 시점에 따라 달라짐

물체면 사이에 교환되는 빛 에너지의 양을 추적• 빛은 일종의 에너지이며 에너지 보존 법칙이 성립

24

레디오서티 (Radiosity)

Bi = i 번 다각형에서 나오는 빛의 밀도 . 레디오서티 (Radiosity) Ai = i 번 다각형의 면적Ei = 스스로 발하는 빛의 밀도ρi = i 번 다각형의 반사계수

25

레디오서티 (Radiosity)

형상인수 (Form Factor) Fij• j 번 다각형에서 출발한 빛의 몇 %가 i 번 다각형에 도달하는가 .• 면들 사이의 기하학적 관계에 따라 결정• 마주 볼수록 , 거리가 가까울수록 높음 .

26

레디오서티 (Radiosity)

형상인수 연산

dAi, dAj 로 분할 : 분할면마다 서로 바라보는 각도가 달라짐Vji = 가시성 변수 (Visibility Variable)• j 에서 i 를 바라보았을 때 중간에 가리는 물체가 없으면 1, 있으면 0

27

레디오서티 (Radiosity)

역 정리 ( 逆 , Reciprocity Law) • j 에서 i 를 향한 형상인수에 j 의 면적을 곱한 것은 i 에서 j 를 향한

형상인수에 i 의 면적을 곱한 것과 같다 • 두 개의 면 사이에 교환되는 빛의 양이 동일함

28

레디오서티 (Radiosity)

빛 에너지의 교환 : Solve for Bi !

29

조명 비교

지역조명모델과 레디오서티• 레디소서티 : 간접반사로 인해 전반적으로 밝은 모습

30

레디오서티

31

레이트레이싱과 레디오서티