3D网络游戏论文

2024-05-23

3D网络游戏论文(精选12篇)

3D网络游戏论文 篇1

在近几年间, 3D网络游戏已经成为数字娱乐业界的主流。目前开发3D网络游戏广为使用的API开发包有OpenGL和Direct3D, 在游戏领域, OpenGL的重要性不言而喻, 作为成熟的技术, 它满足了3D图形渲染中从双面反射到参数曲线和曲面的所有需要, 相比之下, Direct3D的技术特点决定了它在3D图形渲染上的劣势, 但它提供的DirectPlay在网络游戏的开发上确有强大的优势。将两者的优势相结合, 实现基于OpenGL的3D图形渲染及DirectPlay网络连接的3D网络游戏, 具有广阔的应用前景。

采用OpenGL与D3D结合的方式实现3D网络第一人称射击游戏的重要关键技术。在深入理解3D游戏动画与高级实时渲染技术和网络游戏服务器/客户端编程的基础上, 以标准的游戏架构方式, 设计并实现一款3D网络射击游戏并对其性能进行优化。

随着人类社会的进步和科学技术的发展, 人们对游戏的要求和品位越来越高。计算机硬件的进步, 使游戏开发者在计算机硬件技术的发展下尽可能满足游戏者对游戏的高品质的要求, 利用当前计算机硬件的优势, 在软件算法上满足人们所需求的视觉效果及对多人联网互动性的需求。

大规模的地形渲染技术一直是图形学里的热点问题之一。它在GIS、飞行模拟器、视频游戏里有重要的作用。大规模地形渲染的两个主要问题是地形数据存储问题和三角形数目问题, 本文针对视频游戏使用了一种基于四叉树的LOD算法来解决大规模地形渲染中的三角形数目问题。并且使用了其他一些技术, 在保证渲染速度的前提条件下, 有效地提高场景的视觉真实程度。

一、地形的建立与优化

地形是计算机图形的一个重要组成部分, 而它又具有特殊的形态。地形往往覆盖面积极广, 且精度要求很高, 使得必须用许多多边形来描述。这样的特点使得不能像对待其他普通模型那样对待地形。要想实时地渲染地形, 需要一些特殊的方法。

目前已有大量优秀的基于多边形的地形渲染算法。比较经典的算法有M.Duchaineau等人提出的ROAM算法。这个算法采用一棵三角二叉树来描述整个地形。一个地形在最初的层次上由两个较大的等腰直角三角形组成, 这两个等腰直角三角形可以被不断地细分来展现地形的更多细节。每一次细分过程都向直角三角形的斜边中点处增加一个由高程数据所描述的顶点, 该点将所在的直角三角形一分为二, 同时该算法也定义了一些规则来保证地形中不会因相邻两个三角形细节层次的不同而出现裂缝。这个算法已被许多游戏所采用。还有一类算法, 通过将地形在X-Z投影面上不断地规则细分来得到不同的细节, 这就是四叉树空间划分算法。另外, 最新提出的一个地形算法也不得不提, Hugues Hoppe在2004年提出的几何裁剪图方法 (Geometry Clipmaps) 算法使用了最新硬件所支持的顶点纹理来定义地形的外观, 并且对于距离摄影机不同远近的地方采用不同的纹理层, 最大限度地使用硬件加速了地形渲染的过程。这个方法目前只被较少的硬件支持。因为顶点纹理是Shader Model 3.0才支持的功能, 也就是说只有DirectX 9.0c级别的显卡才能支持这种算法。这对于某些有普及性要求的图形应用程序, 尤其是对游戏来讲不是一件好的事情。这里我们提出使用高程数据、四叉树分割和平截头体剔除实现游戏地形的创建和优化。

1.高程数据

所谓高程数据, 即色彩范围在0~255的灰度高度图。因为, 基于四叉树的地形渲染方法需要用高程数据作为数据源, 以产生高低起伏的地形。在图中, 不同的灰度代表了不同的高度值。如果某高程数据指出这个高程数据最高处的Y坐标值是4000, 那么在高程数据中一个值为255的像素点就表示这个点所代表的地形区域的高度是4000, 同理如果该像素值是127, 那么就表示这个点所代表的地形区域的高度是4000× (127/255) =2000。高程数据的每个像素都对应所渲染网格中的一个顶点。另外还有一个参数描述顶点与顶点之间的水平距离, 以及一个描述最大高度的参数。因此地形的基本数据结构如下:

struct Terrain

{

char **DEM; //一个描述高程数据的二维数组

float CellSpace;

float HeightScale;

};

如果高程数据中的某个点D (x, y) 所对应的多边形网格中的点是V (x, y) , 那么HeightScale=V (x, y) .z/D (x, y) .value (Z轴为竖直向上的坐标轴) 。

有了这些参数, 可以很容易地由高程数据的参数值, 得到它所表述的多边形网格。得到这个网格之后, 可以简单地把它放入顶点数组, 并为之建立一个顶点索引, 就可以传入硬件进行渲染了。对于较小尺寸的高程数据 (如129×129) , 这样做确实可行, 但随着高程数据规模的增大, 所需的顶点数和描述网格的三角形数会急剧膨胀, 这个数值很快就会大到最新的显卡也无法接受。比如一个1025×1025的高程数据, 需要1025×1025=1050625个顶点, 以及1050625×2=2101250个三角形。就算显卡每秒能够渲染1000万个三角形, 也只能得到不到5fps的渲染速度, 况且场景可能还不只包括地形。因此必须想办法在不影响视觉效果的情况下缩减所渲染的三角形数量, 另外还应该注意一次性将最多的数据预先传给硬件以节约带宽。

2.平截头体剔除

四叉树地形分割只有在平截头体剔除技术的配合下, 才能发挥它的优势。在整个三维世界中, 有大量的多边形和物体, 玩家能看到的, 也就是摄像机观察到的那部分, 也只有这部分才真正需要进入渲染管线进行实时渲染, 其余部分, 渲染与否根本就无关大局, 渲染了玩家也看不到。解决这一问题的方法, 就是平截头体剔除技术。简言之, 平截头体剔除技术就是只对进入摄像机视野内的多边形进行渲染, 对没有进入摄像机视野内的多边形不进行渲染的技术。平截头体由六个平面构成, 由于只是渲染六个平面包含的区域, 所以, 为了判断六个平面的内部和外部区域, 就需要使用平面方程式ax+by+cz+d=0。满足该方程式的 (x, y, z) 坐标值都是位于该平面上的点, 这样的点有无数之多。一般来说, 3D图形中的平面方程式先是选取构成平面的三个点, 然后由这三个点算出公式。ax+by+cz+d=0表示点在平面上;ax+by+cz+d>0表示点在平面前方;ax+by+cz+d<0表示点在平面后方。经常需要判断的是由几个点组成的网格是否在平截头体内部, 如果将所有点的坐标都代入平面方程式进行检验就太复杂了。比如说一个人物动画由1000多个多边形构成, 那么顶点就有3000多个之多, 100多个人物动画的话, 需要运算的次数为3000 (顶点) ×100 (人物动画) ×6 (平面方程式) , 每一帧都要进行这种运算, 那最好不进行平截头体剔除, 游戏反而能快一点。解决这一问题的直接方法为边界球体剔除技巧。首先定义能包含整个网格的边界球体, 然后判断该球体是否包含在平截头体内部。边界球体是由中心圆点和半径两个数字构成的, 这样就能很快作出判定。将边界球体的中心圆点Vcenter= (Xc, Yc, Zc) 的值代入平面方程式ax+by+cz+d=0, 若得出的结果值:axc+byc+czc+d

3.四叉树分割

四叉树定义:四叉树就是使用四个子节点递归地将空间 (一般是二维空间) 进行分割的方法。使用四叉树分割技术使得在游戏场景中使用巨大地形成为可能。因为四叉树会将场景划分出2n块等大的区域, 在平截头体的配合下将所有没有进入到视野内的其他区域的多边形剔除, 快速地缩减了3D引擎必须处理的数据量。四叉数分割过程如下:

(1) 四叉树剔除

正如前面所说, 四叉树与平截头体的剔除相结合, 就能发挥出巨大威力。算法原理是假定四叉树的父节点不在平截头体内部的话, 那么子节点也不在平截头体内部, 这时只要检索父节点在平截头体内部的节点就行了。反复这一过程就可以快速地实现平截头体的剔除。

(2) 平截头体的剔除过程

首先, 将场景利用四叉树的根节点进行一次分割, 然后利用平截头体判定的边界球体方式进行场景剔除。

此外由于地形覆盖范围广, 它的投影在XZ平面上均匀分布, 正是由于这样的均匀分布, 给划分过程带来了便利。不需要具体地去分割某个三角形, 只要选择那些过顶点且和X或Z轴垂直的平面作为划分面即可。例如对于一个场景数据, 可以坐标原点作为地形的中心点, 然后沿着X轴和Z轴依次展开来分布各个顶点。

