2014-01-16 24 views
0

我正在加載使用DirectX 11的動畫模型。現在,我正在解析MS3D模型文件的步驟,並且正在計劃使用MS3D SDK(http://www.milkshape3d.com/)加載MS3D模型。但似乎這個SDK用於在Milkshape建模軟件中編寫插件,而不是在獨立程序中使用。連接在SDK的例子是如下一個DLL:使用milkshape3d SDK加載MS3D文件

cMsPlugIn* CreatePlugIn() 
{ 
    return new cPlugIn(); 
} 

int cPlugIn::Execute (msModel *pModel) 
{ 
    //process the model here. 
} 

的問題是,我該指針msModel傳遞到DLL,我不知道如何從MS3D文件創建它。

我閱讀了本庫的與msModel結構有關的規範,因爲它是如下所示。

/********************************************************************** 
* msModel 
**********************************************************************/ 

MSLIB_API void   msModel_Destroy (msModel *pModel); 

MSLIB_API int   msModel_GetMeshCount (msModel *pModel); 
MSLIB_API int   msModel_AddMesh (msModel *pModel); 
MSLIB_API msMesh*  msModel_GetMeshAt (msModel *pModel, int nIndex); 
MSLIB_API int   msModel_FindMeshByName (msModel *pModel, const char *szName); 

MSLIB_API int   msModel_GetMaterialCount (msModel *pModel); 
MSLIB_API int   msModel_AddMaterial (msModel *pModel); 
MSLIB_API msMaterial* msModel_GetMaterialAt (msModel *pModel, int nIndex); 
MSLIB_API int   msModel_FindMaterialByName (msModel *pModel, const char   *szName); 

MSLIB_API int   msModel_GetBoneCount (msModel *pModel); 
MSLIB_API int   msModel_AddBone (msModel *pModel); 
MSLIB_API msBone*  msModel_GetBoneAt (msModel *pModel, int nIndex); 
MSLIB_API int   msModel_FindBoneByName (msModel *pModel, const char *szName); 

MSLIB_API int   msModel_SetFrame (msModel *pModel, int nFrame); 
MSLIB_API int   msModel_GetFrame (msModel *pModel); 
MSLIB_API int   msModel_SetTotalFrames (msModel *pModel, int nTotalFrames); 
MSLIB_API int   msModel_GetTotalFrames (msModel *pModel); 
MSLIB_API void   msModel_SetPosition (msModel *pModel, msVec3 Position); 
MSLIB_API void   msModel_GetPosition (msModel *pModel, msVec3 Position); 
MSLIB_API void   msModel_SetRotation (msModel *pModel, msVec3 Rotation); 
MSLIB_API void   msModel_GetRotation (msModel *pModel, msVec3 Rotation); 
MSLIB_API void   msModel_SetCamera (msModel *pModel, msVec3 Position, msVec2  RotationXY); 
MSLIB_API void   msModel_GetCamera (msModel *pModel, msVec3 Position, msVec2  RotationXY); 
MSLIB_API void   msModel_SetComment (msModel *pModel, const char *pszComment); 
MSLIB_API int   msModel_GetComment (msModel *pModel, char *pszComment, int  nMaxCommentLength); 
MSLIB_API void   msModel_SetFileName (msModel *pModel, const char *pszFileName); 
MSLIB_API int   msModel_GetFileName (msModel *pModel, char *pszFileName, int nMaxFileNameLength); 

有類似功能:

msModel_Destroy(msModel *pModel), 

但像

msModel * msModel_Destroy(char* file_name); 

我想問問有什麼辦法可以解決這個問題沒有作用?

回答