我正在尝试使用Ogre和Bullet来设置一个城市环境,但我在弄清楚如何将网格加载到Bullet时遇到了麻烦。谷歌显示了对Collada进口商的引用,但似乎已从SVN中删除。
Ogre网格将是最好的导入,但我也有.dae和.blend文件,如果可能的话,可以使用这些文件。
发布于 2011-02-17 00:07:23
在Irrlicht中使用Bullet时,我也有同样的要求。除了自己编写物理加载代码之外,我找不到任何解决方案。我在3d编辑器中使用了对象命名约定,在加载模型时,我遍历子对象并为每个标记的对象构造一个合适的btRigidBody。
例如。
if (needsBody) {
if (prefix == "ball") {
body = createSphereBody(mesh, density);
}
else if (...关节也是如此:
if (parent && parent->body) {
// add constraint
...
if (prefix == "ball") {
// ball/socket joint
constraint = new btGeneric6DofConstraint(
*parent->body, *body, frameInA, frameInB, true);
}
else if (...createSphereBody()函数根据网格顶点计算半径。
希望这能有所帮助。
发布于 2013-11-28 03:12:35
如果使用3DS Max进行建模,则可以使用OgreMax插件导出OGRE的场景,使用3DS Max的项目符号插件导出物理对象。您可以将这两个集合分别加载为OGRE节点和bullet对象,并根据它们的名称组合物理/图形模型。
这就是我在我自己的游戏中是如何做到的:
来源:https://github.com/SabinT/Wings-Of-Chaos
演示:http://www.youtube.com/watch?v=eryWgIuqC7I
我很久以前就停止了这方面的工作,但希望这段代码能对从事Ogre/Bullet工作的人有所帮助。也许有人会从中收集一些有用的代码。
您可能对CsGameLevel.cpp文件感兴趣。Load()方法首先加载Ogre场景,然后通过LoadStaticGeometry()方法加载项目符号刚体。
https://stackoverflow.com/questions/4951896
复制相似问题