하이 다이내믹 레인지 렌더링

하이 다이내믹 레인지 렌더링(영어: High Dynamic Range Rendering, HDRR)은 3차원 컴퓨터 그래픽스 분야에서 사용되는 기술의 명칭으로 더 폭넓은 다이내믹 레인지를 활용한 렌더링을 말한다. 이를 사용함으로써 비디오 게임이나 컴퓨터 애니메이션, 디지털 특수효과 분야 등에서 그동안 사용했던 조명 모델에 비해 훨씬 사실적인 표현이 가능해진다. 종래의 조명 모델을 이용한 렌더링은 HDRR과 구분하여 SDRR(Standard Dynamic Range Rendering)이라고 부른다.

개요

기존의 조명모델은 디스플레이 장치에서 표현할 수 있는 최소 밝기가 0.0, 최대 밝기가 1.0이라 할 때, 각 채널의 명암 레벨 표현에 0.0~1.0 사이의 8비트 고정 소수점 값을 사용했다. 하이 다이내믹 레인지 렌더링은 명암 레벨을 표현하는 데 있어, 내부적으로 16비트나 32비트, 64비트의 더 많은 단계를 갖는 부동 소수점 데이터를 사용하여 디스플레이 장치가 표현할 수 있는 것보다 더 크거나 작은 밝기 값을 세밀하게 표현할 수 있도록 하였다.

다른 이름

하이 다이내믹 레인지 렌더링은 다른 말로, HDRR, HDR 렌더링, 하이 다이내믹 레인지 라이팅이라고 한다. 혹은 간단히 HDR이라고 말한다. 반면, 종래의 조명 모델을 이용한 렌더링은 HDRR과 구분하여 LDRR(Low Dynamic Range Rendering) 혹은 표준 라이팅(standard lighting)이라고 부른다.

역사

사진 촬영 분야에서 사용되는 기술인 하이 다이내믹 레인지 이미징 (HDRI)는 1985년 그렉 워드가 라디언스라는 이름의 렌더링 및 “라이팅 시뮬레이션” 소프트웨어에서 처음으로 도입하였다. 이 소프트웨어는 높은 다이내믹 레인지를 유지할 수 있는 파일 포맷을 처음으로 선보였다. 당시, 한 픽셀을 RGB 24비트와 지수(Exponent) 8비트를 붙여 픽셀 당 32비트 RGBE 포맷으로 표현하였다.
HDRI는 10여 년 전에 나온 용어였지만, 당시 컴퓨터의 계산 능력, 기록 장치, 이미지 캡처 방법 등의 한계 및 미비로 인해, 각광을 받지 못하였다. HDRI의 실제 적용이 이루어진 것은 최근의 일이다.
1997년에 이르러서, 그래픽스 엔지니어 폴 데베벡 (Paul Debevec) 이 SIGGRAPH에 여러 장의 사진으로부터 하이 다이내믹 레인지 맵을 복원하는 방법에 대한 논문(Recovering high dynamic range radiance maps from photographs)을 발표하였다.
다음 해에는 합성된 오브젝트를 실제 씬에 넣는 방법에 관한 논문(Rendering synthetic objects into real scenes)을 발표하였다. 이 두 논문이 HDR “라이트 프로브”(light probe)를 생성하고 이 프로브를 렌더링된 씬에 적용하는 방법에 대한 기반이 되었다.
그 이후, HDRI 와 HDRL (High Dynamic range image-based lighting)은, 3차원 사물을 실제 주변 환경에 조화롭게 집어 넣어 3차원 씬을 만들어야 할 상황 하에서 널리 사용되고 있다. 이 때, 사실적인 라이팅을 표현하기 위해 “라이트 프로브” 데이터를 사용한다.
게임 응용쪽에서는 2003년 E3 직후, 밸브 소프트웨어 사에서 소스 엔진이라는 이름의 렌더링 기법을 가지고, 도시 풍경을 하이 다이내믹 레인지 하에 렌더링하는 데모 동영상을 공개한 바 있다. 2004년 E3가 다시 개최되어 에픽 메가게임스의 언리얼 엔진 3 및 2005년에 하프라이프 2: 로스트 코스트를 선보이자, HDR 렌더링이 비로소 많은 주목을 받기 시작했다.

광량의 정확한 보존

