本帖最后由 jasu30 于 2011-6-1 14:20 编辑
紧接着一个广告牌光照特写之后,Samaritan首次出现。 主角的前几个镜头增强了粒子特效、局部运动模糊以及前面提到过的光照系统。但是当他抬起喷灯点烟时,首次出现子表面散射(Subsurface Scattering)效果。
Epic公司《Samaritan》演示程序中首次出现子表面散射特效。
子表面散射旨在解决‘塑料蜡’现象这一问题,‘塑料蜡’指的是,照在人物身上的光线只会弹回来而已,好像人物是由塑料制成的一样。当提前光照投射在物体表面上时,子表面散射能够渲染光照效果,使光线向表面内部散射,并且从该物体的不同位置散射开来。 就《Samaritan》演示来说,照射在人物皮肤上的光线被吸收了,在皮下实现了逼真的转变,然后从不同位置散射开来。 现实世界中的实例是,在一间黑暗的房间中,让火把的光线照过手掌,观察光线从另一侧照射过来,照亮黑暗。
在左侧,脸部只有漫射光照效果。中间是子表面散射效果,右侧则结合了这两种效果。 请注意观察最终效果的反射光辉很少,而且光线分散,而不是像第一个示例中一样始终固定在一处。
子表面散射对Epic来说是一项尤为重要的特性,因为人眼能够察觉脸部和物体的细节,因而可在瞬间识别威胁以及情绪。研究表明,游戏逼真度的最大障碍是渲染人脸,虽然人脸的渲染已经超越了光照和造型,能够包含姿态以及眼睛和嘴的动作,但是Epic的进步则让我们离扩展诡异之谷(Uncanny Valley)更近了一步。 然而Epic承认,这种人脸渲染依然有改进的空间,因为技术上的局限限制了光线所能穿透的皮肤层数,同时也阻止了一个光源散发出来的光线被另一个光源吸收。
喷灯的场景和随后的特写镜头还突出了另一项重大进步,即逼真的头发。 自从游戏中首次运用多边形以来,头发就一直是一项很难缠的渲染内容。一般会将头发渲染成为实心的块状,只对其中区区几根头发进行单独渲染。在最近的大制作游戏中,也仅仅使用了多个厚实且不透明的图层而已。
为了解决这一难题,Epic在现有网格植皮技术的基础上,利用对准镜头三角形带(Camera Aligned Triangle Strips)打造了一种创新的解决方案。 在这些非常细小的三角形带中,顶点利用Vertex Shader实现扩展。因此5,000条 曲线变成了16,000个三角形,通过利用包含36根头发的纹理,便创造了头发和胡须的逼真外观,正如在《Samaritan》主角脸上所看到的一样。
曲线 (左侧) 被置于Vertex Shader中,Vertex Shader会对曲线进行处理,以创造出对准镜头三角形带 (右侧) 效果,并将这种特效放到人物的头上或脸上。 5,000条曲线都以这种方式进行处理,从而创造出《Samaritan》中主角人物的头发。
这种方法的缺陷是会造成游戏模型的线条锯齿现象严重。在胡须的主要部分周围,锯齿线条最为稀疏。即便是这个锯齿最少的部位,对现代游戏来说也是不可接受的。 解决办法是对场景中的每一个物体均应用四倍多重采用抗锯齿(MSAA) ,然后再对主角头上和脸上的每一根毛发进一步应用超级采样抗锯齿(SSAA) 特效,从而在《Samaritan》演示中创造出光滑、逼真的头发外观。 Epic的Mittring解释道:"不幸的是,MSAA对显存的消耗非常大。 4倍速MSAA意味着需要五倍的纹理显存,这样造成延迟渲染器工作起来更加艰难。" Mittring并没有开玩笑。在《Samaritan》演示程序中,Epic不断冲击英伟达™ 精视™ GTX 580显存容量的极限 —— "1.5GB"。然而正如下面例子中的放大图所示,最终效果值得Epic这样做。这是游戏中有史以来最为逼真的头发效果。
超级采样抗锯齿(右侧)的加入导致视觉保真度大幅提升。
《Samaritan》演示程序中的最终输出效果。
Epic运用单根头发的方法还有一个优点,那就是光线可以穿透头发、动态地为每一根头发制造阴影,通过利用前面提到过的子表面散射,该光线然后可以穿透头皮和面巾纸。
随着《Samaritan》演示程序的剧情发展,楼下人行道上的争执吸引了主角的注意力。首都华盛顿的未来警察正在残忍地殴打街道上的一名外籍居民。 在拔刀相助之前,他的皮肤出人意料而又无缝地变成了金属或者石材外骨骼装甲。在该演示程序中,这是最令人难忘的视觉场景。 之前的特效仅仅是提高了身临其境的水平,而这种变形则是整个演示中的“重头戏”,流畅的变形令人惊叹不已。
Samaritan的变形。
这种变形是通过运用曲面细分(Tessellation)实现的。曲面细分是最新英伟达显卡的一个关键特性。对Epic的Mittring来说,"曲面细分运用起来十分有趣。" 曲面细分能够在人物身上动态地创建全新的画面细节,无需在场景中载入第二个额外人物模型、将原始模型置换出去。 为了生成这种额外的细节,要对模型实施曲面细分,以便创造出额外的多边形,然后预先制作的置换贴图(Displacement Map)会告诉模型如何放置这些额外的多边形以及放在什么位置,如下面例子所示。
变形的三个不同阶段,置换贴图决定了每一个阶段,但是组织上的渲染由GPU的曲面细分来完成。
Mittring解释道:"在《Samaritan》演示程序中,主角的脸在三个不同阶段里合成,在三个阶段中,随着时间的推移,着色和置换均有所调整。为了展示置换贴图中所使用的纹理细节,我们使用了更高级别的曲面细分。" 英伟达的Dudash指出,此处的曲面细分是通过平面(Flat)方法来实现的,这种方法最快。他表示:"因为我们不会对曲线或其它元素应用复杂的数学算法。" 当主角变形时,曲面细分水平系数被设为6。
Dudash解释道:"这一招对演示程序很有效。但是在正常的游戏情形中,当物体远离镜头或从眼前消失时,设计师一定会考虑使用动态曲面细分来降低曲面细分系数。 在Unreal Engine 3中,将加入增强效果以便实现这种动态曲面细分。" 这将有助于在场景中大幅提升性能,为每一个物体的全屏曲面细分做好准备。
Tim Sweeney是Epic公司的首席执行官兼技术总监。他认为,这就是未来几年里行业发展的方向。
业内领先的图形工程师Sweeney表示:"我认为,在表现低级表面这方面,整个行业已经正确地把目光聚焦到着色三角形上来。 在表现大多数场景与大多数物体时,三角形是最有效的通用基元,大部分三角形不透明而且含有明确定义的边界。 尽管考虑到这一点,我还是认为我们在REYES这条路上走得很好,通过曲面细分来分解更高层次的物体。"
Sweeney提到了Reyes Rendering,虽然这是一个缩略词,但是根据联合作者Robert L. Cook的描述,Reyes只有首字母写作大写。 渲染眼中万物(REYES) 技术出现于20世纪80年代中期,该技术由前面提到过的Robert L. Cook以及Loren Carpenter联合开发。REYES是3D计算机图形中使用的一种计算机软件架构,开发者可运用它来渲染高画质的逼真图像。 在开发Reyes时,Cook与Carpenter还在卢卡斯影业公司计算机图形研究事业部工作。这一部门后来成为了现在的皮克斯公司。在计算机渲染的电影方面,皮克斯公司是世界上最著名的制作工作室,例如《玩具总动员》和《超人总动员》均出自该公司之手。
Sweeney想要达到媲美皮克斯的图形效果,在确立了这一目标之后,他列出了实时实现这种效果所需的技术。
"如果我们拥有足够高的三角形处理速度,可以根据像素渲染出多个三角形的话,例如每秒100亿个三角形,那么我们将使用曲面细分和置换技术来将场景中的所有物体分成子像素三角形,将其视为"自由"特效,正如纹理贴图14年前成为自由特效一样。" 英伟达最强显卡英伟达™精视™ GTX 590每秒只能渲染32亿个三角形,因此Sweeney在等待着技术能够追赶上他的壮志。目前他只能在"基于三角形的场景上堆砌日益先进的特效。这些特效包括体积特效、粒子系统以及后期处理等等。"
这就是Epic在《Samaritan》演示程序上所做的工作。然而在最终版上,Epic再次运用了英伟达的服务来打造全新特效。 Epic Games公司高级引擎程序师James Golding表示:"有一个因素可以区分当今游戏与预先渲染的片段,那就是人物身上逼真的'二级运动'。 人物穿着如此具有标志性的双排扣大衣,做出杂技般的动作,我们深知,此时二级运动的重要性比以往高出一倍。" 因此,当主角从屋顶上跳下,向下面的警察砸去时,他的大衣受到重力和自然力的作用,在他的上方飘起,然后主角落在地上。
《Samaritan》中的英雄踩扁了一名警察,而他的大衣则对所经受的力量做出了逼真的反应。
Golding补充道:"游戏中当然会包含一些衣服模拟内容,但是鉴于我们想要在这件大衣上呈现极高的画面细节,我们需要远比过去高得多的保真度和控制能力。 由于已经同英伟达的PhysX团队合作多年,因此我们认为此次正是我们的程序员与艺术家运用英伟达APEX Clothing技术的好时机。" Clothing技术是APEX的一部分,该技术于2010年8月首度应用到游戏当中。Clothing技术是一整套多平台、可扩展的框架,它让艺术家能够创造出复杂、高级、动态的系统,无需任何额外的编程工作。 APEX可提供破坏、粒子、湍流以及植被模块,而Epic在首次试验APEX时只关注了前面提到过的Clothing模块。
Golding表示:"Clothing包含了一些相当棒的工具,这些工具其实是一些Max以及Maya插件,它们让艺术家能够在工具中预览衣服的动作。艺术家接下来可以调整参数、直接绘制到模拟网格上,呈现出完美的外观。" APEX已经植入到Unreal Engine当中,以供第三方使用,"APEX能够提供多线程、GPU加速的衣服网格模拟以及图形网格的变形。" 这些功能让Epic能够"实时模拟精度极高的大衣模型。" 使用新技术的过程非常顺利,很少碰到磕绊,由于APEX "可提供卓越的运行时调试工具,能帮助我们查找问题并轻松修正问题,Epic对此非常满意。"
如此一来,在充满动作内容的高潮场景中,随着主角的运动,大衣则能够精确展现出动感、逼真的效果。此处所有全新DirectX 11技术结合在一起,让人们能够领略到未来实时计算机游戏图形的奇妙效果。 正如Tim Sweeney所说:"《Samaritan》演示程序中所展现的全部内容不仅仅旨在展示新一代游戏机上的效果,更为了展示DirectX 11在当今高端PC上的效果。" 虽然他承认,"里面有少量内容在技术上兼容当今的游戏机平台,例如衣服以及一些后期处理特效。" 但是他认为"《Samaritan》中运用的新一代技术远远超过这些。"
除了主角的手和脸以外,场景中的所有元素均利用延迟渲染技术,这样可将性能提升10倍。
Sweeney兴致勃勃地指出:"Unreal Engine 3的许可用户可以运用所有这些技术,这些技术也准备好了应用到当今的PC游戏之中。" 然而更令人兴奋的是,无论预算多寡或者有无经验,所有人都能够通过Unreal Development Kit来轻松运用这些技术。 有人不解,其它公司都是在特定产品发布之前不外泄技术,为什么Epic会采取这样的立场呢。Sweeney称:"鉴于行业的发展非常迅速,像Windows操作系统这样几年才发布一次软件的节奏已经无法满足需要。 必须把软件当作一种充满活力的产品来看待,不断更新,始终供应。" 就这一点而言,Sweeney "想要与全世界共享Epic最新最好的技术。" 为了把观点讲清楚,他继续道:"从开发一流游戏的Unreal Engine 3许可用户,到UDK开发者社区以及学习软件开发的大学学生,每个人都可以使用这些技术、了解这些技术。"
但是这样会不会影响到Unreal Engine 3的未来? 对现有架构的修修补补永远都不是最有效的开发之道,主要原因是,在核心结构的设计过程中从来都没有考虑这样的修补。同时Sweeney也认为,目前还不准备放弃Unreal Engine 3。
"我们将对Unreal Engine 3进行扩展,使其在这一代硬件的寿命周期内始终是最强大、特性最丰富的引擎。" 也许某一天,新一代硬件会问世。在这一问题上,Sweeney表示:"当我们进入下一个硬件时代,即超越当前的DirectX 11硬件,达到未来游戏机以及计算机的全新性能水平,我们会把Unreal Engine 3中最新、最好的技术与全新的系统相结合,对现有系统进行简化和重新设计架构,将其打造成Unreal Engine 4。"
《Samaritan》的主角摆好了架势要同执法机器人展开搏斗,随后场景变成了黑色。
全部演示都介绍完了,Unreal Engine 3让我们现在即可预见未来的效果。虽然完整的软件包可能还需要一段时日才能上市,但是本文中列出的全新优秀技术不久即将出现在游戏当中。
这篇文章分析了Unreal Engine 3中的DirectX 11技术,我们希望这些内容能够为你带来快乐。如果你有什么意见,不要客气,敬请跟贴发表意见。 |