游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: corpus

请教:多个物体在运动速度比较快的情况下的碰撞检测与

[复制链接]

24

主题

256

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
发表于 2006-10-10 08:24:00 | 显示全部楼层

Re:请教:多个物体在运动速度比较快的情况下的碰撞检测

下载个物理引擎来用一下,会比较方便
PhysX,ODE,
QQ群:23970405

65

主题

518

帖子

521

积分

高级会员

Rank: 4

积分
521
 楼主| 发表于 2006-10-10 09:05:00 | 显示全部楼层

Re:请教:多个物体在运动速度比较快的情况下的碰撞检测

最近一直没法上网,所以没有及时回复。谢谢各位了。
我昨天又试了一下用每贞更新多次,然后绘制一次的方式,状况明显好转。但是感觉计算次数有点多,不是太爽。
我在3dsmax的reactor里面试过,他在速度快的情况下也有穿透,难道说像havok这样强大的物理引擎也避免不了这种现象么?

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2006-10-10 09:36:00 | 显示全部楼层

Re:请教:多个物体在运动速度比较快的情况下的碰撞检测

可以试试用物理引擎

65

主题

518

帖子

521

积分

高级会员

Rank: 4

积分
521
 楼主| 发表于 2006-10-10 14:48:00 | 显示全部楼层

Re:请教:多个物体在运动速度比较快的情况下的碰撞检测

现在最困难的是预测任何一个球在具体什么时刻与那个其它球发生碰撞。

如果只有两个球,那么很容易通过计算推出准确的发生碰撞的时间或位置。但如果球数量多,那某两球之间推算出的碰撞可能根本就不会发生,因为也许会有其它某两个球在其它某处也发生了碰撞,而后弹过来阻碍了这两个球的预计路径。而这种问题产生的错误还会因检测顺序的不同而不同。也就是说必须有一种能够同时把当前全局的状态都计算出来,而非两个两个的局部考虑的思想。

我后来试验了之前构思的那个动态缩短时间间隔的方法,结果却实没有穿入发生,但当碰撞发生的比较密集时,很容易出现时间间隔缩短的接近于0,也就是全盘进入僵局(也可以说成是无尽的慢动作)。

所以我觉得问题的关键并不是如何找到两个运动体精确的碰撞位置,而是一个合适的检测和响应策略来告诉我们什么时间发生碰撞与什么时间响应这次碰撞才不会使后面的可能的碰撞发生遗漏。

0

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2007-9-8 00:12:00 | 显示全部楼层

Re: 请教:多个物体在运动速度比较快的情况下的碰撞检测

我曾经看到过一个论文,上面说一个球只可能同时碰到2个球,而一个球碰到两个球的概率很低,所以都可以用两两碰撞分析。

6

主题

471

帖子

1047

积分

金牌会员

Rank: 6Rank: 6

积分
1047
发表于 2007-9-8 20:07:00 | 显示全部楼层

Re:请教:多个物体在运动速度比较快的情况下的碰撞检测

用PhysX把,里面有CCD可以解决这种速度较快下的碰撞.

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-9-9 15:58:00 | 显示全部楼层

Re: 请教:多个物体在运动速度比较快的情况下的碰撞检测

多个物体的碰撞,可以建立多级碰撞检测,

第一级 使用 Sweep and Prune(中间的方法有些类似SAT,分离轴定理), 快速确定发生了碰撞的物体,才去精确检测

大概的框架如图:
sf_200799155829.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-21 22:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表