HDRR없이는, 태양광 및 대부분의 빛이 휘도 값이 짤려 – 클리핑되어 - 100% 값을 가진다. (프레임버퍼에서 1.0 값을 가진다.) 만약 이 빛이 반사된다면 1이나 1이하의 값을 가져야 한다. 반사된 값은 0에서 1사이 값을 갖는데, 이것은 반사된 값이 0에서 1사이 값을 가지는 반사도(reflectness)와 곱해지기 때문이다. 이러한 계산은 씬을 무디고 밋밋하게 보이게 한다.
HDRR을 이용하면, 태양광 및 기타 빛들이 프레임버퍼에서 1.0값을 넘는 적절한 값으로 표현된다. 태양광에는 보통 60000이라는 값을 준다. 이 빛이 반사되더라도(매우 반사도가 낮은 물체에 대해서라도) 매우 높은 값을 유지하게 된다. 렌더링될 때, 이 값은 백색으로 클리핑되거나 적절히 톤 매핑된다.
같은 식으로, 빛이 투명한 물체를 투과할 때에는, 투과하는 빛은, 들어가기 전에 비해 낮은 밝기 값을 갖는다. (영문판 위키백과의 예제 그림을 참고하라.) 로 다이내믹 레인지 렌더링 하에서는, 비교적 적은 빛이 스테인드 글라스를 통과해 전체적으로 씬이 어둡게 보인다. 그 까닭은 빛이 투명한 물체를 투과할 때에는, 투명한 물체가 광원(light source)으로 간주되기 때문이다. 예를 들어 스테인드 글라스가 40%의 빛을 막는다고 가정하자. 로 다이내믹 레인지 렌더링 하에서는, 빛의 밝기값이 최대 1.0이기 때문에, 스테인드 글라스 건너쪽에서 0.6의 밝기를 갖는 광원이 비추고 있는 것을 의미한다. 하이 다이내믹 레인지 렌더링 하에서는 빛의 밝기값이 100이고, 스테인드 글라스 건너쪽에서 60의 밝기를 갖는 광원이 비추고 있는 것을 의미한다.
예제 그림은 HDRR#Accurate_preservation_of_light (영어 위키백과)를 참고하라.

한계

인간의 눈은, 약 1,000,000:1이라는, 매우 폭넓은 다이내믹 레인지를 인지한다. 이것은 홍채의 조절과 약간 시간이 걸리는(밝음에서 어둠으로 변화를 할 때 볼 수 있고 없음에 대한 지연) 느린 속도의 화학적 변화에 의해 힘입은 바 크다. 보통때는, 인간의 눈이 인지하는 다이내믹 레인지는 약 10,000:1 정도이다. 하지만 이 정도도 현재 디스플레이 기술로서 도달할 수 있는 값보다는 훨씬 큰 다이내믹 레인지이다.
(음화) 흑백 필름의 다이내믹 레인지는 약 4096:1(12스톱)이다. 컬러 슬라이드 필름은 대개 64:1(6스톱)이다. 컬러 인쇄도 약 64:1이다.
평균적으로 대부분은 컴퓨터 모니터는 약 500:1 내지 1,000:1의 명암비를 갖는다. PDP는 약 10,000:1 명암비를 갖는다. 하지만, 이러한 상업용 디스플레이들의 명암비들은 암실에서 흰색만 표시한 화면과 검은색만 표시한 화면을 비교해 측정한 것일 뿐이다. 보통의 환경에서의 동시(simultaneous) 명암비는 이보다 훨씬 낮다.
HDR을 표현해주는 모니터가 몇몇 있는데, 브라이트 테크놀로지 사의 HDR 모니터가 한 예이다. 밝기 3000 cd/m²일 때, 체스판 무니를 두고 측정한 결과, 동시(simultaneous) 명암비는 약 200,000:1이다.  이 값은 ANSI9 명암비 60,000:1에 해당하는 것이다. TFT LCD 화면(보통 1000:1)의 약 60배에 이르는 것이며,  밝기는 보통의 CRT나 TFT에 비해 10배나 밝은 것이다.
이 사실은, HDR 시스템이, 풀 다이내믹 레인지를, 렌더링 후에 화면에 보여지는 다이내믹 레인지로 매핑할 필요가 있다는 것을 의미한다.
이런한 제약을 극복하기 위하여 현재는 톤 매핑과 블룸 (셰이더 효과)이라는 기법을 사용한다. 종종 두 가지 기법을 같이 쓰기도 한다.

톤 매핑

컴퓨터 그래픽스 렌더링 분야에서 말하는 톤 매핑이란, 하이 다이내믹 레인지의 컬러 값들을 컴퓨터 디스플레이 장치에 표현 가능한 로 다이내믹 레인지로 매핑하는 기법을 말한다. (단, 라이팅 계산은 하이 다이내믹 레인지에서 일어난다.) 일반적으로, 톤 매핑은 비선형적이다. 다시 말해, 흑색 영역에서는 충분한 레인지를 보존하고, 백색으로 갈수록 다이내믹 레인지를 제한한다. 이 기법은 사람이 봐서 전체적으로 디테일 및 대비가 좋은 이미지를 만들어 낸다. 여러 가지 톤 매핑 기법이 존재한다. 컴퓨터 게임 등에 응용되는 간단한 실시간 기법도 있으며, 인간의 시각 인지 체계를 모방한 복잡한 기법도 있다.
톤 매핑은 종종 풀 스크린 효과와 결합된다. 예를 들어, 공중에 떠다니는 먼지나 동굴에 들어온 햇빛 등을 나타내주는 효과 같은 것들이다.
톤 매핑 예제는 영문판 위키백과를 참고하라.

라이트 블룸

라이트 블룸 기법은 씬에서의 밝은 스팟 부분을 과장하는 기법이다. 예를 들어 배경의 밝은 광선이 빼꼼히 사이사이로 삐져 나오게 하는 것이다. 이것은 실제 보다 밝은 스팟 부분을 더 밝게 보이게 하는 착각을 불러 일으킨다.