【问题标题】:Loading a Bullet Physics mesh from a file从文件加载 Bullet Physics 网格
【发布时间】:2011-02-09 23:46:29
【问题描述】:
我正在尝试使用 Ogre 和 Bullet 设置城市环境,但我无法弄清楚如何将网格加载到 Bullet 中。 Google 显示了对 Collada 导入器的引用,但这似乎已从 SVN 中删除。
Ogre 网格是最好的导入,但我也有 .dae 和 .blend 文件,如果可能的话可以使用它们。
【问题讨论】:
标签:
c++
3d
bullet
bulletphysics
【解决方案1】:
在将 Bullet 与 Irrlicht 一起使用时,我也有同样的要求。除了自己编写物理加载代码之外,我没有找到任何解决方案。我在 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() 函数根据网格顶点计算半径。
希望对您有所帮助。