티스토리 뷰

프로그래밍

게임 3D 모델

과정 2017. 10. 22. 23:41

요새 온라인 게임, 비디오 게임.. 등을 하다보면 3D가 아닌 게임은 찾아보기 힘들지.

이렇게 3D게임이 우리와 친숙해진 만큼 이 분야에 대해 궁금한게 많은 게이들이 있을거야

그래서 간략하게나마 이쪽에 대한 글을 써보려고 해



일단 시작하기에 앞서 알아두어야 할 것은 다양한 분야에서 쓰이는 3D 모델을 꿰뚫는 핵심적인 개념이야

그건 바로 '폴리곤'이지.


폴리곤이란 모든 3D모델의 기본 단위로써 대체로 삼각형, 사각형의 모양을 하고 있어

쉽게 말하면 점, 선, 면에서 면의 역할을 하는 놈들이지




steven_avatar_wip_daex2.jpg


저기 얼굴에 있는 삼각형, 사각형 폴리곤들이 보이지? 모든 모델은 저런 폴리곤들로 이루어져 있어.

저 폴리곤들 하나하나가 모여서 인물이든 사물이든 3D모델의 형태를 만드는거야 



Poly_reduce_cow.png

(34824폴리곤의 소 모델 ~ 67폴리곤의 소 모델)


그리고 예상했겠지만 이 폴리곤은 적을수록 퀄리티가 구려지고 많을수록 퀄리티가 높아져

당연하겠지, 폴리곤이 67이라는건 그 모델을 이루는 삼각형이 67개밖에 안된다는 소리니까

반대로 폴리곤이 35000에 가까운건 저 35000개나 되는 삼각형으로 더욱 자세하게 표현이 가능하니 퀄리티가 높아질수 밖에.

그리고 바로 여기서 소위 말하는 그래픽의 퀄리티가 반쯤은 결정이 나는거야


"그럼 꼴리는대로 한 몇십만 폴리곤 정도 써서 씹고퀄 모델을 만들면 되지 않음?"

여기서 이런 의문점을 가지는 사람들도 몇 있을텐데


아주 잘 짚었어.

그리고 그걸 실천하는게 바로 영화쪽 CG이지. 



Transformers_rig_1_3.jpg

(트랜스포머의 디셉티콘 중 하나인 본크러셔: 855,483폴리곤)


Making-of-The-Amazing-Spider-Man-2-Rhino.jpg

(어메이징 스파이더맨2의 라이노: 3,541,435폴리곤)


c0056197_4d07002f75da8.jpg

(갓-빈: 폴리곤 수 측정 불가능)



이렇듯 영화에서는 실사적인 표현을 위해 존나게 높은 폴리곤의 모델을 사용해. 그래, 아주 리얼리스틱하고 좋지.

특히 원빈의 경우는 가장 실사에 근접한 경우라고 볼 수 있어.

하지만 아쉽게도 이런 고폴리곤 모델들은 게임에서 절대 사용이 불가능해. 

왜냐구? 그 이유는.. 하드웨어적인 한계 때문이야



artlantis_renderfarm.jpg


일단 앞서 본 고폴리곤의 모델을 영화에서 쓰기 위해 렌더링 할 때는 그냥 컴퓨터를 사용하지 않아.

대부분 저런 렌더팜이라는 모친출타한 규모의 전용 컴퓨터를 따로 쓰지

고폴리곤 모델+ 거기에 비치는 광원효과+ 질감 등을 렌더링 하는데 어마어마한 양의 작업이 필요하거든.

뭐 단일 컴퓨터로 아예 렌더링이 불가능한건 아니지만 늙어 뒤질때까지 렌더링만 해야 할거야

못생긴년 짤라서 야동 편집하고 인코딩만 해봐도 오래걸려서 빡친적 있지? ^오^ 그거의 몇백 혹은 몇천배는 각오를 해야해


근데 우리가 게임을 할때는 저런 컴퓨터를 쓰는 것도 아닐뿐더러 게임은 무조건 실시간으로 렌더링을 해야 해

영화에서 실시간이 아닌, 짜여진 구성대로 렌더링 하는데도 저런 컴퓨터를 동원해야 하는데 말이지.


이쯤 되면 우리 일게이들의 똥컴으로는 불가능한 영역이라는 것을 알 수 있어


