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);
我想問問有什麼辦法可以解決這個問題沒有作用?