본문 바로가기

Global Illumination

Global Illumination Algorithms 대부분의 경우, 완전한 전역 조명 알고리즘은 계산량이 대단히 많기 때문에, 실시간성을 중요하다면 이와 같은 알고리즘을 적용하기는 힘들다. 최근에는 GPU를 사용하여 가속화된 전역 조명 알고리즘들이 많이 등장하기는 했지만, 복잡한 씬(scene)에서의 계산량을 실시간으로 처리하기에는 아직도 충분하지 않다. 그러나, 실시간 측면에서 전역 조명 알고리즘을 적용하는 것은 불가능한 것은 아니다. 해당 씬의 에너지 흐름이 안정된 상태라면, 어느 정도 조명 효과를 미리 계산해두는 것이 가능하다. 또, 조명 따위가 제한된 환경이라면 시각적 효과를 위해 렌더링 타임에 완전한 전역 조명 효과를 계산하는 것이 불가능한 것은 아니기 때문이다. 특히, 레이 트레이싱(ray tracing)이나 래디어시티(radiosity) 알고.. 더보기
Area Lighting 제대로 된 전역 조명을 구현하려면, 그래픽 시스템에서 제공하는 조명 처리 시스템으로는 부족하다. 더구나, 기존의 Gouraud 쉐이딩에 기반한 하드웨어 T&L 기능들은 전부 폐기 예정(deprecated)이다. DirectX는 10.0 이상에서는 아예 하드웨어 T&L 기능을 제공하고 있지 않으며, 변화가 느린 OpenGL조차 고전적인 하드웨어 T&L 관련 함수들은 폐기 예정되어 있다. 즉, 좋든 싫든 이제는 프래그먼트 프로그래밍으로 조명 효과를 구현해야 하며, 이를 위해 기존의 근사 조명식들이 어떻게 유도되었는지 알아볼 필요가 있다. 먼저, 임의의 지점에서 다음과 같이 빛이 입사되고 반사된다고 생각해보자. 여기서 는 에 입사되는 빛의 단위 면적 에너지다. 즉, 에 입사되는 전체 에너지량은 의 합으로 간주.. 더보기
History of Global Illumination : Ray Tracing and Radiosity 초창기 컴퓨터 그래픽스는 상당히 조악했다. 컴퓨터 그래픽스의 선구자로 일컫어지는 이안 서덜랜드(Ivan Sutherland)의 스캐치패드(SketchPad, M.I.T. 1963)는 선, 점과 같은 기본적인 도형만을 그릴 수 있을 뿐이었다. 그 후로, 래스터 그래픽이 발전함에 따라 쉐이딩 알고리즘 적용할 수 있게 되었고, 솔리드 렌더링(solid rendering)이 가능해지게 된다. 물론, 이때의 쉐이딩이란, 광원과 폴리곤의 표면과의 각도를 계산하여 단일한 색으로 표면을 칠하는 정도였을 뿐이다. 이와 같은 방법은 도형의 생김새와 방향에 대해서 알 수 있게 해주었지만, 실사와 같은 이미지(photorealistic image)와는 거리가 멀었다. Gouraud와 Phong은 보간법을 사용하여 보다 현실적.. 더보기