Contents |
Introduction
일반적인 렌더링 파이프라인에서는 광원으로부터 빛을 집적 받는 음영 처리만을 하고 있다. 하지만 현실 세계에서는 빛이 다른 물체에 막혀서 물체에 도달 할 수 없을 수도 있고 (그림자), 빛이 다른 물체에 반사되어 물체를 비출 수도 있다 (2차 광원). 이러한 전반적 조명(Global Illumination)을 표현하는 알고리즘으로는 여러 가지가 있다.
- Ray Tracing (광선 추적법)
- Ambient Occlusion (환경 폐색법) : 특정 지점의 환경광을 주위가 폐색된 정도에 따라 보정
- Photon Mapping (광자 사상법)
- Radiosity (광도 계산법)
우리는 실시간 GI에 대해서 주로 이야기를 할 것이다. Precomputed Radiance Transfer에서는 물체와 환경광간의 상호작용에 의한 조명만을 다루며, Precomputed Shadow Fields는 여기에 물체간의 상호작용에 의한 조명까지 다루어 진다. SH Exponentiation에서는 변형하는 물체의 자기차폐에 의한 조명까지 다루게 된다.
Precomputed Radiance Transfer
실시간 렌더링에서는 많은 조명 부분이 근사된다. 간접광은 환경광으로 근사하거나 생략하며, 광원은 점광원만 사용하며 (그림자가 부드럽지 않게 되는 단점과 함께), 원거리에서의 조명들은 환경맵으로 근사된다. 전계산 광도 전달법(Precomputed Radiance Transfer, PRT)은 간접광, 면광원, 부드러운 그림자 등을 실시간으로 표현 할 수 있는 기술이다. 이는 광도(Radiosity)를 환경맵을 사용한 영상 기반 조명법(Image Based Lighting, IBL)을 사용함으로써 구현된다.
Diffuse PRT
첫째 등식은 일차 반사에 대한 조명을 나타낸다. 첫 항은 BRDF(Bidirectional Reflectance Distribution Function)이며, 둘째 항과 셋째 항은 정점에 특정 방향으로 들어오는 광량을 계산하는 부분이다. 셋째 항은 단위 면적당 받는 광량을 계산하는 부분으로, 램버트의 법칙에 의해 법선과 광선의 내적값이 된다. \(L_0(p\rightarrow \vec{d}) = \int_{\Omega} f_{r}(p, \vec{s} \rightarrow \vec{d}) L(\vec{s} \rightarrow p) H_{N_{p}}(-\vec{s})d\vec{s}\)
이를 환경맵을 사용한다면 이렇게 보일 것이다. 환경맵은 상당히 먼 거리에 존재하는 환경광의 근사라서 내부의 위치에 따라 방향이 변하지 않는다고 가정한다는 것에 유의하라. \(L_0(p\rightarrow \vec{d}) = \int_{\Omega} f_{r}(p, \vec{s} \rightarrow \vec{d}) L_{env}(\vec{s}) V(p \rightarrow \vec{s}) H_{N_{p}}(-\vec{s})d\vec{s}\)
여기서 우리는 극도의 간소화를 한 번 거친다. BRDF를 상수라고 가정하는 것이다. \(L_0(p) = \frac{\rho_d}{\pi} \int_{\Omega} L_{env}(\vec{s}) V(p \rightarrow \vec{s}) H_{N_{p}}(-\vec{s})d\vec{s}\)
여기서 환경맵을 기저함수들로 생성된 공간에 근사하면 다음 등식이 될 것이다. 여기서 괄호 안의 값을 전계산 해 놓고, 환경맵 값의 기저함수들에 대한 좌표값을 실시간으로 계산하여 (위치 정보의 변형이 있을 수 있으니) 내적하면 일차 반사에 의한 산란광을 실시간으로 계산할 수 있다. 같은 방법으로 일차 이상에 대한 반사도 전계산을 통해 쉽게 계산할 수 있을 것이다. \(L_0(p) = \sum_i l_i \big( \frac{\rho_d}{\pi} \int_{\Omega} y_i (\vec{s}) V(p \rightarrow \vec{s}) H_{N_p}(-\vec{s})d\vec{s} \big) \quad \because L_{env}(\vec{s}) \approx \sum_i l_i y_i (\vec{s})\)
기저함수로는 구면 조화 함수(Spherical Harmonics)를 사용한다.
General PRT
Precomputed Shadow Fields
SH Exponentiation
References
- Sloan, Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments (2002), SIGGRAPH
- Zhou et al., Precomputed Shadow Fields for Dynamic Scenes (2005), SIGGRAPH
- Ren et al., Real-Time Soft Shadows in Dynamic Scenes using Spherical Harmonic Exponentiation (2006), SIGGRAPH
- Kautz, Sloan and Lehtinen, Precomputed Radiance Transfer : Theory and Practice (2005). SIGGRAPH 2005 Course
- Nishikawa, 3Dグラフィックス・マニアックス : 事前計算放射輝度伝搬とは? (2008), 알로샤 번역