3D赛车游戏的设计与实现 - 图文(6)

2019-04-02 12:23

湖南大学毕业论文 第19页

确定了3D场景中物体的外观。在本文中,我们只要设置调用灯光类的SetLightType()设置光源类型,SetDiffuseColor()设置灯光颜色,在设置光源朝向,分配光源序号,是该序号光源可用即可实现场景中的光照效果。 3.3汽车类模块

赛车类游戏需要有个比较完善的汽车类,他们基本表达汽车的刚体运动,为此我们针对汽车建模。该汽车具有速度和加速度,最大速度,刹车加速度和方向盘灵敏度(决定汽车每次转动方向盘拐弯大小)。同时该汽车可以绕x轴,绕y轴,绕z轴旋转,还得有两个向量值实时记录汽车的位置和朝向,最后是赛车的渲染。如图3-10所示: 3.4本章小结

本章主要介绍了输入检测和响应,场景渲染中的天空是如何实现的、模型的渲染流水线以及场景的各种光照效果,最后介绍了一个简单的汽车类该具有哪些功能。

湖南大学毕业论文 第20页

图3-10 汽车效果图

湖南大学毕业论文 第21页

4赛车的碰撞检测和测试

对于不同类型的不同需要的碰撞检测我们将采用不同的方案解决.

1. 第一类碰撞主要是发生在主体和场景物体之间或者发生在主体和游戏中某些非场景物体(特定物体,或者其他游戏玩家)之间的碰撞,对于我们提到的第一类碰撞并且在不需要测试最初碰撞点的情况下,我们适合用包围盒的方法给出碰撞检测算法.

2. 第二类碰撞是由粒子和场景以及游戏者之间发生的碰撞.一个粒子(比如子弹)打出后可以近似等价为一条光线,由此光线便能近似地知道粒子是否会与某些物体发生碰撞.通过遍历BSP树便能得到相应的结果.也就可以获得和那个面碰撞的信息.

3. 第三类碰撞是对于高速行使或飞行的物体的碰撞,如果不出现失真的现象就必须使用生成超立方体(四维物体).这里,为了简化计算,在生成超立方体时仍然用一个规则的包围盒等价物体后再生成超立方体.

4. 第四类碰撞是最后一种情况,也最简单.那就是当被碰撞物体发生碰撞后不需要得到任何信息,也就是说碰撞反映只需要碰撞检测的一个简单的判断结果的条件下,我们仅仅需要利用数学公式计算轨迹是否和物体有穿越可能就可以满足条件了[7].

湖南大学毕业论文 第22页

4.1碰撞检测的相关技术

我们知道场景是由多个物体构成的,充满了成万或成千万的三角形,那么如何用一种快速有效的方式检测和避免可能发生的碰撞。使用数学检查两个三角形之间是否存在碰撞,非常消耗CPU,同样对于射线到三角形的测试也是如此。假想一下,如果一个三角形需要很大的CPU开支,那么几千个或几百万个三角形将会立即摧毁所有现代处理器的性能。

在游戏开发中实现某些事物的最快方法是采用捷径,并在必要的时候使用近似值。如果问题可以简化为一个更容易处理、计算更快的形式,那么有可能实现某一技术而不会影响程序性能,而这是在长时间做某事时才会出现的情况。在碰撞检测中,我们常常使用包围盒来代替物体组成的成千上万个三角形来参与碰撞的检测,这能简化碰撞检测和加快处理速度。

碰撞检测算法主要有三种:基于包围盒的碰撞检测算法,基于距离计算的碰撞检测算法,基于维诺图的碰撞检测算法。基于包围盒的碰撞检测算法是碰撞检测算法中应用最为广泛的一种,虽然这种方法具有不精确的缺点,但与其他两种算法相比较,它具有应用范围广、适应性强的优点,它能应用于各种多面体之间的碰撞检测。另外的两种算法只能简单解决凸多面体之间的碰撞检测.

湖南大学毕业论文 第23页

4.1.1包围盒算法

包围盒是指用规则的形状把场景中的物体(其中包括规则物体和不规则物体)包裹起来,以达到快速、简单检测多面体之间是否相交的目的。在进行碰撞检测的过程中,先对物体的包围盒进行粗略检测,当两个几何体的包围盒相交时,这两个物体才有可能相交;当包围盒不相交时,这两个物体一定不相交。这样可以排除大量不可能相交的几何体,从而快速找到可能相交的几何体。

包围盒算法主要包括:轴平行包围盒AABB(Axis Aligned Bounding Boxes)算法,包围球(sphere)算法,沿任意方向包围盒OBB(Oriented Bounding Box)算法,固定方向包围盒FDH(Fixed Directions Hulls)算法等。FDH是由事先确定好的K个方向的半平面组成的包围体,FDH又称为K—DOP(DOP是在包围盒对物体逼近的紧密性和包围盒碰撞检测的复杂性之间取的折中方案) [8]。

1. 轴平行包围盒AABB(Axis Aligned Bounding Boxes)算法 AABB是进行碰撞检测的三维几何体的外接平行六面体,并且每条边都平行于坐标轴。因此,描述一个AABB包围盒仅需要六个标量。在构造AABB时,需要沿着物体局部坐标系的轴向进行构造,所以AABB具有一致的方向。

AABB的算法简单、易于实现。但其紧密性较差,当几何体旋转后需要对AABB也进行同样的旋转,从而增加计算量,使计算速度减慢。


3D赛车游戏的设计与实现 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学英语1复习资料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: