brunch

You can make anything
by writing

C.S.Lewis

by 장민호 Apr 27. 2016

No Shading, No Graphic.

그래픽의 완성은 셰이딩

그래픽을 구성하는데는 많은 요소들이 있다.

간단하게 모델링부터 시작해서 텍스쳐 맵, 애니메이션 데이터, 파티클 이펙트 등등...

그리고 게임 개발에 경험이 적거나 없는 사람들이 꽤 많이들 하는 착각이 있다.

"모델 예쁘면 그래픽 예쁘게 나올거야!"


물론 위의 말은 옛날에 팀단위 개발할때 내가 실제로 들은 말이고, 당시 나는 셰이더 관련 지식이 전무했기 때문에 '아 뭐 그런가보다' 하면서 대충 넘어갔고.

막상 실제로 게임이 완성된 걸 보니...

더이상의 자세한 설명은 생략하겠다.


그렇다고 이번 글에서 <실전! 셰이더 스크립팅!!> 같은 실제 셰이더 스크립팅을 이야기하고 싶진 않다.

셰이더 스크립팅이야 엔진별로(상용엔진에 한함) 구글링이나 유튜브를 뒤져보면 질리듯이 나오고

사실 스크립트 문법보다는 카메라,빛,색감,아주 조금의 수학적 이해도가 더 중요하다고 본다.


셰이딩은 언제나 중요하다, 얼마나 중요하냐면 다 된 핫도그에 뿌리는 케찹만큼 중요하다.

물론 그것보다 더 신경써야 하는 부분은 게임의 그래픽컨셉에 대한 정확한 이해와 

캐릭터 모델과 맵파일 제작방식이 어떻게 되어있는지에 대한 이해도이겠지만...

모두의 아이돌 유니티짱과 함께 간단한 예시로 알아보자. 

(참고로 유니티짱은 Unity Engine의 공식 마스코트 캐릭터이다. 어셋 스토에서 무료로 다운로드 가능하다)

Toon Shader 사용

위 사진은 유니티짱에게ToonShading방식을 가미하여 카메라로 찍은 모습인데

유니티짱 자체가 실사보다는 애니메이션틱한 의도로 만들어진 캐릭터이다 보니 마테리얼 세부조정을

제대로 하지 않았음에도 불구하고 볼만한 아웃풋이 되었다.

Standard(PBR) Shader 사용

이번은 유니티에 모델을 임포트하거나 아무거나 생성하면 기본적으로 생겨나는 Standard셰이더를 적용한 모습인데, PBR(Pysically Based Rendering,물리기반 렌더링)셰이더이다 보니 주변 광원에 민감하게 반응하고 산란이나 굴절, 반사, 투과 등을 연출할수도 있다.

하지만 위의 툰셰이딩된 유니티짱보다는 조금 볼품없어보인다.

너무 딱딱한 느낌도 나고 그림자가 진 모습도 캐릭터와 매칭되지 않는다. 왜일까?


위의 두 사진은 셰이더 외에 다른 옵션들은 아무것도 조정하지 않았음에도 불구하고 

아웃풋에서 큰 차이를 보였다.

위의 사진만 보고 사람들은

"크~셰이더뽕에 취한다~ TA주모~ 셰이더 한사발 주소~"라던지

"역시 셰이더는 만능이라니까! 모델링이 못하는 일을 태연하게 해내! 그점을 동경하게 돼!"

등등 셰이더의 존재를 과신할 수도 있겠다.

하지만 아티스트로써, 아티스트가 아니더라도, 게임 개발자로써 가장 간과하면 안되는 점은 

셰이더는 만능이 아니라는 점이다.


첫번째로, 모델에 문제가 있는 것을 셰이더가 커버해주지는 않는다.

위의 유니티짱도 모델이 먼저 아름답게 뽑혔기 때문에 셰이더의 도움을 받아 좀 더 아름다운 아웃풋을

선보였을 뿐이지, "모델링은 안이쁘지만 셰이더로 어떻게든 해봐야지"라는 생각은 커다란 착각이다.


두번째로, 소수의 사람들은 물리기반셰이더를 맹신하는 경향이 있는데, 물론 현실의 빛이나 효과들을 

완벽에 가깝게 구현할 수 있는 물리기반셰이더는 매력적이지만 위에서 보았듯,

<꼭 현실적인게 예쁘지는 않다>

셰이더의 선택에는 위에서 말했듯, 게임의 아트적 분위기 이해가 무엇보다 중요하다.


세번째로, 모든것을 셰이더로 해결하려는것은 바람직하지 않다.

예를들어, 작업하는도중 많이 듣는 얘기들을 나열해보겠다.

"우리 바다 TA가 셰이더같은걸로 구현해주면 안되나?"

"그 실시간 상호작용 눈같은건 셰이더로 못만들어요?"

"풀 흔들리는거 그냥 셰이더로 처리좀 부탁드려요~"

사실 이중에 몇개는 셰이더로 구현하는게 빠르고 간편한 경우가 있다.

하지만 너무 셰이더를 남발했다가는 오픈 후, 발매 후에 "셰이더 떡칠했네"라는 악평을 뒤집어쓸 여지도 있고

상호작용하는 오브젝트같은경우는 절대로 셰이더로 접근해서는 안될 것이다.

너무 교과서적인 이야기일수도 있겠지만 역시 코스트와 퀄리티를 잘 저울질해가며 

디렉터,프로그래밍팀과 긴밀한 협의를 통해 일을 분담하는것이 가장 바람직하다고 할 수 있겠다.


셰이더는 멋진 분야다.

요리로 따지면 맛있게 완성된 요리에 마지막으로 플레이팅을하는것과 같다고 비유할 수 도 있겠다.

개인적인 생각이지만, 셰이더를 신경쓰지 않으면 그 게임의 그래픽은 완성된게 아니라고 생각하고

많은 그래픽 아티스트들이 이 의견에 동의 할 것이라고 생각한다.

그만큼 셰이더는 중요하다.

그렇다고 너무 남발하다가는 담당하는 책임이 막중해지고 코스트를 많이 소비할 위험이 있고,

현실을 반영하는것도, 물리공식에 따라가는것도 옳은게 아닌, 

아티스트 자신의 판단과 안목으로 작업해야한다는 점도 어렵다.

멋진 아웃풋을 위해서는 고생이 필요하다.

그게 모델링이든, 애니메이션이든, 매핑이든, 이펙트이든, 셰이더이든.

작가의 이전글 너 아직도 그 회사 다니니?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari