游戏引擎与游戏美术的关系

1649 篇文章 11 订阅
1277 篇文章 12 订阅

如果把游戏引擎比做汽车引擎, 那美术就相当于整个车身了。 就像卡车、 汽车、 拖拉机、 摩托车等,不同的车,它们引擎的构造也是不尽相同的。游戏引擎也是一样的,不同类型的 游戏,其引擎的构造也是不尽相同的。 就游戏的表现形式而言,主要分为 2D 游戏引擎,2.5D 游戏引擎,3D 游戏引擎。2D 游 戏引擎在技术是一种早期的引擎, 其技术已经非常的稳定了, 虽然目前的游戏技术已经突飞 猛进,但很多公司还是采用 2D 引擎,看中的就是它的稳定性,比如网易的大话西游系列, 采用的仍然是 2D 引擎。3D 引擎的发明已经有很多年的历史了,目前世界上知名的主流游 戏引擎,全部为 3D 引擎,比如 Unreal 引擎系列、QUAKE 引擎系列、DOOM 引擎、HalfLife 引擎等等。 就 3D 引擎来说,如果抛开游戏类型方面的因素,引擎针对美术方面主要包含以下几个 大的模块:

1、 渲染系统;

2、 模型系统;

3、 骨骼系统;

 4、 粒子系统;

5、 材质系统;

 6、 光照系统;

 7、 物理系统;

8、 插件;

 

 渲染系统

渲染系统是游戏图像显示的一个基础。3D 的渲染系统和 2D 相比之下要复杂很多,很 多游戏引擎的强大,很大一方面是体现在他的渲染系统方面。只有强大的渲染系统,才可以 加载更多的贴图, 进行更为复杂的复合与叠加运算, 才可以使画面看起来更加的绚丽和逼真。 渲染系统受显卡的限制比较大,不同的显卡,在同一套渲染系统上,其结果也是不完全相同 的。其原因一个是受显存的影响,如果当前屏幕的贴图总量超出显卡的承受极限后,就会出 现明显的卡机;另一方面是显卡功能的影响,比如一些硬件效果,像硬件水、HDR、骨骼 动画、 植物等等, 如果低端的显卡不支持这些效果的话, 在游戏中就只能以低端效果来显示, 或者无法显示。除了显卡的影响之外,渲染系统的性能也是至关重要的,当一些复杂的效果 叠加在一起的时候,其运算量会明显的加大,将会对整个游戏系统造成很大的负担。这些影 响往往又表现的游戏特效方面,因为特效是由很多透明的多边形组成的,在渲染系统中,透 明特效的叠加往往是最为消耗系统资源的,在游戏中,一旦一群人一起战斗,同时使用各种 各样的技能和魔法,这时候渲染系统就无法承担这种负荷,就会出现明显的卡机现象。如果 只是实现一个渲染系统,很多程序员都可以做到这一点,但如何最大化的优化渲染的效率, 就需要很强的技术来支持了。一方面,程序通过对模型和贴图的一些优化,以及贴图压缩的 方式,来提高渲染效率,一方面,通过美术压缩图像格式来提高渲染效率。比如现在比较常 用的就是一种 DDS 的图像压缩格式, 这种格式可以通过该图像在游戏中与游戏镜头的距离, 自动调整其分辨率的大小,这是基于 DX 平台的一种 Mipmap 技术,所以可以很大程度上提 高画面的流畅程度。但它本身也有它的缺陷,毕竟是一种压缩格式,压缩格式的大小在一定 程度上会影响到人的视觉感官。一般情况下,24 位真彩色和 32 位真彩色,大多数的图像效 果,如果不细看,是没有过于明显的差别的;但如果图像显示低于 24 位真彩色,比如 16 位色或更低, 这时候图像在视觉感觉上就会出现明显的差距。 所以什么时候使用未压缩图片, 什么时候使用压缩图片,只要能把握好分寸,也可以在很大程度上提高渲染系统的效率,而 画面不会有过于明显的变化。 另外 3D 渲染系统区别于 2D 渲染系统最大的一点就是三度空间的渲染了。除了 X、Y 平面坐标外,3D 引擎又增加了纵向的 Z 轴,如何在游戏中营造一个真实的空间,给渲染系 统提出了很大的挑战,如何把 3D 游戏做的更逼真、更自然、更细腻,更绚丽,是很多 3D 引擎所追求的目标。

 

 模型系统:

