게임개발자/인디게임개발

게임기획 개발 연구일지 - 20160213

스타(star) 2016. 2. 14. 02:36
폴리곤
폴리곤은 3D 모델의 기본 단위로써 삼각형 또는 사각형의 모양을 가지고 있다. 같은 모델이라 할지라도 몇 개의 삼각형과 사각형을 사용했냐에 따라서 훨씬 디테일하게 사물을 묘사할수도, 러프하게 사물을 묘사할 수도 있다. 실제로 영화 또는 게임에서 쓰는 모든 모델들은 폴리곤으로 이루어져 있다. 



사실 물체를 묘사하는데 엄청난 수의 폴리곤을 사용할 수록 디테일해 진다. 그럼 간단하게 생각해보면 엄청난 수의 폴리곤을 써서 사물을 묘사하면 되는 것 아닌가 하는 생각을 할 수 있다. 이런 시도는 보통 영화쪽의 작업에서 주로 볼 수 있다. 영화 트랜스포머의 그래픽에 사용된 디셉티콘의 폴리곤 수는 무려 855,483개로 이루어졌다고 한다. 


"Modellers created Bonecrusher using 2,980 pieces of geometry and 855,483 polygons. The total length of these pieces, if lined up side by side, would be 2,252 feet and their total volume would be 4,430 cubic feet. Bonecrusher can transform into a Buffalo minesweeping vehicle, although he doesn’t in this shot."




문제는 게임은 저렇게 많은 수의 폴리곤을 처리할 수 없다는 것에 있다. 일단, 캐릭터가 어떻게 움직일지 알 수가 없다. 짜여진 구성에 따라 움직이는 영화와 달리 게임은 유저가 선택한 것에 따라 움직여야 하다보니까 그 때마다 실시간으로 랜더링 처리를 해서 화면에 보여줘야 한다. 


라라크로프트의 변천사이다. 90년대만 하더라도 하드웨어의 한계 때문에 동시에 처리할 수 있는 폴리곤의 갯수는 5000개 정도에 불과했다. 





꾸준히 하드웨어 성능의 비약적인 발달에 의해서 실시간으로 처리할 수 있는 기술이 점점 늘어났다. 본격적으로는 2000년대에 들어오면서 비약적으로 발달하게 된다. 그 역사를 나는 오락실에서 경험한 바 있다. 확실히 그래픽 퀄리티가 진화하고 있었다. 90년대 컴퓨터 게임은 최신 기술의 각축전이었다. 특히 격투 게임에 관해서는 일본의 기술이 두드러졌다. 당시 버추어파이터 개발자의 인터뷰를 살펴보면 그들에게 허용된 폴리곤은 단 6000개였다. 텍스쳐 기술의 확보를 위해 소련 붕괴이후 흘러나온 군사기술까지도 손을 댔다고 전하고 있다. 


스즈키유가 말하는 버추어파이터 개발 비화

http://www.thisisgame.com/webzine/news/nboard/4/?n=56836



버추어파이터1 - 1993년 12월



버추어파이터2 - 1994년 11월



버추어파이터3 - 1996년 9월



버추어파이터4 - 2001년 8월


 

버추어파이터5 - 2006년 7월


하지만, 그래픽이 이렇게 발전했지만 한계는 명백히 존재했다. 그래서 살짝 고민의 방향을 바꾸게 된다. 적은 폴리곤을 쓰고도 고퀄리티를 뽑아 낼 수 있는 방법이 없을까 하는 고민을 하기 시작한 것이다. 그래서 탄생한 절묘한 기술인 노말맵핑 기술이다. 노말 맵핑에 대해서는 텍스쳐를 또 이해해야 한다.




텍스쳐

텍스쳐 texture라는 단어는 일할 때 자주 사용하던 단어이다. 사실 업계에 종사하다보면 그냥 그게 뭔지 모르겠는데 그냥 통용되는 경우가 있다. 내경우에는 텍스처가 그랬다. 첫회사에 프로그래머에게 이런 이야기를 들은 적이 있다. "가서 배경파트장님에게 맵좀 받아와" 나는 그것이 3D 맥스로 만든 전체 "맵"을 달라는 이야기로 듣고 맥스 데이타를 그대로 가져다 주었다. 프로그래머가 웃으면서 했던 이야기는 자기가 말한 것은 map source를 말한 것이었는데 그것이 자세히 보니 texture를 부르는 또 다른 용어였다는 것을 알게 되었다. 사실 업계 종사자들은 줄여서 맵이라고 부르는 경우가 흔하다. 

