톤 매핑과 HDR — 눈이 본 빛을 화면에 담는 법

톤 매핑과 HDR — 눈이 본 빛을 화면에 담는 법
맑은 날, 그늘진 방 안에서 창밖을 본 적 있나요? 우리 눈은 방 안의 어두운 책상도 보고, 창밖의 눈부신 하늘도 동시에 봅니다. 그런데 사진을 찍어 보면 이상한 일이 생깁니다. 하늘을 살리면 방이 새까맣게 나오고, 방을 살리면 하늘이 하얗게 타 버립니다. 왜 그럴까요? 오늘은 이 문제와, 이걸 푸는 마법 같은 기술인 HDR과 톤 매핑을 차근차근 알아봅니다.
1. 눈은 대단하고, 화면은 좁다
세상의 빛은 밝기 차이가 어마어마합니다. 한낮의 태양은 촛불보다 수십만 배나 밝습니다. 우리 눈은 이 엄청난 차이를 꽤 잘 받아들입니다. 하지만 모니터, TV, 종이에 인쇄된 사진은 그렇지 못합니다. 표현할 수 있는 밝기의 폭이 훨씬 좁거든요.
이 "표현할 수 있는 밝기의 폭"을 어려운 말로 다이내믹 레인지(dynamic range)라고 합니다. 우리말로 하면 "밝기의 폭" 정도가 됩니다. 비유하자면 이렇습니다. 세상의 빛은 큰 트럭에 실린 짐이고, 모니터는 작은 배낭입니다. 트럭 짐을 배낭에 다 넣을 수는 없습니다. 그래서 골라 담거나, 잘 접어서 담아야 합니다.
2. HDR — 밝기의 폭이 넓다는 뜻
HDR은 High Dynamic Range의 줄임말입니다. "밝기의 폭이 넓다"는 뜻이지요. HDR 이미지는 아주 어두운 곳부터 아주 밝은 곳까지, 진짜 세상에 가까운 밝기 정보를 통째로 담고 있는 이미지입니다.

위 그랜드 캐니언 사진을 보세요. 햇빛을 쨍하게 받는 절벽과 깊은 그늘이 한 장면에 같이 있습니다. 이런 장면이 바로 밝기 차이가 큰, HDR 기술이 필요한 장면입니다.
3. 어떻게 넓은 빛을 담을까? — 여러 장 찍어 합치기
보통 카메라는 한 번에 좁은 밝기 폭만 담습니다. 그래서 사진가들은 꾀를 냈습니다. 같은 장면을 밝기만 다르게 여러 장 찍는 것입니다.
- 어둡게 찍은 사진 → 창밖 풍경이 잘 보임 (방 안은 깜깜함)
- 밝게 찍은 사진 → 방 안이 잘 보임 (창밖은 하얗게 날아감)
이 사진들을 컴퓨터로 합치면, 어두운 곳의 정보와 밝은 곳의 정보를 모두 가진 HDR 이미지가 만들어집니다.

위 사진이 바로 그 재료들입니다. 어둡게 찍은 사진에서는 창문 밖이 보이고, 밝게 찍은 사진에서는 방 안이 보입니다. 여섯 장이 모여 한 장의 HDR 이미지가 됩니다.
4. 그런데 문제가 하나 남았다
HDR 이미지를 만들었다고 끝이 아닙니다. 아까 말했듯이 모니터는 "작은 배낭"입니다. 트럭에 실린 넓은 밝기 정보를 그대로 보여줄 수가 없습니다. 그냥 보여주면 어딘가는 새까맣게, 어딘가는 새하얗게 뭉개집니다.
여기서 등장하는 주인공이 바로 톤 매핑(tone mapping)입니다.
5. 톤 매핑 — 넓은 빛을 좁은 화면에 예쁘게 접어 넣기
톤 매핑은 넓은 밝기 폭을 좁은 화면에 맞게 솜씨 좋게 눌러 담는 기술입니다. 그냥 마구 누르는 게 아닙니다. 원래 장면의 느낌, 세부 모양, 색깔이 살아 있도록 조심스럽게 옮깁니다.
큰 이불을 작은 서랍에 넣는다고 생각해 보세요. 대충 쑤셔 넣으면 구겨지고 삐져나옵니다. 하지만 잘 개어 넣으면 서랍에 쏙 들어가면서 이불 모양도 살아 있지요. 톤 매핑이 하는 일이 딱 이것입니다.
6. 톤 매핑을 거치면 어떤 사진이 될까?
말보다 사진이 빠릅니다. 아래는 톤 매핑을 거친 HDR 사진입니다.

