Skip to content

HDR 렌더링(11)~톤 매핑

[칼럼 핵심 요약]
톤 매핑은 평균 휘도를 어떻게 구하는지, 어떤 방법으로 휘도 변환을 수행하는지가 포인트가 된다. 전회까지 해설한 바와 같이, HDR 렌더링해 완성된 영상 프레임은 그대로는 표시할 수 없다.

🌐 원문 링크: HDRレンダリング(11)~トーンマッピング (Mynavi News)
📅 원문 발행일: 2009-02-20 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)

NOTE

💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)

  • HDR 디스플레이 하드웨어 보급: 본문 연재 당시(2008~2009년)에는 SDR 모니터 출력을 위해 FP16 버퍼를 톤 매핑하는 것이 목적이었으나, 현재는 1000nit 이상의 OLED/Mini-LED HDR 디스플레이가 대중화되어 ACES(Academy Color Encoding System) 기반의 광색역 HDR10 출력이 표준화되었습니다.
  • 노출 적응 및 물리 기반 카메라: 현대 게임 엔진은 실제 카메라의 셔터 스피드, 조리개(f-stop), ISO 감도를 그대로 모사하는 물리 기반 노출(Physical Camera Exposure) 모델을 사용합니다.

📖 본문 해설

[원문 리드문] > 톤 매핑은 평균 휘도를 어떻게 구하는지, 어떤 방법으로 휘도 변환을 하는지가 포인트가 된다. 전회까지 해설한 바와 같이, HDR 렌더링해 완성된 영상 프레임은 그대로는 표시할 수 없다.

평균 휘도를 구하는 방법과 휘도 변환을 수행하는 방법

톤 매핑은 평균 휘도를 어떻게 구하는지, 어떤 방법으로 휘도 변환을 수행하는지가 포인트가 된다.

전회까지 해설한 바와 같이, HDR 렌더링해 완성된 영상 프레임은 그대로는 표시할 수 없다(혹은 표시해도 의도한 표시가 되지 않는다).

거기서 필요한 것이 표시에 적합한 휘도 레인지로 변환해 주는 처리, 즉 「톤 맵핑」(Tone Mapping)의 처리이다.

카메라나 인간의 시각이 그렇듯이, 올바르게 영상과 지각할 수 있는 것은, 어느 일정한 휘도 범위에 한정되므로, 그 HDR 프레임의 평균 휘도를 구해, 거기를 중심으로 일정한 휘도 범위로 변환해, 표시 가능한 영상을 생성한다.

