游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2853|回复: 7

请教一个碰撞检测之后的一些逻辑问题.

[复制链接]

34

主题

70

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2010-6-20 21:08:00 | 显示全部楼层 |阅读模式
    角色在3D场景中移动监测碰撞,当碰撞发生后,碰撞检测系统返回碰撞发生点的位置和法线.一般该如何判断角色到底碰撞到的是可以站立的表面,还是碰到的是墙壁.
    像那种碰到墙壁之后,再按前进,角色会自动贴着墙壁'擦'过去是怎么做到的?
    谢谢~~

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2010-6-21 00:35:00 | 显示全部楼层

Re:请教一个碰撞检测之后的一些逻辑问题.

简单的做法是用碰撞面的法向量计算倾斜程度,先把法向量归一化,如果这里Y是高度轴,那么y/sqrt(x*x+z*z)就得到了法向量与水平面夹角的tan,根据这个的大小加一个临界值来判断是否不能站立。
有了碰撞的法向量,把角色位置沿着法向量向墙外推就可以了。

34

主题

70

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2010-6-21 09:28:00 | 显示全部楼层

Re:请教一个碰撞检测之后的一些逻辑问题.

如果同时碰到几个点的情况下,一般该如何处理呢?

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2010-6-21 10:55:00 | 显示全部楼层

Re:请教一个碰撞检测之后的一些逻辑问题.

在碰撞系统中加入返回碰撞到什么物体的功能

34

主题

70

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2010-6-21 13:40:00 | 显示全部楼层

Re:请教一个碰撞检测之后的一些逻辑问题.

把角色位置沿着法向量向墙外推.
关于这个我也有点不确定的地方,沿法线方向外推,该推多少才合适,这个是不是和角色自身的碰撞体有关.
如果不同的角色,碰撞体不一致怎么办?

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2010-6-21 23:57:00 | 显示全部楼层

Re:请教一个碰撞检测之后的一些逻辑问题.

沿着法向量向墙外推,推到不与墙壁碰撞为止。每个角色都会有自己的包围盒数据吧,比如半径。
有多个碰撞点的话一个一个地做相同处理

11

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2010-6-22 10:42:00 | 显示全部楼层

Re:请教一个碰撞检测之后的一些逻辑问题.

多个点的话,求合力。

5

主题

14

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2010-6-22 19:43:00 | 显示全部楼层

Re:简单的做法是用碰撞面的法向量计算倾斜程度,先把法

这儿的得到归一化的法向量后可以更简单些,直接采用法向量的up分量和临界值比较, 比如normal.y < 0.7f 代表当前位置不能站立,要滑落.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 16:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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