专业游戏论文!《星际争霸2》图像技术全解析

2008-09-01 11:11:45 来源:不详 作者:佚名 编辑:dsgames568 浏览:loading

  跟其他游戏引擎采用专门的shader创建工具不同,开发小组的目标跟随业界的发展趋势,设计一套灵活易用的shader系统,在星际2的引擎中编写着色程序代码就像是往整个程序里添加C++文件一样简单。形象点讲,shader代码是作为C++的外部函数库而独立于主程序,为游戏添加sheder就像是从C++的外部函数库调用函数一样简单。shader函数库预先定义好若干“入口”,通过这些入口可以直接调用不同的着色程序,而且每个入口都可以自由调用任一部分的shader代码,这样一来就使得shader的概念在星际2中显得相对模糊,也很难具体说明《星际争霸2》将使用多少条独立的shader,但其简单易用的特性让程序员可以很快上手而节省shader的测试、除错所花费的时间。此外,美工也可以在3DMAX中测试他们的新shader,如果效果满意就可以将其优化版本添加到shader代码的函数库里以供日后调用。

电脑游戏

  总的算来星际2的shader代码库将拥有8000行无重复、各不相同的shader代码,分成大约70个文件。值得一提的是这个规模比早期很多游戏的整个代码函数库还要大。

  第二个目标是将运算负担主要集中到GPU身上,一方面是因为当前GPU的图形性能已经远远超过CPU的运算能力,另外RTS类游戏不仅需要CPU在同屏处理成百上千甚至上万个作战单位的AI(在8人网络对战的情况下,每帧需要绘制的作战单元最高可达500个!)而且在多人游戏的时候还需要协调各设备之间的通讯,比较遗憾的是《星际2》的引擎并不支持DX10,模型顶点的生成同样需要消耗大量的CPU资源,所以其它画面运算的负担就必须尽可能分给GPU承担,为CPU腾出足够的资源用于其他运算。

  GPU方面,由于RTS需要处理大量作战单元的特性,可能有不少玩家会认为负担主要在顶点着色器方面,的确暴雪声称在出现海量作战单元的场景下顶点吞吐量可以超过百万,不过这个数目对于目前的GPU来说已经是小菜一碟。再加上通常玩家在实际游戏的时候为了统揽全局往往会把视角拉得比较远,这时候已经很难看清作战单位的模型细节,所以高多边形的精细模型并不会为游戏的画质带来多少好处。此外RTS类游戏所采用的视角不会带来多少无效渲染,所以暴雪最终将提高画质的关键锁定在象素着色器身上,在确定这一目标之后,暴雪的美工们将竭尽所能用Pixel Shder绘制出一个光影绚丽的星际战场!

  最后一个目标是打造一个引“擎中的多面手”,暴雪要求星际2的引擎必须具备适应不同需求场景的营造力,比如在实际游戏场景里,游戏要营造的场景必须做到气势恢弘,必须烘托出战斗中痛快淋漓杀戮的气氛,这时候就要求引擎具备高batch counts,对细节的表现力则不用过于注重;除了传统的RTS场景外,这次暴雪还将在星际2的单人战役中注入RPG元素,玩家在任务与任务之间能够加入到剧情的互动中来,通过跟NPC对话,选择不同的任务并对剧情的发展产生影响。而为了能够让剧情表现饱满鲜活,增进玩家的带入感,《星际争霸2》特别设计了一个剧情模式,在该模式里的所有动画过场将不再是简单播放一段段预先录制好的暴雪招牌式CG,而是改用即时渲染的方式进行,这就要求星际2的引擎必须同时具备渲染细腻、高品质场景的能力,这种场景通常跟RTS的游戏场景有很大不同,需要渲染大量光源下的物体光照、细腻的物体建模、复杂的表面反射、近距离的人物特写以及各种电影特效,简而言之就是更加接近FPS类游戏的场景特征。

电脑游戏

  为了达到这一目标,暴雪的引擎工程师们开始筛选合适的算法,力求做到效能质量两不误。接下来我们就来详细介绍一下星际争霸2引擎所采用的先进算法与特效技术。

延迟渲染

  暴雪对《星际争霸2》的场景设计目标之一就是在剧情模式下营造一个光源丰富、光照复杂的场景,同时也希望在实际游戏场景中能够呈现出更多的光源互动效果。在他们的上一部RTS作品《魔兽争霸3》中,由于当时的技术所限,场景中动态光源对作战单位的打光效果就有着严格的限制。由于计算不精确,其结果就是物体从一个光源区域进入到另一个光源区域的时候,物体身上的光照会出现闪烁bug,为了解决这一问题,他们唯有大幅度减少动态光源的数量。另一方面,在当时使用传统“顺序渲染”的情况下,大量的动态光源计算会造成draw call数量的激增,性能损失达到不可容忍的地步。为此暴雪还特意举了一个典型的例子:他们在一个场景中尝试为每一个marine单位添加动态光源,这样一来就必须计算每一个光源对周围环境所产生的光影效果,而由此带来的draw call很快就让性能低到无法忍受的地步;而同样的问题也出现在地形渲染上,最终开发小组唯有降低地形的复杂度才能解决问题。

上一页 1 2 3 4 下一页
友情提示:支持键盘左右键“← →”翻页
游民星空APP
随时掌握游戏情报
code
休闲娱乐
综合热点资讯
单机游戏下载
好物推荐
游民星空联运游戏