반사 매핑

컴퓨터 그래픽스에서 반사 매핑(reflection mapping) 또는 환경 매핑(environment mapping)은 미리 계산된 텍스처 매핑을 이용하여 정반사 표면의 외관을 근사화하는 효율적인 이미지 기반 조명 기법이다. 이 텍스처는 렌더링되는 개체를 둘러싼 먼 환경의 디지털 이미지를 저장하는 데 사용된다.

주변 환경을 저장하는 여러 가지 방법이 사용되어 왔다. 첫 번째 기법은 구형 거울에 반사된 주변 환경의 이미지를 단일 텍스처에 포함하는 구형 매핑이었다. 이는 환경이 정육면체의 여섯 면에 투영되어 여섯 개의 정사각형 텍스처로 저장되거나 단일 텍스처의 여섯 개의 정사각형 영역으로 전개되는 큐브 매핑에 의해 거의 완전히 대체되었다. 우수한 수학적 또는 계산적 속성을 가진 다른 투영법으로는 포물면 매핑, 각뿔 매핑, 팔면체 매핑, 그리고 HEALPix 매핑이 있다.

반사 매핑은 반사 렌더링을 위한 여러 접근 방식 중 하나로, 예를 들어 스크린 공간 반사 또는 빛의 광선을 추적하여 정확한 반사를 계산하고 그 광경로를 따르는 기법과 함께 사용된다. 화소의 셰이딩 계산에 사용되는 반사 색상은 개체의 지점에서 반사 벡터를 계산하고 이를 환경 맵의 텍셀에 매핑하여 결정된다. 이 기법은 종종 광선 추적에 의해 생성된 것과 표면적으로 유사한 결과를 생성하지만, GPU 워크로드를 단순화하여 장면 지오메트리에 대한 광선을 추적하고 광선의 복사량을 계산하는 대신 입사각과 반사 각도를 계산한 다음 텍스처 조회를 통해 반사의 복사량 값을 얻으므로 계산 비용이 적다.

그러나 대부분의 경우 매핑된 반사는 실제 반사의 근사치에 불과하다. 환경 매핑은 거의 만족되지 않는 두 가지 가정에 의존한다.
 셰이딩되는 개체에 입사하는 모든 복사량은 무한한 거리에서 온다. 이 경우 근처 지오메트리의 반사가 반사된 개체에 잘못된 위치에 나타난다. 이 경우 반사에서 시차가 보이지 않는다.
 셰이딩되는 개체는 자체 상호 반사가 포함되지 않는 볼록이다. 이 경우 개체는 반사에 나타나지 않고 환경만 나타난다.

환경 매핑은 일반적으로 반사 표면을 렌더링하는 가장 빠른 방법이다. 렌더링 속도를 더욱 높이기 위해 렌더러는 각 정점에서 반사된 광선의 위치를 계산할 수 있다. 그런 다음 해당 위치는 정점이 연결된 다각형을 가로질러 보간된다. 이렇게 하면 모든 픽셀의 반사 방향을 다시 계산할 필요가 없다.

법선 매핑이 사용되는 경우, 각 다각형은 여러 면 법선(다각형의 특정 지점이 향하는 방향)을 가지며, 이를 환경 맵과 함께 사용하여 보다 사실적인 반사를 생성할 수 있다. 이 경우 다각형의 특정 지점에서 반사 각도는 법선 맵을 고려한다. 이 기법은 원래 평평한 표면을 질감이 있는 것처럼 보이게 하는 데 사용되며, 예를 들어 골판금 또는 브러시드 알루미늄이 있다.

 유형 

구형 매핑
구형 매핑은 입사 조명의 구를 정사영 카메라를 통해 반사되는 구형 거울에서 보는 것처럼 나타낸다. 텍스처 이미지는 이 이상적인 설정을 근사화하거나, 어안 렌즈를 사용하거나, 구형 매핑으로 장면을 사전 렌더링하여 생성할 수 있다.

구형 매핑은 결과 렌더링의 사실감을 떨어뜨리는 한계점을 가지고 있다. 구형 맵은 나타내는 환경의 방위각 투영으로 저장되기 때문에, 맵의 가장자리 또는 그 근처에 있는 텍셀 색상이 점을 정확하게 나타내기에 해상도가 불충분하여 왜곡되는 급격한 특이점("블랙홀" 효과)이 개체의 반사에서 보인다. 구형 매핑은 또한 정사각형에 있지만 구에는 없는 화소들을 낭비한다.

