游戏开发论坛

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

【求助】游戏引擎中是如何处理物体运动的?

[复制链接]

29

主题

157

帖子

163

积分

注册会员

Rank: 2

积分
163
 楼主| 发表于 2009-9-4 10:46:00 | 显示全部楼层

Re: Re:【求助】游戏引擎中是如何处理物体运动的?

OpenGPU: Re:【求助】游戏引擎中是如何处理物体运动的?
CUDA应该可以干这个活吧...

我倒是想用啊,但是ATI显卡的也得照顾啊!

29

主题

157

帖子

163

积分

注册会员

Rank: 2

积分
163
 楼主| 发表于 2009-9-4 10:59:00 | 显示全部楼层

Re: Re: Re: Re: 【求助】游戏引擎中是如何处理物体运动的?

clayman: Re: Re: Re: 【求助】游戏引擎中是如何处理物体运动的?
差别大了
你只看到了更新部分,而没有考虑检测部分
检测几个包围盒之间是否相交与检测成千上万个三角形之间是否相交,效率上有n个数量级的差别


嗯,是这么回事。我一直希望碰撞检测能做到三角面-三角面级别的,查了些资料后发现这个如果不用GPU或PPU等硬件加速,以目前主流的CPU来说,根本无法实现(运算量太大)。而且还有一个就是高速运动的物体之间的碰撞会检测不到。

我现在的做法比较极端,就是对物体的三角面进行层次包围划分,并在一些尖端部位设置碰撞检测点,当物体运动时,碰撞点会根据运动位置生成射线,然后对有可能与此物体发生碰撞的物体进行射线-三角面之间的检测。这种方法可以很好的检测到高速运动物体之间的碰撞,但最大的缺点就是如果两个物体没有碰撞检测点的部位发生碰撞的话,就检测不到了。而且如果一个物体发生高速旋转的话,也会有检测问题,因为此刻碰撞检测点生成的应该是曲线,而如果还用射线的话就会有问题。检测曲线和三角面的相交又是一个大麻烦啊!

1

主题

11

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2009-9-4 15:56:00 | 显示全部楼层

Re:【求助】游戏引擎中是如何处理物体运动的?

不要使用渲染的mesh做碰撞检测,最好是单独计算和建立用于物理碰撞的mesh.
鼠标点选就用包围盒,精确的要把射线变换到局部坐标系再和mesh测,变换一个射线总比变换整个mesh快吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-21 01:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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