[ Graphics ] 전역 조명과 텍스처링
1. 조명 모델
1. 지역 조명(local illumination)
조명 대상인 물체의 표면 재질과 광원의 속성만 이용해 해당 표면의 색상을 결정할 뿐, 같은 공간에 있는 다른 물체는 고려하지 않는다.(퐁 모델)
퐁 모델로 $S_1$, $S_2$, $S_3$ 라이팅 시 $S_2$의 앞에 $S_1$이 존재 하나, 이를 무시하고 빛을 받는다.
2. 전역 조명(global illumination)
1) 광선추적법(ray tracing)
뷰 프러스텀 : 카메라에 수렴하는 투영선(projection line)들의 집합
- 투영선의 개수는 스크린의 해상도와 같다,
- 하나의 투영선에 하나의 픽셀이 대응되어 픽셀의 색상을 결정한다.
1차 광선(primary ray) : 투영선 역방향으로 발사하는 광선, 이를 추적하여 해당 투영선에 대응하는 픽셀의 색상을 계산한다.
2차 광선(secondary ray) : 1차 광선이 어떤 물체와 부딪히면 그 교차점에서 각 광원을 향해 발사하는 광선, 그림자 여부를 판단하는 그림자 광선(shadow ray)이라고도 한다.
1차 광선은 $p_1$에서 교차, $p_1$에서 그림자 광선 $s_1$이 광원을 향해 발사되었다.
- $s_1$이 광원으로 가는 도중 다른 물체와 부딪히면 $p_1$은 광원의 직접적인 영향권 X -> 그림자 영역
- $s_1$이 광원에 도달 시 $p_1$에 입사하는 빛을 이용해 $p_1$의 직접 조명 색상을 결정(퐁 모델 사용 가능)
- $r_1$ :반사 광선(reflection ray), 1차 광선 $I_1$이 $p_1$의 노멀 $n_1$을 중심으로 반사
- $I_1$의 입사각과 $r_1$의 반사각이 같다는 성질에 의해, $r_1$의 방향 계산
- $I_1$의 입사각과 $r_1$의 반사각이 같다는 성질에 의해, $r_1$의 방향 계산
- $t_1$ : 굴절 광선(refraction ray 혹은 transmitted ray), 1차 광선이 반투명한 물체와 부딪힐 때 발생
광선 추적법은 재귀적인(recursive) 알고리즘으로, 광선 트리를 따라 반사/굴절 광선이 어떤 물체에도 부딪히지 않고 장면을 벗어날 때까지 또는 미리 정의된 재귀 단계에 도달할 때까지 확장된다.
3. 환경 매핑
- 환경 매핑(environment mapping) : 주변 환경을 반사하는 매끄러운 물체를 렌더링하는 기법
- 환경맵(environment map) : 주변 환경의 영상을 담은 텍스처
주로 쓰이는 환경맵은 큐브맵(cube map)으로, 여섯 개 면 각각을 향해서 수직과 수평 방향으로 모두 90˚의 시야각(field of view)을 설정, 렌더링 시 여섯 개의 정사각형 이미지를 얻을 수 있다.
- 카메라로부터 p를 향해 광선 $I$를 발사하고 이를 추적.
- $I$는 p의 표면 노멀 n을 기준으로 반사되어 $R$ 벡터를 결정
※ 환경 맵핑은 전역 조명 모델의 분위기를 만들어주나, 지역 조명 모델의 근본적 한계를 극복하지 못한다. (ex) 자기 자신을 반사하지 못한다)
출처: OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문