3ds Max 2009 Plugin + vs 2008

本文详细介绍了如何使用3dsMax2009SDK在Visual Studio 2008中开发插件,包括解决版本兼容性问题、设置环境变量、编写并测试插件代码等关键步骤。同时,提供了调试技巧和优化建议,帮助开发者快速上手。

        由于总觉得max的渲染效果比POV要好,也更方便(旋转,缩放,平移,视角...),因此需要把流体网格导入到MAX中,因此接触了一下3ds Max 2009 Plugin的开发。环境:vs2008。

        用安装软件重新将SDK安装好之后,按照网上的教程,其实就是3ds Max 2009 SDK\maxsdk\howto\3dsmaxPluginWizard中的readme.txt中的步骤后,在vs2008中创建项目的界面能看到3dsmaxPluginWizard,但创建项目就直接失败了。网上一查之后发现3ds max 2009 SDK默认是支持vs2005 SP1的,不支持vs2008。原本以为要重新安装上vs2005,后来见到以下帖子


        http://hi.baidu.com/jxw167/blog/item/b43334eb55a800ddd539c999.html

其中提到,在readme.txt完成后还要做以下几步:
{
        3、将max安装目录Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard下3dsmaxPluginWizard.vcproj文件及Autodesk \3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard\Templates\1033下root.vcproj文件里的 Version="8.00"改为Version="9.00";

        4、将max安装目录Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard下3dsmaxPluginWizard.vsz文件中 Wizard=VsWizard.VsWizardEngine.8.0改为Wizard=VsWizard.VsWizardEngine.9.0

        5、编译的时候可能会出现如下错误:
1>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
1>cl : Command line error D8022 : cannot open 'D:\Program'
修改方法:Properties->C/C++->Command Line->Addition Options去掉:/LD @D:\Program Files\Autodesk\3ds Max 2009SDK\maxsdk\ProjectSettings\AdditionalCompilerOptions.txt  
重新编译即可完成。
}

        其实其中5、的错误,是由于SDK的安装路径中含有空格符号,这个问题在官方的视频教程中已有提到。解决的方法是
Properties->C/C++->Command Line->Addition Options     将  /LD @D:\Program Files\Autodesk\3ds Max 2009
SDK\maxsdk\ProjectSettings\AdditionalCompilerOptions.txt  修改为: /LD @“D:\Program Files\Autodesk\3ds Max 2009SDK\maxsdk\ProjectSettings\AdditionalCompilerOptions.txt”    即加一对引号。

        为了测试工程是否建立正确,在MyMaxExporter.cpp中的DoExport()函数中打上断点,开始调试后,选择打开3dsmax.exe,然后选择“导出”,在选择(*)为导出格式时,按“保存”之后断点就被触发了,这说明工程建立正确,继续调试。max界面中则出现:

          

        关闭后,提示导出出错,这是正常的。
        通过以下函数修改一些提示信息:


int MyMaxExporter::ExtCount()
{
	return 1;
}

const TCHAR *MyMaxExporter::Ext(int n)
{		
	return _T("inc");
}

const TCHAR *MyMaxExporter::LongDesc()
{
	return _T("inc File for POV");
}
	
const TCHAR *MyMaxExporter::ShortDesc() 
{			
	return _T("inc");
}

const TCHAR *MyMaxExporter::AuthorName()
{			
	return _T("Q.Zhang");
}

const TCHAR *MyMaxExporter::CopyrightMessage() 
{	
	return _T("ECNU");
}

        重新调试后,导出的下拉信息中出现了上文中inc文件。

        


        然后就可以开始编写自己的导出函数了。

        强烈推荐官方视频教程,跟着他敲代码,敲着敲着就懂了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值