프로그래밍 언어 입문서가 아닌 프로그래밍 기초 개념 입문서
문과생, 비전공자를 위한 프로그래밍 입문책입니다.
jobGuid 꽃미남 프로그래머 "Pope Kim"님의 이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서 #겁나친절 jobGuid "1판의내용"에 "새로바뀐북미게임업계분위기"와 "비자관련정보", "1판을 기반으로 북미취업에 성공하신 분들의 생생한 경험담"을 담았습니다.
Posted by 알콜코더

안녕하세요. 알콜코더 민군입니다. ^^

상당히 오랜만에 연재를 하네요…죄송합니다. (__)

지난 달에 여러가지 사정으로 바빠서, 한달을 쉬고 간만에 연재하게 되어버렸습니다.

당연히 기다려 주신 분은 없으셨겠지만…

내가 포프 아저씨의 "빨랑 연재를 안하면, 거세시켜 버리겠다"라는 협박 때문에

글을 올리는건 아니라능…

 

이번에 연재하는 내용은 HDR과 톤맵핑에 대한 이야기 입니다.

사실 2주전쯤에 제가 운영하는 데브루키 스터디에서 발표 했던 내용인데,

여기에 설명을 달아서 연재를 하기로 했습니다. ^^

(일명… 재활용이라고도 하지요…OTL)

대부분 개발자 분들이 HDR이란 용어는 상당히 많이 들어봤고, 익숙하실 겁니다.

특히나 일명 "뽀샤시"라고 불리우는 '블룸(Bloom)' 이펙트 덕분에,

HDR이란 용어를 들어보신 분들도 많으실 겁니다.

하지만 이 뽀샤시가 HDR의 전부라고 생각하시는 분들이 많으신데, 사실 그것은 잘못된 오해입니다.

(사실 저도 몇 년전까지…' HDR = 뽀샤시 ' 라고 생각 했었다능…)

그래서 이번 기회를 통해서 "과연 HDR이란 놈이 어떤 변태 같은 놈이길래?" 에 대해

알아보는 내용을 다뤄 볼려 합니다.

 

 

  • 사실은 저도 실무에서는 HDR을 아직 사용해 본적이 없어서, 
    수많은 오역과 잘못된 이해가 있을지도 모릅니다.. ;;;

     

  • 실제 구현을 위한 셰이더 코드 같은건 다루지 않습니다. 
    어디까지나 개념과 활용을 위주로 설명합니다.

     

  • HDR에 대한 자세한 내용은 맨 밑의 참고 자료를 보시면, 
    훨씬 더 양질의 고급 자료(!)들을 만나 볼 수 있습니다.

     

  • (한마디로.. 이 연재는 그냥 허접하다는 이야기 입니다…ㅠ.ㅠ)

 

 

그럼 과연 HDR이란게 뭔지에 대해서 알아보기 전에, HDR을 사용하면 얼마나 게임 화면이 예쁘게(?) 나오는지에 대해서 살펴 보겠습니다.

그리고 앞서 이야기 드렸듯이, HDR = 뽀사시(Bloom) 효과가 아닙니다.

아래 이미지들에서 단지 뽀샤시만 적용이 된 것이 아니라는 점에 주목해 주세요.

첫 번째 이미지들은 HDR 적용 전, 두 번째 이미지들은 HDR 적용후의 효과입니다.

 

[우선 이것은 라데온의 HDR 데모 스샷 ]

 

[이제는 미연시에서도 당연히 사용되는 흔한 기술(?) HDR]

 

자… 이제 HDR을 쓰면, 게임 화면이 훨씬 더 예뻐진다는건 아시겠죠?

얼핏 위의 비교샷을 보면, "이거 단지 뽀샤시가 들어간거 아냐?" 라고 생각할 수도 있습니다.

사실 이 말은 반은 맞고, 반은 틀린 말입니다.

왜냐면 우리가 흔히 이야기하는 "뽀샤시"라는 효과는 바로 HDR에 기반하고 있기 때문입니다.

하지만 HDR을 사용하지 않은 게임에서 사용하는 뽀샤시는… HDR을 실제로 사용하지 않고,

HDR의 효과를 흉내낸 테크닉입니다.

이것을 흔히 업계 용어로 "Fake HDR" 이라고 부르기도 합니다.

최신 사양이 아닌, 이전의 게임들의 뽀샤시는 이 Fake HDR을 사용한 것입니다.

이 Fake HDR이란 기술은 간단하게 설명하자면, 화면의 밝은 부분(흰색에 가까운 부분)을 찾아서,

가우시안 블러(Blur)를 먹이는, 알고보면 간단한(?) 테크닉입니다.

그래서 색을 무조건 번지게(블러) 만들기 때문에, 밝은 화면에서 화면이 너무 많이 타거나,

음영이 제대로 보이지 않는 문제들이 있습니다.

하지만 구현이 간단하고, 사양에 영향을 크게 끼치지 않기 때문에, 많은 게임에서 사용 되었습니다.

 

HDR이란… 사실 특정한 하나의 테크닉을 지칭하는 것이 아니라,

렌더 타겟의 표현의 범위를 넓히는 개념과 그것을 구현하는 기반 기술에 가깝습니다.

그리고 그렇게 표현의 범위가 늘어남에 따라서, 뽀샤시를 비롯한 여러가지 효과와 테크닉들이 부수적으로 가능한 것입니다.

즉, 뽀샤시라는 것은 바로 HDR을 이용해서 구현할 수 있는 렌더링 테크닉중의 하나입니다.

 

HDR을 이용해서 얻을 수 있는 메리트는 크게 아래와 같습니다.

 

초반부터 폭풍 스샷들을 뿌리다보니, 별 내용은 없는데 스크롤만 많이 길어지는군요. OTL

우선은 이번 시간은 그냥 맛보기로 보시고, 다음 시간부터 HDR이 구체적으로 무엇이고,

어째서 위와 같은 메리트들을 얻을 수 있는지,

그리고 HDR을 어떻게 사용할 수 있는지에 대해서 다뤄 보겠습니다.

 

  • 절..절대.. 요즘 연속 강좌가 유행이라서 따라하는 것이 아니라능…
  • 원래는 보름 단위 연재이긴 하지만, 다음편은 작성하자마자 바로 올리겠습니다. 너무 오래기다리면 잊혀질 듯..

 

[참고 자료]


댓글을 달아 주세요

  1. Favicon of https://gamedevforever.com 김포프 2012.02.02 06:54 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 시리즈가 될 거 같네요. 특히 톤매핑쪽 기대하겠습니다. ^^