首先, 选择X=0和Z=0这两个平面, 将地形划分为等大的四个区域, 然后对划分出来的四个子区域进行递归划分, 每次划分都选择交于区域中心点并且互相垂直的两个平面作为划分面, 直到每个子区域都只包含一个地形单元块 (即两个三角形) 而不能再划分为止。只有场景数据满足2n+1个正方形这个条件, 才可能对地形进行均匀划分。那么, 四叉树应该存储的信息很重要, 首先对于每个节点, 应该指定这个节点所代表的地形的区域范围。并不是把地形网格中实际的顶点放入树中, 而是要在树中说明这个节点覆盖了地形的那些区域。比如一个子节点应该有一个Center (X, Y) 变量, 指定这个节点的中心点所对应的顶点索引或编号。为了方便起见, 可以把地形中心点编号为 (0, 0) , 然后沿着坐标轴递增。此外还要有个变量指定这个节点到底覆盖了地形的多少个顶点。

其四叉树的数据结构如下:

struct QuadTreeNode

{

QuadTreeNode*Children[4];

int CenterX, CenterY;

int HalfRange;

}

有了四叉树之后, 结合平截头体, 为每个节点计算包围球。包围球可以简单地以中心顶点为球心, 最大坐标值点 (节点所覆盖的所有顶点的最大X、Y、Z值作为此点的坐标值) 到球心的距离为半径。从树的根结点以深度优先的顺序遍历树。每次访问节点时, 测试该节点包围球与视见体的相交情况。若以下情况符合, 则包围球与视见体相交:

1) 球心在六个平面所包围的凸状区域内部;

2) 球心在六个平面所包围的凸状区域外部, 但球心到某个平面的距离小于半径。

如果相交测试显示包围球和视见体存在交集, 继续递归遍历此节点的4个子节点, 如果此节点已经是叶节点, 则这个节点应被绘制。如果不存在交集, 放弃这个节点, 对于这个节点的所有子节点不再递归检查。因为如果一个节点不可见, 那么其子节点一定不可见。从而剔除了那些不在视见体内的地形区域。

上述算法, 高程数据、平截头体剔除和四叉树分割的好处是可以剔除大量不可见的多边形, 使进入渲染管线的多边形数量稳定, 极大地提升了引擎的性能。

二、基于DirectPlay实现多人联网

多人联网游戏是当今游戏开发的趋势, 在此方面网络游戏大多采用客户/服务器 (Client/Server) 的体系结构, 游戏的功能结构由服务器和客户端组成, 在进行网络连接时要考虑到网络延迟的情况。因为服务器是对游戏世界作出改变的系统, 它必须在玩家的行为执行之前对他们进行验证, 客户端发出一个消息并等待服务器的反应, 其间经历了一个传输的延迟 (滞后) 。

本文提出一种处理网络延迟的方法就是航位推测法。为了使游戏行为能够顺利进行, 减少消息等待时间和滞后带来的负面影响, 客户端可以在服务器更新期间 (从客户端发送请求消息到接收服务器反馈期间) 拥有对游戏世界一定的自主权。这点自主通常只是去更新角色的运动。在这种情况下, 客户端并不需要等待服务器的许可就能移动玩家角色。客户端可以根据角色最后的已知状态来推测如何进行更新, 这个推测的方式叫做航位推测法。推测技术使正在行走的角色不断地前进直到服务器告诉角色停下来。

但当发生一些重大行为时, 比如战斗, 就不能再使用航位推测法了, 如果系统需要确定谁击中了谁, 产生多少伤害, 则由服务器来掌管控制, 系统需要询问服务器以便得到决定。正如上面所描述的, 当使用一个C/S网络系统的时候, 需要面临的另一个问题是游戏的计时, 就是说, 尝试让所有客户端保持同步是不可能的。联网的每台客户端都有一个不同的等待时间, 一些远处的客户端可能需要花费更长的时间将消息发送到服务器, 以及接收到服务器的返回。比如说, 在客户端的一边, 一个玩家可能与别的玩家在相同的时间进行移动, 但是因为他们的行动需要一定时间才能到达服务器, 所以拥有更快的连接速度的客户端将占有优势。左边的客户拥有比右边的玩家较低的等待时间, 左边玩家的行为将优先到达服务器, 并优先进行处理。

对于客户端及服务器接收到的所有消息, 都记录了它们被接收时间。服务器使用该时间去确定如何更新玩家。例如服务器接收到的一个消息并没有在100毫秒内进行处理, 服务器将在更新期间补偿那个时间量。在客户端也是如此。如果一个行为消息需要被更新 (特别是在推测期间) , 则用那个时间 (接收消息的时间) 使角色产生适当的移动。这就是客户端与服务器端进行协作的大概原理。在这里可以看到, 联网游戏的任何主要决策 (比如说战斗, 伤害判断, 障碍判断, 购买物品等) 都由服务器负责, 这样做是为了避免游戏黑客或外挂制作者修改游戏。因为他们会利用任何客户端的漏洞来获得特殊待遇。所以服务器是负责记录游戏的系统, 而客户端仅是进入游戏的入口。

为了实现上述方法, 必须对游戏结构体进行设计。游戏中玩家可以做出任何系统已经预定义好的行为, 比如跑、跳、射击等。服务器需要记录每个玩家的当前状态 (行进, 站立, 蹲下, 射击, 受到伤害等) , 玩家在游戏中的世界坐标, 他们所面对的方向, 以及他们的前进速度。玩家数据被存储在一个名字叫sPlayer的内部结构中。因为游戏中所有联网的玩家都需要他们自己独立的数据集合, 所以在服务器中, 会有一个sPlayer结构的链表或静态数组来存储玩家的信息。在局域网游戏中, 这个结构就是个静态结构数组, 在网游中, 这个结构会以链表的方式存在。这个结构的实现如下:

Latency是网络传输所导致的延迟时间。通过存储一个消息从服务器到客户端所经历的时间, 服务器端与客户端之间的计时计算会变得更加同步。说到计时的计算, Time变量就显得很重要, 每当服务器更新所有玩家时, 它需要知道在更新期间已经流逝的时间。一个玩家的状态被改变 (客户端) , Time变量就被设置为当前的时间 (减去等待时间) 。

计时也被用来控制行为。假如玩家正处于进攻状态, 服务器将拒绝接受客户端进一步的状态改变, 直到攻击状态被清除。清除状态的办法就是在一个设置的时间量后清除。一秒钟之后, 更新玩家周期将状态清除为空闲, 并允许用户发送新的状态变化消息。

DirectPlay只有三个功能函数去处理进入的网络消息, 分别是CreatePlayer, DestroyPlayer和Receive。所以服务器需要将进入的网络消息转换成更适宜于游戏的信息。

服务器利用DirectPlay网络的Receive函数接收客户端的消息。那些信息被存储在传递给Receive函数的DPNMSG_RECEIVE结构中的pReceiveData缓冲区中。缓冲区中存放了更多有用的游戏消息, 它们将被填充到游戏的消息队列中。服务器的游戏代码并不直接处理网络消息, 而是由一个很小的功能函数子集来负责处理进入的消息, 并将它们转换为游戏信息输入到消息队列中。服务器的游戏代码将使用到那些游戏信息。

通过上述方法, 实现了最为简单的并对延迟进行合理化处理的算法, 对网络游戏联网技术是一种优化。

网络游戏大规模地形渲染的优化和客户端与服务器的网络连接模型是游戏领域很重要的研究课题, 尤其将各种关键技术无缝连接集成到一个游戏项目中, 对游戏行业的发展具有重要的意义。本文主要由二部分构成, 游戏地形的建立与优化、网络通信。其中游戏世界的建立是本论文的核心, 只有对游戏大规模地形渲染进行充分的研究及合理的优化, 游戏其他开发工作才能得以顺利进行。

3D网络游戏开发始终位于科学技术前沿, 属于不断进步、不断创新的学科。由于国内起步较晚, 相关研究工作刚刚开始, 与国外相关领域比较, 还有很多不足。在未来的工作中, 将对游戏网络连接以及细节优化处理技术进行更加深入的研究, 力争建立起一款更完善的游戏开发引擎。

摘要:采用OpenGL与D3D结合的方式实现3D网络第一人称射击游戏的重要关键技术。在深入理解3D游戏动画与高级实时渲染技术和网络游戏服务器/客户端编程的基础上, 以标准的游戏架构方式, 设计并实现一款3D网络射击游戏, 实现最为简单的并对延迟进行合理化处理的算法, 优化了网络游戏联网技术。

关键词:3D网络游戏,大规模地形渲染,平截头体剔除,四叉树地形分割

3D网络游戏论文 篇2

本人研究LOW POLY时间不长,到现在也就做过一个象样的东西。但想献自己一点微薄之力,写点东西,有不对的地方希望大家多包涵。尽管好多人说游戏公司对人物的要求比较高,但我们也不是说不能去尝试嘛~~ 这个模型是《FATE》上的SABER的女仆装,纯粹练习用,三视图是自己画的,不是很标准,不过可以把握比例~

BOX了,大家应该都会,主要就是讲讲自己的思路了~~(有不妥之处请更正了)把左半边删除掉,加个symmitry工具。

选中边用conect工具可以加线。配合shift键+移动就可以拉面出来了~~ 加线之后进行调点,大家可以在左试图和正视图里依靠参考图来调整。我只给出了透视的效果,大家一定要多切换到透视里来观察比例和效果,不要单纯依赖图纸。拉出头部和手臂,操作过程就是在重复的选边并拉出。注意透视的效果就可以了 用inset的工具就可以挤出胸部造型了: alt+x可以切换为半透明模式。把腿也弄出来吧 这里需要这样处理是因为考虑到动画的原因,两根线保证腿在弯曲的时候膝盖不会变形。继续发: ,用conect命令加线 肩膀也需要加线 ,需要加条线:

脚的制作过程要注意透视的造型,因为不会单独做脚,而是和鞋子一起做出来的,所以需要多考虑布线

,选这些面进行extrude.加线,注意正反都要像图中那样布,以便于拉出手指 ,注意在调点过程中要多切换到透视图里找感觉,差不多这样就可以了.接下来就是头部了,算是重头戏了吧

看起来有点外星人的感觉很吓人,没事慢慢就好了~~~~

脸上的线用文字很难表达,我画了一张小图,大家可以参考,基本上需要加线的地方我都用红色涂了:

嘴巴需要两条线来定型,到末端就可以处理成三角面了。其实这里一条线也是可以的,如果不考虑面数问题纯粹练习的画还是尽量做好一点~~~

再给一张正面的嘴巴:

在最终调整的时候多用软选择工具:如图

尽量能调整到红色线的那种感觉,因为从这个角度看会有这样一条曲线的:

脖子这里可以选着一圈面复制出来,然后调整比较快:

由于前面没有考虑清楚,这里必须把胸部删掉了~~~ extrude就可以了,然后调整一下,中间要细点

腿上的花边也比较容易做,加一条线,chamfer一下再选着面进行extrude,当然最后还是要调整一下造型的

这里和脖子一样的做法,复制出一个圈

然后可以拉伸出裙子

再复制出一小段

这里我在制作中没有把过程记录下来,望大家见谅,不过不算太难,应该都能拉出来的.头发的制作比较复杂,我也没有详细的记录,给几个角度的图大家参考的建吧,方法并不唯一,关键是自己的思路了。我这个地方弄的也不好,每次头发总是处理不好的~~

下面讲讲UV了,这个地方很枯燥,而且比较繁琐。上次在做北欧女神的时候就被人狂P UV展的有问题,呵呵,贴图的展开的确是很需要花时间去弄的,可能它关系到资源利用吧。UV我总结了两中方法,一种是直接在模型上加unwrap UVW,然后在它的modifier list里可以进行选择面,然后进行planner map,这种方法似乎不能选择展开方式,所以现在用不很合适。

所以一开始我们还是先选择面,添加uvw mapping之后再去添加unwrap UVW。选择头部的面,在UVW mapping里选择cylinder的方式。

unwrap uvw

点右边的EDIT编辑命令,就会弹出窗口。我们要把展开的脸的UV尽量的往边上放,因为等会我们会继续添加poly select修改器,再次展开后就看不到原先展好的脸的UV了,为了避免重合,所以尽量放的远一点吧。

继续添加修改器poly select,然后选择新的要展的面。然后就是重复了,添加UVW mapping 选择展开方式,然后再添加unwrap uvw,把展开的UV尽量靠边放。

任天堂裸眼3D游戏精选 篇3

预计2011年末发售

足足等了十年,林克(塞尔达系列游戏的主人公)终于将要迎来自己生命中最美好的时刻:登录任天堂——裸眼也能玩3D游戏的3DS掌机。和当年设计师推出第二款N64一样,3DS游戏机的机身并没有做什么太大的改动,设计师的巧手只是把它变得更精致小巧了一点儿。3DS里内置了陀螺仪,玩家只需摇晃游戏机,就能拉开弹弓,对准投射目标,而“拖拽”功能也无需用触控笔实现,玩家只要用手指点点3英寸的触控屏就能达到同样效果。而游戏图像更加精彩动人,栩栩如生。毫无疑问,经典的故事和先进的3D技术将使得《塞尔达传说:时之笛3D》成为该系列中最棒的一部作品。

《生化危机:启示录》

(预计2011年发售)

有人说,3DS不过是给小孩子们玩的,既然这样,尝试被僵尸围攻的滋味怎么样?《生化危机:启示录》就很适合他们。这次,恐怖旅程将在一艘豪华游轮上展开,主人公将面对成群结队的活死人围攻(活死人在被感染期其实就是乘客)。制作方Capcom说:“它并非一部战斗游戏,而更倾向于解谜和生存。”

《合金装备3:食蛇者 3D》

(预计2011年发售)

尽管索尼一直紧紧拽着《合金装备》系列游戏,但还是不能阻止它登录任天堂3DS游戏机。对于无数的MGS粉丝来说,这真是一个大快人心的消息,因为又可以再次在新的掌机上回味经典的“食蛇者”了。本作是PS2上的《合金装备3:食蛇者》的重制版,并且将加入3DS的特性裸眼3D效果。

《超级街头霸王4 3D》

(现已发售)

玩家们不用担心,虽然这部游戏打着3D的招牌,但其游戏模式和胜利条件还是和你们钟爱的一模一样。同时,本作的打斗场面和参赛选手都有了进一步的提升,此外游戏还加入了技能快捷键并支持通过Wi-Fi双人对战。这无疑将突破以往掌机格斗游戏的水平。

《PES实况足球3D》(现已发售)

Sky电视台体育频道的3D足球栏目没有让足球粉丝们交口称好,但是这无法阻挡《PES实况足球3D》发售的决心。这部作品将涵盖60个国际球队和170个俱乐部,还将支持无线玩家对战,通过Street Pass功能用户可以查看临近玩家球队,并对比双方的实力、各自的策略以及各项数据。该游戏包含PSP版本的所有内容,但以3D显示无疑更能让玩家体会到身临其境的奇妙感受。

值得期待

2011年5月

《边缘战士》 (Xbox 360、PS3、PC)

故事发生在一座名叫Ark的漂浮城市中。在这部FPS游戏里,玩家可以自由选择双人、单人、Co-op合作以及挑战模式。

2011年6月

《声名狼藉2》 (PS3)

在本作中,主角Cole不仅拥有和以往一样的放电超能力,还将拥有更为丰富的格斗武器。据称,玩家很有可能将使用PS3的体感遥控器来操控Cole。

2011年9月

《抵抗3》 (PS3)

3D网络游戏论文 篇4

近日, 由华数和杭州卢米埃影院通过3D技术共同转播的荷兰对斯洛伐克比赛让300多名内地球迷终于看到了“传说中”的3D世界杯。此前, 原定由中央电视台联合中影集团在全国影院转播的3D世界杯因多种原因被叫停。《IT时报》记者了解到, 在杭州卢米埃低调上映的3D世界杯更多属于实验性质, 现场3D效果良好。除了6月28日的1/8决赛和7月3日1/4决赛、7月8日半决赛外, 影院还将上映3D效果的7月11日3、4名比赛以及7月12日冠亚军决赛。观看3D世界杯的门票在卢米埃影城没有销售, 球迷可通过拨打杭州114等途径购买门票。1/4决赛每场票价120元, 半决赛每场票价180元。

3D游戏美工用哪些软件? 篇5

3D游戏美工是CG艺术的分支之一,3D游戏美术设计包含3D游戏原画美工、3D游戏UI美工、3D游戏场景美工、3D游戏角色美工、3D游戏特效美工、3D游戏动画美工,各个岗位的游戏美工共同合作,才能完成一部完整的游戏,由于分工不同,所以所用的软件也有所差异,游戏美工常用的软件有PS、3ds MAX、MAYA、UVLayout,Bodypaint、particleillusion、Adobe Illustrator、Adobe Dreamweaver、FL等。

PS,即Photoshop,是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。ps有很多功能,在图像、图形、文字、视频、出版等各方面都有涉及。

3D Studio Max,常简称为3ds Max或MAX,是Discreet公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件。其前身是基于DOS操作系统的3D Studio系列软件。在Windows NT出现以前,工业级的CG制作被SGI

GAMFE丨汇众教育

图形工作站所垄断。3D Studio Max + Windows NT组合的出现一下子降低了CG制作的门槛,首先开始运用在电脑游戏中的动画制作,后更进一步开始参与影视片的特效制作,例如X战警II,最后的武士等。在Discreet 3Ds max 7后,正式更名为Autodesk 3ds Max,最新版本是3ds max 2015。

Maya,即Autodesk Maya是美国Autodesk公司出品的世界顶级的三维动画软件,应用对象是专业的影视广告,角色动画,电影特技等。Maya功能完善,工作灵活,易学易用,制作效率极高,渲染真实感极强,是电影级别的高端制作软件。

Headus UVLayout是一款专门用来拆UV专用的软件,手感相当顺手而且好用,和MAYA比起来最大的手感差别在于这款是按住快捷建配合直接移动你的滑鼠来动作,所以你的手再编辑的时候是用滑的过去不再是点点拉拉,所以用起来相当奇妙!而且他的自动摊UV效果相当好虽然和MAYA的Relax类似不过这款摊的又平均又美相当好用。

Adobe illustrator是一种应用于出版、多媒体和在线图像的工业标准矢量插画的软件,作为一款非常好的图片处理工具,Adobe Illustrator广泛应用于印刷出版、海报书籍排版、专业插画、多媒体图像处理和互联网页面的制作等,也可以为线稿提供较高的精度和控制,适合生产任何小型设计到大型的复杂项目。

Adobe Dreamweaver,简称“DW”,中文名称“梦想编织者”,是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,DW是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。

Flash又被称之为闪客,是由macromedia公司推出的交互式矢量图和 Web 动画的标准,由Adobe公司收购。网页设计者使用 Flash 创作出既漂亮又可改变尺寸的导

GAMFE丨汇众教育

