개발 노트 HDR 톤매핑과 자동 노출 2017/09/22 18:43 by cagetu

NDC11 "올바른 HDR을 이용한 Bloom과 DOF" 발표한 이후, HDR 관련한 엔진 작업을 관심 가지고 본 지가 벌써 5년가까이 지났다. 솔직히, 저 발표자료를 만들 당시에 이론적으로는 많이 연구를 하고 테스트도 많이 해봤지만, 딱 마음에 드는 결과를 만들기가 너무 어려웠다. 아니 만들어내지 못했다는 표현이 맞을 것 같다.

지금 돌이켜보면 그 이유는 "톤 매핑"과 "노출 보정"이었다.
  • 톤 매핑이 공식대로 하면 원하는 것이 나올 것 같던데 왜 안되지? Filmic Tonemapping을 하면 되는거 아냐?
  • 자동 노출 처리 및 노출 보정에 대해서 전혀 감을 잡을 수가 없다. ㅡㅡ;;
시간이 많이 지나서 UE4의 톤매핑 관련 내용(High Dynamic Range Display Output)을 볼 기회가 생겼다. 당연히 코드를 볼 수 있으니까, 어떻게 구현했는지도 볼 수 있지만, 이게 왜 이렇게 되었는지에 대한 궁금증이 생겼다.

그 히스토리는 NVIDIA의 문서(High Dynamic Range Display Development)에서 찾아볼 수 있었다. 출력 기기에 따른 톤 매핑을 한다니!!! 그리고, 그것이 가능한 것이 바로 ACES라는 오픈 소스 프로젝트이다. 톤 매핑 표준이 생기다니!!! 개 멋지다!!!


노출에 대해서도 궁금해서 찾아보다가 Automatic Exposure에 대해서 지금까지 발전한 내용을 정리해 놓은 문서를 보았다. 나는 아직 솔직하게 주변에서 자동 노출보정을 완벽하게 사용하는 개발팀의 이야기를 들어본 적이 없다. 수동 노출 볼륨을 정하고 사용하거나 노출 보정 자체를 사요하지 않는다. 아직 자동 노출 보정을 완벽하게 믿고 사용하기에는 어렵지 않을까 생각이 들기도 했다. 하지만, 문서에도 나오는 메탈 기어 솔리드 예화처럼 나름 재밌게 표현되면 좋겠다 싶기도 하고, 솔직히 이것을 완벽하게 만들어보고 싶은 도전 욕구가 크다! (Compute Shader, Histogram, Deferred 등 대가가 너무 큰 듯!!!)

그래도 몇 년 동안 내용이 정리되었다!! 혹시 이번에 집에서 만들어보게 되면 진짜 잘 만들어봐야지! 그래도 (실패의) 경험이 있으니, 도움이 되기는 하는구나! ㅎㅎㅎ

재밌다!!!

덧글

  • juhlnet 2017/09/25 19:21 # 답글

    오! 저도 이부분 관심있어요. 나중에 시간나면 읽어봐야겠네요.
댓글 입력 영역



메모장

내가 먼 훗날에 이 글들을 보았을 때, 좋은 추억이 될 수 있기를...

나를 위해... 나에게 쓰는...

msn: cagetu@hotmail.com
mail: cagetu79@gmail.com
twitter: twitter.com/cagetu
facebook: facebook.com/cagetu