그리고 이런 하드웨어적인 문제 때문에 옛날부터 게임 제작에는 참 제약이 많았다는 사실!


90년대 후반 게임하면 뭐가 생각나?


sfex02.png


TR1.jpg

(삼각가슴 ㅆㅅㅌㅊ?)


대부분 이렇게 각져있는 캐릭터의 모습을 떠올릴거야

이 때는 한 장면에서 실시간으로 처리할 수 있는 폴리곤의 양이 프레임당 5000폴리곤 밖에 안되서 

다 저렇게 초저퀄로 각지게 만들 수 밖에 없었어

지금 생각해보면 아바타 주인공 cg의 발가락 때보다 못한 폴리곤 수임



latest.png


포켓몬 중에 폴리곤이라는 새끼도 여기서 모티브를 따와서 만들어진 놈이야

지금보면 닉값이 개쩐다는걸 알 수 있지



latest (1).png


그리고 이 각져있던 폴리곤이 나중에는 매끈매끈한 폴리곤2로 진화하는데

게임계 발전사도 똑같았어


FIFAS08ps2_093007_2--screenshot_large.jpg


playstation-2-racing-games-cm4lzcpz.jpg


PS2 시절로 들어가면서 프레임당 최대 처리가능 폴리곤 수가 십만 단위로 늘어나 어마어마한 발전을 이뤄낸거야

그에 따라 더욱 높은 수의 폴리곤을 가진 모델을 사용가능하게 되었고 각져있던 모델들은 부드러워졌지

그래서 이 ps2 시절에 그래픽을 보고 엄청난 충격을 받은 사람이 많았던걸로 기억함



그러나 이렇게 그래픽이 발전했어도 한계는 아직도 존재하기에 너무나 아쉬운 점이 많았어

우리의 게임 업계 브레인들은 고민을 하기 시작했지

"적은 수의 폴리곤으로도 모델의 퀄리티를 높일 수 있는 방법이 어디 없을까?"



Rock_01_local.jpg


이런 생각에서 노멀맵이라는 희대의 꼼수 기술이 탄생해

사실 지금 봐서는 웬 눈아픈 사진 한장에 불과하지

이 노멀맵은 텍스쳐쪽의 기술인데, 이 놈을 이해하려면 먼저 '텍스쳐'라는 새끼에 대해서 알아볼 필요가 있어



Fig02_model_lowpoly_unwrap.jpg


그림에서 그림을 그리고나서 채색이 필요하듯 3D에서도 똑같이 이 폴리곤 이라는 면에 색칠을 해줘야 해

근데 이 색칠을 그냥 하는게 아니고 각 폴리곤들을 전개도형식으로 펼쳐줘야 하지.


UV_Layout.png


그리고 이렇게 만든 전개도에다가 포토샵이든 뭐든 사용해서 색칠을 해주는거야

간략하게 설명하자면 종이접기에서 접기 전 상태를 색칠하는 것이라 봐도 무방해


이러한 일련의 작업을 거쳐 완성된 그림 파일을 우린 '텍스쳐'라고 불러


한가지 예를 들어보자면


Russell_Crowe_texture.jpg


'내가 왕년에 게임 스킨좀 만들었다' 하는 게이들은 게임 파일 뜯어보다가 위와 같은 괴기한 이미지를 보고 지려서 의자 뒤로 자빠질 뻔한적이 있을거야

근데 바로 이게 텍스쳐지, 인간 얼굴모델을 전개도 형식으로 펼쳐서 칠해놨는데 괴기한게 당연할 수 밖에 

ㅇㅇ 텍스쳐는 대충 이런 느낌이야


사실 이건 엄청 간단히, 혹은 생략해서 설명한건데


텍스쳐라는 개념은 이러한 채색 말고도 라이팅(광원효과 정보), 각종 질감정보를 담고있는 것도 포함해

그런 면에서 위에걸 정확히 설명하자면 텍스쳐 중에서도 기본 채색을 담당하는 디퓨즈맵이고 

조명 효과를 담당하는 텍스쳐인 라이트맵이 또 따로 있고 뭐 그래

근데 이건 깊게 파고들어가면 골치아프니 흘려듣길바래

여튼 아까 처음에 보여줬던 푸르딩딩한 노멀맵은 이러한 많은 텍스쳐들의 종류 중 하나임 


