아이디어 - BodyPaint를 사용한 지형 편집기 제작

몇 달 전에 Nebula와 관련한 이야기를 하면서 지형 편집기(Terrain Editor)에 대한 이야기가 나왔는데,

> "Nebula에는 지형 편집 기능이 가진 에디터가 없나요? 아니면 쉽게 할 수 있는 방법이라도..."
> "글쎄요, CLOD 등을 이용한 Terrain Renderer는 몇 종류 있는데, 에디터에 대해서는 저도 아는 바가 없습니다."

마야 툴킷에서는 유사한 기능을 제공하고 있지만 3ds Max 툴킷에서는 지원하지 않는 기능이었다.

<Nebula2 Maya Toolkikt Multi Layering Feature>


UnrealEditor 에서 제공하는 것과 유사한 브러쉬(brush)를 사용한 terrain mesh deformer 및 texture splatting 기능을 가진 에디터를 제공하는 것이 레벨 맵 제작의 생산성을 높이기 위한 중요한 일이긴 한데, 문제는 그러한 에디터를 요구 사항에 모두 맞게 개발하려면 시간이 너무 많이 걸린다는 점이다.

그래서 생각한 것이 mesh deform 기능은 3ds Max에 이미 있으니 이것을 사용하면 원하는 형태의 지형 편집은 해결이 되었고, 다음으로는 텍스쳐인데 이 부분은 메쉬 페인팅 샘플이 3ds Max의 SDK에 소스까지 포함이 되어 있기는 한데 이 놈을 빌드해서 테스트해보니 신통치 않은데다 버그도 있고, 원하는 기능을 가진 플러그인으로 바꾸려면 시간도 많이 걸릴 듯 해서 고민하다 머리에 떠 오른 방법이 바로 BodyPainter3D 이다.

3ds Max에 deformming한 지형 메쉬 데이터를 원하는 텍스쳐를 가지고 쓱쓱 붓질해서 4개던 8개던 레이어로 추출할 수 있으면 간단하면서도 강력한 지형 편집기가 완성된다!...라는 아이디어이다.

우선 BodyPaint3D 데모를 다운 받아서 설치한 후 살펴 보니 SDK를 제공하는데다 SDK의 문서를 읽어 보니 편집하는 텍스쳐를 포토샵의 레이어로 임포트할 수 있도록 되어 있었다.
실제로 작업해서 확인해 보지는 않았지만 Terrain의  메쉬 및 텍스쳐에 대한 편집을 3ds Max의 인터페이스를 이용해서할 수 있고, 편집이 끝난 데이터는 메쉬의 경우 MAXScript를 이용해서 Heightmap으로 저장하면 엔진에서 사용할 수 있을 테고, 텍스쳐는 splatting에 대한 정보를 가진 텍스쳐를 얻을 수 있으므로(BodyPaint3D의 SDK를 이용) 엔진에서 지형의 텍스쳐를 처리하는 부분도 해결이 된다.

지형 렌더링과 관련한 자료는 알고리즘 종류별로 엄청난 자료가 있기 때문에 구현에 어려움이 없겠지만 문제는 툴링이다. 시간도 없고 사람도 없다면 (이 경우에 돈도 없는 경우가 대부분이더라 -_-) 이 방법이 좋은 방법이 될 수 있을 듯.

 
참고

Nebula2 Maya Toolkikt, Multi Layering feature, http://www.radonlabs.de/technology/toolkit/toolkitdocs_html/MultilayerPaintingHowTo.html

by kimsama | 2007/12/16 16:06 | Development | 트랙백 | 덧글(1)

트랙백 주소 : http://kimsama.egloos.com/tb/1683300
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by kimsama at 2007/12/16 16:14
몇 달 전에 조준형님과 Nebula에 대한 이야기를 하다가 떠오른 아이디어입니다.
오랜만에 준형님 덧글을 보니까 갑자기 생각이 나서 옮겨 봤습니다. ^^
시간 나시는 분들...한번 테스트해 보고 피드백을~~

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