Appearance
HDR 렌더링 (2) ~ HDR 렌더링의 첫 번째 효능
[칼럼 핵심 요약]
DirectX 9세대 SM2.0 대응 GPU의 시대에 HDR 렌더링을 실현하는데 필요한 120dB 정도의 수치 표현 능력을 가진 프레임 버퍼 포맷으로 제공된 것이 각 RGB가 16비트 부동소수점(Floating-Point)(FP16)으로 표현되는 포맷이다.🌐 원문 링크: HDRレンダリング(2)~HDRレンダリングの第一の効能 (Mynavi News)
📅 원문 발행일: 2008-12-13 | ✍️ 저자: 西川善司 (니시카와 젠지 / 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) 모델을 사용합니다.
📖 본문 해설
[원문 리드문] > DirectX 9세대 SM2.0 대응 GPU의 시대에 HDR 렌더링을 실현하는데 필요한 120dB 정도의 수치 표현 능력을 가진 프레임 버퍼 포맷으로 제공된 것이 각 RGB가 16비트 부동소수점(Floating-Point)(FP16)으로 표현되는 포맷이다.
현실 세계를 기록하는 데 필요한 동적 범위란?
그래서 DirectX 9세대 SM2.0 대응 GPU의 시대에 HDR 렌더링을 실현하는데 필요한 120dB 정도의 수치 표현 능력을 가진 프레임 버퍼 포맷으로 제공된 것이 각 RGB가 16비트 부동소수점(Floating-Point)(FP16)으로 표현되는 포맷이다.
FP16은 부호 1비트, 가수 10비트, 지수 5비트로 이루어진 부동소수점(Floating-Point) 포맷이다. 표현 범위는 (2의 10승)×(2의 32승)≒4.4×10^12, 즉 다이나믹 레인지 120dB가 되어(지수 5비트=2^5, 즉 32), FP16은 다이나믹 레인지로서는 현실 세계의 상당한 비율의 휘도 레인지를 기록할 수 있는 포텐셜이 있는 것을 알 수 있다.
컴퓨팅의 세계에서 부동소수점(Floating-Point) 표현이라고 하면, 「단정밀도」라고 불리는 32비트 부동소수점(Floating-Point)(FP32)과, 「배정밀도」라고 불리는 64비트 부동소수점(Floating-Point)(FP64)이 일반적이지만, 이 FP16은 주로 그래픽용으로서 제창된 것이다. 덧붙여서, 이 제창자는 SF영화 '스타워즈'의 특수 효과로 친숙한 ILM(Industrial Light & Magic)의 CG 부문으로, FP16은 이 ILM이 제창하는 HDR 영상의 오픈 소스 규격 'OpenEXR' 안에 정의되어 있다.
단정밀도의 FP32는 부호부 1비트, 지수부 8비트, 가수부 23비트로 이루어지는 부동소수점(Floating-Point) 포맷이므로, 표현 범위는 (2의 23승)×(2의 256승)=9.7×10^83이며, 다이나믹 레인지는 830dB로, 이쪽은 반대로 오버스펙 너무 많다.
이러한 경위가 있어, 최신 세대의 GPU에서는, αRGB가 각 FP16로 표현되는 64비트 버퍼(16비트×4, 이하 FP16-64비트 버퍼)가, 실시간 3D 그래픽스용, 3D게임용의 표준적인 HDR렌더링용의 버퍼의 포맷이 되고 있다.
다만, 종래의 αRGB가 각 정수 8비트로 표현되는 32비트 버퍼(이하, int8-32비트 버퍼)와 비교하면 배의 비디오 메모리를 소비해, 32비트 버퍼와 동등 퍼포먼스를 실현하려면 단위 시간당에 요구되는 대역이나 버스 성능은 2배가 된다.
이것은 DirectX 9세대/SM2.0대응 GPU의 때는, 부하적으로 상당히 엄격한 것이었지만, 최신세대의 DirectX 10세대/SM4.0대응 GPU에 있어서는, 현실적으로 문제 없게 활용할 수 있는 솔루션이 되고 있다.
HDR 렌더링의 이점은 무엇입니까?
HDR 렌더링은, 현실 세계에 가까운 다이나믹 레인지의 정보를 거의 그대로 기록해 가는 것 같은 렌더링 기법이라는 것은 이미지 할 수 있었다고 생각한다.
그렇다고는 해도 「그것이 도대체 어땠어?」라는 의문도 부상할지도 모른다. 하이 다이내믹 레인지로 렌더링했다고는 해도, 표시하는 디스플레이 장치는 종래의 1677만색의 디스플레이이기 때문에, 그대로는 표시할 수 없다.
FP16-64비트의 HDR 버퍼에 HDR 렌더링한 곳에서 결국 표시시키는 단계에서 int8-32비트 상당의 LDR 버퍼에 반올림하여 감색 처리해야 하는 것이다.
그렇다면 HDR 렌더링의 이점은 어디에 있습니까?
그것은 주로 여기에서 소개하는 세 가지 요소에 있다고 여겨진다.
(1) 음영이 보다 리얼하게 된다 (2) 노출의 시뮬레이션을 할 수 있다 (3) 눈부심의 표현이 가능하게 된다
HDR 렌더링 제일의 효능~음영이 보다 리얼하게 된다
HDR 렌더링 첫 번째 효능은 음영이 더 리얼하게 된다는 것이다.
예를 들어, 빛을 많이 반사하지 않는 재질로서 도로의 노면의 아스팔트를 예로 들어 보겠습니다.
도로의 재질로 알려진 아스팔트의 빛 반사율은 불과 7% 정도라고 한다. 이는 "거의 반사하지 않지만 전혀 반사하지 않는 것은 아니다"는 반사율이다.
예를 들어, 일반적으로 유통되는 αRGB 각 정수 8비트의 1677만색 모드에서, 8비트 정수 표현에서 가장 밝은 255의 7%는 약 18이 된다. 즉 RGB의 모든 것이 255의 백색광으로 라이팅해도, 그 셰이딩(Shading)의 결과는 RGB의 모두가 18이라고 하는 꽤 어두운 색, 계조가 되어 버린다는 것이다.
8 비트, 256 계조의 18은 이렇게 어둡다 (이미지)
그러나 현실 세계에서는 고휘도의 태양광을 받은 노면은 둔하게 빛나 보인다.
이는 3D 그래픽으로 바꾸면 광원의 태양이 디스플레이로 표현되는 최고 휘도의 RGB=255는 아니지만 엄청나게 높은 휘도 값을 가지고 있기 때문이다.
HDR 렌더링은 이런 'RGB의 모든 것이 255로 두드려'라는 제약을 제거하는 것이므로 기존의 렌더링 기법에서는 아무래도 묻혀 버린 음영을 띄우는 효과를 기대할 수 있다는 것이다. (계속)
"HalfLife2:Lost Coast"(VALVE,2005)에서. LDR 렌더링에서는 이렇게 전체가 어둡다.
HDR 광원을 이용한 HDR 렌더링에서는 이와 같이 묻힌 음영이 보이게 된다. 그림으로서는 전체가 밝아진 것 같은 느낌이 된다. "HalfLife2 : Lost Coast"에서는 렌더링에 FP16-64 비트 버퍼의 렌더 타겟을 채용하고있다
(트라이Z 니시카와 젠지)