어두운 교회 안의 나무 기둥도, 눈부시게 빛나는 스테인드글라스 창문도 한 장에 다 보입니다. 보통 사진이었다면 창문이 하얗게 타 버리거나 실내가 까맣게 잠겼을 장면입니다. 이것이 톤 매핑의 힘입니다.
바깥 풍경도 마찬가지입니다. 하늘의 구름 결과 건물의 벽돌 무늬가 동시에 살아 있지요.
7. 언리얼 엔진에서는 어떻게 쓰일까?
여기까지가 사진 이야기였다면, 이제 게임 이야기입니다. 언리얼 엔진 같은 게임 엔진은 화면 속 세상의 빛을 처음부터 HDR로 계산합니다. 태양, 램프, 반사광을 진짜 세상처럼 넓은 밝기 폭으로 다룬다는 뜻입니다.
그리고 그 결과를 여러분의 모니터에 보여주기 직전, 엔진 안의 톤 매퍼가 매 프레임마다 자동으로 톤 매핑을 해 줍니다. 게임 화면이 1초에 수십 번씩 바뀔 때마다, 넓은 빛을 좁은 화면에 접어 넣는 작업이 눈 깜짝할 사이에 반복되고 있는 것입니다. 언리얼 아트를 공부한다면, 여러분이 보는 모든 화면이 이미 톤 매핑을 거친 결과물이라는 사실을 기억해 두세요.
8. 알아 두면 뭐가 좋을까?
알면 좋아지는 점. 라이팅 작업을 하다가 "왜 내가 넣은 색이 화면에서는 다르게 보이지?" 하는 순간이 옵니다. 톤 매핑을 알면 그 이유가 보입니다. 내가 만진 색과 밝기는 화면에 그대로 나오는 게 아니라, 톤 매퍼라는 문을 한 번 통과해서 나온다는 걸 알기 때문입니다. 그래서 밝은 이미시브가 생각보다 하얗게 뜨거나 채도가 빠져 보일 때, 엉뚱한 머티리얼만 붙잡고 헤매는 대신 톤 매핑 단계를 의심할 수 있게 됩니다.
모르면 겪는 문제. 톤 매핑을 모르면, 화면에 보이는 색을 "원래 그런 색"이라고 믿게 됩니다. 그래서 라이트 세기를 올렸는데 색이 이상하게 씻겨 보이면 텍스처를 다시 그리고, 머티리얼을 갈아엎고, 한참을 돌아갑니다. 사실 범인은 밝은 값이 눌리면서 생긴 톤 매핑의 자연스러운 결과였는데 말이지요. 원인을 모르니 같은 벽에 계속 부딪히게 됩니다.
9. 오늘 배운 것 정리
- 세상의 빛은 밝기 차이가 아주 크다. 이 폭을 다이내믹 레인지라고 한다.
- HDR은 그 넓은 밝기 폭을 통째로 담은 이미지다.
- 모니터는 폭이 좁아서 HDR을 그대로 못 보여준다.
- 톤 매핑은 넓은 빛을 좁은 화면에, 세부와 색 느낌을 살리며 접어 넣는 기술이다.
- 언리얼 엔진은 매 프레임 자동으로 톤 매핑을 한다. 우리가 보는 게임 화면은 전부 그 결과물이다.
다음에 게임을 하다가 동굴 속에서 눈부신 출구를 바라보게 되면 떠올려 보세요. 그 장면 뒤에서 톤 매핑이 조용히, 부지런히 이불을 개고 있다는 것을요.
출처
리깅 파이프라인 자동화 도구
반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.
리깅 도구 보기