네이버 지식백과에 쳐보니 다음과 같은 설명이 요약되어 있었다. 

"3D 그래픽에서 폴리곤으로 제작된 오브젝트에 덧씌워 다양한 색상이나 질감 등을 표현하는데 쓰이는 2D 이미지를 말한다." 

"텍스처 매핑(texture mapping)은 컴퓨터 그래픽스분야에서 가상의 삼차원 물체의 표면에 세부적인 질감의 묘사를 하거나 색을 칠하는 기법이다. 일반적으로는 수식이나 2차원의 그림을 삼차원 물체의 표면에 여러 가지 방법을 통하여 적용하고 이에 따라 컴퓨터 그래픽 화면을 만들어 나갈 때 마치 실제의 물체처럼 느껴지게 끔 그 세부 묘사를 하는 것이다."

텍스쳐가 기술 논문으로 나온 것은 에드윈 캐트멀의 1974년 학위 논문이다. 놀랍게도 에드윈 캐트멀은 우리가 모두 아는 픽사의 사장이다. 그는 1974년에 텍스처 기술 뿐만 아니라 Z버퍼링, B스플라인 등의 다양한 그래픽 기술을 만들어 냈다. 1979년대에는 당대 최고의 영화 기술을 가진 루카스 필름에 입사하여 희대의 명작인 이미지 합성 기술을 만들어 낸다. 86년에는 픽사를 창업하고 픽사의 랜더링 프로그램인 랜더맨을 개발한다. 그의 컴퓨터 그래픽의 혁혁한 공으로 인해 아카데미 공로상까지 받는 기염을 토했다. 


이미지 합성기술




간혹, 게임을 언팩해서 리소스를 뜯어서 들여다 보면 아래처럼 생긴 충격적인 이미지들은 간혹 본적이 있을 것이다. 다소 기괴해 보일 수도 있는 해당 그림이 사실은 텍스쳐파일이다. 사람 얼굴을 전개도처럼 펼쳐 놓다 보니 기괴해 보이는 것은 어쩔 수 없다.




텍스처는 쉽게 이야기 하자면 폴리곤으로 제작된 모델을 아래왼쪽처럼 생긴 그림을 감싸는 기술이다.



재미있는 것은 텍스쳐 기술이 시간이 지남에 따라 점차적으로 발전되어왔다는 것이다. 

텍스쳐는 단순한 채색 기법으로 출발 했지만, 질감을 표현하는 방법, 라이팅을 표현하는 방법들이 추가 되면서 발전되어 갔다. 멀티 텍스쳐가 적용 되면서 그래픽의 비약적인 발전이 이루어진다. 


텍스쳐는 특히 3D그래픽 분야에 사용되지만 특히나 게임에서 효율적인 입체감을 묘사할 때 많이 사용되었다. 이유를 곰곰히 생각해보면 간단하다. 게임에서는 실시간 랜더링을 하는 일이 많기 때문이다. 한마디로 가격대 성능을 극대화 시키기 위해 발달한 대표적인 기술이라고 할 수 있다. 다음과 같은 기술들을 이용해서 적은 수의 폴리곤으로 사물을 표현하면서 시각적으로 뒤쳐지지 않는 텍스쳐 기술의 발전을 이끌어 내기에 이르렀다.


Color Map

가장 기본적인 채색을 담당하는 맵이다. 텍스쳐 맵핑하면 제일 먼저 떠오르는 것이다. 이러한 컬러맵을 Diffuse map이라고도 부른다. 제일 기본이 되는 텍스쳐로써 컬러맵을 먼저 적용한 뒤에 스펙큘러맵이나 범프맵등을 적용한다.


 


Bump Map

범프 맵핑은 모델의 표면을 돌출시키거나 그 반대로 들어가게 할 수도 있다. 흔히 물체의 질감을 나타낼 때 많이 사용 할 수 있다. 원래 밋밋한 아래의 왼쪽의 구체에다가 아래 가운데의 사진처럼 보이는 범프맵을 적용하면 아래 오른쪽과 같은 결과물을 얻을 수 있다.



