범프 매핑

범프 매핑(Bump mapping)은 렌더링될 물체의 픽셀마다 표면 법선을 흔들어 높낮이가 있어 보이게 하는 컴퓨터 그래픽 기술 중 하나이다. 그 결과는 실제 물체의 표면과 매우 비슷해 보인다. 범프 매핑으로 주로 쓰이는 기술에는 법선 매핑, 시차 매핑이 있다. 범프 매핑은 1978년 제임스 블린에 의해 도입되었다.

변위 매핑과 범프 매핑의 다른 점은, 변위 매핑은 도형자체를 변화시키는 데 비해, 범프 매핑은 도형 자체는 변화시키지 않고 법선만 변화시킨다. 그 때문에 범프 매핑을 할 경우 물체의 윤곽선은 그대로이다. (예시 그림에서도 구의 윤곽선이 그대로 원형인 것이 보인다.)

법선 매핑은 가장 흔히 사용되는 범프 매핑의 일종이다.

개요 

범프 매핑은 울퉁불퉁한 표면을 텍스처를 통해 좀 더 사실적으로 나타내기 위한 방법이다. 벽돌은 이런 범프 맵 텍스처를 사용하기에 좋은 예시이다. 범프 매핑은 높이맵에 대응하는 표면 픽셀의 밝기를 변화시켜 이러한 울퉁불퉁한 표면을 나타낸다.

3차원 장면을 렌더링할 때 3차원 모델과 조명에 따라 화면상의 픽셀의 밝기와 색이 결정된다. 물체가 보여야할 지 결정하는 기하학적인 계산을 하고, 표면 법선을 계산하기 위해 삼각법을 사용한다.

표면법선과 빛의 방향만을 가지고, 퐁 셰이딩이나 이와 유사한 계산법으로 밝기를 계산한다. 빛이 표면과 평행하게 들어올 때는 표면은 검게 보이고, 수직으로 들어올 때는 가장 밝게 보인다. 그 이후에 물체를 좀 더 사실감있게 표현하기 위해 물체의 표면에 텍스처를 씌운다. 여기까지는 범프 매핑을 하지 않을 때와 차이가 없다. 하지만 범프 매핑에서는 텍스처를 씌운 후에, 각 픽셀마다 다음과 같은 처리를 한다.

 렌더러는 표면의 각 지점에 대응하는 높이맵을 찾는다.
 그리고 삼각법을 통해서 높이맵의 표면법선을 계산한다.
 2단계에서 계산된 범프맵의 법선을 물체 표면 법선에 더한다. (표면법선을 흐트려뜨린다고도 한다.)
 새로운 울퉁불퉁한 표면에 퐁 셰이딩과 같은 방법으로 밝기를 계산한다.

이 결과 굴곡이 있는 것처럼 보이는 표면은 실제 물체와 더욱 비슷하게 보인다. 범프 매핑은 광원을 옮기는 등의 장면변화에 맞추어 표면 모습이 변하는 것을 보장한다. 법선 매핑이 범프 매핑의 가장 흔한 기술이지만, 시차 매핑이라는 기술도 있다.

2차원 범프 매핑(흔히 '가짜' 범프 매핑, 또는 그냥 범프 매핑이라 부른다.)과 변위 매핑('진짜' 범프 매핑이라 부른다.)의 차이점은 '가짜' 범프 매핑은 도형자체가 아닌 법선만을 흐트러뜨린다는 것이다. 이 경우에, 물체의 윤곽선은 그대로 평평한 도형이다. 하지만 '진짜' 범프 매핑은 굴곡은 도형에다가 적용한다. 따라서 이 경우엔 물체의 윤곽선 또한 울퉁불퉁하게 된다. 가짜 범프 매핑은 계산 속도가 빠르고, 실시간 3차원 가속 카드가 수행할 수 있어서 게임 등에 자주 쓰이는 반면, 진짜 범프 매핑은 일반적으로 실시간이 아닌 광선 투사 이미지에 쓰인다.

실시간 범프 매핑 렌더링은 굴곡있는 표면을 평면 도형과 텍스처로 나타낼 수 있기 때문에 물체를 구성하는 데 필요한 삼각형의 숫자를 줄이는 데 쓰인다.

같이 보기 
 텍스처 매핑
 법선 매핑
 시차 매핑
 변위 매핑
 릴리프 텍스처 매핑

각주

외부 링크 

 CG와 C++로 쓰인 범프 매핑 예제
 범프 매핑에 대한 개략적인 설명

가상 현실
텍스처 매핑