3D로만들 때 커다란 맵을 만들때 해상도 부족이 이슈가 됨.
방법 |
명칭 |
설명 |
비고 |
방법1 |
통맵 |
맵의 해상도를 키워서 통으로 메쉬에 입힘 |
만들기 쉽다. 메모리를 많이 먹는다. |
방법2 |
타일맵 |
블록형태로 모듈화해서 타일링 |
최적화면에서 제일 좋다. 자연스럽게 만들기 어렵다. |
방법3 |
스플레이팅 텍스쳐 |
타일링된 텍스쳐를 여러장 겹친 후, 마스킹 텍스쳐의 RGBA로 섞어주는 방법 |
수정이 용의하다. 메모리를 많이먹지만, 연산이 많아서 CPU자원을 많이 쓴다. |
영웅의 군단에서는 3번방식. 유니티에서 Terrain을 생성하여 맥스로 Export한 뒤, 폴리곤을 수정하여 메쉬방식으로 구현했다
고 함. 추가로 LOD(Level of Detail) 기법을 사용하여 최적화를 함.
영웅의 군단이나 WOW에서도 이 방식을 사용했다고 함.
+ http://blog.naver.com/blue9954/50071672529 WOW
일단 Unity에서 제공되는 Terrain의 간략히 설명하자면,
지브러쉬의 스컬핑 + 바디 페인트의 3D페인팅 이며 툴 접근성도 높아서 간단하게 맵 만들기에 좋음.
(브러쉬도 많기 때문에 맥스에서 버텍스 일일히 잡아서 하는 것에 비하면 시간단축)
텍스쳐 바꾸는 것도 엄청 간단. (텍스쳐는 최대 4개를 사용하며, 이를 한 개의 512x512 splatAlpha맵을 사용하여 RGBA의 채널로 알파를 저장한다.)
[문제점]
1) 메쉬가 엄청나게 무겁기 때문에 잘 쓰지 않는다고 함. 그래서 사람들이 플러그인으로 Mobile용 Terrain을 만들기도 했다 함.
2) 모든 픽셀에서 여러 장의 이미지를 중첩해서 가지고 있게 되서, 메모리는 절약할 수 있을 수 있겠지만 저사양의 모바일 기기에서는 CPU에 부하를 줄 위험이 있다
http://egloos.zum.com/chulin28ho/v/5539369 위의 두가지 단점에 대한 설명한 대마왕님 블로그.
정리해보자면 메쉬의 드로우콜 + 중첩되는 splat의 CPU사용량을 해결해야 함.
- 영웅의 군단처럼 Splat를 단 두 개만 써서, 메쉬를 맥스로 Export하고, 폴리곤을 최적화 하면 사용할 수 있을 꺼라 생각됨.
- 뷰가 극단적으로 커지고 작아진다면 반드시 LOD (Level of Detail)를 사용 해야 한다고 생각함.
~유니티와 맵스간 협업을 도와주는 스크립트들~
터레인을 OBJ로 저장해 주는 스크립트.
http://blog.naver.com/blue9954/220361514915
유니티에서 제작한 터레인을 맥스로 불러와야할 때가 있는데, 그럴때 쓰는 스크립트. 임포트하면 Terrain 메뉴가 위쪽에 생김.
스플리트맵을 익스포트 하는 스크립트
http://answers.unity3d.com/questions/13479/exporting-terrain-splatmap.html
임포트하면 어셋에디터에서 오른쪽클릭하면 맨 아래에 Export Texture가 생김.
스플리트 맵을 스왑하는 스크립트
https://dl.dropboxusercontent.com/u/87080615/splatmap_rundown.jpg
맵을 2장쓸경우 맥스에서 Blend로 볼 수 있음. 아마 3장이상 쓰면 Blend 된 것을 또 Blend해서 사용하면 될 듯. 왠지 모르겠지만 뷰포트 상에서는 안보임.
[ 문제점 발생 ]
유니티에서 Splat 맵이나 blend맵을 기본 쉐이더로 지원하지 않음.
(Terrain 쉐이더는 Terrain 오브젝트에만 사용 가능해서 일반 메쉬에 적용 불가)
Shader를 직접 짜거나 어셋 스토어에서 구매하지 않는 한 사용 불가.
약 3시간 가량을 서치 했지만 무료 오픈 소스 쉐이더들은 버전업되면서 컴파일 오류가 나서 사용이 불가능함.
결론적으로..
쉐이더 같은거 다 제쳐두고, 지형을 3D로 제작해야 되는 상황이라면 모델러가 유니티에서 제공하는 Terrain으로 기본지형을 잡는 것이 몇 배는 편리할 것이라 생각함.
'🌍 Unity > 그래픽' 카테고리의 다른 글
유니티에 사용할 캐릭터 모델링 체크사항 (0) | 2015.12.30 |
---|---|
유니티 UV 텍스쳐 표정 애니메이션 정리 (1) | 2015.12.30 |
Unity LOD(Level of Detail) (0) | 2015.12.03 |
[SlideShare] 유니티 최적화 테크닉 총정리 (0) | 2015.12.03 |
[SlideShare] 영웅의 군단의 테크니컬 아트 (0) | 2015.12.03 |