航界面以及其他奇特的效果。Flash的前身是Future Wave公司的Future Splash,是世界上第一个商用的二维矢量动画软件,用于设计和编辑Flash文档。1996年11月,美国Macromedia公司收购了Future Wave,并将其改名为Flash。后又被Adobe公司收购。Flash通常也指Macromedia Flash Player(现Adobe Flash Player)。2012年8月15日,Flash退出Android平台,正式告别移动端。

BodyPaint 3D 一经推出立刻成为市场上最佳的 UV 贴图软件,众多好莱坞大制作公司的立刻采纳也充分地证明了这一点。Cinema 4DR10 的版本中将其整合成为 Cinema 4D的核心模块。

汇众教育在游戏培训领域已有10余年的教学经验,数以万计的学生成功就业,实现了自己的游戏梦想。课程由浅入深,提前适应游戏公司的开发需求,零基础,能够全面掌握游戏开发的全流程。如果您想了解课程详情,可以直接登陆汇众教育官方网站http:/// 或拨打汇众教育24小时咨询电话400-6161-099。另外你还可以直接扫描下方二维码关注汇众教育微信公众平台。

3D网络游戏论文 篇6

3D液晶显示器发布

2011年12月15日,全球IT巨头厂商华硕电脑在京举办“亮震撼视界一一华硕VG278H3D显示器发布会”。发布了华硕旗下首款27英寸全高清3D液晶显示器,也是全球首款搭载英伟达3D Vision第二代技术标准的3D液晶显示器VG278H,作为英伟达的官方紧密合作伙伴之一,华硕3D液晶显示器始终是英伟达3D Vision技术最积极的推动者,从上一代3D液晶显示器VG236H开始,英伟达便联手华硕在国内外各大展会中多次使用华硕显示器进行DEMO演示及体验。作为本次发布的业界首款支持英伟达3D Vision第二代技术标准的3D液晶显示器,华硕VG278H除了采用极具视觉震撼效果的全高清27英寸显示面板外,通过最新加入的“3D LightBoost”技术可将3D图像的亮度提高到传统3D显示器的两倍。同时搭配第二代主动快闪式立体眼镜,镜片相比第一代提升了20%,因此视域更加宽广,对外部光线的遮挡效果也更好。配合华硕独有的“Trace Free 第二代无拖影技术”,华硕VG278H当之无愧的成为当下众多3D娱乐液晶显示器之中的问鼎之作。

玩家国度的华丽变身:3D革命

华硕在2006年正式创建“玩家国度”品牌,并推出旗下首款专业游戏笔记本电脑G1,从2006到2011,第一代游戏双雄G1/G2、双显卡&双硬盘“战神”G70,可实现双段式超频的G50,可用手势操控的G71,“隐形战机”G73,以及在3D观感上全面提升的现任主力战将G73SW、G53SW、G74SX等,都为玩家游戏提供了顶级享受。带着让用户摘掉眼镜,自由享受3D画面的初衷,裸眼3D技术走进了华硕G系列家族。华硕采用的是柱状透镜技术,其最大优点就在于屏幕亮度不会受到影响。该技术的成像原理,简而言之就是在液晶显示屏前方内置一层柱状透镜,产生分光作用,使双眼接收到不同图像,从而产生三维视觉效果。华硕为笔记本特别内置的摄像头,可以实时追踪人眼,并通过软件分析当前观看者的位置,调整柱状透镜层的偏光角度,使用户在任何角度和位置都能自如观看3D图像。摄像头能同时追踪锁定两至三双眼睛,更为用户带来与家人共同观看3D的分享乐趣。

首款裸视3D机型:G53SX

华硕G系列首款引入上述全新裸视3D解决方案的产品型号为G53SX。该机型在高效Sandy Bridge平台基础上,升级至新一代NVlDIA GeForce GTX560M超强独立显卡,强悍性能可与台式机相媲美,全面满足游戏、视频编码及办公应用程序等多方面的应用需求。利用G53S×播放影片时,机器会智能感应3D片源并即时启动裸视3D应用程序,供用户自行选择3D或2D视效。通过侧身的HDMI1.4接口,还可与大屏3D电视、3D显示器等设备相连,为用户呈现全高清3D 1080P的视觉效果。

开家3D游戏厅,时尚又赚钱 篇7

本文介绍的项目是3D游戏厅, 其核心设备是3D游戏机, 包括枪击类、格斗类和赛车类等游戏。在玩游戏的时候, 玩家只需要佩戴3D眼镜, 就如同身临其境。以一款“3D环游”赛车游戏为例, 初看设备外型颇似一辆炫酷的赛车, 当你坐上驾驶座, 戴上3D眼镜, 眼前的赛道、赛车、建筑全都立体化, 仿佛它们不是在屏幕里, 而是就在你的身旁。当你“发动引擎”, 手握方向盘, 听着赛车发出刺耳的呼啸声在赛道上飞驰, 你就会觉得自己就像真的坐在一辆赛车里, 正在驾驶着它在赛道上飞速前进。

新技术、新产品, 展会上大受欢迎

该项目于2012年分别亮相于中国特许展和广州游博会, 在两个业内权威展中, 3D游戏机颇受市场欢迎。以游博会为例, 不仅吸引了大量的国内玩家, 还吸引了不少海外玩家, 而且在展会期间就有不少海外商家 (如美国、英国、法国、中东地区) 向项目方订购游戏机。据业内专家介绍, 这种3D游戏机采用眼镜式3D技术, 目前在国内这种游戏机很少, 属于采用了新技术的新产品, 玩家在玩游戏机的过程中佩戴3D眼镜就能身临其境, 其应该是大型游戏机未来发展趋势之一。

投资最低30万元, 经营可剑走偏锋

据本刊记者调查了解, 3D游戏机的售价与常规游戏机相差无几, 根据游戏机的机型、功能等不同, 约20000—40000元不等。

对于投资者而言, 最低投资30万元, 因为要想取得一定经济效益, 投资者至少需要购置5—8台设备, 总投入约25万元。剩余5万元为流动资金, 包括场地租赁费、员工费等。

据业内经营者介绍, 草根投资者可以“剑走偏锋”, 不仅可以将投资门槛大幅降低, 还能取得不错的收益。

另类招数一:追着展会开游戏厅

海南的小伙子刘柳, 2012年2月份开始经营3D游戏机。最初他手头资金不足, 只够购置三四台设备, 但是他又不愿意放弃这样一个赚钱的好机会, 于是他想到了追着展会赚钱的思路。具体而言, 凡是展会他都会参加, 向组委会租赁一个区域, 作为活动区, 专门向参展者、逛展者有偿开放。

刘柳透露, 因为这个思路最大的好处是可以省去一笔较大的房租、水电费支出, 虽然参加展会也要支付一定的租金, 但是相比一个黄金地段的店铺租金要少很多。另外, 展会上具有较大的人流, 即使自己低价经营, 也能有利可图。截至2012年8月底, 刘柳一共参加了几十场展会, 大约赚取了近12万元的净利润。

同时刘柳表示, 经过一段时间的摸索, 他发现只要展会面向大众或者是青年人, 业务都不错, 反之效果就一般。

另类招数二:傍着夜店开店

深圳王先生的经营思路就是傍着夜店开店, 具体而言就是, 他专门与台球厅、KTV、酒吧、棋牌室等夜店场所合作, 在这些场所中摆放1—2台游戏机, 供顾客使用。王先生表示, 这个思路的优点是, 夜店的目标顾客主要以年轻人为主, 而3D游戏机也主打年轻人, 两者有交集, 人气有保证, 缺点是投资者要想赚钱, 至少要购置10台游戏机, 初始投资较高。

浅析中国3D游戏的设计与困境 篇8

一、阻碍我国3D游戏基础发展的因素

一切艺术创作的创新问题都是一个永恒的课题, 因为没有创新就没有发展, 所谓标新立异、推陈出新, 都是指在继承过去设计创作成果的基础上, 开拓新思路、发掘新的艺术表现形式, 寻找新题材。在3D游戏动画创作范畴, 还要探索新结构、新技术领域、开拓新的灵感来源。我国现阶段的3D游戏动画设计, 由于受社会经济和文化发展阶段的制约, 还没有形成既结合中国特色, 又具有鲜明时代感的设计风格趋向, 我们缺乏3D游戏动画专业基础知识和基本三维文化素养。其具体病症在于:对3D游戏动画的意义缺乏理解, 缺乏正确的3D游戏动画意识和观念;社会整体三维影视文化发展的落后;三维设计运营管理机制不完善。

我国的美工方面绝对在世界上算的上前列!可是为什么大部分的中国玩家会比较倾向的选择去玩国外的游戏呢?致命的原因一是设计者对设计感官的误差。二是市经济的负面冲击影响了游戏动画的发展。现阶段市场经济发展带来的不公平竞争, 导致的局面就是真正原创公司面临亏损, 却得意了“扒皮”公司。起原因是国内没有广泛的高素质的观众和消费群体, 这也是大部分群体接触不到高质量的精神消费品的一个必然结果。这是个很严重的社会问题, 是个无休止的恶性循环。解决这个问题的根本是提高观众群的审美意识和国家的支持。支持国产原创也是一个很有效可行的办法。三是管理机制的完善程度, 因为一个成功的团队是必须要有一个能纵观全局的智者来领导的, 反之的后果就是无数的人才呈一盘散沙的情况, 甚至是很多不可多得的人才转业从事自己不在行的职业。所以这是一个连环性的社会问题。

