13 장 . 고급 렌더링
DESCRIPTION
13 장 . 고급 렌더링. 학습목표 그림자를 구현하기 위한 세 가지 방법을 이해한다 . 레이트레이싱의 정의와 구현방법을 이해한다 . 레디오서티의 정의와 구현방법을 이해한다 . 레이트레이싱과 레디오서티의 장단점을 비교하여 이해한다. 그림자. 셰이드 (Shade) 셰도우 (Shadow) 와 구별 상대적으로 단순한 연산으로 매우 사실적인 효과 조명과 별도로 취급 그림자 그림자 없음 : 공중에 떠있는 인상 광원특성 : 방향성 그림자 . 위치성 그림자. 반영과 본영. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/1.jpg)
1
13 장 . 고급 렌더링
학습목표
• 그림자를 구현하기 위한 세 가지 방법을 이해한다 . • 레이트레이싱의 정의와 구현방법을 이해한다 . • 레디오서티의 정의와 구현방법을 이해한다 . • 레이트레이싱과 레디오서티의 장단점을 비교하여 이해한다 .
![Page 2: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/2.jpg)
2
그림자
셰이드 (Shade)• 셰도우 (Shadow) 와 구별• 상대적으로 단순한 연산으로 매우 사실적인 효과 • 조명과 별도로 취급
그림자• 그림자 없음 : 공중에 떠있는 인상• 광원특성 : 방향성 그림자 . 위치성 그림자
![Page 3: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/3.jpg)
3
반영과 본영
본영 ( 本影 , 본 그림자 , Umbra, Hard Shadow)반영 ( 半影 , 반 그림자 , Penumbra, Soft Shadow) 그림자• 주변광에 의해 보임• 산란으로 인해 본영과 반영의 경계선이 흐려져 보임
![Page 4: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/4.jpg)
4
소프트 셰도우 기법
면적 광원의 근사화• 교집합 : 본영• 합집합 – 교집합 : 반영 (Soft Shadow)
![Page 5: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/5.jpg)
5
지면 그림자 (Ground Shadow)
지면 그림자 (Ground Plane Shadows)• 투상 그림자 (Projection Shadows)• 바닥에 투상된 그림자만을 고려 . 물체면 간의 그림자는 고려치 않음• 물체공간 알고리즘
![Page 6: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/6.jpg)
6
지면 그림자
![Page 7: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/7.jpg)
7
셰도우 맵 (Shadow Map)
화소 단위의 영상공간 알고리즘1. 광원기준 가장 가까운 물체면과의 거리 (A) 를 셰도우 지 - 버퍼에 저장2. 은면제거를 위해 시점기준 가장 가까운 물체면 화소를 구함3. 해당 화소 물체면으로부터 광원 (B) 까지의 거리를 구함 .4. B 가 A 보다 크면 해당 화소는 그림자 영역 내부에 존재함 .
![Page 8: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/8.jpg)
8
셰도우 맵 (Shadow Map)
if (Zmap + Bias) < Zpixel the Pixel Is in the Shadow; else the Pixel Is Not in the Shadow;
• Bias: Zmap 과 Zpixel 이 정확히 일치하지 않을 때에 대비
광원기준 셰도우 맵 , 시점 기준 물체 렌더링
![Page 9: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/9.jpg)
9
그림자 부피 (Shadow Volume)
가시부피와 그림자 부피가 중첩되는 곳이 그림자 영향권
![Page 10: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/10.jpg)
10
지 패스 알고리즘 (Z-Pass Algorithm)
다수개의 다각형에 의한 그림자• 그림자 부피 안으로 들어갈 때 + 1, 나갈 때 -1• 결과적인 카운트 값이 0 보다 크면 그림자 색
![Page 11: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/11.jpg)
11
지 - 페일 알고리즘 (Z-Fail Algorithm)
전방절단면 앞쪽이 이미 그림자 부피이면 지 - 패스는 오류지 - 페일 알고리즘• 무한대 거리에서 시점을 향해 오면서 카운트 값을 계산 • 그림자가 후방절단면 뒤쪽에 걸칠 때엔 이 역시 오류
![Page 12: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/12.jpg)
12
지역조명모델과 전역조명모델
레이 트레이싱 ( 광선 추적 , Ray Tracing)• 대표적인 전역조명모델 (Global Illumination Model)• 순방향 레이트레이싱 ( 順方向 )
광원에서 나온 모든 광선을 추적 . 너무 많은 계산을 요함 .• 역방향 레이트레이싱 ( 逆方向 )
우리 눈에서 광선이 발사된다고 가정하고 추적 .
![Page 13: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/13.jpg)
13
레이 트레이싱
광선의 방향• 화면에 수직• 평행투상 , 원근투상 모두 정규화 가시부피에서는 평행투상• 광선의 방향은 서로 독립적 . 병렬처리 (Parallel Processing) 에 유리
![Page 14: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/14.jpg)
14
레이 트레이싱
가 ) 지역 조명모델에 의한 세기 ( 광원과 물체 사이 ) 나 ) 반사 광선에 의한 세기 ( 다른 물체 사이 )다 ) 굴절 광선에 의한 세기 ( 다른 물체 사이 )
지역 조명모델에 의한 세기
• 그림자 광선과 다른 물체가 만나면 C = 0
![Page 15: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/15.jpg)
15
레이 트레이싱
반사 광선• 입사각과 반사각이 동일한 경면 반사만을 추적
굴절 광선• 물체면이 투명한 경우에 추적• 스넬의 법칙 (Snell's Law)
굴절광선의 진행방향
![Page 16: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/16.jpg)
16
경면계수와 굴절계수
![Page 17: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/17.jpg)
17
레이 트레이싱
재귀적 광선추적과 레이트리
![Page 18: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/18.jpg)
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; } }
![Page 19: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/19.jpg)
19
레이 트레이싱
다각형 사이의 상호작용• 이면 제거 (Backface Culling) 를 허용하지 않음 .• 은면 제거 (Hidden Surface Removal) 를 허용하지 않음 .• 그림자 연산이 자동으로 이루어짐 .
2 개의 광원에 의한 하이라이트 , 하드 셰도우
![Page 20: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/20.jpg)
20
레이트레이싱
레이트레이싱• 모든 화소에 대해 광선을 추적• 각각의 광선과 마주치는 모든 면을 발견• 이 모든 면에 대해 반사광과 굴절광의 세기를 계산
연산의 가속• 빛의 세기가 일정 한도에 다다르면 추적을 끝냄 : 임계치 설정• 다각형과의 교차점 계산에 BV 활용 : BV Test
![Page 21: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/21.jpg)
21
교차점 계산
평면과의 교차점 : Ax + By + Cz = D 로 표현되는 평면
원구와의 교차점 : 중심 반지름 r 인 원구
• 2 개의 실근 , 중근 , 허근
![Page 22: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/22.jpg)
22
레이 트레이싱 결과
![Page 23: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/23.jpg)
23
레디오서티 (Radiosity)
레디오서티 • 전역 조명모델 : 물체면 상호간의 빛의 움직임을 조명모델에 반영• 확산광만을 추적 cf. 레이트레이싱 : 경면광과 굴절광을 추적• 시점의 위치에 무관 cf. 레이트레이싱 : 시점에 따라 달라짐
물체면 사이에 교환되는 빛 에너지의 양을 추적• 빛은 일종의 에너지이며 에너지 보존 법칙이 성립
![Page 24: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/24.jpg)
24
레디오서티 (Radiosity)
Bi = i 번 다각형에서 나오는 빛의 밀도 . 레디오서티 (Radiosity) Ai = i 번 다각형의 면적Ei = 스스로 발하는 빛의 밀도ρi = i 번 다각형의 반사계수
![Page 25: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/25.jpg)
25
레디오서티 (Radiosity)
형상인수 (Form Factor) Fij• j 번 다각형에서 출발한 빛의 몇 %가 i 번 다각형에 도달하는가 .• 면들 사이의 기하학적 관계에 따라 결정• 마주 볼수록 , 거리가 가까울수록 높음 .
![Page 26: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/26.jpg)
26
레디오서티 (Radiosity)
형상인수 연산
dAi, dAj 로 분할 : 분할면마다 서로 바라보는 각도가 달라짐Vji = 가시성 변수 (Visibility Variable)• j 에서 i 를 바라보았을 때 중간에 가리는 물체가 없으면 1, 있으면 0
![Page 27: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/27.jpg)
27
레디오서티 (Radiosity)
역 정리 ( 逆 , Reciprocity Law) • j 에서 i 를 향한 형상인수에 j 의 면적을 곱한 것은 i 에서 j 를 향한
형상인수에 i 의 면적을 곱한 것과 같다 • 두 개의 면 사이에 교환되는 빛의 양이 동일함
![Page 28: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/28.jpg)
28
레디오서티 (Radiosity)
빛 에너지의 교환 : Solve for Bi !
![Page 29: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/29.jpg)
29
조명 비교
지역조명모델과 레디오서티• 레디소서티 : 간접반사로 인해 전반적으로 밝은 모습
![Page 30: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/30.jpg)
30
레디오서티
![Page 31: 13 장 . 고급 렌더링](https://reader033.vdocuments.site/reader033/viewer/2022061614/56813b2a550346895da3ee3b/html5/thumbnails/31.jpg)
31
레이트레이싱과 레디오서티