Unity Terrain 정리



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으로 기본지형을 잡는 것이 몇 배는 편리할 것이라 생각함. 


 

댓글

Designed by JB FACTORY