二、3D游戏的设计与制作

说到3D游戏的发展不得不说到它的制作方法, 因为3D游戏的分类很是广泛, 分析各种类型的制作方法与我国的人才能力, 才能找到我们在世界稳定的立足点。一我之功敌之长是很不明智的选择。

1、3D游戏与艺术修养的关系

大多数的人认为3D的制作和艺术修养没有很大的关系, 其实这是错误的思想。一个艺术功底非常扎实的人半路出家制作3D游戏要远远比一个没有艺术功底的人做几年甚至十几年要好的多。我说的好不是所谓的专业技能, 而是艺术意境。

在我看来艺术功底和审美是可以画上约等于号的, 一个没有艺术涵养的人只会一味的做着老板发下来的工作, 墨守成规是很难脱影而出的, 注定了只能做一个工匠。但是如果在工作的要求范围内加入一个人的艺术涵养也就是灵气, 那将大大的不一样, 因为那就是从工作升华到了创作!

我们有五千年的文化遗产, 有用不完的素材和灵感。可是现在情况却是我们宝贵的文化遗产没有在自己国家的人手中发光, 却让国外的人屡屡用我们的文化遗产。这丝毫不弱于民众危机, 若干年后我们的后代的思想会被他们拉扯过去, 会一味的崇洋媚外。

2、关于3D数字制作软件

首先说3D游戏的主要软件有3DMAX·ZB·MAYA等, 这是国内主要用到的软件。综合国内的情况3DMAX的使用很是广泛, 有很多领域要用到的软件。这个软件的特性主要体现在性价比上, 它可以支持各种的引擎, 上手速度快, 节省工作时间等优点。缺点在于不够MAYA的人性化, 节省时间的基础上缺乏灵活性, 但是确实很适合制作游戏。ZB是次时代单机游戏制作的一个重要软件, 对于艺术功底强的人很容易上手, 可对低模进行细致雕刻, 很方便的软件, 但是国内熟练的人才很少, 大多这样的人才都被国外次时代游戏公司高薪挖去。

3D动画或是CG一类的制作软件主要有MAYA·PS·PR等诸多后期软件。因为3D动画的要求是要精度的模型, 所以MAYA这样可塑性强的软件比较适合动画的制作。还有MAYA的动画系统十分齐全及人性化相比3DMAX的动画系统有很大让人发展想法的空间。再者动画需要各种各样的后期制作, 对于国内的后期在我看来在世界上还是算的上有发言权的。很多的国外大型电影和动漫游戏公司的后期都高价拿到中国来制作, 所以说我们有很强大的后期团队, 却极其的缺少优秀的领军人物!

在我国, 游戏设计成为方兴未艾的朝阳产业, 与世界发达国家相比, 中国的数字媒体才刚起步。远远不能满足国产动漫业对人才的需求。据北大方正影视游戏动画机构有关人士称, 从动漫业的发展趋势来看, 游戏设计人才总需求量大约在10 万人。目前市场上游戏设计人才难招, 主要缘于两方面:一方面是中国对游戏人才的教育还比较滞后, 还没有形成高质量的供给;另外游戏创作也需要实践经验, 而且游戏人才也需要艺术根底的, 其实游戏人才是一个需要全方面素质的人才, 其中, 教育是最根本的问题之一。最早的CG培训始于上世纪90 年代初期, 开始主要是一些平面培训班为了扩大授课范围而开设的三维软件培训班, 近两年, 专门的游戏、动画技术短期培训班才多了起来, 但其不菲的学费、脱产学习方式却使很多CG爱好者望而却步。

为了缓解国内游戏设计人才急缺状况, 提供适合各层次、各城市学员不同需求的培训课程, 以网络方式开展动画设计师远程培训, 远程教育具有性价比高、学习时间灵活、招生范围广阔等优点, 以远程教育方式开展的动画设计培训, 将会受到学员以及社会各界的关注与厚爱!

三、结论

3D游戏设计整体的多元化和部分个性化的发展, 使人们对设计形态、设计情感产生了更高的要求, 促使更新的题材和形式出现。设计师要想发挥独创性, 运用与众不同的表现角度和表现手法, 不走人家走过的老路, 关键在于3D游戏设计必须发展创新。

参考文献

[1]袁庆龙, 候文义.中国游戏产业论[J].鲁迅美术学院学报, 2001, 32 (1) :51-53.

[2]高志, 三维动画的发展[J].吉林:吉林美术出版社, 2006, 04 (4) :23-27.

3D网络游戏论文 篇9

关键词:法线贴图技术,凹凸映射图,法线向量,切线向量

在游戏中可以看到人物面部的皱纹,石质的浮雕等等凹凸效果都是通过3D凹凸技术完成3D效果表现。制作凹凸感的表现方法大致有二种方法,一种方法是在创建模型时,增加模型的网格数制作出凹凸感。这种方法的优点是准确、真实,但缺点是模型数据较大,点面数较高,对硬件设备要求很高。在游戏开发中很难应用的。另一种方法是通过材质表现实现凹凸效果。即在材质编辑器中使用凹凸(BUMP)贴图或法线(NORMAL)贴图来表现凹凸纹理效果。凹凸(BUMP)贴图只是一种视觉上的凹凸效果,模型的真实网格并没有发生相应的形变,如果视角变化,看起来就是一张简单的平面图。而法线(NORMAL)贴图中,在贴图过程中对贴图进行了一定的处理,从而保证了在视角变换以后仍然保证有较为明显的凹凸效果。

法线贴图是目前更为先进的凹凸表现技术,法线贴图改变了原来只是黑白的信息,而是采用蓝、紫色来代表相应的凹凸信息。使用了法线贴图的模型,其凹凸信息会在光的照射下产生相应的高光和阴影,在没有改变模型多边形数量的前提下,而获得更高的多边形的细节,因此,法线贴图技术广泛用于游戏引擎程序中。

1 法线贴图技术

法线贴图技术是一种虚拟3D技术。人之所以能够对物件看出立体感的主要原因是因为人的两只眼睛因看到景像的不同,则能够分辨出景像的立体感。但电脑的屏幕是一个平面,分辨3D效果就只能靠光照效果来实现,法线贴图就是把一个表面的凹凸情况用每个点的法线向量记录下来,在贴图的时候根据法线贴图做光影的变换,从而实现凹凸效果。光照计算是法线贴图技术的数学基础。

法线贴图的RGB值取并不是RGB的颜色,而是每个点的法线向量的三个分量。在贴图的时候根据法线向量的三个分量做光影的变换,而每个像素的光照度是由光照计算公式所用的法向量及切向量决定的。如果将一个贴图上所有的像素点和法线向量及切向量记录下来,再用RGB颜色编码方式进行记录,这样就可以实现后期的凹凸效果了。

2 凹凸映射图的构造

当物体从任何非边缘方向观察的时候,见到的表面细节通常是由表现的光照方式决定的。在法线贴图中就是记录下了一个需要进行光照的光影变换的贴图上的各个点的凹凸情况的贴图,而每个像素的光照度是由光照计算公式所用的法向量决定的。要记录所有的贴图中像素点的法向量信息,则需要通过数学的方法来完成,采用凹凸映射图技术能很好的解决光照及法向量的问题。通过使用纹理映射在每个像素点上对法向量进行扰动,从而可以提供更详细的光照细节。

对法向量进行扰动的高分辨率信息存储在一种三维向量的法线图的二维数组中,这个三维向量称为凹凸映射图或法向量映射图。凹凸映射图中的每个向量表示一个方向,在这个方向上,法向量相对于插值所得法向量做相对偏向。向量<0,0,1>表示一个没被扰动的法向量,任何其他的向量则表示对影响光亮度公式的向量的修改。

用一个高度图(Height map)的灰度图来储存每一个像素的平面高度,灰度值的不同表示不同的平面高度,从而构造一个凹凸映射图。

在查找二维纹理图中的纹理元素时要分别用到二维纹理坐标。设二维纹理图的宽度、高度分别用s,t方向上的坐标值,取值区间为0到1。

为了从灰度图中得到某一个像素间的高度差,首先要计算s和t方向上的切向量,而切向量依赖于邻近两像素间的高度差。在具有w×b个像素的灰度图中,用H(i,j)表示存储在位置的灰度值,这样可以将s和t方向上的切向量S(i,j)和T(i,j)表示为:

公式中的常量a是用于调节灰度值范围的比例系数,用它可以控制对法向量扰动的程度。如果用Sz和Tz分别表示S(i,j)和T(i,j)的z分量,则法向量N(i,j)可以通过下面的叉积得到:

设s、t、r为坐标组成从立方体中心指向待采样纹理像素的方向向量,并将这些坐标重新映射到区间[0,1]上,以生成2D纹理坐标。这样在立方体纹理图相应的面上,可以使用相应的纹理坐标实现二维纹理图的采样。

2D坐标的计算公式为:

立方体的六个面上存储的不是图像的颜色,而是向量阵列,每个向量以RGB形式进行编码记录。计算公式为:

根据公式(4),法向量的分量用对RGB颜色编码方式进行记录。在图1中给出了一个灰度高度图,以及用公式(2)得到的对应的凹凸映射图。凹凸映射图中包含了被扰动的法向量。图中大部分都是淡紫色的。这是因为对于未被扰动的法向量(0,0,1),计算得到的RGB颜色为。

3 切线空间