톤 매핑의 이미지. 카메라에서 말하는 히스토그램을 산출하여 이것을 바탕으로 노광 조정을 실시하는 이미지 (※톤 매핑의 이미지. 카메라에서 말하는 히스토그램을 산출하여 이것을 바탕으로 노광 조정을 실시하는 이미지 (※

그림그림

이들 3개는 동일 씬의 영상이지만, 어느 휘도를 기준으로 영상을 조정하는 것으로, 씬의 보이는 방법을 바꿀 수 있다. 이것이 「톤 매핑」의 기본적인 개념(※Recovering High Dynamic Range Radiance Maps from Photographs/Paul Debevec에서)이들 3개는 동일 씬의 영상이지만, 어느 휘도를 기준으로 영상을 조정하는 것으로, 씬의 보이는 방법을 바꿀 수 있다. 이것이 「톤 매핑」의 기본적인 개념(※Recovering High Dynamic Range Radiance Maps from Photographs/Paul Debevec에서)

이들 3개는 동일 씬의 영상이지만, 어느 휘도를 기준으로 영상을 조정하는 것으로, 씬의 보이는 방법을 바꿀 수 있다. 이것이 「톤 매핑」의 기본적인 개념(※Recovering High Dynamic Range Radiance Maps from Photographs/Paul Debevec에서)이들 3개는 동일 씬의 영상이지만, 어느 휘도를 기준으로 영상을 조정하는 것으로, 씬의 보이는 방법을 바꿀 수 있다. 이것이 「톤 매핑」의 기본적인 개념(※Recovering High Dynamic Range Radiance Maps from Photographs/Paul Debevec에서)

구한 평균 휘도가 어두우면 HDR 프레임 중의 어두운 색이라도 나름대로 밝게 들어올려지고, 표시 범위를 크게 넘은 휘도의 픽셀은 모두 흰색으로 포화되어 버린다.

구한 기준이 되는 평균 휘도값을 키로 하고, HDR 프레임 내의 픽셀 칼라를 표시 가능한 1677만색에 가중치를 붙여 둥글게 하는 처리가 「톤 맵핑」의 처리인 것이다.

가장 단순한 것은, 평균 휘도를 중심으로 선형으로 변환해 버리는 처리이지만, 일반적으로, 이 톤 매핑에 이용하는 변환 함수의 커브는, 비선형인 것이 현실적인 시각에 가까워져 리얼이 되는 것을 알고 있다.

구체적으로는 휘도가 낮은 곳은 약간 들어 올려 기미로 해, 밝은 곳은 그다지 아닌……라고 하는 변환 곡선이 좋다고 한다. 비선형 구현이 어렵다면, 서로 다른 여러 기울기의 선형 변환을 결합한 멀티 밴드 표현이 구현 될 수 있습니다.

가장 간단한 선형 변환가장 간단한 선형 변환

이러한 비선형 곡선이 자연스럽게 보인다.이러한 비선형 곡선이 자연스럽게 보인다.

여러 선형 함수를 조합하여 비선형 커브를 근사하는 대안으로도 나름대로의 모습을 얻을 수 있다여러 선형 함수를 조합하여 비선형 커브를 근사하는 대안으로도 나름대로의 모습을 얻을 수 있다

"발키리 프로필 2"(트라이 에이스, 2006)에서. 선형 변환의 톤 매핑에 의한 영상"발키리 프로필 2"(트라이 에이스, 2006)에서. 선형 변환의 톤 매핑에 의한 영상

키포인트가 되는 평균 휘도의 취득 기법은 몇개의 수법이 고안되고 있다.

「Half-Life 2:EPISODE ONE」에서는, 연속하는 프레임에 대해, 각 밴드의 히스토그램을 측정하는 방법으로 평균 휘도를 구하고 있다. 예를 들어 8밴드(8단계)의 히스토그램을 구할 때에는, 처음에는 새까맣에서 1/8의 계조까지의 휘도의 픽셀를 세고, 계속되는 프레임에서는 다음의 1/8계조의 휘도의 픽셀를 세는다. 즉, 8프레임 걸려 모든 밴드의 히스토그램을 얻는 것이다. 물론 리얼타임 3D 그래픽스인 이상, 1프레임 단위로 다른 영상이 되기 때문에, 올바른 히스토그램은 아닐 것인데, 연속적인 프레임간은 닮아 있기 때문에 큰 문제는 되지 않는다고 하고 있다.

구체적으로 세는 결과를 어떻게 반영시킬 것인가인데, 그 세는 방법은 의외로 단순하다. 렌더링시, 픽셀 쉐이더로 조사하고 싶은 휘도 레인지의 픽셀이 있으면 MRT를 사용해 대응하는 비표시의 스텐실 버퍼에 마크한다. 이 스텐실 버퍼에 비동기 occlusion query를 실행하여 마크 된 픽셀 수를 얻는 것이다.

프레임 단위로 계측하는 대상 휘도를 전환하고, 복수 프레임에 걸쳐 계측함으로써 히스토그램을 구하고 있는 「Half-Life 2:EPISODE ONE」(VALVE, 2006). 또한, 측정 대상은 화면의 중앙에 한정한다는 가중치도 하고 있다프레임 단위로 계측하는 대상 휘도를 전환하고, 복수 프레임에 걸쳐 계측함으로써 히스토그램을 구하고 있는 「Half-Life 2:EPISODE ONE」(VALVE, 2006). 또한, 측정 대상은 화면의 중앙에 한정한다는 가중치도 하고 있다

프레임 단위로 계측하는 대상 휘도를 전환하고, 복수 프레임에 걸쳐 계측함으로써 히스토그램을 구하고 있는 「Half-Life 2:EPISODE ONE」(VALVE, 2006). 또한, 측정 대상은 화면의 중앙에 한정한다는 가중치도 하고 있다프레임 단위로 계측하는 대상 휘도를 전환하고, 복수 프레임에 걸쳐 계측함으로써 히스토그램을 구하고 있는 「Half-Life 2:EPISODE ONE」(VALVE, 2006). 또한, 측정 대상은 화면의 중앙에 한정한다는 가중치도 하고 있다

그림그림

그림그림

Half-Life 2 : EPISODE ONE (VALVE, 2006)에 의한 톤 매핑Half-Life 2 : EPISODE ONE (VALVE, 2006)에 의한 톤 매핑

평균 휘도의 측정 방법에는 다른 간단한 방법도 있다. 그것은 HDR 프레임을 다운샘플하고 1×1 텍셀까지 축소해 구한다는 수법이다. 이 경우에도, 이것에 의해 구한 평균 휘도 정보는 다음 프레임의 톤 맵핑에 활용하는 방침으로 문제 없다.

톤 매핑은 실시간으로 실시하는 것보다 약간의 지연을 수반하여 실시하는 편이, 인간이나 카메라의 밝기에의 적응에 약간 시간이 걸리는 모습을 재현할 수 있어 리얼하게 된다고 된다. 또한, 복수 프레임에 걸쳐 행함으로써 필 레이트의 절약이 된다는 부차적인 혜택도 얻을 수 있다.

축소 버퍼를 이용한 평균 휘도 측정축소 버퍼를 이용한 평균 휘도 측정

(트라이Z 니시카와 젠지)


🔗 연관 지식 베이스 (Wiki)

Based on Zenji Nishikawa's 3D Graphics Maniax series. Translated & Knowledge-Based for Korean Game Developers.