查看: 1203|回复: 7

求助!关于LineSegentIntersector的问题

[复制链接]

该用户从未签到

发表于 2010-12-21 18:07:59 | 显示全部楼层 |阅读模式
我设置了一个物体(边长为1的立方)从空中坠落,判断物体与地面接触时,启动粒子系统来模拟烟尘。
我在地面设置了一个lineSegment,在物理落点的中心,竖直向上,起点为(0.0,0.0,0.0),终点为(0.0,0.0,2.0)。然后添加到IntersectVisitor iv中,并添加到场景根节点中,root-> accept(iv).
我在while(!viewer->done())中,不断地通过iv->ihits()判断是否碰撞.

坠物明明与射线有交点,但是iv->ihits()总是false,不知道怎么回事。

想请问问大家以上方法可行吗?可能哪个环节出了问题?

该用户从未签到

发表于 2010-12-21 18:14:11 | 显示全部楼层
root不应有任何旋转和位移,否则求交不对

该用户从未签到

发表于 2010-12-21 19:40:05 | 显示全部楼层
并且,root-> accept(iv)要随时测试

该用户从未签到

 楼主| 发表于 2010-12-22 09:41:30 | 显示全部楼层
感谢两位,果然是因为root中存在位移导致求交计算出现了问题。由于我的程序中涉及很多的动态物体,所以通过简单的碰撞检测可能难以解决问题,所以还是用个物理引擎吧,physX或者Bullet吧。

该用户从未签到

发表于 2010-12-22 15:13:08 | 显示全部楼层
root不应有任何旋转和位移,否则求交不对
我不认为这个解释是正确的,而且IntersectVisitor也不是应当使用的,它只是为了保持与早期版本的兼容性而设。您应该使用IntersectionVisitor

该用户从未签到

发表于 2010-12-22 16:39:37 | 显示全部楼层
mark了解

该用户从未签到

发表于 2010-12-23 10:20:32 | 显示全部楼层
对于 “root不应有任何旋转和位移,否则求交不对”  这句话array你能讲讲你的理解吗?我最近也在做这个,也遇到了类似的问题,望指教!谢谢!

该用户从未签到

发表于 2010-12-23 12:22:47 | 显示全部楼层
“root不应有任何旋转和位移,否则求交不对”,这句话本身没有什么道理,我似乎也没有什么可以讲解的地方?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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