因为向量<0,0,1>在凹凸映射中表示未经扰动的法向量,得到的法线贴图并不能得到很好的凹凸效果,所以需要将它与光亮度公式中经常使用的插值法向量相对应。这可以通过在每个顶点位置构造一个坐标系来实现,该坐标系中顶点法向量总是指向z轴正方向。除了法向量,在每个顶点位置需要两个与表面相切的向量。这两个向量形成正交基。这样所形成的坐标系统称为切线空间。如图3。

在顶点位置,切线空间与顶点切平面和法向量相对应。建立了三角网格的每个顶点的切线空间坐标系,就可以在每个顶点位置计算指向光的方向向量L,并将L变换的切线空间,然后对切线空间中的向量L在整个三角面上进行插值运算。

4 切向量的计算

选择每个顶点的切向量,以使它们与凹凸映射图的纹理空间保持一致。则采用有一种更加通用的计算方法来计算每个顶点的切向量。

在每个顶点处找到一个3×3矩阵,使用该矩阵可以将向量从对象空间转换到切线空间。为了达到这个目的。先考虑比较直观的问题,就是在相反的方向上如何将向量从切线空间转换到对像空间。因为顶点的法向量与切线空间中的<0,0,1>相对应,所以可以知道切线空间中的z轴总是映射为顶点的法向量。设x轴与凹凸映射图的s方向保持一致,y轴与凹凸映射图的t方向一致,p为三角形网络内部一点,则表达式为:

其中T和B是与纹理映射图保持一致的切向量,E是三角形的一个顶点的位置,是该点的纹理坐标。

假设三角顶点位置分别为E、F和G,并且它们所对应的纹理坐标分别为,,。以顶点E作为相对基准,设

并且设

T和B的方程为:

结合(5)、(6)、(7)、(8)式,则矩阵形式为:

两边都乘以矩阵的逆,可以得到:

通过上式可以得到顶点为E、F和G三角形的切向量T和B。得到顶点了法向量N和切向量T与B,利用下面的矩阵,就可以实现从切线空间到对象空间的变换。

经正交规格化后,新的切向量T'和B'可以表示为:

则从对像空间转换到切线空间的矩阵为:

其中T'和B'正交于N,并且相互正交。

将指向光的方向向量从对像空间变换到切线空间,求变换后的指向光的方向向量与凹凸映射图一个取样之间的点积,就可以得到光的某种颜色的表面向各个方向均匀地漫反射光照值。图4及图5为通过读取灰度高度图时行数学运算得到的法线贴图。

5 结论

法线贴图技术是通过凹凸映射图、切线空间的数学方法来实现的。凹凸映射运算在每个顶点位置上计算出指向光的方向向量L。切向量T'从顶点的属性数组中读取,B'向量用公式(13)计算得到。再结合RGB编码格式,记表凹凸映射坐标及纹理映射坐标。随着3D游戏开发的不断发展,应用法线贴图的数学方法实现实时表示3D的凹凸效果,为游戏引擎的开发提供一种数学方法。

参考文献

[1]珍妮.诺瓦科.游戏设计完全教程[M].糜晓波,译.上海:上海人民美术出版社,2008.

[2]Rouse R.游戏设计原理与实践[M].尤晓东,译.北京:电子工业出版社,2003.

[3]荣钦科技.JAVA游戏程序设计[M].北京科海电子出版社,2003.

3D网络游戏论文 篇10

国外对三维游戏引擎的研究主要集中在几个大公司,如3DRealms,Id Software,Valve等等,它们研究开发了一批优秀的三维引擎,如QuakeⅠ,QuakeⅡ,QuakeⅢ,Half-Life等。是它们推动了三维游戏引擎的发展。

在国内,北京航空航天大学计算机系是国内最早进行VR(Virtual Reality,虚拟现实)研究、最有权威的单位之一,它们首先进行了一些基础知识方面的研究,并着重研究了虚拟环境中物体物理特性的表示与处理;针对虚拟现实中的视觉接口,开发出了部分硬件接口并提出了有关算法及实现方法;实现了分布式虚拟环境网络设计,建立了网上虚拟现实研究论坛,可以提供实时三维动态数据库,提供虚拟现实演示环境,提供用于飞行员训练的虚拟现实系统,提供开发虚拟现实应用系统的开发平台,并将要实现与有关单位的远程连接。北京航空航天大学虚拟现实与可视化新技术研究室开发了虚拟北航校园项目,并设计实现了虚拟环境漫游引擎。在配置VOODOO2图形加速卡的Pll266微机平台上,漫游引擎驱动了一个由10万个三角形构成的北航校园模型,其交互仿真率保持在25帧/秒以上。为了验证漫游引擎的通用性,还先后将漫游引擎用于房地产项目虚拟恒昌花园及虚拟珠穆琅玛峰等漫游应用中。

浙江大学CAD&CG国家重点实验室开发出了一套桌面型虚拟建筑环境实时漫游系统。该系统采用了层面迭加的绘制技术和预消隐技术,实现了立体视觉,同时还提供了方便的交互工具,使整个系统的实时性和画面的真实感都达到了较高的水平。另外,它们还研制出了在虚拟环境中一种新的快速漫游算法和一种递进网格的快速生成算法。浙江大学开发的虚拟紫禁城项目就是虚拟环境漫游的研究成果。

四川大学计算机学院开发了一套基于OpenGL的三维图形引擎Object-3D。该系统在微机上使用Visua1C++5.0语言实现,其主要特征是:采用面向对象机制;与建模工具如3DMAX、Mutagen相结合,对用户屏蔽一些底层图形操作;支持常用三维图形显示技术如LOD等;支持动态剪裁技术;保持高效率渲染。

中国地质大学分析了基于微机的三维应用程序的结构特点,提出了一个基于OpenGL和Direct3D两种3DAPI(应用程序编程接口)的三维图形引擎结构框架。该框架己经成功应用到其开发的系统“三维城市景观浏览器Map3DViewer中”,收到了较好的效果。

2003年,国家863计划正式将游戏引擎的研发纳入了国家高科技发展计划,并将研发的任务交给了金山公司。据金山负责人说,他们已经开发了一套较为完整的引擎,并将使用于新开发的游戏中。另外据报道一个成都的大学生彭海涛与三个志同道合的朋友,历时两年研发出了国内第一款真正意义上的原创3D网络游戏《传说online》。这是一款有完全自主知识产权的3D游戏。

2 研究内容及工具

2.1 研究内容

本文研究的主要内容是游戏引擎的架构,以RPG类型为例,研究如何为一个游戏合理设计各个模块(不考虑网络应用)。系统所应具有的模块如下:

1)渲染子系统(Graphics Sub-System):渲染、光影等。

2)输入子系统(Input Sub-System):把需要的各种不同输入装置(键盘、鼠标、游戏板,游戏手柄)的输入触发做统一的控制接收处理(透明处理)。

3)声音子系统(Sound System):负责载入、播放声音。

4)时间系统(Time)。

5)支持系统(Support System):数学成分(点,面,矩阵等),(内)存储管理器,文件载入器,数据容器等。

6)脚本系统(这里只预留实现接口)

7)物理系统:碰撞检测等

2.2 工具

考虑DirectX只能使用在Windows中,程序开发使用Microsoft Visual Studio 2005,本次使用的DirectX开发包为Dxsdk_aug2007,为最新的Direct9开发包,使用的显卡为ATI9550/128b/128M。

3 Direct 3D概述

Direct 3D是一种低层图形API(Application Programming Interface,应用程序接口),它能让我们利用3D硬件加速来渲染3D世界。可以把Direct3D看作是应用程序和图形设备(3D硬件)之间的中介。通过利用Direct3D API编程,能够屏蔽许多底层实现的技术细节,缩短开发周期。

图1显示了Direct3D、HAL(Hardware Abstraction Layer,硬件抽象层)及硬件之间的关系。其中HAL即硬件抽象层,是一组指示设备执行某种操作的特殊设备代码的集合,由设备制造商实现,Direct3D不能直接作用于图形设备,通过使用HAL与硬件图形设备协同工作。

如图1所示,Direct3D应用程序最终通过图形卡的设备驱动程序访问图形硬件。由于HAL存在,Direct3D将可以不需要了解某个设备的具体硬件特性,使它能够独立于硬件设备。Direct3D提供了相应的方法在运行时检查设备是否能执行某项操作。

4 Direct3D重要概念

4.1 顶点

一个场景是多个物体或模型的集合。一个物体可以用三角形网格来近似表示,3D世界中最基本的图元就是三角形,一个多边形的两边相交的点叫做顶点。为了描述一个三角形,我们通常指定三个点的位置来对应三角形的三个顶点,这样我们就能够很明确的表示出这个三角形。3D物体中的三角形经常会有许多共用顶点。为了解决复杂精细场景重复顶点占用更多的渲染带宽,我们在创建一个顶点列表的同时也创建一个索引列表。顶点列表包含所有不重复的顶点,索引列表中则用顶点列表中定义的值来表示每一个三角形的构造方式。通常每个顶点都包含如下信息:x,y,z坐标值、颜色值、用于计算灯光的法线和纹理坐标(u,v)。

4.2 表面

是一个像素点阵,主要用来存储3D图形数据。表面数据就像一个矩阵,像素数据实际上是存储在线性数组里面。

Direct3D里面的IDirect3DSurface9接口用来描述表面,这个接口提供一些方法来直接操作表面数据:

