游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4785|回复: 10

关于挡住与穿过的问题(打工仔大哥请进)

[复制链接]

11

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2007-4-20 18:47:00 | 显示全部楼层 |阅读模式
假如有一个场景,里面有若干柱子,我想实现当摄像机移到柱子前会被挡住,而不是摄像机会穿过柱子.
请问该怎么实现 ?
这个涉及到物理方面的问题了,需要物理引擎的帮助(你说的)
打工仔大哥,能否详细说说呢?你说的是这个例子没错吧?BspCollision
可是我改了老改不成功!
本来里面这样:mCamera->setCollisionEnabled(false);
我把它改为:mCamera->setCollisionEnabled(true);
可是效果还是一样的啊.
怎么回事呢?

4

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2007-4-21 13:37:00 | 显示全部楼层

Re:关于挡住与穿过的问题(打工仔大哥请进)

改下setDynamicsEnabled参数看看

11

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2007-4-21 22:24:00 | 显示全部楼层

Re: 关于挡住与穿过的问题(打工仔大哥请进)

不行啊,我试过,我改了之后,运行程序就出现错误!

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2007-4-22 14:43:00 | 显示全部楼层

Re: 关于挡住与穿过的问题(打工仔大哥请进)

我没有做过这方面的工作,其实碰撞问题并不属于Ogre本身的范畴。
尽管如此,Ogre中也提供了相当有用的功能可以帮助你。

如果不是很复杂的项目可以不用物理引擎,直接通过计算来得到摄像机的位置。(其实用了物理引擎也需要这些步骤)

给摄像机加上包围盒并挂接到场景中,在每一frame中首先移动摄像机。然后检查场景中的柱子是否有相交(通过Ogre提供的接口)。如果没有相交就继续渲染,如果橡胶就把摄像机退回原来的位置。

如果摄像机在每一frame中移动距离超过柱子的厚度,这时候要检查摄像机所经过的路是否和柱子相交,如果相交,摄像机移动到第一个面的交点位置。

这是我之前做2维时候的简单方法,在真正应用中还会有很多可以优化的地方。如果有时间也可以看看三维图形学的书,里面的算法会更好。:)

11

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2007-4-22 20:32:00 | 显示全部楼层

Re:关于挡住与穿过的问题(打工仔大哥请进)

好的,谢谢!

51

主题

150

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
发表于 2007-4-23 11:20:00 | 显示全部楼层

Re:关于挡住与穿过的问题(打工仔大哥请进)

OGRE 的包围盒查询,射线查询等精度不够,象FPS类型游戏主角碰到物体的一个面就向
平行于的方向移动不太容易实现,是这样的吗?我看到射线查询能够返回一个交点,但是
是和物体的AABB相交后的交点,不是和物体的某个面的交点,如过能返回物体的面,就
可以得到面的法线,然后计算切向移动向量,我是这么想的.

32

主题

232

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
发表于 2007-4-25 09:10:00 | 显示全部楼层

Re:关于挡住与穿过的问题(打工仔大哥请进)

建议还是用物理引擎吧,不要设置Body质量,还有受力
还有改你的鼠标旋转的代码,让它基于Body而不是NODE

上面是用OgreNewt的建议

22

主题

75

帖子

112

积分

注册会员

Rank: 2

积分
112
QQ
发表于 2007-4-25 20:16:00 | 显示全部楼层

Re:关于挡住与穿过的问题(打工仔大哥请进)

这个东西我用OgreOpcode做过,可以方便的实现,你可以去试试。

51

主题

150

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
发表于 2007-4-26 09:14:00 | 显示全部楼层

Re: 关于挡住与穿过的问题(打工仔大哥请进)

在那儿可以下载到物理引擎?

51

主题

150

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
发表于 2007-7-2 16:13:00 | 显示全部楼层

Re:关于挡住与穿过的问题(打工仔大哥请进)

请问在哪儿可以下载OgreOpcode?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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