Maya教程 :转换用MEL导出的3D模型 |
||
|
| ||
之前已经了解了如何用MEL导出建好的3D模型,并且提到了重用Denis Schluchter发布的MEL Script。这个Script导出的ogl文件格式可以从前文提供的那个Dump程序的源码中看出,不过下面这幅经过整理的类图会更清楚一些:
根据上图生成的源码: 有了这些类结构之后,编制一个读取导出的ogl文件是相当直接的,详见MayaExp::loadFromFile(const char * fname)方法。 注意:loadFromFile里有多处malloc调用,这些内存大多没有适当的free掉,反正这个程序是一次性运行的,进程结束时系统会回收的。如果你准备在别的应用中使用这些代码,就要当心了。 对于单纯的模型数据来说,该MEL导出的ogl文件还是稍嫌复杂,我们可以把它做得更简单些,只要两个int分别记录面和顶点的数量,然后依次写入顶点坐标(vector3)、法向(vetor3)、UV贴图坐标(vetor2)及三角形面三个顶点的索引(vetor3i),详细的转换步骤也在MayaExp.cpp里,有两个版本,一个将坐标值存成浮点数格式(MayaExp::saveAsFloat),另一个存成定点数格式(MayaExp::saveAsFixed)。 最后,写一个main来处理输入参数并调用MayaExp即可。 编译方法:将以上所有文件放到同一个目录里,打开一个Command Window,在命令行下用vc\bin\vcvars32.bat设好环境,然后运行: 包含所有程序文件的压缩包:maya_exp_all.zip 示例:flyship.mel -> flyship_tri.ogl -> flyship.fixed.000 |
||
|
如果觉得本文有用,请抽空点击感兴趣的广告。您的举手之劳,可以给作者巨大的鼓励! |
||