LockRect方法:可以获得一个指向表面内存的指针,通过此指针可以对表面上任一个像素点进行读、写操作;

UnlockRect方法:给表面解锁;

GetDesc方法:通过填充D3DSURFACE_DESC结构来返回表面的描述信息。

4.3 多重采样(Multisampling)

由于使用像素来表示图像,在显示时会出现锯齿状。Multisampling就是使图像变得平滑的技术。它的最普通的用法就是全屏抗锯齿。D3DMULTISAMPLE_TYPE枚举类型能使我们制定全屏抗锯齿的质量等级。

4.4 交换链和页面交换

Direct3D通常建立2~3个页面组成一个集合,即为交换链,通常由IDirect3DSwapChain接口来表示。交换链和页面交换技巧被用在使两帧动画之间过渡更加平滑。通常由Direct3D自己去管理。

4.5 深度缓冲

深度缓冲是一个表面,但它不是用来存储图像数据而是用来记录像素的深度信息。深度缓冲为每一个像素计算深度值,并进行深度测试。通过深度测试我们可以知道哪个像素离摄像机近从而把它画出来。这样就可以只绘制最靠近摄像机的像素,被遮住的像素就不会被画出来。

4.6 顶点处理

顶点是3D图形学的基础,它能够通过两种不同的方法来处理,第一种:软件顶点处理(software Vertex Processing),第二种:硬件顶点处理(Hardware Vertex Processing)。前者总是被支持而且永久可用,后者要显卡硬件支持顶点处理才可用。使用硬件顶点处理总是首选,因为它比软件方式更快,而且不占用CPU资源。如果一块显卡支持硬件顶点处理的话,也就是说它支持硬件几何变换和光照计算。

4.7 设备能力

Direct3D支持的每一种特性都对应于D3DCAPS9结构的一个数据成员,初始化一个D3DCAPS9实例应该以用户的设备实际支持的特性为基础。因此,在我们的应用程序里,我们能够通过检测D3DCAPS9结构中相对应的某一成员来检测设备是否支持这一特性。

5 Direct3D初始化

初始化步骤:

1)获得IDirect3D9接口指针。

2)检查设备的技术特性,确定显卡是否支持硬件顶点处理。

3)初始化一个D3DPRESENT_PARAMETE结构实例,这个结构包含了许多数据成员,它允许我们指定将要创建IDirect3DDevice9接口的特性。

4)创建一个基于己经初始化好了的D3DPRESENT_PARAME-TER结构的IDirect3DDevice9对象。

6 游戏引擎架构

3D游戏引擎通常由以下几个部分组成:图形处理、染器、碰撞检测、声音处理、网络连接以及必要的游戏逻辑,因为引擎基于Direct9.O,故大部分底层实现需要Direct3D支持,具体架构如图2所示。

3D游戏引擎架构其中的游戏逻辑模块主要起着衔接引擎各模块工作、引导控制流数据流的作用,它加载游戏中的模型文件,接受并处理用户在游戏过程中输入控制请求,处理用户设定的游戏参数,将各种操作指令送到相应模块进行处理并将最后显示结果送至渲染管线。通常图像的渲染处理、光栅化在显卡的GPU(Graphic Processing Unit,图像处理单元)中实现。

7 游戏主程序

7.1 游戏主程序的流程

一个典型的3D游戏主程序的伪代码如下:

Direct3D初始化:

初始化游戏中所需要的设备;

处理消息;

while(1)

{

处理用户的输入;

更新物体的位置;

渲染处理;

}

}

其中更新物体位置信息的伪代码如下:

保存物体的当前位置;

根据控制输入或者已有逻辑计算新的位置;

if(新位置不可用或者发生碰撞)

将新位置设置当前位置;

}

}

7.2 框架模块

Windows是一个消息(Message)驱动系统。Windows的消息提供了应用程序之间、应用程序与Windows系统之间进行通信的手段。应用程序想要实现的功能由消息来触发,并且靠对消息的响应和处理来完成。由于游戏编程对处理速度的要求,在D3D编程中通常不使用Windows提供的消息,也就是说忽略Windows的消息(窗口关闭的消息通常会处理),针对这一特点,几乎所有的游戏的窗口的创建具有共性,因此设计一个用于创建窗口的类CGameEngine_app,其声明如下:

8 结束语

本文论述了基于Directx9对3D游戏引擎开发的过程,对图形渲染管线,资源管理等方面进行了深入的研究,设计并实现了一个简单的3D游戏引擎的主要部分

参考文献

[1]刘祎玮,张引,叶修梓.3D游戏引擎渲染内核架构及其技术[J].计算机应用研究,20006(8).

[2]樊翠,王丽芳.基于D3D的三维游戏引擎的设计与实现[J].科学技术与工程,2006(10).

[3]惠志,李春富,刘心雄.一个基于3D游戏引擎的虚拟展示方案[J].微机发展,2005(4).

[4]刘小丹,付丽梅.一种个性化人脸游戏引擎设计[J].辽宁师范大学学报(自然科学版),2007(1).

[5]曹阳,梁华,蔡宣平.基于DirectX的音频视频无线传输系统设计与实现[J].现代电子技术,2007(15).

[6]岳望,李根,王钲旋,等.教学用三维游戏引擎的层次结构分析与初步实现[J].大连民族学院学报,2007(5).

[7]周新春,昂海松,罗东明.基于DirectX的微型飞行器飞行仿真系统[J].系统工程与电子技术,2007(7).

3D网络游戏论文 篇11

“Facebook”和“第二人生”整合在一起是什么?答案是游秀世界。

游秀世界是易城蓝天开发出的世界上第一款基于网页的3D社交娱乐平台。这是一个全新的体验:用户可以告别庞大的游戏客户端,只需要下载一个3M左右大小的插件,就可以直接在网页上运行3D互动游戏,同时可进行SNS社区的2D活动。

SNS平台加上网络3D游戏,两者相结合并不是件容易的事情。易城蓝天的CE0宋晨枫研究这种组合有很长一段时间。创立易城蓝天之前,宋晨枫在微软游戏工作室担任中国市场的游戏制作人,创建了中国首个视频游戏孵化中心,并负责其与中国顶尖游戏开发商合作开发面向中国的Xbox 360游戏。“SNS是整合人际关系的一种方式,用内容整合关系。变成关系渠道。”在研究了SNS后。宋晨枫得出这样的结论。

全世界的创业者都想参合SNS这块大蛋糕,Facebook抢了最大的一块,剩下的人难免要与其区别开来。在对比过程中,宋晨枫发现国内的SNS平台几乎都以2D游戏娱乐为主要卖点,功能同质化很严重,平台缺乏创新,用户难以持续保持活跃度。“Facebook的用户活跃度一直很高是因为它用户自创内容很多,并且拥有包括第三方软件开发商在内的完善的产业链。”宋晨枫说。相比之下,国内的SNS用户还不够成熟,不能自己创造内容,要靠平台引导。虽然开心网、人人网都说要做开放平台,但是他们自己缺乏独特的核心技术,国内的第三方软件开发商也一直不成气候。

基于这样的前提,2007年宋展枫组建了自己的团队创建了易城蓝天,其中有约7人来自微软、Google这样的软件互联网巨头。利用之前开发游戏的经验,他和他的团队花费了近两年的时间开发出了先进的网页3D引擎技术“Eden”(伊甸园)。率先实现了在网页环境下的3D应用,游秀世界便是基于Eden而开发出来的“游戏+社区”的全新平台。

“SNS平台活跃度要看两块,一块是社区的形成,即人际关系的拓展;另一块是平台内容能够即时更新。游秀世界的优势是人际关系这一块能够延续SNS的长处,平台内容则能利用公司自身独有的Eden技术来不断拓展比传统2D插件更富体验性的3D应用。”宋展枫对自己的产品非常有信心:与Facebook相比,游秀世界娱乐性更强,更能吸引客户;与开心网、人人网相比,游秀世界基于Eden基础的3D游戏更能保持用户持续的活跃度。

在商业模式上,宋晨枫对易城蓝天有阶段性的规划。第一阶段是企业品牌期,即依靠自有产品游秀世界将企业品牌树立。这一阶段企业主力打造游秀世界,等到用户积累到一定数量的时候,就选择像网游一样的出售虚拟道具作为主营业务,另外还会在游戏中插入一些植入式广告。第二阶段是软件开发期,即在品牌逐渐强大后,依靠自主知识产权的Eden技术,承接其他网站、社区3D网页软件设计业务。

3D网络游戏论文 篇12

终端区进离场航线网络优化的基础是3D空间的路径规划问题。目前, 路径规划在空射巡航导弹实时轨迹优化[1], 无人机回避威胁航迹规划[2—4]和移动机器人动态环境下的路径规划[5—7]等诸多方面取得了丰硕的研究成果。研究路径规划方法主要分为: ①基于概略图的路径规划方法[8,9]; ②基于栅格的路径规划方法[10]; ③基于类比的路径规划方法[11,12]。这些方法的主要区别在于应用不同的启发式算法, 主要采用Voronoi图, 粒子群算法, A*算法, 遗传算法, 人工神经网络算法, 进化算法等搜索满足条件的最优路径。