如果没有模型,没有光照,所谓的 3D 世界其实也就是一个伸手不见五指的黑洞。模型 就是构成整个游戏物理世界的基础。 构成模型的基本元素又是点线面, 通过这些基本元素的 组合,便可以营造一个虚拟的 3D 世界了。 在游戏制作中,提起模型,一直一来大家比较关心的一个问题就是多边性的面数,认 为多边性的面数会对游戏的效率造成很大的影响。 其实决定一个游戏中物件面数的因素有很 多的,而不是一个通用的标准。影响多边性面数的因素包括硬件、游戏类型、操作模式、引 擎性能等方面。RPG、FPS、RTS……不同的游戏类型,在面数的要求上,也是差异很大的, 主要原因是因为同屏幕现实的物件和角色数量会有很大的差异。 但同时, 这些不同的游戏类 型又会涉及到一个共同点, 就是全屏可以显示的多边性数量。 决定全屏幕多变形数量的一个 主要因素就是硬件。随着显卡技术的不断发展,显卡 GPU 运算能力的不断提升,对于 3D 浮点的运算速度也是越来越快, 在实际游戏环境中, 同屏幕现实百万级别以上的多边形数量 也是很正常的事情。通过一些基本的测试手段,我们可以计算出一个角色大致的面数范围, 一个物件的面数范围,通过这些基本的数据,我们制作出一些测试模型,在最大化接近游戏 实际环境的情况下,再反过来对引擎的性能进行测试,来得出引擎的承载负荷。 模型的基本元素:顶点,也包含 R、G、B、Alpha 等基本信息,通过引擎对这些基本 信息的控制,也可以实现各种效果。比如一些模拟效果,一些透明效果,都是在基于顶点信 息的基础上进行变化来实现的, 可以很大程度上节省美术制作的时间, 提高客户端运行的效 率。

 

骨骼系统:

骨骼系统是让角色模型运动起来的一个基础。骨骼系统也分两种,一种是程序在客户 端模拟一套骨骼系统,与美工使用的 3D 软件的骨骼系统相互匹配,通过 CPU 的计算来达 到角色运动的一种方式。另一种方式就是基于硬件的支持,目前主流的显卡,都支持硬件骨 骼系统, 程序只要让客户端的骨骼系统与显卡的骨骼系统匹配, 便可以使用基于硬件的骨骼 系统了。第一种方式的优点就是兼容性比较强,缺点是比较占用系统资源,在角色数量过多 时,会出现明显的卡机现象;第二种方式的好处就时效率非常的快,通过 GPU 的运算,可 以大大降低 CPU 本身的负载,提高运行效率,在游戏中,当前屏幕内也可以显示更多的角 色。缺点是限制相对较多, 在显卡型号上, 骨骼数量上,都会有一定的限制,在美术制作时, 一般情况下都是在硬件允许的范围内进行制作的。 骨骼系统除了模拟角色的运动外,也可以模拟一些布料的摆动,头发的摆动等,但过 多的骨骼同样会对系统的效率造成影响;

 

粒子系统:

粒子系统时游戏特效系统的一个基础。强大的粒子系统,可以模拟和创造出各种各样 的效果,大大增加游戏画面的丰富度,是目前 3D 游戏设计和制作中一个不可或缺的点。粒 子系统虽然很强大,但同时也有他自己的弊端。大多数情况下,在游戏中用粒子系统来模拟 游戏中的爆炸、烟雾、篝火、瀑布、天气特效、战斗技能等等特效,这些特效的帖图往往都 是半透明的,当一个粒子发射器的粒子数目过多时,这些透明的粒子叠加在一起,根据相关 的属性设置,会进行不同叠加运算,因为这些特效一般情况下都是动态效果,所以这些透明 属性的叠加运算也是在不停更新的,大量的数据预算,势必会大量消耗系统的资源。这也是 为什么很多游戏中一旦出现了大量的粒子效果时,画面帧速率会明显下降的原因。 如果引擎的粒子系统足够强大,就可以用粒子系统来模拟更为复杂的效果,比如粒子 形态的角色、刀光、各种变形等。 和骨骼比较类似的是,同样显卡本身的功能也可以实现更为复杂的粒子效果和帖图叠 加效果,如果当一块显卡不支持这些效果的话,那硬件粒子系统将在游戏中无法正常显示, 或者无法显示。所以有时候,就需要用另一套程序模拟的、简单的粒子系统进行代替,来达 到画面显示的一个基本效果。

 

材质系统:

