游戏开发论坛

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

讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

[复制链接]

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2006-11-14 19:52:00 | 显示全部楼层

Re: 讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

我也是新手啦~
我是这样想的:

一个场景,分为三个方面:
物理(如ODE)
渲染(如OGRE)
逻辑

场景中的元素也由这其中的某些组合而成:
物理:dBody,dGeom
渲染:SceneNode,Mesh
逻辑:Object,Message
dGeom和Mesh可能有数据的共享

这三个方面的交互与配合:
逻辑        ------控制------>        物理        ------的------        力,Controller
逻辑        ------响应------>        物理        ------的------        事件
渲染        ------展现------>        物理        ------的------        运行状态
渲染        ------展现------>        逻辑        ------的------        运行状态


毕竟3D空间分割这些在物理引擎里已经做了,没必要再重复一遍了。

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-11-15 13:01:00 | 显示全部楼层

Re:讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

室内的话,用BSP找出最近面,先用大包围球,然后用模型各节点的包围盒判断碰撞。
室外的话,用AABB。
超大场景,用球树来减少碰撞测试次数。
检测碰撞时,由需要检测的模型主动发起,避免每个模型都要检查一次。

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
 楼主| 发表于 2006-11-15 19:07:00 | 显示全部楼层

Re:讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

请问楼上:
⒈AABB是什么方法?

⒉检测碰撞时,由需要检测的模型主动发起,避免每个模型都要检查一次。这种方法是怎样做的?

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2006-11-15 22:13:00 | 显示全部楼层

Re:讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

我觉得碰撞检测是物理引擎里的典型任务啊,既然物理引擎都已经做了这事,为什么我们还要自己再重复一遍呢?

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-11-15 23:14:00 | 显示全部楼层

Re:讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

你们把问题弄得太复杂了。


每秒刷固定的FPS,然后限制速度范围。如果FPS刷不出,就减delta时间(让整个场景的运动变慢)。简单实用;)

兼讨论

⒉检测碰撞时,由需要检测的模型主动发起,避免每个模型都要检查一次。

这个问题我想参进来讨论一下。
以前我也用这种方法,做了一个碰撞状态表。双碰过的物体只检测一次。
后来我放弃这种方法了。我发现有更好的方法。碰撞过的物体,在当前帧里面直接cache aabb状态。室内场景就cache martix状态(类似radius碰撞)。只在当前帧cache。如果新刷一帧,cache就取消。效率高,简单实用;)

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
 楼主| 发表于 2006-11-16 00:33:00 | 显示全部楼层

Re:讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

请问楼上:
每秒刷固定的FPS,是怎样固定的?

cache aabb 这个什么意思?碰撞检测请详细说明一下。

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-11-16 01:26:00 | 显示全部楼层

Re:讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

每秒刷固定的FPS

所有涉及到时间的计算都按逻辑时间来。抛弃物理时间。

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2006-11-16 09:50:00 | 显示全部楼层

Re:讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

我觉得每秒固定fps不太好吧,因为游戏在不同状态下场景复杂度等都会变的,因此即使在同一台机器上,你每秒能够刷新的frame数也是没法保证的。我觉得还是根据时间来比较好~

为什么大家都想自己做碰撞检测呢?不是有现成的开源物理引擎用吗?

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
 楼主| 发表于 2006-11-17 09:24:00 | 显示全部楼层

Re:讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

每秒刷固定的FPS

所有涉及到时间的计算都按逻辑时间来。抛弃物理时间。

请问什么是逻辑时间?

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
 楼主| 发表于 2006-11-17 09:51:00 | 显示全部楼层

Re:讨论:场景分割 和 碰撞检测 ,欢迎大家积极参与。

为什么大家都想自己做碰撞检测呢?不是有现成的开源物理引擎用吗?


深入学习。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 23:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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