虽然路径规划的某些方法可以借鉴到航线网络优化问题中, 但以往的研究大多集中在二维空间路径规划方面。关于3D进离场航线网络研究, 国内外研究的文献很少。针对独立航线优化问题, 采用蚁群算法优化出水平方向安全经济性航线, 根据终端空域航线垂直剖面数据, 提出一种基于核密度估计的3D航线垂直剖面优化方法。分析得到进离场航线网络优化次序原则, 逐步优化各航线, 最终实现航线网络的总体优化。最后, 以西安/咸阳机场05L跑道为例进行了算法的验证与分析。

1 终端区进离场航线网络设计问题

终端区进离场航线是指由地面导航设备或卫星导航设备提供满足一定导航性能要求的空中飞行路线。在PBN导航技术条件下, 航空器沿进场航线从不同高空航路出口飞向使用跑道方向, 完成下降; 沿离场航线从跑道起飞向高空航路不同的入口方向, 完成爬升。因此, 进离场航线网络设计是承载航空器进离场飞行的重要交通设施, 它的设计分为两个阶段研究:

( 1) 在已知独立航线起点和终点条件下, 寻找最优且具有可飞性的3D空间路径规划问题。

( 2) 在独立航线优化基础上, 研究多条路径组成网络的次序优化问题。

1. 1 终端区空域模型

终端区空域是进离场航线网络优化的基础, 空域条件的优劣直接影响航线设计的复杂度。因此, 根据一般终端区空域条件, 建立空域模型。

以机场基准点所在位置为坐标原点O建立平面直角坐标系, 则终端空域的主要单元包括:

( 1) 终端管制区。终端区管制区是以机场为中心, 由一系列点{ g1, g2, …, gG} 组成的边界, 构成进离场航线网络空域范围。

( 2) 跑道 ( runway, RW) 。RW由机场基准点cR, 跑道长度lR和表示跑道朝向的跑道号nR组成。

( 3) 限制空域 ( restricted area, RA) 。RA是指民用航空器不允许使用的空域, 终端管制区空域条件复杂, 同时受空军限制, 划分为限制区、危险区、禁区。航线五边是降落航班密集区域, 为避免航线交叉, 划设以跑道中心为起点, 宽20 km, 沿进近着陆反方向, 长30 km的矩形限制区。

( 4) 航线优化起止点。进场航线Zarr起止点由一系列进入点A = { as1, as2, …, asn} 和终止点IAF = { ae1, ae2, …, aen} 组成; 离场航线Zdep起止点由起飞点TOF = { ds1, ds2, …, dsw} , 离去点D = { de1, de2, …, dew} 组成。其中, IAF和TOF与使用跑道位置和方向相关。

2 进离场航线优化模型

假设航线Z有m个航段, 航线起点pe= ( xe, ye, he) , 终点pf= ( xf, yf, hf) , 其中xe、ye、he、xf、yf、hf分别表示航线横、纵坐标和高度坐标。

2. 1 目标函数

航线总长度是影响进离场航线水平剖面经济性的主要因素。将航线Z每个航段投影到二维平面, 得到对应长度。定义 d 为航线Z投影总长度, 计算如 ( 1) 式:

2. 2 约束条件

2. 2. 1 越障

越障是指民用航空器沿进离场航线飞行时, 需要与各个地面障碍物接近而保持足够的垂直距离。假设飞机飞行高度为ha, 当前飞行阶段的最小超障余度为 (minimum obstacle clearance, MOC) 。终端区内地面障碍物OB={b1, b2, …, bj, bg}, 其中bj= (xj, yj, hj) , xj, yj, hj分别表示障碍物的横、纵坐标和相对高度。航段起点pi= (xi, yi, hi) , 终点pi+1= (xi+1, yi+1, hi+1) 。

如图1 所示, 设保护区宽为w, 副区宽为w/2, r是沿垂直于投影航迹方向量取的, 障碍物bj到投影航迹的距离。bj的垂直超障余度hMOC, 计算式 ( 2) 所示[13]。

因此, 与bj的垂直距离hs应满足如下条件:

2. 2. 2 航段转弯约束

航段转弯约束是航线平滑程度的指标。为了满足民用航空器机动性能和旅客舒适度要求, 上一航段与下一航段偏转角 α 应满足式 ( 4) 。

2. 2. 3 绕飞限制区

终端区内高大限制区是民用航空器不可逾越的障碍物, 因此, 设计航线时必须避开该类限制区, 同时保持足够的水平距离d0。需要说明的是, 在计算航线与高大限制区的距离时, 需要计算航线的每个航段与高大限制区的距离。假设某个限制区的顶点序列o1, o2, …ok, …, oK按顺时针方向排列; 航线Z的航段, ok与或其延长线的垂直交点为ppij, 定义

则顶点ok与水平距离为[13]:

航线Z与高大限制区的距离取所有航段与限制区距离的最小值[13], 即

式 (7) 中, ZRA为限制区使用空域;m为进/离场航段数;K为高大限制区顶点数。

因此, 航线Z水平绕飞高大限制区需要满足如下条件

综上所述, 航线优化模型是在满足约束条件下达到目标最优, 即

3 进离场航线优化方法

3. 1 基于蚁群算法的进离场航线水平优化

在优化进离场航线时, 直接在3D空间内搜索可行航路点搜索范围大, 执行效率低。本文首先将3D航线优化转化为二维平面内求解, 利用蚁群算法优化出水平方向的最优航线。具体步骤如下所示:

步骤1: 根据Maki K. 研究[14]构造各限制区间MAKLINK线, 可有效避开高大限制区, 同时缩小航线优化解空间范围;

步骤2: 利用Dijstra算法[15]以MAKLINK线中点为解空间搜索的一条可行航线R0, 作为航线优化初始可行解, MAKLINK线上点集序列构成航线解空间;

步骤3: 将MAKLINK线LiLi'均分, 水平离散度为a, 离散节点为l1, l2, …, la;

步骤4: 假设x只蚂蚁从起点p0至终点pe, 在航路点pi= ( xi, yi, zi) 时, 以一定的概率phoz选择水平方向节点li, phoz的计算如式 ( 10) 。

式 ( 10) 中, τliα表示水平方向信息素, ηliβ表示水平方向节点启发值; α 和 β 决定信息素和启发值相对影响力;

步骤5: 按正反馈规则更新水平方向信息素 τhoz, 信息素越多, 后面的蚂蚁选择该路径的概率越大, τhoz计算如式 ( 11) 。

式 ( 11) 中, τ0表示信息素初始值; ρ 表示信息素蒸发因子 ( 0 < ρ <1) 。

3. 2 进离场航线3D模型

终端区存在多条进离场航线, 难以避免地存在相互交叉, 其优化次序直接影响航线运行经济效益。 针对该问题, 根据空气动力学与飞机性能要求, 提出终端区内多条进离场航线优化次序原则。

( 1) 离场航线优先于进场航线。

( 2) 在满足第一条原则的基础上, 流量大的航线优先于流量小的航线。

为了能全面的分析航线剖面特征, 揭示交通运行的总体特征和规律, 需要进行轨迹概率密度估计, 发现全局最大密度吸引点, 即最优3D剖面模型。以某机场一周X1条进场飞行航迹与X2条离场飞行航迹研究进离场航线3D剖面模型, 横坐标表示飞机距离机场水平距离, 纵坐标表示飞机垂直高度。

为准确描述出飞行航线的稀疏和聚集程度, 首先求解轨迹间差异距离, 即对两个不同航迹点集间距离计算。采用前向Hausdorff距离[16]来定义两条飞行航迹和之间的航迹距离, 如式 (12) 所示。

核密度估计 ( kernel density estimation, KDE) 是一种非参数密度估计方法[17]。假设在d维空间中给定n个对象, 由于高斯核函数具有较好的平滑性, 采用标准高斯核函数, 则对象x的核密度估计定义为

式 ( 13) 中, h是光滑参数带宽。

计算全局最大密度吸引点, 即对应的航迹可代表最优3D进/离场航线剖面。分析航线剖面特征与运行规律, 计算垂直梯度, 该梯度既满足航线垂直越障要求, 同时满足民用航空器飞行性能要求。

4 实例分析

以西安/咸阳机场05L跑道为例, 进行进离场航线网络3D优化。该终端区地形复杂, 地面障碍物较多, 考虑4 个典型危险障碍物, 3 个高大限制区R306、R307、R308, 划设进近限制区R309。待优化的进离场航线的起始点和终止点如表1 所示。

4. 1 独立航线的优化

以离场航线Zd1为例, 首先构造初始航迹, 选取水平离散度a = 15, 蚂蚁数量x = 20, 迭代次数t = 500 代, 采用蚁群算法优化初始水平航迹, 如图2 所示。

以05L跑道一周1 462 条进场飞行航迹与1 631 条离场飞行航迹为例。利用3. 2 节核密度估计方法求得进场与离场最优飞行高度剖面, 离场航线以7% 垂直梯度持续爬升至6 000 m, 如图3 ( a) 所示; 进场航线成梯级下降模式, 以2%梯度自6 000 m下降至3 000 m , 平飞一段时间之后以5% 梯度着陆, 如图3 ( b) 所示。

4. 2 多条进离场航线优化

按照3. 2 节给出的次序优化原则, 设航线优先次序为

按照式 ( 14) 给出的次序依次优化航线, 图4 ( a) 给出进离场航线网络2D显示图, 图4 ( b) 给出进离场航线网络3D显示图。

5 结束语

上一篇:科学史经典实验下一篇:城市道路网规划