본문 바로가기

Library/Computer Graphics

Global Illumination Algorithms

대부분의 경우, 완전한 전역 조명 알고리즘은 계산량이 대단히 많기 때문에, 실시간성을 중요하다면 이와 같은 알고리즘을 적용하기는 힘들다. 최근에는 GPU를 사용하여 가속화된 전역 조명 알고리즘들이 많이 등장하기는 했지만, 복잡한 씬(scene)에서의 계산량을 실시간으로 처리하기에는 아직도 충분하지 않다.
 
그러나, 실시간 측면에서 전역 조명 알고리즘을 적용하는 것은 불가능한 것은 아니다. 해당 씬의 에너지 흐름이 안정된 상태라면, 어느 정도 조명 효과를 미리 계산해두는 것이 가능하다. 또, 조명 따위가 제한된 환경이라면 시각적 효과를 위해 렌더링 타임에 완전한 전역 조명 효과를 계산하는 것이 불가능한 것은 아니기 때문이다. 특히, 레이 트레이싱(ray tracing)이나 래디어시티(radiosity) 알고리즘은 초기에 소개되었지만, 오늘날에도 여전히 사용되고 있는 알고리즘들이다.


Enlighten SDK, indirect lighting effect


Cornell box, color bleeding effect



이외에도, 표면에서 눈에 도달하는 빛의 총량을 결정하기 위한 여러가지 전역 조명 알고리즘들이 있다. 방사 캐싱(irradiance caching)이나 Jensen의 포톤 매핑(photon mapping)은 잘 알려진 알고리즘이다.

포톤 매핑은 빛으로부터의 포톤의 흐름을 추적하고, 표면에 포톤을 배치한다. 카메라가 표면을 비출 때, 간접광(indirect light)의 근사치를 계산하기 위해 포톤의 배치가 파악되고 평가된다. 카메라에 의해 샘플링 된 뒤, 경로를 추적하는 것은 전통적인 렌더링 방법에 의해 완료된다. 이 과정은 보통 오프라인 렌더러에 의해 수행되며, 고품질의 이미지를 생성할 수 있다. 포톤 매핑은 보통 레이 트레이싱과 함께 사용되며, 레이 트레이싱은 간접광(포톤맵에 의한)과 직접광(광원에 의한)을 모으는 렌더링된 각 표면으로부터 방출된 빛을 모으는 '최종 수집 단계(final gather phase)'에 적용된다.




Copy From
Tomas Akenine-Moller, Eric Haines, Naty Hoffman, Real-Time Rendering 3rd Edition, A.K. Peters, 2008