早期的 3D 游戏,其游戏中的效果,仅仅是在模型上面贴上一张简单的帖图,然后在屏 幕上面显示出来。玩家通过显示屏所能看到的,主要就是这些帖图的外在效果,好比我们在 正常情况下看一个人一样,我们所能看到的只是他的皮肤,而看不到他的骨骼。所以通过调 整帖图的效果, 我们可以用一种最直接的方式改变游戏角色在客户端的现实效果。 帖图本身 是一个 2D 的概念, 能对帖图调整的属性主要包括以下几个方面: 贴图的移动、 贴图的旋转、 贴图的缩放、贴图的颜色变化、贴图的透明变化、贴图的叠加与混合。其中的贴图的叠加与 混合是一种非常有效的增加贴图效果的一种方式,像目前大家所熟知的 NormalMap、 LightMap 等贴图技术,都是在这种最基本的基础上面发展起来的。同样,在众多的贴图效 果中,有些可以通过程序简单的计算就可以达到,另一些,就必须需要显卡的支持了,比如 NormalMap,在一些非常低端的显卡上面,就是无法显示的。这些需要和硬件相互联系的材 质组合称为 Shader Model,很多显卡配置上面标注了支持 SM2、SM3、或 SM4 的就是说的 这个系统。但这个概念并不是由显卡厂商来定制的,而是由微软的 DirectX 平台来定制的, 并由各个显卡厂商来支持的。 因为很多复杂的效果都可以通过硬件来实现, 而不需要程序和 美术进行大量的工作,所以现在的游戏效果也越来的越逼真,越来越绚丽。但同时,一些游 戏制作流程也在不断的改变着,只有能跟上这些改变,才可以追上游戏发展的进度。 对于引擎而言, 只有做到和这些 SM 的完全兼容, 才可以在客户端中正常的运用这些材 质。对于这些材质的使用,也是非常挑剔的,有的材质可以大面积的、大量的使用,有些材 质,特别消耗系统资源,所以只能用到一些需要特殊表现的点上。 对于美术而言,一套可以灵活使用的材质编辑器则是必须的。程序方面实现的很多功 能,只有通过美术的多次测试、调整、组合,才可以创作出想想中的,或者预料之外的材质 效果,这些效果,将会使游戏画面有很大程度的提升。 光照系统: 在现实世界中,如果没有光,那一切都是不可见的,3D 世界的基本理念也是这样的, 只有光的存在,才能让丰富的模型世界显示出来。2D 游戏的光照系统相对 3D 游戏要简单 了很多。上面说过,一个模型有很多个顶点组成,每个顶点都有很多个属性,其中 RGB 三 个值,如果在 0,0,0 的情况下,则显示为黑色;255,255,255 的情况下,则显示为白色。 灯光的光亮属性也正是和这些基本的顶点值交互, 产生了最基本的光照效果。 除了这种方式 外, 通过一张特殊处理的帖图与模型本身的帖图进行一种特殊模式的叠加, 混合后所产生的 高亮效果,能模拟出光照的效果,我们称这种形式为 LightMap。 在游戏中,光照分为静态光影效果和动态光影效果。静态光影的效果是固定不变的, 也就是顶点颜色与帖图的亮度都是固定不变的。 动态光影就是反过来说, 物体的光影效果会 受光源的变化而相应的变化。 实时的动态光影是非常消耗资源的, 特别是当一个物体同时受 多个光源影响的时候,会很大程度上降低系统的效率。所以基于硬件的灯光效果,是一种简 单而高效的处理方式。就像对骨骼的限制一样,硬件对于灯光的数量也同样有限制,目前的 主流显卡, 同一个受光物体如果受光的数量一旦超越了 8 盏, 其多出的光源就不会对对该物 体产生作用。不过一般情况下,8 盏灯光来应付绝大多数的灯光效果,已经是绰绰有余了。 游戏中的灯光,根据功能的不同,也有不同的分类,比如:直射光、环境光、点光源、 聚光灯等等,灯光的种类越丰富,那美术用来表现游戏世界的方式也就更多一些。

 

物理系统:

在单机游戏中,物理系统往往是游戏引擎中很重要的一个部分,完美的物理系统会让 整个游戏世界看起来更逼真,更真实,但同时,物理系统对系统资源的消耗也是巨大的。在 网络游戏引擎中,物理系统往往是很简单的,一方面是物理系统会消耗大量的系统资源,另 一方面是实时的物理系统会产生大量的数据信息, 如果在网络上实时的传输这些物理交互信 息,从目前的网络速度来看基本是不可能的。所以网络游戏的物理系统,一般都是非常简单 的,比如人可以站在地面上,可以从高处落下,这就是一个最简单的物理设定。很多 3D 游 戏,角色之间都是可以互相穿插、重叠的,不是引擎无法实现角色之间的碰撞,而是网速不 允许有过于复杂的数据交互。 另一方面,为了突出客户端的效果,有的物理效果仅仅的是在玩家本地来实现的,虽 然效果很绚丽, 但并不会对策划的系统设计造成任何影响, 所以也不会传送任何相关的物理 数据到服务器方面,但有一点就是,自己看起来很绚丽、逼真的东西,在其他玩家那边,可 能什么也看不到。 在游戏中,角色除了与地形有基本的物理交互外,就是与建筑物有基本的碰撞。这种 碰撞也都是通过及其简易的模拟方式来实现的。

 

插件:

插件是引擎与客户端的一个交互接口。客户端的程序可以直接加载引擎资源,更新到 客户端里面。 但有些美术和策划资源, 则没有办法直接加载, 需要引擎提供相关的插件接口, 经过转换后, 成为引擎可以识别的资源, 才可以在客户端中开到美术以及策划最终完成的相 关设计。 崔海庆 2007-11-5

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值