anteater_clothes_N01.jpg


이 눈아픈 새끼가 과연 뭘 할 수 있느냐, 

노멀맵은 쓸모없어 보이는 외형과는 다르게 엄청나게 중요한 역할을 해


위의 노멀맵은 대충 보면 알 수 있듯이 캐릭터 옷과 바지 모델의 노멀맵이야

잘보면 저기 주름들이 보이지?


실제로 저 주름을 모델상에서 표현하려면 폴리곤이 너무 많이 들어가.

그래서 모델은 걍 네모난 폴리곤으로 만들어놓고 이 노멀맵이라는 곳에다가 저렇게 주름을 그려넣으면


game_anteater_render.jpg


이렇게 짠 하고 모델에서도 주름이 생겨나.

근데 잘보면 폴리곤 상에서는 그냥 네모라는것을 알 수 있지

즉, 노멀맵을 사용하면 적은 폴리곤으로 디테일한 표현이 가능해 지는거야


referencebump_normal.jpg


이게 가능한 이유는 노말맵은 빛 정보를 이용해 모델의 표면을 들어가고, 나와보이게 해.

일종의 착시현상, 눈속임이지.



그리고 게임 제작자들은 이 노멀맵을 이용해 아주 신박한 방법을 만들어내기에 이르는데..


high.png


일단 고퀄의 하이폴리곤 모델을 만들어

여기서는 158,208폴리곤이네


low.png


그리고 390짜리 좆밥 로우폴리곤을 만들어

여기까지만 보면 폴리곤이 390인 만큼 그 어떤 디테일도 기대하면 안됨


high.png


그 다음 하이폴리곤 모델에서 노멀맵을 뽑아와

이 모델 노멀맵 사진을 못구해서 제대로된 사진은 첨부를 못하지만


크기변환_PyleNormalsMapShow.jpg


대충 뽑으면 이런느낌일꺼임


low.png


그리고 하이폴리에서 뽑은 노멀맵을 390짜리 저퀄에다 가져다 붙이면...


image033.jpg


호옹이? 

분명 같은 390 폴리곤인데 퀄이 기존 158,208짜리 모델과 비슷하게 되어버림


이 혁신적인 기술은 폴리곤수 제약에 허덕이는 게임계에 엄청난 폴리곤 절약을 가져다주었고

게임 그래픽 세상에 다시 한번 광풍을 불러일으켰지


_-Exclusive-Next-Uncharted-Graphics-Leap-Impossible-on-PS3-_.jpg


the-greatest-graphics-of-all-time-20090319064933212.jpg


더불어 하드웨어적인 발전도 겸해져

ps3/xbox360 세대에 와서는 그래픽이 몰라보게 발전하게 돼

아까부터 자꾸 플스를 예로 들고 있지만 pc 그래픽카드의 발전과도 일맥상통함


크기변환_screen_4_100155.jpg


크기변환_120942244.jpg


근데 이젠 ps3의 시대도 저물고

차세대 하드웨어 기술의 진일보로 실사 그래픽의 시대가 오고 있어

처리가능 폴리곤 수 증가는 두말할 것도 없고..

초창기 3D 게임을 생각해볼때 실로 어마어마한 그래픽이지

사실 이 경우에는 3d모델 관련 기술 이외에도 광원효과의 발전 등 기타 기술의 공도 크긴 해


Next_Gen.jpg


그래도 게임은 아직도 영화 cg 클라스에 비하면 가야할 길이 멀었어

하지만 현재 하드웨어가 무서울 정도로 나날이 혁신을 거듭하고 있기에

앞으로의 미래가 정말 기대되는 부분이야


혹시 모르지, 앞으로 몇년만 지나면 영화에서 쓰는 몇백만 폴리곤의 모델을

모든 게임 오브젝트에 우습게 사용하게 될 날이 올지도 


길고 두서없는 글이지만 읽어줘서 고맙다 게이들아


세줄요약:

1. 게임에서 쓰이는 모델 퀄리티는 아직까지 기술상의 한계가 있다

2. 블리자드 시네마틱 영상이랑 실제 게임이랑 존나 다르다고 까지 말라 이기야 ㅠㅠ

3. 블자 팬으로써 마.음.아.프.니.까


댓글