游戏开发论坛

 找回密码
 立即注册
搜索
楼主: corpus

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

[复制链接]

65

主题

518

帖子

521

积分

高级会员

Rank: 4

积分
521
 楼主| 发表于 2006-9-7 10:22:00 | 显示全部楼层

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

多谢PassByYou的指点!

预计算运动轨迹是怎么回事呢?它和按时间间隔逐桢增加位移是两种从根本上就不同的考虑方法吧。他是怎么找到所有的碰撞位置的呢?我现在只想到过通过增量更新进行查找和比较。不过针对多物体,似乎仍然无法确保得出的结果能够在全局上完全符合碰撞的先后顺序。

我现在也去找找看预计算的参考文章学习学习。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-9-7 11:12:00 | 显示全部楼层

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

如果是你说的情况的话,应该是物理刷新时间过长,缩短下物理模拟的时间,我当时做布料的碰撞的时候也经常碰到一种情况,如果是一个很小的单位的话,布的运动会穿过这个单位。

程序应该是这样:
UpdatePhysic(float fDelta)
{
      static float fLastRemindElapsed = 0.0f;
      fDelta += fLastRemindElapsed;
      while(fDelta > g_fConstPhysicElapsed)
      {
             SimulatePhysic(g_fConstPhysicElapsed);
             fDelta -= g_fConstPhysicElasped;
      }
      fLastRemindElapsed = fDelta;
}
如果对时间要求十分精确的话,可以采用另一种叫Swept Volume的碰撞模型,在我的blog上有提到:
http://blog.csdn.net/tarkey/archive/2005/06/15/394720.aspx

65

主题

518

帖子

521

积分

高级会员

Rank: 4

积分
521
 楼主| 发表于 2006-9-7 12:47:00 | 显示全部楼层

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

To tarkey:
碰撞检测部分在1对1的情况下是正确的啊。我用很快的速度测试过,没问题的。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-9-7 13:13:00 | 显示全部楼层

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

你把你的物理模型抽象下一下,update的结构抽象成:
struct TPowerPacket
{
     float fTime; // 在什么时间受到的力
     vector3 vPower; // 力的向量
};

然后在球自己update的时候就按照这个去计算,和别的球没有任何关系。
检测到有碰撞的情况就给别的球apply一个这个结构,同时也相应的给自己一个这样的力。

每帧都按照这样的流程去update每个球。

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-9-8 09:15:00 | 显示全部楼层

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

我帮你想了个妥善办法。几乎不涉及到什么高深算法,简单有效

你不是按时间检查碰撞吗?你可以做个刷贞器,每妙固定刷贞,如果刷不到,就用时间减。然后碰撞时,delta时间按刷贞器时间标准来。

8

主题

130

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2006-9-8 09:20:00 | 显示全部楼层

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

主要是因为你让每侦位置检测(如果,我没有理解和猜测错误),侦间位置是不连续的,所有,会发生穿透。

3D里面一般用射线检测。
2D也可以用扫过路径检测。
其实不管你用什么方法,只要保证检测的连续性,而不是离散的,那么就不会发生穿透了。

6

主题

390

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2006-9-8 09:44:00 | 显示全部楼层

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

用扫掠体。。GJK

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2006-9-8 13:07:00 | 显示全部楼层

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

嗯,同意cn_zhangJW.

25

主题

134

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2006-10-9 21:41:00 | 显示全部楼层

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

受教

18

主题

92

帖子

92

积分

注册会员

Rank: 2

积分
92
发表于 2006-10-9 22:00:00 | 显示全部楼层

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

长见识了,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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