DXDialog4 - Wavefront Obj 출력

Wavefront Obj로 익스포트된 메시를 렌더링해보자.

<맥스에서 OBJ 익스포트 하기>
맥스에서 익스포트는 Wavefront Object (*.OBJ)로 익스포트한다. 익스포트 대화 상자에서 확인 버튼을 누르면 OBJ Export 대화 상자가 뜬다.

 

"Use materials"과 "Create material library" 체크 박스를 체크 하면 메트리얼 속성과 텍스쳐 관련 정보를 *.mtl 파일에 저장 한다.

오른손 좌표계를 사용하므로 "Rotate model" 체크 박스는 해제한다.

 

여기서 확인 버튼을 누르면 MTL Export 대화 상자가 뜬다.

"Export maps" 체크박스를 체크 해야 텍스쳐 이름이 저장된다.

 

<OBJ를 메시로 출력>

OBJ 포맷의 박스를 실행한 결과 화면이다. 텍스쳐도 box.mtl에 있는 정보로 출력하는건 구현하지 못했다. 파싱할 때 약간 어려움이 있어서 다음에 구현 할려고 한다. 참고로 DirectX 샘플에도 OBJ 파일을 출력하는 샘플이 있다.

위치는 :
C:\Program Files\Microsoft DirectX SDK (August 2009)\Samples\C++\Direct3D\MeshFromOBJ

메시를 출력하는 DxPolygon의 사용법은 다음과 같다.

오브젝트 선언
DxPolygon*      g_pObjModel = NULL;

오브젝트 생성
g_pObjModel = new DxPolygon;

오브젝트 초기화
g_pObjModel->LoadObj( "box.obj" );

텍스쳐 지정
g_pObjModel->SetTexture( g_dxDevice, "grim.jpg" );

렌드링
g_dxDevice->BeginScene ();
g_pObjModel->SetRotate( 0, 0, angle );
g_pObjModel->Render( g_dxDevice );
g_dxDevice->EndScene ();

오브젝트 소멸
_DELETE_<DxPolygon*>(g_pObjModel);

 

소스: wavefront_obj.zip