画质/驱动引争议!环境光遮蔽解析评测

太平洋科技
环境光遮蔽 相对高效的全局关照方案
INMARK工具是一套为游戏玩家在购买和升级电脑前对电脑游戏性能的预估参考平台。用户选择打算玩的游戏,同时自由搭配目前市场上数千种电脑硬件,系统就可以为玩家提供出玩家自定义的电脑硬件在运行游戏时间的性能指数。查询结果为玩家提供直观的购机参考信息,不需要用户具有很强的电脑知识就可以看懂。
INMARK小组也会不断推出和游戏相关的硬件与技术文章供广大游戏爱好者参考。除了单纯的硬件测试之外,我们还会探讨一些图形技术和游戏的画质问题,今天我们就以AO(Ambient Occlusion,环境光遮蔽)在游戏与硬件中的问题来与读者共同研究。
◆ 前言:问题的由来
2009年初NVIDIA发布了185.20版驱动程序,在该版驱动中除了性能上的全面提升外,还加入了一项3D特效的新选项:那就是“Ambient Occlusion”(AO)环境光遮蔽。在安装185.20版驱动后,在NV控制面板内即可找到该特效的开关选项,共有高中低三档可供选择(新版驱动仅有开启和关闭选项,不再提供画质档次调节)。
这项功能仅能在Windows Vista/7操作系统下实现,而且“环境光遮蔽”会非常消耗系统资源,开启后会造成游戏帧率大幅降低,所以在NVIDIA驱动中的“环境光遮蔽”选项也是默认关闭的。
在今后的驱动版本中,“Ambient Occlusion”成为了一个固定的选项让玩家选择,但是这个选项究竟对游戏画面和性能有多大的影响?早在2007年DirectX 10.1的发布和《孤岛危机》的发布就意味着“SSAO”(Screen-Space Ambient Occlusion,屏幕空间环境光遮蔽)的诞生,而AO和SSAO的关系又如何呢?NVIDIA后期推出的“HBAO”(Horizon-Based Ambient Occlusion,水平环境光遮蔽)又和前两者有什么关系呢?
因为牵扯游戏画质和性能的巨大差异,因此AO选项的开启和关闭引起了部分的争议,今天我们就这个问题与读者一起探讨一下AO(环境光遮蔽)的问题,但是首先,我们还是先来了解一下游戏中光影处理的发展。
◆ AO环境光遮蔽的最终目的是什么?
随着计算机图形技术的发展,玩家对游戏画面图形的逼真度要求越来越高,而近些年推动游戏图形画面逼真的最关键环节就是光照/光影效果,如果能非常近似的模拟与现实生活一样的光照效果,那么游戏的画面将非比寻常,但是光照/光影效果的计算非常复杂而且消耗巨大的资源,成为阻碍相关技术推进的最大障碍。
实现光照/光影的最逼真效果就是达成全局光照。在早期的游戏中仅能实现直接光照的效果,也就是说光线从光源发出、照射到物体上后、反射到玩家眼中,光照的计算就完成了。
但是在现实中,要得到高度真实感的图形画面,不仅要计算直接光照,还需要计算间接光照,也就是说,光线从光源发出、照射到物体上后,除了计算物体本身反射到玩家眼中的光线,还要计算物体多次反射、折射、吸收光线,以及物体之间因为反射、折射而导致的光线、阴影变化,经过综合计算将光线和阴影的最终效果展示(反射)到玩家眼中,从而实现全局光照的效果。
全局光照在静态图形的处理上比较完美,因为静态图形可以等待渲染的时间,但是对于游戏来说,持续的动态画面必须保证每秒几十fps的渲染速度,因此全局光照的处理就需要非常谨慎,其算法在推进画面真实度的同时,必须保证相应的效率,否则就会打破画面效果和帧速度之间的平衡。
AO环境光遮蔽的运作原理和SSAO的提出
说到这里,我们先介绍一下实现全局光照效果非常好的一种方式,那就是“光线追踪”技术(Ray Tracing),光线追踪算法分为两种:正向追踪算法和反向追踪算法。其中,正向追踪算法是大自然的光线追踪方式,即由光源发出的光经环境景物间的多次反射、透射后投射到景物表面,最终进入人眼。反向追踪算法正好相反,它是从观察者的角度出发,只追踪那些观察者所能看见的表面投射光。
Intel、AMD和NVIDIA都在光线追踪技术方面有所发展,Intel根据相应技术对《Quake4》游戏进行了重制,但是相应的GPGPU处理器Larrabee的销声匿迹让这个技术也暂时消失在人们的视野中;ATI在HD4000系列时代曾经展示过基于光线追踪技术的Cinema 2.0,但目前仍然没有技术的更新资料;NVIDIA在光线追踪方面相对领先,其发布了基于CUDA架构的光线追踪引擎OptiX。
光线追踪在未来将会是实现全局光照的最佳方案,但是光线追踪的计算方法非常复杂、负载极大,并且与目前显卡架构以光栅化为主的处理方式难以融合(Intel和NVIDIA目前都趋向于在Larrabee、Quadro等上实现),短期内仍然无法应用于游戏显卡上。
现在将话题转回来并做一个简短的总结:
全局光照是未来实现游戏图形画面真实化的一个重要元素(其可以达成光影效果的逼真化,对应的相反关键词为直接光照)。
光线追踪是实现全局光照完美效果的最佳技术/方式之一,也是未来的一个发展方向,其技术实现方式最接近现实的物理模型,但是因为效率较低,所以目前的游戏和显卡架构无法承担。
目前游戏已经开始实现全局光照的效果,但是并未采用光线追踪的方式,而是采用其它多种实现方式来达成全局光照的效果,其中包括“AO”环境光遮蔽。
“AO”环境光遮蔽是实现全局光照中部分物体局部光照和阴影真实化的一种技术方式,其函数实现方式并未严格遵循现实的物理模型,但是效率较高,因此被当前游戏广泛应用。
再次强调,AO环境光遮蔽(包括其变种SSAO、HBAO等)仅是实现全局光照的技术方式之一,当前的游戏应用了多种技术方式共同达成全局光照总体效果的完善和完美。
◆ AO环境光遮蔽技术原理
经过前面的介绍,我们已经了解了环境光遮蔽存在的目的,下面我们简单介绍一下AO环境光遮蔽的实现机理。AO环境光遮蔽通过相对廉价的计算效能来实现全局光照中阴影的高级效果,简单说AO环境光遮蔽就是在每个取样点上计算它被其它几何体覆盖的程度,是计算在一个统一的光强度下场景的软阴影效果的图形技术。
AO环境光遮蔽在多种静态3D处理软件(如3D Max或Maya)中都有涉及,其是一种比全局光照效率更高的光照处理方式(效果接近),它通过改善阴影来现实更好的视觉效果,提高场景的深度和层次感,大大丰富了图像细节。
在3D软件中应用的静态AO环境光遮蔽因为需要预渲染、而且速度仍然较慢,所以不能直接照搬到动态画面(游戏)的处理方式中。在近些年的游戏中,很多游戏公司都致力于表现更逼真的光照效果,提出了很多相关的技术,比如《半条命2》中的Radiosity Normal Maps技术、《潜行者》中的GI全局光照等等。
这些技术都未能很好的实现光照的效果或效率的保证,此时Crytek正在开发《孤岛危机》,其应用了一项名为Real-Time Ambient Map(实时环境光照贴图)的技术,这项技术非常接近SSAO技术,而随着研发的深入,这项技术最终被升级为新的算法,并在CryEngine2引擎的技术白皮书中最终将这项升级后的技术命名为SSAO。
从这个角度讲,其实在电脑游戏的应用中,率先提出的环境光遮蔽在算法上已经直接达成了SSAO(屏幕空间环境光遮蔽),而AO环境光遮蔽这种模式并未直接在游戏中应用,至于NVIDIA在控制面板中的提出的“AO环境光遮蔽”的概念,我们对其算法不得而知,但是可以明确的是,其算法必然与静态的环境光遮蔽的算法不同,可能就是SSAO(屏幕空间环境光遮蔽)或者类似的算法。
SSAO屏幕空间环境光遮蔽介绍以及HBAO
◆ SSAO屏幕空间环境光遮蔽的运作方式
其实了解了AO环境光遮蔽的原理,SSAO(屏幕空间环境光遮蔽)已经可以融会贯通,SSAO通过采样像素周围的信息,并进行简单的深度值对比来计算物体身上环境光照无法到达的范围,从而可以近似地表现出物体身上在环境光照下产生的轮廓阴影。
具体的运作方式上,SSAO会利用GPU计算出指定像素的空间坐标,然后以此坐标为基点,在周围选择数个采样点进行采样,然后将采样点的空间坐标投影回屏幕坐标,对深度缓冲进行采样,最后得到采样点的深度值,再进行后续计算,最终得到一个遮挡值。
因为是基于指定空间的全局计算模式,因此SSAO实现效果的优劣取决于算法,包括空间的指定范围和采样点的选取等等。需要指明的是,不同游戏(引擎)在SSAO的细节算法方面可能不尽相同,另外SSAO还会结合其它光照技术共同达成游戏画面的渲染,所以SSAO在很多游戏中不会有专门的开关选项,其最终的表现结果可能是与其它技术共同作用的结果。
◆ HBAO水平环境光遮蔽的提出和改进
SSAO环境光遮蔽实现了不错的全局光照效果,ATI在2007年发布Radeon HD3850显卡的同时宣布了其支持DirectX 10.1图形API,在DirectX 10.1的技术革新中,就写入了光照和阴影质量与实时射线追踪技术的改进函数,其中基本上达成了SSAO的解决方案(批量立方贴图、离散混合模式的多对象渲染等技术在实现光照和阴影方面帮助很大)。
从市场的角度讲,ATI很早就推出了基于DirectX 10.1 API的显卡,而NVIDIA则一直坚守了DirectX 10很长时间,主流产品均不支持DirectX 10.1(目前NVIDIA的主流/中端产品包括9800GT、GTS250和GTX260等产品依然不支持DirectX 10.1)。
虽然SSAO兼容DirectX 10,但如果游戏严格根据DirectX 10.1的函数特性采用了SSAO或其它相应的技术,那么基于DirectX 10.1的显卡在运行效率(帧速度)上会有明显的优势。不过前文我们已经提到,SSAO细节的算法也许在某些特定游戏(引擎)中不尽相同,所以最终的结果可能也不会那么完美。
环境光遮蔽对于游戏画面效果的提升NVIDIA同样认可,一方面基于DirectX 10在效率方面的担忧,另一方面也是NVIDIA在这方面的独到见解,NVIDIA对于SSAO的改进版HBAO(Horizon-Based Ambient Occlusion,水平环境光遮蔽)就这样横空出世了。
HBAO在运作模式上与SSAO有什么区别呢?首先HBAO规定了一个半径为R的空间范围,对于范围外的空间不做渲染;此外对于一些低精度模型,遮蔽会导致错误的产生,HBAO利用半球的角度偏置参数限制来修正这些错误;此外在采样点数量上HBAO也进行了控制,并利用函数解决了遮蔽的衰减问题。
从目前的资料来看,唯一明确支持HBAO的游戏仅有《战地:叛逆连队2》,而且随着DirectX 11的推出,SSAO的升级版HDAO再次降临。
HDAO高解析度环境光遮蔽以及未来发展
◆ HDAO高解析度环境光遮蔽技术发布
随着DirectX 11的推出,SSAO也进一步升级为HDAO(高解析度环境光遮蔽,High Definition Ambient Occlusion),这个名称更贴近于ATI HD系列显卡的名称,因为包括SSAO和HDAO都是ATI力推的图形技术,HDAO也写入了DirectX 11 API的函数库中。
HDAO是SSAO的升级,主要更新了用于加速SSAO的函数指令Gather4(在DirectX 10.1中,Gather4允许一个2x2的未过滤纹理替代一个双线过滤的纹理),从而实现更快更好的阴影效果。
ATI发布HD5000系列显卡时同步推出了HDAO技术,上图为ATI为展示HDAO所做的技术Demo。HDAO已经被很多DirectX11的游戏所应用,比如《尘埃2》、《地铁2033》等等,未来对于HDAO支持的游戏还会更多。
◆ SSAO不是唯一,全局光照的实现多种多样
在前文我们已经做过铺垫,达成全局光照是实现游戏光影效果的最佳途径,而SSAO仅是实现全局光照的一部分,因此对于光照/阴影的发展来说,其实可以有很多的技术途径去实现。对于技术实力雄厚的开发室,比如Crytek就利用不同的技术来实现游戏中全局光照的更佳效果。
在Crytek发布的最新CryEngine 3引擎中,通过使用Light Propagation Volumes技术实现方式达成了全局光照的更佳效果。上图就是GI(全局光照)配合SSAO的画面效果:仅开启GI无法实现物体暗部阴影的过渡,仅开启SSAO则无法诠释整体光照对局部的影响,同时开始实现了最佳的画面效果。
到这里,对于全局光照、AO环境光遮蔽乃至SSAO、HBAO、HDAO的介绍就先告一段落,其实无论技术怎样发展、名称如何变换,最终都是为了提升游戏的画面效果。那么对于普通玩家来说,这项技术在现实游戏中的效果如何?我们如何运用这项技术?NVIDIA驱动面板中的AO(环境光遮蔽)选项到底什么时候开、什么时候关呢?下面我们开始从具体的游戏中挖掘应用方面的问题。
AO/SSAO/HBAO/HDAO与A/N显卡的关系
关于AO环境光遮蔽的情况我们已经有了大致的了解,但是我们仍然没有完全解决开篇时提出的一些问题。下面我们对前文的论述再次进行总结以便展开下面的话题,大家可以根据下面的表格来进行参照:
环境光遮蔽的类型 | |||
AO* | SSAO | HBAO | HDAO |
环境光遮蔽 | 屏幕空间 环境光遮蔽 | 水平 环境光遮蔽 | 高解析度 环境光遮蔽 |
NV控制面板开启 | DX10.1函数包含 | NVIDIA研发 | DX11函数包含 |
半条命系列 求生之路 镜之边缘 虚幻竞技场3 ...等等 | 孤岛危机/弹头 | 战地:叛逆连队2 | 尘埃2 异形大战铁血战士 普里皮亚的呼唤 ...等等 |
*NVIDIA控制面板中的“AO环境光遮蔽”的运算方法不得而知,但请读者不要将这个AO与静态AO混淆
如果我们从游戏的角度出发,反向对上面的信息进行整理,可以得出另一个表格:
游戏对环境光遮蔽支持的不同状况 | |||
游戏对AO的支持 | AO开启方式 | AO支持产品 | 最终效果 |
游戏不支持 任何AO运算方式 | NVIDIA支持游戏 | NV DX10及其以上 级别显卡及相应驱动 | 控制面板开启AO 获得画质提升 |
NVIDIA不支持游戏 | N/A | N/A | |
ATI不提供 任何AO开启方式 | N/A | N/A | |
游戏支持SSAO (非必须严格遵循DX10.1函数) | 游戏中开启或关闭 | DX10及其以上级别 显卡均支持开启 | (理论上)DX10.1显卡有效率优势 |
游戏支持HBAO | 游戏中开启或关闭 | DX10及其以上级别 显卡均支持开启 | (理论上)NVIDIA显卡有效率优势 |
游戏支持HDAO (非必须严格遵循DX11函数) | 游戏中开启或关闭 | DX10及其以上级别 显卡均支持开启 | (理论上)DX11显卡有效率优势 |
上图也就是“游戏对环境光遮蔽支持的不同状况”这张表格就是我们即将需要验证的地方,验证的主要方向是两个:一个是画质问题;一个是效能问题。验证的论点主要包括以下几点:
对于不支持任何AO运算方式、但是NVIDIA支持控制面板中开启AO环境光遮蔽的游戏,是否游戏画质有提升,并与ATI显卡产生差异;同时考量性能差异。
对于不支持任何AO运算方式、NVIDIA也不支持控制面板中开启AO环境光遮蔽的游戏,是否游戏画质有变化,并与ATI显卡产生差异;同时考量性能差异。
对于支持SSAO运算方式的游戏,NVIDIA(分别开启和关闭控制面板中的AO选项)和ATI显卡在游戏画面上的变化及其两者的差异;同时考量性能差异。
对于支持HBAO运算方式的游戏,NVIDIA(分别开启和关闭控制面板中的AO选项)和ATI显卡在游戏画面上的变化及其两者的差异;同时考量性能差异。
对于支持HDAO运算方式的游戏,NVIDIA(分别开启和关闭控制面板中的AO选项)和ATI显卡在游戏画面上的变化及其两者的差异;同时考量性能差异。
游戏(引擎)对环境光遮蔽的支持状况
了解完需要论证的观点和方式,下面就要挑选出论证的游戏,我们从不同引擎所支持的技术特点进行分析:
◆ 寒霜引擎(Frostbite Engine)
寒霜引擎1.5版支持HBAO运算方式,支持的游戏包括《战地1943》、《战地:叛逆连队2》等等,《战地:叛逆连队2》毫无疑问成为HBAO测试的最佳游戏。
◆ Cryengine 2 引擎
代表游戏为《孤岛危机》,这款游戏毫无疑问是测试SSAO的最佳代表作品,因为这款引擎首次提出了SSAO概念。
◆ X-Ray Engine引擎
同样为技术派的引擎,其潜行者系列游戏对AO环境光遮蔽支持良好,最新的资料片《潜行者:普里皮亚的呼唤》对SSAO、HBAO、HDAO均有支持,是一款综合测试的最佳游戏。
◆ Chrome 4引擎
代表游戏《狂野西部:生死同盟》,不支持环境光遮蔽运算方式。
◆ IW Engine 4/3
代表游戏《使命召唤4》《使命召唤5》等,不支持环境光遮蔽运算方式。
◆ Unreal Engine 3
代表游戏《虚幻竞技场3》等,不支持环境光遮蔽运算方式。
NVIDIA发布的支持AO环境光遮蔽的游戏 | |
Assassin's Creed 刺客信条 BioShock 生化奇兵 Call of Duty 4 使命召唤4 Call of Duty 5 使命召唤5 Call Of Juarez 狂野西部 Company Of Heroes 英雄连 Counter-Strike Source 反恐精英:源 Dead Space 死亡空间 Devil May Cry 4 鬼泣4 F.E.A.R. 2 极度恐慌2 Fallout 3 辐射3 | Farcry 2 孤岛惊魂2 Half Life 2 series 半条命2系列 Left 4 Dead 求生之路 Lost Planet: Colonies 失落的星球 Lost Planet: Extreme Condition Mirror's Edge 镜之边缘 Portal 传送门 Team Fortress 2 军团要塞 Unreal Tournament 3 虚幻竞技场3 World In Conflict 冲突世界 World of Warcraft魔兽世界 |
需要指明的是,这个支持AO环境光遮蔽的游戏列表由NVIDIA提供(是NVIDIA控制面板中加入AO选项后提供的支持游戏列表)。可以看出,支持AO的游戏以DirectX 9为主,而且相对较老,而且与下面支持SSAO的游戏几乎没有重叠。
支持SSAO屏幕空间环境光遮蔽的游戏 | |
Crysis 孤岛危机 | Shattered Horizon 破碎地平线 The Saboteur 破坏者 S.T.A.L.K.E.R.: Call of Pripyat 普里皮亚的呼唤 Red Faction: Guerrilla 红色派系 Star Trek Online 星际迷航online Just Cause 2正当防卫2 Metro 2033 地铁2033 Dead to Rights: Retribution 死或生 Alan Wake 行令杀手 Halo: Reach 光环致远星 Starcraft II 星际争霸2 LittleBigPlanet 2 小小大星球 City of Heroes 城市英雄 |
基于以上的资料,下面我们就开始对几款代表性的游戏进行详尽的分析。
游戏环境光遮蔽测试:测试平台说明
◆ 测试平台
硬件平台 | |
处理器 CPU | Intel Core i5 750 2.66GHz |
主板 Motherboard | 微星MSI H55M-E33(Intel H55芯片组) |
内存 Memory | 金士顿DDR3-1333 4GB(2GB×2) |
硬盘 HDD | Seagate Barracuda(希捷酷鱼) 7200.12 500GB |
显卡 VGA Card | GeForce GTS250 738/2200MHz (DirectX 10.0) |
声卡 Audio | 主板集成声卡 |
散热器 Cooler | 超频三 南海2 HP-1204X |
电源 Power | Cooler Master 酷冷至尊 UCP 700W |
操作系统 | |
操作系统 OS | Windows7 64bit |
驱动程序 | |
主板驱动 MB Drivers | Intel Chipset Device Software 9.1.1.1023版 |
显卡驱动 VGA Drivers | NVIDIA ForceWare197.45 WHQL版驱动程序 |
◆ 测试方法和说明
为了便于读者查看成绩,所以测试平台我们统一为一套,测试平台方面我们选择了Intel 酷睿i5 750处理器,整套平台为中高档价位。测试内存方面,我们搭配了两条DDR3内存(单条2GB)。整套平台已经可以充分发挥显卡的性能。
在如下测试中,我们选择两组性能比较相近一共四款显卡进行测试,分别开启和关闭环境光遮蔽选项,借此来鉴定该选项对游戏画面及运行帧数的影响。
镜之边缘(支持NV AO):画质对比
《镜之边缘》——游戏引擎本身不支持环境光遮蔽运算,但是支持NVIDIA控制面板AO环境光遮蔽效果。
NVIDIA显卡开启控制面板AO,AO效果出现(注意图中墙角位置)
NVIDIA显卡关闭控制面板AO,AO效果未出现(注意图中墙角位置)
ATI显卡没有AO选项,因此画面中没有AO效果
镜之边缘(支持NV AO):效能对比
[结论]:对于《镜之边缘》这款游戏来说,其游戏引擎并未支持任何AO环境光遮蔽的算法,在游戏画面中也体现不出任何环境光遮蔽的效果。因此对于ATI显卡来说,其没有支持游戏中开启任何AO效果的选项。
而这款游戏是支持NVIDIA AO的游戏,因此在控制面板中开启AO环境光遮蔽后,游戏画面可以达成了环境光遮蔽的效果,效能同时有明显的下降。
因此可以判定,如果游戏引擎不支持任何AO环境光遮蔽算法的算法,ATI显卡没有途径将AO环境光遮蔽效果打开,但是NVIDIA可以通过控制面板中的AO选项强制开启环境光遮蔽效果(必须支持NVIDIA AO),实现机理大概是绕过游戏引擎,而通过CUDA算法对游戏进行视频后处理,来实现更好的画面效果,同时效能必然会有所下降。
孤岛危机(支持SSAO):画质对比
《孤岛危机》——支持SSAO,但是游戏中没有明确的选项开关,因此我们调节为最高画质确保SSAO开启。
从截图看游戏的画面没有明显的区别,此时NVIDIA控制面板中的AO环境光遮蔽选项为关闭,因此基本表明NVIDIA的AO环境光遮蔽选项在支持SSAO运算方式的游戏中没有必要开启。
无主之地(支持SSAO):画质对比
《无主之地》——这款游戏的引擎支持SSAO,并且在游戏设定中有开关选项,下面我们通过对比截图来看一下不同设定下的画质:
NVIDIA游戏选项开启SSAO、控制面板关闭AO,SSAO效果成功开启
NVIDIA游戏选项关闭SSAO、控制面板关闭AO,SSAO效果无法开启
NVIDIA游戏选项关闭SSAO、控制面板开启AO,SSAO效果无法开启
ATI游戏选项开启SSAO,SSAO效果可以开启
ATI游戏选项关闭SSAO,SSAO效果无法开启
建议玩家点击大图仔细对比,SSAO的效果会体现在山石交错的阴影效果。NVIDIA控制面板中的AO选项不能控制游戏的AO环境光遮蔽效果,只能用游戏选项控制。开启游戏中的SSAO效果后,ATI和NVIDIA的画面效果相同,效能都有所下降。
无主之地(支持SSAO):效能对比
[结论]:因为《无主之地》游戏引擎本身支持SSAO,所以无论ATI还是NVIDIA显卡都可以通过游戏中的选项对环境光遮蔽效果开启或者关闭,都能达成一样的画面效果,开启AO选项后游戏性能都有下降。
NVIDIA虽然在控制面板中有AO选项,但是那个选项是针对游戏引擎本身不带SSAO或其它AO运算的游戏的,所以在《无主之地》这款游戏中,控制面板中的AO选项的开启和关闭对游戏画面没有任何影响。
正当防卫2(支持SSAO):画质对比
《正当防卫2》——游戏本身支持SSAO,而且游戏中有开启选项,下面我们进行截图分析:
NVIDIA显卡游戏选项SSAO关闭、控制面板AO关闭,SSAO效果未开启
NVIDIA显卡游戏选项SSAO开启、控制面板AO关闭,SSAO效果能开启
NVIDIA显卡游戏选项SSAO关闭、控制面板AO开启,SSAO效果未开启
ATI显卡游戏选项SSAO关闭,SSAO效果未开启
ATI显卡游戏选项SSAO开启,SSAO效果可以开启
建议玩家点击大图对比,注意房屋下部光影的变化。游戏的SSAO效果仅受游戏选项中SSAO开启和关闭的控制,NVIDIA控制面板中的AO选项不对游戏的画面有影响。
正当防卫2(支持SSAO):效能对比
[结论]:和《无主之地》的情况完全相同,游戏的SSAO效果完全由游戏选项控制开启或关闭,开启SSAO选项会导致性能的较大幅度下降。
叛逆连队2(支持HBAO):画质对比
《叛逆连队2》——游戏引擎本身支持HBAO,游戏中有相关选项控制HBAO的开启和关闭,下面我们看一下截图对比:
NVIDIA显卡游戏选项关闭HBAO、控制面板关闭AO选项,HBAO效果未能实现
NVIDIA显卡游戏选项开启HBAO、控制面板关闭AO选项,HBAO效果可以实现
NVIDIA显卡游戏选项关闭HBAO、控制面板开启AO选项,HBAO未能实现
请读者注意油桶下边缘的阴影变化,建议点击放大查看。
最后总结:如何正确运用环境光遮蔽
◆ 关于环境光遮蔽:它并不是光影效果的全部
关于环境光遮蔽的方方面面想必读者已经了解的比较完善了,最后提出一些我们自己的看法。环境光遮蔽是游戏提升光影效果的途径之一,其效果主要是达成场景中的物体在受到光照遮挡时,还原其实际的光线照射情况,对达成全局关照效果有很好的作用。
从实际截图来看,环境光遮蔽最佳的表现地点是物体边缘的阴影,它通过渲染有效的加强了光影的表现力,对于这个光影效果,环境光遮蔽是最好的实现方式。但是因为基于场景的全局计算,所以环境光遮蔽对于显卡的负载还是很大的。
从这个角度讲,环境光遮蔽效果和早期的HDR效果有着类似的情况,两者都用于提升游戏的光影效果,在发布这项技术的早期,两种技术的开启都会消耗显卡大量的运算资源。不过就我们的个人观点来看,HDR对于玩家的感受来说实际表现力更为明显(或许是因为大家都对明亮的效果更为敏感),而环境光遮蔽的开关虽然在整体画面上也有明显的变化,但是玩家对其的敏感度却较低。
基于这个理由,很多玩家在游戏的帧速度不够时,都会优先关闭环境光遮蔽这个效果,但是我们认为,随着显卡性能的增强,以及环境光遮蔽自身算法的优化,这个效果必然也会像HDR一样被广大游戏和玩家所接受。
另外前文我们也多次强调了,环境光遮蔽只是游戏全局光照中的一部分,拿寒霜引擎2.0版举例:除了环境光遮蔽,其还有软阴影、全动态实时阴影、直接光照、全局光、局部印射、光子映射贴图、光线追踪、实时辐射度照明等等多种光影效果处理技术或算法,环境光遮蔽仅仅是其中之一。
之所以环境光遮蔽受到了相对更明显的关注,就是因为其受到了DirectX 10.1、DirectX11 API的重视,另外很多大牌游戏引擎也对其进行了支持,不过也有很多游戏引擎比如虚幻3引擎和IW Engine 4/3(使命召唤系列)就对这个技术暂时没有支持的计划。
◆ 关于NVIDIA控制面板中AO选项的使用
问题由NVIDIA控制面板中的“AO环境光遮蔽”选项而来,我们也用这个问题的答案来终结整篇文章。通过技术讲解和截图对比,我们可以得出这样的结论:NVIDIA控制面板中的“AO环境光遮蔽”选项不针对任何已经支持SSAO、HBAO或HDAO的游戏,对于这些游戏,控制面板中的AO选项开启或关闭对游戏画面没有影响或影响甚微,反而有可能会造成游戏效能的下降。
这就是NVIDIA控制面板中的“AO环境光遮蔽”选项为什么在默认状态下为“关闭”的原因。那么对于不支持SSAO、HBAO或HDAO的游戏呢?玩家可以酌情开启这个选项,来提升游戏的画面效果,比如《镜之边缘》这款游戏开启NVIDIA控制面板中的AO选项就能提升游戏的画面效果(其它游戏可以参照我们文章中的列表)。
对于支持SSAO、HBAO或HDAO的游戏,NVIDIA和ATI的显卡都为游戏选项控制,只要游戏打开环境光遮蔽选项,两家公司的显卡产品都能很好的该效果。至于效率方面,SSAO、HBAO和HDAO都有自身的特点,究竟ATI和NVIDIA对应哪种效果的效率更高,并没有明显的性能体现。
对于环境光遮蔽的效果和效率问题,如果读者或玩家有什么不同的看法,可以在文章的评论中讨论。