|
|

楼主 |
发表于 2008-1-12 12:55:00
|
显示全部楼层
Re: 请教如何实现这样的3dsmax插件
没人理我啊,已经找到方法了。
我找了个Ogre自带的OgreExport的模型导出插件代码,能去掉的都去掉
这样就成了最简单的导出插件了。
主要是继承这个接口
class OgreMaxExport : public SceneExport
{
virtual int DoExport(const TCHAR *name,ExpInterface *ei,Interface *i,
BOOL suppressPrompts=FALSE, DWORD options=0);
}
在导出的时候3dmax会调用DoExport
在这里就可以用ExpInterface 和 Interface做任何事情了;
以下代码 用max中的 "Camera1"相机拍摄一帧图片并保存。
int OgreMaxExport: oExport(...)
{
Bitmap *bmap;
BitmapInfo bi;
bi.SetType(BMM_TRUE_32);
bi.SetWidth(320);
bi.SetHeight(200);
bi.SetFlags(MAP_HAS_ALPHA);
bi.SetCustomFlag(0);
bi.SetName(_T("F:\\1.tga") );
bmap = TheManager->Create(&bi);
if(bmap)
{
INode * pCam = i->GetINodeByName(_T("Camera1") );
if( pCam )
{
i->OpenCurRenderer(pCam, NULL);
i->CurRendererRenderFrame( 0 , bmap );
i->CloseCurRenderer();
bmap->OpenOutput(&bi);
bmap->Write(&bi);
bmap->Close(&bi);
bmap->DeleteThis();
}
}
return IMPEXP_SUCCESS;
} |
|