资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
游戏引擎与游戏美术的关系如果把游戏引擎比做汽车引擎,那美术就相当于整个车身了。就像卡车、汽车、拖拉机、摩托车等,不同的车,它们引擎的构造也是不尽相同的。游戏引擎也是一样的,不同类型的游戏,其引擎的构造也是不尽相同的。就游戏的表现形式而言,主要分为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游戏,角色之间都是可以互相穿插、重叠的,不是引擎无法实现角色之间的碰撞,而是网速不允许有过于复杂的数据交互。另一方面,为了突出客户端的效果,有的物理效果仅仅的是在玩家本地来实现的,虽然效果很绚丽,但并不会对策划的系统设计造成任何影响,所以也不会传送任何相关的物理数据到服务器方面,但有一点就是,自己看起来很绚丽、逼真的东西,在其他玩家那边,可能什么也看不到。在游
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号