Posted on 2010-03-02 23:34
杨杨 阅读(1243)
评论(1) 编辑 收藏 引用
OGRE1.7发布了. 以前的插件导不出对应的实时材质了. 于是下决心自己写一个.
想着好歹在引擎组呆了这么久. 这么个插件应该写的得心应手. 没想却栽了无数的跟头.
现在记录下这些教训.
言归正传. 首先google. baidu. MAX 插件编写. 得知MAX的插件种类庞多. 先的选择一个
合适的. 几经波则. 觉得GUP比较合适. 这里简要介绍一下它的两个成员函数
GUP::Start() 和 GUP::Stop(). 根据字面意思就能得知它的用途. 分别会在插件启动和卸载
的时候被调用. 这里继承了它. 并将他作为整个导出插件的框架
有个菜单应该很方便. 不过创建这个菜单让我重装了两次系统.
万恶的IMenuManager::RegisterMenuBarContext 和IMenuManager::RegisterMenu,
如果误调用这两个函数. 会导致MAX启动一次之后再也无法启动. 粘出创建菜单的代码.
创建好菜单. 通过相应菜单项调出MFC对话框.这里顺便提一下. 经过实验. 在MAX中是可以使用MFC DLL的.
. 只是. 这样就无法方便的使用MAX提供的插件生成向导了.
准备工作都做好了. 开始解析MAX数据. 使用MAX提供的IGMAE来找出相关数据.几经波则. 在解析MAX的mesh数据和骨骼数据时. 遇到了太多困难. 例子给的信息太少. 网上的相关教程也少. 逼的我都有给Autodesk 公司投简历的冲动. 思来想去. 决定和MAX妥协. 利用oFusion导出mesh. 然后在载入mesh. 从MAX中解析出材质. 达到预览的效果. 最后导出实时材质.