转:折腾一晚上Bullet及Ogre相关工具的成果 -- 3Ds Max,Maya, blender, GameKit

起始目的很简单,整合Bullet及Ogre,找个能够生成.scene和.bullet文件的建模工具。

折腾一晚上Bullet及Ogre相关的东西,基本上就像爱迪生发明灯泡一样,得出了N个失败的教训,总结如下,大家不要再走弯路了。

1. Blender, 开源产品,我寄予了厚望,结果却是大大的失望,Blender的Ogre插件那个弱。。。。。Mesh导出还算可用,但是不能一次导出多个,要导出多个你就去吐血吧。而Scene导出插件简直就是跟你开国际玩笑,只能导出scene文件,需要你自己用Mesh插件导出所有的模型,于是乎,两者合作的结果是,你需要一个一个的导出mesh,然后再用Scene导出插件导出Scene。(不过经测试,的确可用)这个就算了,Blender内置bullet物理支持,编辑非常方便,在自己的Game Engine中模拟也是几乎完美,还支持constraints,我都惊叹了。。。。结果是,无法导出.bullet文件,用了erwin提供的改版blender,发现没有菜单,于是乎,google出了下列脚本:

import PhysicsConstraints
PhysicsConstraints.exportBullet("testFile.bullet")

运行之,发现没有PhysicsConstraints这个模块,再Google之,要先运行Game Engine(相当于动态加载了此模块),然后再运行脚本。(先按‘p‘运行,然后按space键运行脚本)

好不容易出来个bullet文件,尝试加载之,一堆错误输出,有些物体被创建,但是可能因为坐标轴的问题导致重力方向不对,有点乱。。。。。。。。。。。

暂时放弃寄希望于Blender的mesh,scene导出(这个过程是在复杂)+.bullet文件导出了,那么用Blender自己的打包文件.blender吧,开始尝试GameKit。

2. GameKit,虽然以前试过,知道其还不成熟,到了现在感觉要用blender,那么就必须要用gamekit了(如上原因),这次硬着头皮实验,获取svn代码,直接用cmake生成iPhone工程(按官方文档方法所述),无法用Xcode打开,使用Gamekit工程中提供的改版cmake源码编译一套cmake,再生成工程,还是无法打开,下载官方发布的源代码,再生成,可以打开了(明显svn上最新的源码的cmake脚本有bug了)。编译,错误无数,查看到某人的类似经历,他竟然编译成功并且运行了,但是运行后错误同样惨不忍睹。遂放弃。。。。。

3. MAYA, OgreMax插件的MAYA版本同样异常出色,而Maya的bullet插件原来是迪斯尼做的,也还算好,支持简单的constraints。尝试载入了一个复杂的场景,导出bullet,结果载入时崩溃。自己尝试制作一个简单的场景,通过bullet的demo载入正常。也就是说估计哪里还是有问题,但是起码还算可用吧。然后尝试将此用Bullet插件建立的Max文件导出为scene,用Ogre载入,没有任何东西显示。。。。。这就悲剧了,同样是在MAYA当中,你要么使用Bullet的插件编辑Bullet的东西,可以到处.Bullet文件,但是无法显示,反之,用MAYA自身编辑的模型又无法拥有物理,无法导出.bullet文件,这是最大的悲剧,拆开可用,合起来不能用。。。。。、

