查看: 1627|回复: 12

求助:使用osgBullet时球体、地形自动等效成立方体怎么办呢?

[复制链接]

该用户从未签到

发表于 2013-9-3 12:19:21 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 天行剑 于 2013-9-4 10:31 编辑

如题,使用osgbullet物理引擎来做碰撞检测,打算实现这样的场景:一个球体从高处自由落体,落到一个崎岖不平的道路上,在道路上由于惯性继续运动然后由于摩擦力停下保持静止。现在的问题是,我用3ds max做好的球体、崎岖地形放到引擎中使用时,球体、地形均被自动等效成立方体,最终效果相当于两个立方体的碰撞了……请问这是什么原因呢?如果想实现目标该怎么做呢?

该用户从未签到

 楼主| 发表于 2013-9-4 10:29:39 | 显示全部楼层
怎么没人回答呢?请大家帮我看看啊

该用户从未签到

发表于 2013-9-5 17:58:43 | 显示全部楼层
不解。你想给模型上什么碰撞盒取决于你自己吧。

该用户从未签到

 楼主| 发表于 2013-9-5 18:19:02 | 显示全部楼层
daiday 发表于 2013-9-5 17:58
不解。你想给模型上什么碰撞盒取决于你自己吧。

可是如何做如何才能使碰撞盒与模型的原形状尽量吻合呢?

该用户从未签到

发表于 2013-9-5 21:20:00 | 显示全部楼层
不知道对性能要求如何啊。如果场景不大的话,对于一个复杂的物体来说,如果希望整个物体用更精细的包围盒包装起来的话,试试通过osgbCollision中的btXXXCollisionShapeFromOSG来实现。其实形状不复杂的话,使用若干简单包围盒组合的方式更容易一些。如果想根据OSG的模型直接创建一个复合的包围盒的话,使用 osgbCollision::btCompoundShapeFromOSGGeodes ,里面的参数有2个,第一个就是节点指针,第二个需要指定一下形状类型。采用TRIANGLE_MESH_SHPAE_PROXYTYPE的效果不错。

该用户从未签到

 楼主| 发表于 2013-9-6 10:23:31 | 显示全部楼层
daiday 发表于 2013-9-5 21:20
不知道对性能要求如何啊。如果场景不大的话,对于一个复杂的物体来说,如果希望整个物体用更精细的包围盒包 ...

按照你说的果然成功了,谢谢啦!O(∩_∩)O~

该用户从未签到

 楼主| 发表于 2013-9-8 21:50:40 | 显示全部楼层
daiday 发表于 2013-9-5 21:20
不知道对性能要求如何啊。如果场景不大的话,对于一个复杂的物体来说,如果希望整个物体用更精细的包围盒包 ...

你好!这个方面我又遇到新情况了:我在场景中加入两个物体:崎岖的地形平面、小球,我把地形的质量设置为0,这样它就保持静止状态了,然后我让具备重力的小球从高空落向地形,结果碰撞发生在距离平面还有一段的地方,请问这是什么原因呢?地形也是在3ds max里面做好导出的,为何碰撞发生在两个物体接触之前呢?

该用户从未签到

发表于 2013-9-8 22:04:36 | 显示全部楼层
根据碰撞检测的理论,碰撞可能是根据、或者距离计算的,碰撞发生在距离平面还有一段的地方,是因为包围盒半径或距离,不予小球一致,或者地形的包围盒问题?可能是这方面原因。

该用户从未签到

 楼主| 发表于 2013-9-11 11:07:32 | 显示全部楼层
abnerring 发表于 2013-9-8 22:04
根据碰撞检测的理论,碰撞可能是根据、或者距离计算的,碰撞发生在距离平面还有一段的地方,是因为包围盒半 ...

这个……这么说吧,我做了一个长方体(3ds max做的)作为地面(长宽相等,高度较小与长度宽度比可忽略不计,这样可以近似地看为一个平面了),然后再地面上加了一个隆起的土丘(扁扁的球体放到长方体上),又在地面上挖了一个大坑(用球体和长方体做布尔减运算得到),最后用小球与地面实施碰撞,出现的问题是:小球与土丘、地面碰撞符合物理现象,可是小球落向大坑时出现问题了,总是落在与原始地面平行的地方,看上去就像悬浮在坑上一样。这个怎么解释呢?

该用户从未签到

发表于 2013-9-11 11:23:36 | 显示全部楼层
天行剑 发表于 2013-9-11 11:07
这个……这么说吧,我做了一个长方体(3ds max做的)作为地面(长宽相等,高度较小与长度宽度比可忽略不计 ...

是不是包围盒没变造成的?
QQ截图20130911112011.png

该用户从未签到

 楼主| 发表于 2013-9-11 11:25:49 | 显示全部楼层
abnerring 发表于 2013-9-11 11:23
是不是包围盒没变造成的?

是啊 就是像你所说的 我用CONVEX_HULL_SHAPE_PROXYTYPE和TRIANGLE_MESH_SHPAE_PROXYTYPE都试了,都不行

该用户从未签到

发表于 2013-9-11 14:50:37 | 显示全部楼层

该用户从未签到

 楼主| 发表于 2013-9-11 23:32:06 | 显示全部楼层
liuzhiyu123 发表于 2013-9-11 14:50
http://bbs.osgchina.org/forum.php?mod=viewthread&tid=9230&extra=page%3D1

谢谢!我去学习学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表