查看: 3727|回复: 4

求助: 动画碰撞检测问题

[复制链接]

该用户从未签到

发表于 2009-6-15 17:26:23 | 显示全部楼层 |阅读模式
在项目中对动画进行碰撞检测,发现碰不到
使用testAnim例子中的代码,使用view中的pick object的方法(具体函数名字不记得了),还有osgUtil包中的线段相交的类也不能碰到动画节点,不知道大家有没有遇到这样的问题,谢谢帮助了 :'( :'(

该用户从未签到

发表于 2009-6-15 23:31:54 | 显示全部楼层
动画碰撞检测只是相对普通碰撞检测要复杂一点,,,可以采用包围盒,,也可以采用多条线段来检测~~~~~~

该用户从未签到

 楼主| 发表于 2009-6-16 07:16:06 | 显示全部楼层
我的伪代码是这样的:
使用delta3d中的AnimationHelp加载动画
将动画的osg节点作为g节点树的一个子节点
使用线段碰撞检测,检测是否和g节点下的所有子节点是否碰撞
(项目中大概就是这样的一种使用流程 发现怎么都碰不到那个动画节点)
参考osg碰撞检测的源代码,节点mask和相交访问器mask都是默认值-1(输出节点树的结构,到动画节点的路径上的mask都是默认值-1)
osg使用drawable绘制出的三角片做碰撞检测,delta3d也是这样实现的。

delta3d中好像动画还有很多问题没解决
1.动画创建问题
我的机器使用硬件创建动画根本看不到,只能用软件创建,在动画节点上加雾效看不出来
我同事的机器上软件和硬件都能创建,但是用硬件创建看不到雾效,软件就能看到雾效

楼上的说得简单碰撞检测是针对osgDB读出来的节点?采用包围盒、线段碰撞检测伪代码有没有?不是使用node的accept方法,使用线段相交访问器来做碰撞检测?节点上

[ 本帖最后由 lumin824 于 2009-6-16 07:18 编辑 ]

该用户从未签到

发表于 2009-6-16 09:40:52 | 显示全部楼层
delta3d我没有用过,,,,,碰撞检测当然是需要用访问器来实现的,,,这样方便控制,,也能一定得提高效率~~~~~

该用户从未签到

发表于 2010-3-12 23:09:21 | 显示全部楼层
使用访问器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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