Appearance
HDR 렌더링(8)~HDR 렌더링 타겟
[칼럼 핵심 요약]
DirectX 10세대/SM4.0 대응 GPU에서는, FP16-64비트의 렌더 타겟을 단지 이용하면 된다. 폭넓은 다이나믹 레인지를, FP16-64비트라면 특별한 소세공 없이 절대치로 렌더링을 실시할 수 있다.🌐 원문 링크: HDRレンダリング(8)~HDRレンダーターゲット (Mynavi News)
📅 원문 발행일: 2009-02-04 | ✍️ 저자: 西川善司 (니시카와 젠지 / 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 10세대/SM4.0 대응 GPU에서는, FP16-64비트의 렌더 타겟을 단지 이용하면 된다. 폭넓은 다이나믹 레인지를, FP16-64비트라면 특별한 소세공 없이 절대치로 렌더링을 실시할 수 있다.
호환성과 성능에 중점을두면 의사 HDR 렌더링?
DirectX 10세대/SM4.0 대응 GPU에서는, FP16-64비트의 렌더 타겟을 단지 이용하면 된다. 폭넓은 다이나믹 레인지를, FP16-64비트라면 특별한 소세공 없이 절대치로 렌더링을 실시할 수 있다.
그 이전의 DirectX 9세대/SM2.0~3.0 대응 GPU에서도, 호환성이나 퍼포먼스의 문제를 클리어 할 수 있으면, FP16-64 비트 버퍼를 이용하게 된다.
그렇지 않은 경우는, int8-32 비트의 정수 LDR 버퍼를 이용한 의사 HDR 렌더링의 채용이 적합하다고 한다.
8비트 정수이면 0~255의 값을 표현할 수 있는 것이지만, 통상은, 이것을 0.0~1.0의 값에 대응시킨 휘도 표현이 된다. 이것을 예를 들면 0~255를 0.0~2.0까지의 값에 대응하는 것으로 해, 통상시의 2배의 다이나믹 레인지(표현역)를 가지는 것으로 보도록 하는 것이다. 즉, 이미지적으로는 색 표현의 분해능을 반으로 하는 대신에, 휘도 표현을 2배로 한다……로 간주해 렌더링을 하는 것이다. 즉, 통상의 LDR 렌더링으로 최대로 밝은 255가 이 의사 HDR 렌더링 기법에서는 128이 됩니다.
이대로 모든 의사 HDR 렌더링을 마치고, 후단의 블룸/글레어 생성을 마치고 토맵핑을 실시했을 때에는 폭 127의 범위가 0~255의 범위로 되돌아가게 된다.
물론 0~255를 0.0~4.0까지… 그러나, 후단의 톤 매핑의 처리로, 폭 63의 범위가 0~255로 되돌아가게 되어, 분해능은 전술한 0.0~2.0의 케이스 이상으로 더욱 저하되어 버린다.
그 때문에, 이 수법을 사용하는 경우에는 「0~255→0.0~2.0」으로 하는 이용이 많은 것 같다.
전절에서 소개한 의사 HDR 렌더링의 개조적 존재인 「DOUBLE S.T.E.A.L」이나 「발키리 프로파일 2」(트라이에이스, 2006) 등에서도 「0~255→0.0~2.0」으로 한 의사 HDR 렌더링을 채용하고 있다. (계속)
그림
그림