본문 바로가기

서평/코딩, 개발

유니티 그래픽스 최적화 스타트업 후기

반응형

게임의 그래픽이 아무리 뛰어나더라도, 아무리 재미있는 기능이 있더라도 게임을 하면서 렉이 걸린다면 할 마음이 사라지게 됩니다. 그래픽이 좋은 게임은 유저들이 그냥 '오~'하고 넘어가겠지만, 렉이 걸린다면 욕을하면서 게임을 삭제하던가 인터넷 게시판에 안좋은 후기를 남길수도 있습니다.

특히 VR이나 모바일 디바이스에서 작업을 하게 되었을때, 이러한 그래픽 최적화에 대해 신경쓰지 않는다면 개발도중 큰 문제가 발생할 가능성이 큽니다. 쓸 수 있는 에셋이나 모델들도 제한되어서 원하는걸 표현하지 못해 무력함도 느끼게 될 수 있죠. 이러한 무력함이 개발을 접게되는 이유가 될 수도 있습니다.

이렇게 개발을 접게 만들수도 있는 최적화지만 많은 초보자들이 유니티 최적화에 쉽게 다가가지 못하고 있습니다. 일반적인 초보자 과정에서는 라이트맵을 한번 구워보고 라이트프로브 몇개를 배치해보는 정말 간단한 최적화 작업만을 배우고 나면 그래픽 최적화에 대한 공부는 끝이 나게 됩니다. 그 이후 최적화가 필요하게 되는 순간이 오면 단순히 모델들을 지워버리거나, 구글신에게 '최적화'를 물어본 다음 적혀있는대로 따라해보며 엄청난 노가다를 하게 되는듯 합니다.(적어도 제가 지금까지 봐온 초보 개발자들은 배치나 드로우콜에 대한 용어를 모르고 있으며, 모바일 기기 개발에 대한 큰 두려움을 가지고 있었습니다.)

하지만 그래픽 최적화는 최적화에 대해 공부해보지 않은 사람이 감으로 프로젝트에 적용하기 힘든 내용들이 많습니다. 그래픽 최적화에 대해 모른다면 그저 그림자의 퀄리티를 렉 안걸릴때까지 최대한 낮추거나 모델을을 제거하는 것 이외에 별다른 조치를 취하지 못할 가능성이 큽니다. 최적화 옵션들은 '내가 그래픽 최적화에 관련되어있다'라고 대놓고 티를 내고 있지 않습니다. 유니티 중수이상이라면 모를까 초보들은 최적화 옵션을 보고 최적화 옵션이라 생각하지 못합니다.(유니티 4개월차 개발자가 장담합니다)

사실 유니티 공식문서를 꼼꼼히 읽어본다면, 어떤 옵션을 어떤 상황에 사용하여 최적화를 할지 알 수있지만, 시간이 부족한 초보개발자들은 그런거 하나하나 읽을 수 없죠. (사실 저같은 진정한 초보라면 시간이 있더라도 유니티 공식문서의 방대한 양에 눌려서 머리속이 새하얗게 되어버립니다) 최적화에 대해 모르는 사람들이 할 수 있는 일은 그저 구글신에게 '최적화'라는 단어를 검색하는게 끝입니다.

하지만 이러한 저에게도 유니티 공식문서를 헤쳐나가며 개발할 수 있는 능력이 생겼습니다. 최적화라는 험난한 바다에서 길을 찾아주는 북극성을 발견하였기 때문이죠. 그 북극성의 이름은 '유니티 그래픽스 최적화 스타트업(오지헌 저)'입니다. 자신이 가진 하드웨어에서 더 높은 성능을 내고싶은 야망이 있으신 분들은 꼭 읽는걸 추천드리는 책입니다.

 

 

 

1.최적화 개요

2.렌더링 파이프라인

3.병목

4.드로우콜과 배칭

5.라이팅

6.그림자

7.GI

8.텍스쳐

9.SRP

이 책의 목차입니다. 그래픽 최적화에 대해 잘 모르시는 분들이라면 이 목차의 절반이 처음 들어보는 단어일수도 있을 겁니다.(저는 '렌더링 파이프라인, 병목, 드로우콜과 배칭, GI, SRP' ㅎㅎ..) 이 책은 '최적화에 대한 이론서'라는 느낌이 크지만 유니티 에디터를 켜고 당장 적용할 수 있는 부분들도 꽤 있습니다. 이 책에서 소개하는 다양한 소스(FPS계산 소스 등)들과 최적화 툴(LOD에셋 등)들은 물론, 이론적인 내용들을 기반으로 실제 유니티 창에서 실습해보면 더 빠르고 깊은 이해가 가능하실 겁니다.

그리고 저는 이 책의 내용을 기반으로 용어와 최적화 팁들을 정리해두어서 실제로 그래픽 최적화가 필요한 순간이 오면 정리해둔 내용을 바탕으로 유니티 공식문서를 보며 프로젝트에 그래픽 최적화를 진행해가며 작업하고 있습니다. 어떻게든 성능을 줄이기 위한 막무가내식 최적화가 아닌, 나름 전문가스러운 섹시한 방법으로 최적화를 할 수 있게 되었습니다.

 

 

 

이 영상은 책이 출간되기 2년 전, 유니티 그래픽스 최적화 스타트업의 저자가 UNITE SEOUL에서 강연한 영상입니다. 최적화에 대해 모르시는 분들은 이 영상을 보고 기본적인 개념을 잡으시면 좋을것이고, 이 책을 보신 분이라면 이걸로 복습해보면 좋을듯 합니다. 저도 이 영상으로 용어에 익숙해진 상태로 이번 책을 읽어나갔습니다.

 

 

 

대상

-수학적인 지식이 거의 없어도 이 책을 읽는데 무리가 없습니다.

-유니티엔진에 대한 기본적인 이해는 필요해 보입니다.

-프로그래밍을 잘 모르는 사람들도 읽으면서 유니티 프로젝트의 최적화를 도울 수 있습니다.

-컴퓨터그래픽스에 대한 이해가 있으면 좋으나, 없어도 충분히 공부할 수 있는 내용이라는 생각이 들었습니다.

-지난번에 후기를 작성한 '유니티 쉐이더 스타트업'을 읽으시면 더 깊게 이해하실 수 있을 것입니다.

+

추가로 책을 읽는데 꼭 필요하진 않지만, 알고 있으면 공부에 도움이 되는 게임 수학 영상입니다. 책을 읽는데 당장 꼭 필요하지 않더라도 좋은 3D 개발자가 되기 위해 수학공부는 필수라고 생각합니다.

(책 초반 주석에서 소개된 내용입니다.)

 

 

 

수포자를 위한 게임 수학 (Math for games)

 

www.youtube.com

 

반응형