在XNA中使用panda插件导出的.X文件注意事项
2009-09-30 09:46
375 查看
最近在使用.X文件时遇到了很多问题,主要集中在用panda插件导出的模型总是出现模型朝向不正确,模型比例出错等问题。
引起这些问题的原因很多,先说说坐标系,XNA采用右手坐标系,3dsmax也采用右手坐标系,这是一样的,但是不要忘了,当我们使用DXSDK自带的模型查看器观察模型的时候,D3D用的可是左手坐标系,而panda作为.X文件导出器,自然对D3D的坐标系格外照顾,这样看起来问题有一些复杂,好在我们不需要纠缠这些,只要对上述坐标系有个数就可以了。因为XNA和3dsmax的坐标系相同,都是右手坐标系,这样就好办了。不过要是你认为只需要把坐标系一一对应再导出就可以了,那你就错了,仔细看看3dsmax的坐标系,你会发现他的Z是朝上的,美工建模时采用的都是这种坐标系,也就是说和我们平时常用的以Y为上向量不符,晕了吧,不要着急,下面就将关键的,嘿嘿。
1. 通过Alt加鼠标拖动3dsmax世界系,使得X轴指向左边,Y正对着你,Z朝上。
上图中左下角就是3dsmax世界坐标系,中间有个模型,这个模型的红绿蓝三轴分别对应了XNA中的世界X,Y,Z轴,即这个模型导出后加载到XNA显示的就是XNA的世界坐标系。明白了吧,这样我们只要让美工按照这个3dsmax坐标系建模就可以了,下面说panda导出参数的设置。
2. 主要修改两处
a) 确认3DS Max Objects页中的Use local object space没有被钩选
b) 确认X File Settings页中的Left Handed Axis被钩选
经过这样的处理就大功告成了,你可能会迷惑,命名XNA是右手坐标系,为什么要选择左手坐标系导出呢?其实道理很简单,为了兼容性,.X不是微软为了XNA而设计的,他出现的比XNA早的多,都可以当XNA的爷爷了,.X本来是针对D3D开发的,而D3D默认的是左手坐标系,因此.X文件也采用左手坐标系,这时你可能又要问,那为什么左手坐标系导出的.X文件可以在XNA正确使用呢,解铃还需系铃人,答案在微软的素材导入器中,XNA默认提供的.X导入器会在那个阶段自动把左手坐标系转换成XNA支持的右手坐标系,这样不就皆大欢喜了,^_^。打开微软自带的.X模型浏览器,看起来应该是这样的:
把模型加入到XNA中去看看吧,你会有新的收获。
相关文章推荐
- xna使用panda导出.x文件
- ORACLE使用EXP导出dmp文件注意事项
- 使用Spread.Net颜色导出的注意事项
- Linux C ftruncate 函数清空文件注意事项(要使用 lseek 重置偏移量)
- mybatis映射文件中<if>使用注意事项
- 使用java命令行测试带有import package的java文件的注意事项
- Spring中使用@Value读取porperties文件中的属性值方法总结及注意事项
- CSS覆盖height注意事项,暨Chrome插件的使用
- 关于使用while(!filePCloud.eof())判断文件结尾进行数据输入装换时注意事项
- zip,collections.defaultdict lambda,csv.DictReader用法简介,及subprocess.call注意事项(需要使用chmod将待执行的文件变为可执行)
- goldengate使用ASM存放trail文件注意事项
- unity3d 资源文件从MAX或者MAYA中导出的注意事项
- unity3d中资源文件从MAX或者MAYA中导出的注意事项
- 文件使用方式和注意事项
- Netbeans使用xdebug插件调试PHP程序的一个注意事项
- 使用webpack打包.css文件时需要注意的事项
- 3DMax导出.x文件注意事项
- Mybatis 的分页插件 PageHelper的使用注意事项
- 使用DOS编译java文件时的注意事项
- VS2010下使用dmp文件和pdb文件定位程序异常代码行号的注意事项