[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근

10,803 views

Published on

[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근

  1. 1. 강연자 소개박민근 (@agebreak)네오위즈 게임즈 (야구의 신 개발중)NTL-inc - 드래곤볼 온라인 개발엔씨소프트 – PlayNC 빌링 서버 개발(http://agebreak.blog.me)(cafe.naver.com/devrookie)
  2. 2. HDR == 뽀샤시? 뽀샤시(Bloom)는 HDR을 적용했을때HDR 나오는 대표적 효과중 하나일뿐
  3. 3. 기존의 색상 표현 픽셀당 4Byte 표현 4Byte = 32 Bit
  4. 4. • 각 색상당 1Byte (8 bit)• 256단계로 표현 가능 (0~255)• 총 1,677만색 표현 가능 (256 ^ 3 = 2^24)• 그런데 각 색상당 256단계??
  5. 5. 태양은 무슨색?RGB : 255, 255, 255 RGB : 255, 255, 255
  6. 6. 달없음 달밤 여명 방안 햇빛 원추체 간상체 부동 소수점 정수
  7. 7. 다이나믹 레인지 = 표현의 범위이 광대한 영역을 좀더 정확하게 표현하려는 것이 HDR의 기본 접근이다.
  8. 8. • 색상당 16비트 부동소수점으로 표현• FP16 (Floting Point 16bit)• 64비트 버퍼 사용 ( 16 * 4)• 부호 1비트, 가수 10비트, 지수 5비트• 약 4.4 X 10^12 색상 표현 가능• 기존의 RGB8은 LDR(Low) 이라고 부름
  9. 9. 출처 : [NDC11] 올바른 HDR을 이용한 Bloom과 HDR - 이창희
  10. 10. 왜? 지금 가능한가?비디오 메모리를 2배로 소비대역이나 버스 성능이 2배가 요구 된다=> DX9/SM2.0에서는 어려움DX 10/SM 4.0 시대에서야 가능해졌다
  11. 11. 하지만… 모니터는…그래픽 카드에서 아무리넓게 계산해도…결국 모니터는 4바이트RGB밖에 표시 못함ㅠ.ㅠ
  12. 12. 그래서.. 이런 HDR용 디스플레이가따로 존재하기도 합니다~~~ (물론 비쌈...=ㅅ=)
  13. 13. 그럼 의미없네..ㅅㅂ그래~~서! 셰이더 내에서는 HDR로 계산을 하고,렌더링시에는 LDR로 적절한(?) 변환이 필요.이 변환을 이라고 한다!
  14. 14. 톤 매핑1.화면의 평균 휘도를 구한다.2.평균 휘도를 키값으로 하여, 표시 가능한 1,677만색(RGB8)로 매핑한다3.실시간이 아닌, 약간 지연해서 실행한다
  15. 15. 톤 매핑의 필요성
  16. 16. 축소 버퍼를 이용한 평균 휘도 계측
  17. 17. HDR 렌더링의 메리트란?1.음영이 보다 리얼해 진다2.노출 시뮬레이션을 할 수 있다3.눈부심 표현이 가능하다
  18. 18. HDR 렌더링의 메리트란?1.음영이 보다 리얼해 진다2.노출 시뮬레이션을 할 수 있다3.눈부심 표현이 가능하다
  19. 19. 태양 광원은 255보다 밝다! 게임에서 가장 밝은 광원은 255! 반사율이 7% 물체(아스팔트) = 1818은 이렇게나 어둡다.최고 밝기가 255밖에 안되기 때문
  20. 20. 하지만 HDR에서는!1이상의 밝기(광도)가 저장 가능색상의 최대값이 255보다 훨씬 크다!더욱 밝고! 더욱 리얼한 음영의 계산이 가능!
  21. 21. HDR 렌더링의 메리트란?1.음영이 보다 리얼해 진다2.노출 시뮬레이션을 할 수 있다3.눈부심 표현이 가능하다
  22. 22. 노출 보정인간의 눈은 주변 밝기(휘도)에 영향을 받는다방안에서의 휴대폰 액정과 야외 태양 밑에서의 휴대폰 액정주변 밝기에 따른 사람의 눈의 적응 문제어두운 곳 -> 밝은 곳, 밝은 곳 -> 어두운 곳
  23. 23. 톤맵핑을 활용HDR 렌더링에서는 넓은 휘도 영역의 음영을 올바르게기록하고 있음씬의 평균 휘도를 구하여 그 값을 중심으로 톤매핑을적용이때 톤맵핑의 값을 서서히 변화 시키면,노출 시뮬레이션 연출이 가능하다!
  24. 24. 노출 보정 시뮬레이션1. 현재 씬의 평균 휘도로 톤매핑 (일반적)2. 휘도가 급격하게 변하는 씬의 평균 휘도로 톤매핑을 변경한다3. 이때 이 변화를 일부러 지연해서 실행한다.
  25. 25. 노출 보정 시뮬레이션평균 휘도가 낮은 씬 평균 휘도가 높은 씬 적응 완료! 톤맵핑 수치는 기존 씬 현재 씬의 평 과 같기 때문에 눈부시 균 휘도로 톤 게 보인다 매핑한다
  26. 26. HDR 렌더링의 메리트란?1.음영이 보다 리얼해 진다2.노출 시뮬레이션을 할 수 있다3.눈부심 표현이 가능하다
  27. 27. Bloom강한 빛이 눈에 들어왔을 때, 빛이 번지는 현상강한 빛이 렌즈나, 속눈썹에서 산란되어서 생기는 현상HDR의 대표적인 효과Bloom, Glare, Glow, 뽀샤시등으로 표현
  28. 28. 가우시안 필터(Gaussian Filter)
  29. 29. Kawase식 MGF(Multiple Gaussian Filter)전체 화면에 Blur를 먹이면 부하가 너무 크다!축소 버퍼에서의 가우시안 필터법
  30. 30. Kawase식 MGF(Multiple Gaussian Filter) 1. 해상도를 줄여서 가우시안 필터를 적용한다
  31. 31. Kawase식 MGF(Multiple Gaussian Filter) 2. 같은 해상도로 확대한다. (바이리니어 필터)
  32. 32. Kawase식 MGF(Multiple Gaussian Filter) 2. 모두 합성하면 완성
  33. 33. 스타오션3에서의 응용
  34. 34. FAKE HDR32bit 버퍼에 HDR 정보를 압축해서 담는 테크닉LDR에서 HDR을 흉내낸 기법이 사용 가능a 채널에 휘도 정보를 넣어서 인코딩 및 디코딩이전의 콘솔게임들에서도 다양하게 사용 되었다.
  35. 35. Half Life 2 (2004)
  36. 36. FAKE HDR – LDR을 HDR로 맵핑 해상도(색표현)을 낮추고, 휘도 표현을 2배(4배)로 한다
  37. 37. FAKE HDR - BloomHDR Bloom의 원리를 LDR에 적용한 방식HDR이 일반화 되기 훨씬 이전부터 사용한 방식색상이 흰색에 가까우면 밝은색이라고 판단 (240이상)셰이더 없이 고정 파이프라인에서도 적용 가능이전의 그래픽카드들도 사용가능. 부하가 적음
  38. 38. 구현 개요(a)일반적인 렌더링 (b)글로우 소스 렌더링(c)글로우 소스를 블러링 (d) 최종 글로우 효과
  39. 39. 글로우 적용 예
  40. 40. Study More..실제 HDR 렌더링 구현 기법LDR로 유사 HDR 렌더 타겟 사용LDR로 유사 HDR 텍스쳐의 사용톤맵핑 기법들 (다양한 수학적 방법들)
  41. 41. 참고 자료• [번역]3D 그래픽스 매니악스 - 알로샤• [NDC11] 올바른 HDR을 이용한 Bloom과 DOF - 이창희• 니시카와 젠지의 3D 게임 팬을 위한 “소닉 월드 어드벤처” 그래픽스• 리얼 타임 글로우 – 최지호(KASA 스터디)
  42. 42. Special Thanks꽃미남 포프,대마왕님, 오즈라엘, 이창희, 진혀니,친절한티스, 달땡땡, 레아횽, 꽃기자 Vito정호햄, 안석햄, 해보리, 퐁퐁퐁, 영준이, 경원이, 재홍이, 화저, 미소녀인정, 세하님

×