4. 3Ds Max, 我最熟悉的工具,用于建模很好很强大,OgreMax这个Ogre的Scene导出也非常不错(除了愚蠢的不知道复制出来的模型可以用同一个mesh), 可以一次导出一个场景的所有模型的mesh文件及scene文件。最开始用Bullet的Max插件导出了一个.bullet文件无法使用,非常无奈。以为这个插件根本无法使用,差点放弃。但是因为实在没有太好的其他解决方案,所以后来自己通过插件源代码编译插件,希望新版插件能够修复一些bug,最后发现,问题的核心在于我通过plane创建出来的static的物体无法使用,(应该是转成bullet中的triangle mesh了,载入时会失败,但是其他的sphere和box等其实可以正常使用,包括普通的static物体。一下子让我在黑暗中看到了光明。。。。。。。。神啊。。。。。。。。。。。。。

但是其实还有几个问题,其一,物理和显示的关联。其二,bullet的坐标轴和Max的坐标轴不一样,导出的物理会有点混乱。但是,已经有路可以走了。。。。。。。。。。。

时间: 2024-10-03 08:14:08

转:折腾一晚上Bullet及Ogre相关工具的成果 -- 3Ds Max,Maya, blender, GameKit的相关文章

数百个 HTML5 例子学习 HT 图形组件 – 3D 建模篇

http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很多情况下不需要借助 3Ds Max 和 Blender 等专业 3D 建模工具也能做出很多效果,例如  http://www.hightopo.com/guide/guide/core/3d/examples/example_3droom.html 这个 3D 电信机房监控例子整个都是通过 HT 提供的 AP

数百个 HTML5 例子学习 HT 图形组件 – 3D建模篇

http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很多情况下不需要借助 3Ds Max 和 Blender 等专业 3D 建模工具也能做出很多效果,例如  http://www.hightopo.com/guide/guide/core/3d/examples/example_3droom.html 这个 3D 电信机房监控例子整个都是通过 HT 提供的 AP

转:典型开源3D引擎分类比较

常见的3D引擎有:Unreal.Quake.Lithtech.OGRE.Nebula.Irrlicht.Truevision3D... 其中开源免费的有:OGRE.irrlicht.fly3d.NeoEngine.revolution3d. Nebula2.Genesis3d等. OGRE 在免费.开源的引擎中评价最高,一个原因是作为一个图形渲染引擎,它支持的图形特性最多,所以渲染质量也不错:另一个原因是设计模式的清晰:另外,速度也不错. OGRE 将专注于向一个纯粹的.然而富于协作和扩展性的图

转:Bullet物理引擎不完全指南(Bullet Physics Engine not complete Guide)

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 前言 Bullet据称为游戏世界占有率为第三的物理引擎,也是前几大引擎目前唯一能够找到的支持iPhone,开源,免费(Zlib协议,非常自由,且商业免费)的物理引擎,但是文档资料并不是很好,Demo虽然多,但是主要出于特性测试/展示的目的,会让初学者无从看起,一头雾水.我刚学习Bullet的时候困于没有好的文档及资料,非常没有头绪,折腾了很久,所以就发挥没有就创造的精神,写作及整

折腾阿里云笔记

近期洒家买了个阿里云云服务器ECS玩玩,虽然国内的服务器网速快,但是毕竟在天朝,有的地方玩得也是有些不爽.以下是洒家这两天折腾的记录. 域名 洒家只是搞一个自己用的服务器,因此只需一个免费域名: http://www.freenom.com/ ,用Freenom DNS Server 填上自己的IP即可. 绕过备案 洒家弄好之后,用域名访问,出现了喜闻乐见的温馨提示: 该网站暂时无法访问 尊敬的用户,您好 很抱歉,该网站暂时无法访问,可能由以下原因导致: 原因一:未备案或未接入:根据<非经营性互

JAVA魔法堂:折腾Mybatis操作SQLite的SQLException:NYI异常

一.坑爹 在使用Mybatis3.2.7+sqlite-jdbc3.3时,在执行查询操作,不管returnType和parameterType传什么值均报位于mapper.xml文件中的java.sql.SQLException:NYI错误. 二.得救 参考http://www.cnblogs.com/rojas/p/4001510.html得知原来是jdbc问题,于是在http://www.java2s.com/Code/Jar/s/Downloadsqlitejdbc372jar.htm下载

【转】将3DMAX中的动画通过OGREMAX导入OGRE中,并生成相应的骨骼动画

原创内容转载请注明:http://weibo.com/gdexqin 程序代码的的基础在http://blog.sina.com.cn/s/blog_7c03dc6f01012um2.html中 先看导入后的效果. 动画模型是用别人传到网上的(好像这个人物叫真名法典的样子,不太认识,但是感谢上传者),之前我们已经完成了通过OGREMAX导入静态的场景的效果,导入骨骼动画我们需要对OGREMAX的导出选项进行一些修改. 下面先了解一下OGREMAX的一些基本选项(转自网络): ----------

一月二十二日星期四

数组找重复算法demo. 从吃完晚饭折腾到晚上.还在完善中...   import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class FindNumber { @SuppressWarnings("resource") public static void main(String[] args) { List<Int

nagios监控内出错NRPE: Unable to read output 解决!

 nagios监控内出错NRPE: Unable to read output 解决! 由于编写check_mem监控脚本,在监控机报警:NRPE: Unable to read output,其他监控项目正常 初步认定是nagios没有权限去实行check_mem脚本: 1.在监控主机监控客户机内存,遇到NRPE: Unable to read output # /usr/local/nagios/libexec/check_nrpe -H 1192.168.1.10 -c check_mem