보통 50%의 그레이를 기준으로 그보다 짙은 경우(검은색에 가까워질수록)안쪽으로 들어간 것 처럼 보이게 되며, 밝은 경우에는 튀어나오게 보인다. 쉽게 말해 물체의 높낮이를 줄 수 있는 텍스쳐이다. 이번 범프맵의 치명적인 약점이라면 범프맵의 수직 벡터 방향에서 크게 벗어난 카메라 앵글이 잡힌다면 적나라하게 평면이라고 드러나게 된다는 것이다. 




Displacement Maps​

범프맵의 한계를 넘기 위해 나온 것이 디스플레이먼트 맵이라고 할 수 있다. 디스플레이먼트맵은 실질적으로 해당하는 위치에 폴리곤에 영향을 주는 방식이다. 이 작업의 장점은 실제 뷰포트에서는 보여지지 않고 랜더링 하는 과정에서 폴리곤이 생성되어 표현되기 때문에 애니메이션이나 영화에서 많이 사용된다.





아래 그림은 컬러맵과 범프맵, 디스플레이먼트맵을 가장 극단적으로 비교해 줄 수 있는 그림이 아닐까 싶다. 




Normal Map

간혹 게임 데이터 중에 아래 처럼 생긴 이상한 사진들을 본적 있을 것이다. 이 것이 노멀맵 텍스쳐이다. 생긴 것과 다르게 엄청난 역할을 해줄 수 있는 맵이다. 노말맵은 빛의 정보를 이용해서 사물의 표면을 표현해 주는 맵이다. 일종의 착시 현상을 이용한 것이다. 기존의 범프맵과 디스플레이먼트의 한계를 극복 할 수 있는 텍스쳐인 것이다. 기본적인 원리는 빛 정보를 이용해서 사물의 들어가고 나가는 것을 표현 할 수 있다는 것이다. 물론, 실제 폴리곤의 변화 없이 가능하다.



게임 제작자들이 생각한 신박한 방법은 바로 노멀맵의 사용을 극대화 하는 방법을 찾는 것이었다. 하이폴리곤에서 노멀맵을 추출해온 뒤에 로우폴리곤의 모델에 적용하는 방법이다. 다음은 언리얼 엔진에서 노멀맵을 적용하는 방법에 대한 이미지이다. 두개의 리소스를 준비해두고 시작한다.



그 결과 다음과 같은 엄청난 결과물을 얻게 된다.



극단적인 예시는 아래 그림을 통해 나타난다. 왼쪽은 노멀맵을 적용하지 않은 일반적인 모델이고 오른쪽은 노멀맵을 적용한 상태의 모델이다. 



이러한 기술의 발전은 폴리곤 수의 극단적인 절약을 가져왔다. 덕분에 컴퓨터 게임의 비약적인 퀄리티 증가를 가져오게 되었다.





터레인 베지테이션

본격적으로 터레인 생성은 끝났고 초목 환경을 세팅해본다. 크라이엔진에서는 초목 세팅을 터레인 베지테이션이라는 오브젝트를 추가함으로써 가능하다. 몇가지의 초목만 세팅해도 훨씬 좋은 환경을 보여주는 효과를 준다. 



다양성을 확보하기 위한 옵션들은 다음과 같은 것들을 세팅한다. 

SizeVar - 사이즈의 랜덤 범위값을 말한다. Size Variation의 줄임말 같다.


RandomRotation - 오브젝트의 랜덤 회전을 체크할 수 있다.

Bending - 휘어짐의 강도를 말하는 것 같다. 너무 높은 값을 주면 다음과 같은 이상한 현상이 나올 수도 있으니 주의해야 한다.



Bush의 경우에는 한번 세팅한 이후에 두번 정도 세팅을 바꾸어서 색상과 밀도 등을 바꾸어서 칠해보면 좋은 효과를 얻을 수 있을 것이다. 



아래는 어느정도 세팅을 해본 결과물들이다.





"게임기획, 그 이상" - YK아이디어스쿨

http://www.ykideaschool.com/

문의 전화 070-4234-0325

카카오톡 상담 - ykideaschool, @와이케이아이디어스쿨

게임기획/게임개발/게임디자인아카데미/게임기획자매니지먼트