맥스에서 라이트 정보를 텍스처에 렌더링하는 렌더투 텍스처 기능이 있어서 손쉽게 좋은 품질의 라이트 맵을 얻을 수 있습니다. 하지만 게임에서 자체적으로 월드 툴(소위 인하우스 월드 툴)을 만들어서 배경을 만들고 오브젝트를 배치하는 경우에는 맥스와 연동하기가 쉽지 않습니다.
하지만 툴에서 메시 정보를 export 하고, 맥스에서 맥스 스크립트로 import하면 쉽게 처리가능합니다. (간단하게 텍스트로 export 해서 스크립트에서 읽어서 그대로 생성하게 만들어서 사용했었습니다.)
간단하게 몇 가지 정리해봅니다. (특별히 필요한 부분이 아니면 따로 찾아서 정리하지는 않아서 정보를 별로 없습니다. 참고하셔서 키워드로 검색해보시면 기타 정보도 쉽게 찾으실 수 있을 겁니다.)

머트리얼 생성
(texturefilename <= 텍스처이름)
(texturePath <= 텍스처 있는 경로)

local bimap, mat, tex;

btmap = openBitMap (texturePath + texturefilename) -- bitmap 열기
tex = BitmapTexture bitmap:btmap name:texturefilename) -- 텍스처 생성
mat = standardmaterial name:texturefilename  -- 기본 머트리얼 생성
mat.diffuseMap = tex     -- diffuse map 으로 세팅
mat.diffuseMapEnable = true

--mat.opacityMap = tex     -- opacitymap으로 세팅하고 싶으면 opacitymap으로
--mat.opacityMapEnable = true

showTextureMap mat on     -- 활성화


멀티서브머트리얼 생성 ( materialnum <= 서브 머트리얼 개수)
material = multiMaterial numsubs:materialnum

for i=1 to materialnum do
(
...
material[i] = mat;
)


메시 생성
(numVerts <= 버텍스 개수)
(numFaces <= 페이스 개수)
(mat <= 머트리얼)
(meshName <= 메시 이름)
m = mesh numverts:numVerts numfaces:numFaces material:mat name:meshName
....
update m

버텍스 세팅

for i=1 to numVerts do
(
...
setVert m i x y z  -- setVert 메시 버텍스인덱스 x y z
)

페이스 (트라이앵글) 세팅
for i=1 to numFaces do
(
...
setFace m i v0 v1 v2  -- SetFace 메시 페이스인덱스 버텍스인덱스1 버텍스인덱스2 버텍스인덱스3
)


텍스처 UV세팅 (서브머트리얼 ID)
setNumTVerts m numTVerts

for i = 1 to numTVerts do
(
...
setTVert m i tu tv 0.0  -- SetTVert 메시 t버텍스인덱스 u v w
)

buildTVFaces m

for i = 1 to numFaces do
(
...
setTVFace m i v0 v1 v2  -- SetTVFace 메시 페이스인덱스 t버텍스인덱스1 t버텍스인덱스2 t버텍스인덱스3
-- 멀티서브머트리얼인경우
setFaceMatID m i matID  -- SetFaceMatID 메시 페이스인덱스 머트리얼인덱스
)


맥스 스크립트는 너무나 간단하지만 너무나 느립니다. T_T

참고 : http://digibath.com/repository/rendering_to_texture.pdf

댓글을 달아 주세요

  1. jeddli 2007/02/11 00:45  댓글주소  수정/삭제  댓글쓰기

    그래도 bounding box만 출력되게 해놓고 와이어 프레임으로 임포트 하면 조금은 봐줄만큼은 돌아가더군요.. 이전에 우리는 툴에서 따로 엑스포트를 안하고 엔진이 매쉬를 임포트하는 플러그인을 SDK로 제작하고, 게임에서 사용하던 맵데이터 자체를 스크립트로 읽어 버렸습니다. 이러면 매쉬자체를 임포트 하는데는 조금 속도가 이득이 있지 않았을가 생각되네요.

  2. big miosotis tit 2007/10/18 07:38  댓글주소  수정/삭제  댓글쓰기

    아주 재미있는 지점. 감사.

  3. stripper show 2007/10/18 07:54  댓글주소  수정/삭제  댓글쓰기

    너의 위치를 방문한 즐기는!