사실적 렌더링 (Photorealistic Rendering)
Computer_Graphics :
2007. 3. 14. 01:51
반응형
1. | 사실적 렌더링 (Photorealistic Rendering) | ||||||
사실적인 이미지를 만들어내는 기술은 컴퓨터 그래픽스의 주 연구분야였고 지금도 활발하게 연구되어 지고 있는 분야이다. 사실적인 이미지를 만들어 내는 방법은 크게 두 가지로 발전되어 왔다. 빛과 물체의 에너지 교환에 대한 식을 풀어내서 화면을 만들어내는 Radiosity와 빛 이동의 기하학적 특성을 이용해서 문제를 풀어내는 Ray Tracing 방법이 그것이다. 현재는 Ray Tracing을 기반으로 발전된 기술이 주로 이용되고 연구되고 있는 추세에 있다.
| |||||||
2. | 기본 알고리즘 (Basic Algorithm) | ||||||
1980년 Tunner Whitted가 기존 연구들을 바탕으로 Ray Tracing을 이용한 Global Illumination을 처음으로 구현했다. 이 알고리즘을 바탕으로 현재 많은 알고리즘들이 개발되어지고 있다. Ray Tracing의 기본적인 알고리즘은 간단하다. 먼저 바라다 보는 시점, 즉 관찰자의 눈을 시작점으로 해서 화면의 어느 한 픽셀로 향하는 방향의 임의의 광선을 먼저 정의한다. 그 광선의 방향을 따라 추적하는 도중에 임의의 물체와 교차하게 되면 교차점을 다시 시작점으로 해서 그 새롭게 계산된 광선의 방향으로 다시 추적한다. 이때 광선의 새로운 방향은 물체의 특성에 따라서 결정되는데 만약 물체가 투명하다면 광선이 얼마만큼 굴절되어 투과되는지를 물체가 금속성의 특성을 띤다면 반사되어 나가는 지를 이용해서 광선의 방향을 계산하게 된다. 이런 식으로 Recursive하게 광선을 따라가다가 광선이 물체가 없는 배경에 닿거나 빛에 닿으면 수행을 멈춘다. 이렇게 해서 최종적인 픽셀의 값은 그 픽셀을 지난 광선의 끝 지점에서부터 거꾸로 추적하면서 광선이 교차된 위치의 색을 모두 더해가면 얻어진다. 이런 식으로 모든 화면을 구성하는 픽셀들의 색을 계산하면 알고리즘이 끝난다. 광선 추적과 픽셀의 색을 효율적으로 계산하기 위해 Binary Tree를 이용해서 한 픽셀을 지나는 광선의 이동 경로와 교차점의 색을 저장해놓는다.
Binary Tree의 왼쪽 Leaf는 반사광선에 대한 정보를 오른쪽 Leaf는 투과광선에 대한 정보를 저장한다. 앞에 살핀 종료 조건을 만족하면 Tree의 맨 아래 Leaf에서 부터 차례로 각 교차점의 색을 더해 나간다. 최종적으로 더해져서 Root에 저장된 색이 해당 픽셀의 색으로 정해진다. | |||||||
3. | Ray Tracing의 발전 (Improvement of Photorealistic Rendering with Ray-Tracing) | ||||||
1980 "An Improved Illumination model for shaded display" - Tunner Whitted, SIGGRAPH 1984 "Distributed ray tracing" - Robert L. Cook, SIGGRAPH 1991 "A progressive multi-pass method for global illumination" - Shenchang Eric Chen, SIGGRAPH 1996 "Global Illumination using Photon Maps" - Henrik Wann Jensen, EGWR 1998 "Efficient Simulation of Light Transport in Scenes with Participating Media Using Photon Maps" - Henrik Wann Jensen, SIGGRAPH 2001 "A Practical Model for Subsurface Light Transport" - Henrik Wann Jensen, SIGGRAPH |
반응형
'Computer_Graphics' 카테고리의 다른 글
OpenGL로 그림을 그려보자. (0) | 2007.03.14 |
---|---|
*.tga 확장자? (0) | 2007.03.14 |
3D 책 (0) | 2007.03.14 |