구형 매핑의 인공물은 너무 심각하여 가상 정사영 카메라의 시점 근처에서만 효과적이다.

큐브 매핑
섬네일|큐브 매핑 반사에 의해 제공되는 외견상 반사를 묘사한 다이어그램. 맵은 실제로 관찰자의 시점에서 표면에 투영된다. 광선 추적에서 광선을 추적하고 법선과 이루는 각도를 결정하여 제공될 하이라이트는 텍스처 필드에 수동으로 칠해져 있거나(텍스처 맵을 얻는 방법에 따라 이미 나타나 있는 경우) 나머지 텍스처 세부 사항과 함께 매핑된 개체에 투영될 수 있다.
섬네일|큐브 매핑 반사를 사용하는 3차원 모델의 예

큐브 매핑 및 기타 다면체 매핑은 구형 맵의 심각한 왜곡을 해결한다. 큐브 맵이 올바르게 만들어지고 필터링되면 눈에 띄는 이음새가 없으며 맵을 얻는 가상 카메라의 시점과 독립적으로 사용될 수 있다. 큐브 및 기타 다면체 맵은 그 이후로 대부분의 컴퓨터 그래픽스 응용 프로그램에서 구형 맵을 대체했지만, 이미지 기반 조명을 얻는 경우는 예외이다. 이미지 기반 조명은 시차 보정 큐브 맵으로 수행할 수 있다.

일반적으로 큐브 매핑은 실외 렌더링에 사용되는 동일한 스카이박스를 사용한다. 큐브 매핑 반사는 개체가 보여지는 벡터를 결정함으로써 이루어진다. 이 카메라 광선은 카메라 벡터가 개체와 교차하는 지점의 표면 법선에 대해 반사된다. 이로 인해 반사된 광선이 큐브 맵으로 전달되어 조명 계산에 사용되는 복사량 값을 제공하는 텍셀을 얻는다. 이는 개체가 반사되는 효과를 생성한다.

HEALPix 매핑
HEALPix 환경 매핑은 다른 다면체 매핑과 유사하지만, 계층적일 수 있어 구를 더 잘 근사하는 다면체를 생성하기 위한 통일된 프레임워크를 제공한다. 이는 계산량 증가를 대가로 낮은 왜곡을 허용한다.Tien-Tsin Wong, Liang Wan, Chi-Sing Leung, and Ping-Man Lam.  Real-time Environment Mapping with Equal Solid-Angle Spherical Quad-Map , Shader X4: Lighting & Rendering, Charles River Media, 2006.

 역사 
1974년, 에드윈 캐트멀은 "이변량 표면 패치의 이미지 렌더링"을 위한 알고리즘을 만들었으며Catmull, E.A. Computer display of curved surfaces. Proc. Conf. on Comptr. Graphics, Pattern Recognition, and Data Structure, May 1975, pp. 11-17 (IEEE Cat. No. 75CH0981-1C). 이는 그들의 수학적 정의와 직접적으로 연동되었다. 추가적인 개선은 1975년 부이뚜옹 퐁에 의해 연구 및 문서화되었고, 이후 제임스 블린과 마틴 뉴웰이 1976년에 환경 매핑을 개발했다. 캐트멀의 원래 알고리즘을 개선한 이러한 개발은 "이러한 일반화가 패턴과 텍스처 생성을 위한 개선된 기술로 이어진다"는 결론을 내렸다.

진 밀러는 1982년 MAGI에서 구형 환경 매핑을 실험했다.

볼프강 하이드리히는 1998년에 포물면 매핑을 도입했다.Heidrich, W., and H.-P. Seidel. "View-Independent Environment Maps". Eurographics Workshop on Graphics Hardware 1998, pp. 39–45.

에밀 프라운은 2003년에 팔면체 매핑을 도입했다.Emil Praun and Hugues Hoppe. "Spherical parametrization and remeshing". ACM Transactions on Graphics, 22(3):340–349, 2003.

마우로 스타이글레더는 2005년에 각뿔 매핑을 도입했다.Mauro Steigleder. "Pencil Light Transport". A thesis presented to the University of Waterloo, 2005.

웡 톈신 외 연구진은 2006년에 렌더링을 위해 기존의 HEALPix 매핑을 도입했다.

 같이 보기 
 스카이박스 (비디오 게임)

 각주 

 외부 링크 
 폴 드베벡의 반사 매핑 이야기
 NVIDIA 문서 큐브 환경 매핑


분류:3차원 렌더링