游戏开发论坛

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

自己做的ogre游戏,大家一起来交流啊

[复制链接]

2

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2007-8-31 10:16:00 | 显示全部楼层

Re:OGRE新手

原码可以下的,我刚才试过了

2

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2007-9-4 19:48:00 | 显示全部楼层

摄象机系统的简单实现

  在这个demo里,我的摄象机系统是在walaber(ogrenewt的作者)的stunt playground的基础上做的,不过后来已经被我改的面目全非了.在这个系统中我定义了三种摄象机位置的算法,三种算法的参数由tinyxml导入.如下:
<camregions>
        <?camregion type="0" vMin="-80 -15 -350" vMax="80 15 -220"/>
        <camregion type="1" vMin="-400 -15 -300" vMax="-150 15 280" vBasePoint="-100 -100 0" fCamScale="1.2" fFarthestDist="10000" />
        <camregion type="1" vMin="710 -15 -350" vMax="1000 15 -58" vBasePoint="710 -100 -60" fCamScale="1.2" fFarthestDist="10000" />
        <?camregion type="2" vMin="-100 -15 -200" vMax="100 15 -80" vCamPoint="50 200 0" vLookPoint="0 -50 -300"/>
        <camVelocity mfSpringK="25" mfDampingK="10" />
</camregions>
各种相机算法在player进入vMin和vMax之内区域生效.
type "0"是最简单的镜头跟踪.
type "1"是如图的一种算法,将camera look到人物的重心结点上,随着重心上下动的话就能模拟出象恐龙危机里主角在走廊上跑而设象机由她的后面饶到她前面的一种效果
type "2"是设象机固定的一种算法.
sf_200794194745.jpg

2

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2007-9-4 20:11:00 | 显示全部楼层

摄象机系统的简单实现 2

  在这里面还有个比较值得注意的就是摄象机位置变换的插值运算了,说的直观点就是如何让摄象机能够最平滑的移动,具体原理见<游戏编程精粹3>的一篇关于摄象机的文章,我就是根据它的原理来实现这个摄象机的移动的.我的实现如下(见followcamera.h和cpp):
  摄象机是受两个力影响的:
  一个是弹力,它好象就是系在player和camera之间的一跟弹簧,离的越远,它的弹力越大,对摄象机的影响就越大,它是驱使摄象机向player移动的,遵循虎克公式
  第二是阻尼力,它是阻碍camera移动的,camera的速度越快,它就越大,好象是与速度还是速度的平方成正比,忘了
  如果弹力的影响过大,那camera就有可能象钟摆一样老是左右晃,很久很久才能在我们的target位置停下来.如果阻尼力的影响过大,则camera就好象个笨重的沙袋样移动缓慢,有可能永远追不上player.所以这两个力都各自需要一个系数来调整.而着两个系数如何调整,就是<游戏编程精粹3>给我们提供的信息了:
/////////////用做阻尼玄的一些数据/////////////////
        Vector3 mvVelocity;                //镜头的移动速度
        float mfSpringK;                //弹性系数
        float mfDampingK;                //阻尼系数
        //X=Kd/2*根号(Ks),X一般取1,即一般:4*mfSpringK=mfDampingK*mfDampingK!!!!!左边的这个式子就是书上所提供的让camera尽快到达target位置而又不会在此多左右晃的一个平衡关系了.
具体算法见followcamera.h和cpp

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2007-9-5 08:21:00 | 显示全部楼层

Re:自己做的ogre游戏,大家一起来交流啊

代码怎么没工程文件啊?

2

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2007-9-5 09:08:00 | 显示全部楼层

Re:lzp

晕,先去www.ogre3d.org下个ogrenewt再自己建个空项目把文件加进去就ok了

6

主题

42

帖子

47

积分

注册会员

Rank: 2

积分
47
发表于 2007-9-5 14:06:00 | 显示全部楼层

Re:自己做的ogre游戏,大家一起来交流啊

顶一下

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2007-9-6 00:30:00 | 显示全部楼层

Re:自己做的ogre游戏,大家一起来交流啊

你是哪个OGRE版本编译的啊?

2

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2007-9-9 13:55:00 | 显示全部楼层

demo中player移动以及一些相关物理的说明

  这个demo中我用的是ogrenewt物理引擎,player的碰撞检测和移动都是通过它来实现的,实现过程和主页上的一篇用ogreode实现角色走动的教程有些类似,但是我并没有用两个物理模型,也没有旋转模型的物理模型,它的基本原理如下图.
  其实我觉得用物理引擎来做player的控制不是太好,因为它毕竟是物理驱动的,有惯性(我这个就是).最好只用它来做碰撞检测,不过似乎有些不太同步,有时会感觉"卡",调高它的step又怕影响速度
sf_20079913550.jpg

2

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2007-9-9 13:56:00 | 显示全部楼层

Re:lzp

好象是1.2

2

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2007-9-9 14:48:00 | 显示全部楼层

demo中player移动以及一些相关物理的说明

  在这个demo中,player在很陡的斜坡上、空中,和在比较缓的坡、地面上的gravity是不同的,这样可以避免player在很缓的坡上一直向下滑动,也可以使得player在平地上走路时减小很多阻力,其原理如下图。
  这样来判断player是否在空中或是在很陡的斜坡上。newton中还有很多好的方法可以实现,但我没找到。这个办法比较土,但在这里运行的还好:)。
sf_200799144828.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 11:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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