FPS游戏引擎中的数学模型分析

上传人:王哥 文档编号:30197170 上传时间:2018-01-28 格式:DOC 页数:5 大小:26.50KB
返回 下载 相关 举报
FPS游戏引擎中的数学模型分析_第1页
第1页 / 共5页
FPS游戏引擎中的数学模型分析_第2页
第2页 / 共5页
FPS游戏引擎中的数学模型分析_第3页
第3页 / 共5页
FPS游戏引擎中的数学模型分析_第4页
第4页 / 共5页
FPS游戏引擎中的数学模型分析_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《FPS游戏引擎中的数学模型分析》由会员分享,可在线阅读,更多相关《FPS游戏引擎中的数学模型分析(5页珍藏版)》请在金锄头文库上搜索。

1、FPS 游戏引擎中的数学模型分析摘 要 FPS 游戏引擎中应用到的数学模型很多,贯穿在整个引擎中,此文对引擎中常用的数学模型进行分析。 【关键词】FPS 游戏引擎 数学模型 1 前言 FPS 游戏又称为第一人称视角射击游戏,该游戏引擎中涉及到大量的数学模型。下面我们就对引擎中常用到的几个数学模型进行分析。 2 引擎中的数学建模 在引擎中,定义了大量的三维空间中的几何元素。在引擎中依托三维坐标系对三维的点、向量、抛物线、矩阵等元素的位置关系做了定义和判断。 2.1 三维坐标系 在引擎中三维坐标系是最为常见的数学模型之一。一般用于确定非玩家控制角色、游戏环境中的建筑、动植物等游戏模型的定位,以及玩

2、家所控制的游戏角色的视野方向,移动方向,以及一些基本动作等。在引擎中坐标系不是唯一的,整个游戏大世界有着自己固定的坐标系系统,用以定位游戏场景的中所有不能够移动或者暂时静止的物体,而游戏场景中能够移动的物体又有着自己相对独立的坐标系嵌套在游戏大世界的坐标系之中,但是该游戏人物在游戏大世界中还是有着相对应的坐标,仍然可以通过游戏大世界的坐标进行定位。例如玩家在操纵游戏人物的时候,坐标系是以玩家所操纵的游戏人物模型为中心,随着玩家对游戏人物的操纵做出调整,自己在游戏大世界中的坐标也会跟着改变。自动寻路功能也是依靠坐标系来实现定位的,通过坐标系确定起始位置和目标位置,然后计算出从起始位置到目标位置的

3、最佳路径,以实现自动寻路功能。 比较常见的三维坐标系的表示形式是笛卡尔坐标系。由 X,Y,Z 三条互相垂直的坐标轴组成。三条坐标轴可以构成 X-Y,X-Z,Y-Z 这个三个平面,因此,此类型的坐标系一共有 8 个卦限及 8 个被分割出来的子空间,这些子空间又决定了引擎中的天空盒或者游戏世界界限的构成。 该坐标系分为两种:左手坐标系、右手坐标系。左手坐标系 Z 轴指向 X-Y 两轴构成的垂直平面内,右手坐标系Z 轴指向 X-Y 两轴构成的垂直平面外。 2.2 点 在游戏中涉及到人质营救任务的场景时,将会用到点的概念。人质周围敌对 NPC 的活动或是巡逻是有一定范围的,玩家控制的游戏角色与任务触发

4、地点之间的距离是任务是否触发的判断依据,当玩家控制的游戏角色靠近一定的距离时触发营救任务,敌对 NPC 触发阻碍营救任务,当角色脱离超过一定的距离后,营救任务的触发解除,敌对NPC 回归正常的巡逻距离;当人质营救成功时,人质将跟随角色移动,这时也要判断两者之间的距离,用以实现跟随传送功能。 可以使用公式: 来判断物体跟物体之间的距离。 2.3 三维游戏引擎中的向量 向量有两个主要的属性:长度和方向(长度也称为模或者是大小) 。向量经常用在对长度相等,方向一样的物体进行建模,例如粒子系统中表示粒子的运动速度和加速度等,可以用向量?肀硎舅?的方向和速度,因为向量有两个值可以表示它的速度和方向。在对

5、摄像机进行操作的时候也可以用到向量。 但是在使用向量的时候要注意一点,向量的两个属性没有代表位置的,所以在判断两个向量是否相等的时候只要判断长度和方向是否相同就可以了,如果一样就认为他们是相等的。 在三维空间中向量 V 可以用三元组 V=(x,y,z)表示,但是要注意这三点的起始点和方向。如图 1 如所示。 所以可以把由 x,y,z 三点构成的有向线段的长度看成是该向量的大小。计算公式:。 在游戏中,表示移动的距离时,也可以用向量来解决问题。在游戏世界中必须先为向量设置一个长度单位,用来表示具体的距离问题。 2.4 抛物线问题 在 FPS 类的射击游戏中,将会大量的使用到抛物线。如:子弹的弹道

6、,手雷扔出去的轨道,弹壳的掉落,物品丢弃等大量用到抛物线的原理来实现。 抛物线的线条形状是由顶点和抛物线的对称轴来决定的。 对称轴垂直的抛物线方程:y=c(x-h)2+k 顶点是(h,k) ,对称轴为 x=h 对称轴水平的抛物线方程:x=c(y-h)2+h 顶点是(k,h) ,对称轴为 y=h 常数 c 代表了抛物线的开口方向和开口大小。 如果 c 是正数,对称轴垂直的抛物线的开口向上,对称轴水平的抛物线的开口向右。如果 c 是负数,对称轴垂直的抛物线的开口向下,对称轴水平的抛物线的开口向左。c 的绝对值越大,开口越小。 在引擎中使用的时候还要考虑到物体在现实世界中的体积,重量等因素,以及它们

7、掉落时的情况,将它们的抛物线正确的模拟出来,增强游戏的真实性。如手雷扔出去到掉落的,也是一条抛物线,这时候就要考虑到手雷的在扔出去时的各种情况,以实现较为真实的模拟。 2.5 矩阵问题 在游戏中矩阵是用来实现变换和仿射的。 变换:在三维空间中物体实现上下、左右以及前后的6 个不同方向的移动,放大、缩小和旋转等运动操作。 仿射:物体在三维空间中发生运动操作后应该保持先前的形状。 物体的运动与矩阵的关系: 2.5.1 移动前后、上下、左右的移动 物体的移动可以是使用矩阵的加法来实现。 矩阵的加法运算是把物体移动前和移动后的相对应的位置元素(三维空间中的 3 个位置元素)相加,设定在三维空间中存储位置的结构是一样的,利用向量在引擎中实现。相当于对 x,y,z 三个坐标轴进行相加运算。游戏角色在场景中的运动就是通过获取当前位置的坐标与目的地位置的坐标,再通过矩阵加法来实现。 利用矩阵加法实现物体移动: 2.5.2 物体的放大和缩小 在引擎中,可以利用矩阵的乘法对物体进行放大和缩小操作,如狙击枪瞄准器中的放大图像,玩家通过鼠标滚轮实现游戏画面的缩放等。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号