69
박믺근 (알콜코더) 네이버 데브루키 스터디 2012.1.7

[0107 박민근] 쉽게 배우는 hdr과 톤맵핑

Embed Size (px)

Citation preview

Page 1: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

박믺근 (알콜코더)네이버 데브루키 스터디2012.1.7

Page 2: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

강연자 소개박믺근(@agebreak)

네오위즈 게임즈 (프로젝트 S 개발중)NTL-inc - 드래곤볼 온라인 개발엔씨소프트 – PlayNC 빌링 서버 개발

‘싞입 게임 개발자의 서울 상경기’(http://agebreak.blog.me)

‘초중급 게임 개발자 스터디 (데브루키)’(cafe.naver.com/devrookie)VisualStudio 2010 공식 팀 블로그(http://vsts2010.net/)

게임 클라이언트 프로그래머30대… 솔로 인생…

그리고 오타쿠 프로그래머...언젞가는 우즈벡에.. 일류젼 우즈벡 지사를 설립핛 예정

Page 3: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 4: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 5: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 6: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 7: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 8: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 9: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 10: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 11: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 12: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 13: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 14: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 15: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 16: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 17: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 18: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 19: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 20: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 21: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

기존의 색상 표현픽셀당 4Byte 표현

4Byte = 32 Bit

Page 22: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

• 각 색상당 1Byte

• 256단계로 표현 가능 (0~255)

• 총 1,677만색 표현 가능 (256 ^ 3 = 2^24)

• 그런데 각 색상당 256단계??

Page 23: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

달없음 달밤 여명 방앆 햇빛

원추체

갂상체

부동 소수점

정수

Page 24: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

다이나믹 레인지= 표현의 범위

이 광대핚 영역을 좀더 정확하게 표현하려는 것이 HDR의 기본 접근이다.

Page 25: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

• 색상당 16비트 부동소수점으로 표현

• FP16 (Floting Point 16bit)

• 64비트 버퍼 사용 ( 16 * 4)

• 부호 1비트, 가수 10비트, 지수 5비트

• 약 4.4 X 10^12 색상 표현 가능

• 기존의 RGB8은 LDR(Low) 이라고 부름

Page 26: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

출처 : [NDC11] 올바른 HDR을 이용핚 Bloom과 HDR - 이창희

Page 27: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 28: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

왜? 지금 가능핚가?

비디오 메모리를 2배로 소비대역이나 버스 성능이 2배가 요구 된다=> DX9/SM2.0에서는 어려움DX 10/SM 4.0 시대에서야 가능해졌다

Page 29: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

하지만.. 모니터는..

그래픽 카드에서 아무리넓게 계산해도… 결국 모니터는 4바이트RGB밖에 표시 못함ㅠ.ㅠ

Page 30: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

그래서.. 이런 HDR용 디스플레이가따로 존재하기도 합니다~~~ (물롞 비쌈...=ㅅ=)

Page 31: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

그럼 의미없네..ㅅㅂ

그래~~서! 셰이더 내에서는 HDR로 계산을 하고, 렌더링시에는 LDR로 적절핚(?) 변홖이 필요.

이 변홖을 톤맵핑이라고 핚다!

Page 32: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 33: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 34: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

HDR 렌더링의 메리트란?

1.음영이 보다 리얼해 진다2.노출 시뮬레이션을 핛 수 있다3.눈부심 표현이 가능하다

Page 35: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

HDR 렌더링의 메리트란?

1.음영이 보다 리얼해 진다2.노출 시뮬레이션을 핛 수 있다3.눈부심 표현이 가능하다

Page 36: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

태양 광원은 255보다 밝다!게임에서 가장 밝은 광원은 255!

반사율이 7% 물체(아스팔트) = 18

18은 이렇게나 어둡다. 최고 밝기가 255밖에 앆되기 때문

Page 37: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 38: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 39: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

HDR 렌더링의 메리트란?

1.음영이 보다 리얼해 진다2.노출 시뮬레이션을 핛 수 있다3.눈부심 표현이 가능하다

Page 40: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

노출 보정인갂의 눈은 주변 밝기(휘도)에 영향을 받는다

방앆에서의 휴대폰 액정과 야외 태양 밑에서의 휴대폰 액정

주변 밝기에 따른 사람의 눈의 적응 문제

어두운 곳 -> 밝은 곳, 밝은 곳 -> 어두운 곳

Page 41: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

톤맵핑을 홗용HDR 렌더링에서는 넓은 휘도 영역의 음영을 올바르게기록하고 있음

평균 휘도를 구하여 그 값을 중심으로 톤매핑을 적용

이때 톤맵핑의 값을 서서히 변화 시키면,

노출 시뮬레이션 연출이 가능하다!

Page 42: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 43: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 44: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 45: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 46: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 47: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 48: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 49: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 50: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 51: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 52: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

HDR 렌더링의 메리트란?

1.음영이 보다 리얼해 진다2.노출 시뮬레이션을 핛 수 있다3.눈부심 표현이 가능하다

Page 53: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 54: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

Bloom강핚 빛이 눈에 들어왔을 때, 빛이 번지는 현상

강핚 빛이 렌즈나, 속눈썹에서 산란되어서 생기는 현상

HDR의 대표적인 효과

Bloom, Glare, Glow, 뽀샤시등으로 표현

Page 55: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 56: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 57: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 58: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 59: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 60: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 61: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 62: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 63: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

FAKE HDRHDR Bloom의 원리를 LDR에 적용핚 방식

HDR이 일반화 되기 훨씬 이전부터 사용핚 방식

셰이더 없이 고정 파이프라인에서도 적용 가능

이전의 그래픽카드들도 사용가능. 부하가 적음

Page 64: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

64

구현 개요

(a)일반적인 렌더링 (b)글로우 소스 렌더링

(c)글로우 소스를 블러링 (d) 최종 글로우 효과

Page 65: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

65

글로우 적용 예

Page 66: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑
Page 67: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑

Study More..실제 HDR 렌더링 구현 기법

LDR로 유사 HDR 렌더 타겟 사용

LDR로 유사 HDR 텍스쳐의 사용

톤맵핑 기법들 (다양핚 수학적 방법들)

Page 69: [0107 박민근] 쉽게 배우는 hdr과 톤맵핑