本帖最后由 jasu30 于 2011-5-9 16:14 编辑
天堂2.5 光影特效直观对比
在天堂2.5 Benchmark中,我们打开Settings(设置)选项中的Render(渲染)选项卡,右侧的Options中从上至下有AO(环境光遮蔽)、Refraction(折射贴图)和Volumetric shadows(体积阴影)三个复选框。我们采用同时勾选和同时不选来对比光影特效。
●光影特效对比图 第一组
★动态对比图(关闭光影等特效(较亮)/打开光影等特效(较暗))
●光影特效对比图 第二组
★动态对比图(关闭光影等特效(较亮)/打开光影等特效(较暗))
●光影特效对比图 第三组
★动态对比图(关闭光影等特效(较亮)/打开光影等特效(较暗))
总结:
从上面关于AO(环境光遮蔽)、Refraction(折射贴图)和Volumetric shadows(体积阴影)这些光影特效的对比图中,我们仅从视觉上来讲,感受最明显的应该是图形画面的明暗亮度有了很大的差异,应用了AO(环境光遮蔽)、Refraction(折射贴图)和Volumetric shadows(体积阴影)这些光影特效的图形画面在逼真度上表现的更加符合现实中的光照和阴影效果。
光影特效技术解析
首先我们对AO(环境光遮蔽)、Refraction(折射贴图)和Volumetric shadows(体积阴影)这3个技术名词进行下解释。
【AO(环境光遮蔽)】:AO是来描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果,可以解决或改善漏光、飘和阴影不实等问题,解决或改善场景中缝隙、褶皱与墙角、角线以及细小物体等的表现不清晰问题,综合改善细节尤其是暗部阴影,增强空间的层次感、真实感,同时加强和改善画面明暗对比,增强画面的艺术性。
【Refraction(折射贴图)】:从英文单词上看,很容易和反射混淆。折射是光线穿过透明物体的光线扭曲效果,它与反射光线是完全不同的。因为折射本身计算复杂,光是游戏中启用就已经很吃力了,你更难以制作单个物体上多个折射率的效果。折射常发生在透明的厚玻璃,清澈见底的湖水,水晶宝石等。
【Volumetric shadows (体积阴影)】:测定投影空间式阴影,该算法最早于1977年提出,其基本原理是根据光源和遮蔽物的位置关系计算出场景中会产生阴影的区域,即阴影锥。然后对所有物体进行检测,以确定其会不会受阴影的影响。这个方法的要点在于,它不是利用“把物体投影到环境表面”的方式来产生阴影,而是去找出场景中有哪些像素是在阴影中。
从笔者对天堂2.5 Benchmark的测试中我们发现AO(环境光遮蔽)这个选项对图形画质的影响较大,且开启和关闭的负载差异也较大,所以我们重点来解析AO(环境光遮蔽)这个特效产生以及其变种SSAO技术的相关解析。
虽然说玩家在游戏的过程中,真正对AO(环境光遮蔽)特效的体验可能是自己没有太在意甚至是没有发觉,但是我们不得不说的是近些年来推动游戏图形画面更加逼真的最为关键的一个环节即是光影特效,试想一下:若能够非常近似的模拟与现实生活一样的光照和阴影效果,那么游戏的画面将更加自然和拟真。然而由于光影效果的实现需要耗费巨大的GPU资源,故而也成为了技术推进上的最大障碍。
在早期的游戏设计中,仅仅采用了相当粗糙的直接光照效果,即:光线从光源发出、照射到物体上后、反射到玩家眼中,光照的计算就完成了。这显然不大完全符合现实世界的光影形成的逻辑,因为在现实中,不仅要计算直接光照,还需要计算间接光照,即:光线从光源发出、照射到物体上后,除了计算物体本身反射到玩家眼中的光线,还要计算物体多次反射、折射、吸收光线,以及物体之间因为反射、折射而导致的光线、阴影变化,经过综合计算将光线和阴影的最终效果展示(反射)到玩家眼中,从而实现全局光照的效果。而全局光照才是实现光影特效的最逼真效果。
全局光照效果图
全局光照是个好东西,但是正如事物有利即有弊、有阴就有阳,全局光照在静态图形处理上因为可以等待渲染的时间,所以比较完美,而对于游戏来说,动态画面必须保证每秒好几十帧的渲染速度,故而全局光照必须在处理效率与画面真实度上就必须要有一个相对合理的取舍与平衡。
目前实现全局光照效果相当最好的一种方式即采用【光线追踪(Ray Tracing)】技术。
光线追踪算法分为两种:正向追踪算法和反向追踪算法。其中,正向追踪算法是大自然的光线追踪方式,即由光源发出的光经环境景物间的多次反射、透射后投射到景物表面,最终进入人眼。反向追踪算法正好相反,它是从观察者的角度出发,只追踪那些观察者所能看见的表面投射光。
光线追踪技术虽然说实现了最佳的全局光照效果,但是却与目前的显卡架构融合较为困难
说到这里,我们先介绍一下实现全局光照效果非常好的一种方式,那就是“光线追踪”技术(Ray Tracing),光线追踪算法分为两种:正向追踪算法和反向追踪算法。其中,正向追踪算法是大自然的光线追踪方式,即由光源发出的光经环境景物间的多次反射、透射后投射到景物表面,最终进入人眼。反向追踪算法正好相反,它是从观察者的角度出发,只追踪那些观察者所能看见的表面投射光。
光线追踪画面效果
光线追踪技术实现了最佳的全局光照效果,但是与目前显卡架构以光栅化为主的处理方式难以融合,并且由于光线追踪在计算方法上非常复杂、负载也很大,所以在短期内该技术无法真正大规模的应用于游戏显卡上。Intel、AMD和NVIDIA都在光线追踪技术方面有所发展,目前在该技术上处于相对领先的应该是NVIDIA公司,其发布了基于CUDA架构的光线追踪引擎OptiX。
“山重水复疑无路,柳暗花明又一村”,其实目前的一些游戏已经开始实现了全局光照的效果,但并非采用的是光线追踪技术,而是采用其它多种实现方式来达成全局光照的效果,其中包括AO环境光遮蔽(包括其变种SSAO、HBAO等)。
AO环境光遮蔽:是实现全局光照中部分物体局部光照和阴影真实化的一种技术方式,其函数实现方式并未严格遵循现实的物理模型,但是效率较高,因此被当前游戏广泛应用。
作为AO环境光遮蔽技术重要变种之一的SSAO(Screen-Space Ambient Occlusion)屏幕空间环境光遮蔽,其最先应用于Crysis(孤岛危机)游戏之中。这款游戏的开发商Crytek作为当时在间接光照技术研究领域的先锋,其技术员在对应用于孤岛危机游戏中的Real-Time Ambient Map(实时环境光照贴图,简称RAM)技术进行再度改进之后,最终成就了如今的SSAO技术。而SSAO相对于早期应用于NV驱动185.20中的AO技术较为优秀的地方在于:占用资源低、执行效率高,且与流行显卡的管线整合相当容易;缺点也有:颗粒感比较重,需要与动态模糊紧密配合才能取得较好效果。
目前已发行的游戏中,运用SSAO的游戏有:Crysis(孤岛危机)、Burnout(TM) Paradise The Ultimate Box(火爆狂飙5天堂)、帝国:全面战争和星际争霸2。
总结:曲面细分与光影齐飞
从前面的直观对比图和技术解析中,想必读者已经较为深刻的感受到曲面细分技术和光影特效在游戏画质上的真实表现和具体差异。从Heaven Benchmark这些年来的重大更新方面我们可以看出Unigine Corp公司在游戏画质上对曲面细分和光影等相关的特效的改进是最多的,这也从另一个侧面给玩家在暗示考验DX11游戏显卡最为关键的指标是什么(我认为关键还是要等游戏厂商跟进才有实际意义)。最后我想对本文中所提及的重要技术作一个简短的回顾,力争通俗易懂。
曲面细分技术:这项技术在实现上的思想与中国古老的“割圆术”的核心思想“无限细分逐步逼近”有异曲同工之妙,用更多的多边形来逐渐逼近真实物体的外表轮廓,从而实现图形画面的立体感和层次感。
AO环境光遮蔽:采用快速而廉价的算法来模拟全局照明模式,它主要是通过改善阴影来实现更好的图像细节,在间接照明不足时,AO的作用会更加明显。
更加逼近现实的光影特效
SSAO(Screen-Space Ambient Occlusion)屏幕空间环境光遮蔽:是一个纯粹的渲染技术,或者说,是一个算法。虽然从上文知道是为了实现“间接光照”的效果,不过从技术上讲,就是一个对于AO(Ambient Occlusion环境光吸收,也就是NV 185.20驱动加入的那个,一个渲染技术,我们可以在Maya等3D软件中可以见到)的一个逼近函数,并且以此为据进行实时渲染。
总结:
以前玩家在游戏画质要求上可能因为游戏数量有限,所以大家对游戏画质方面也没有太多过分的苛求,然而当DX API历经DX9、DX10和DX11三代的持续更新之后,游戏画质越来越备受玩家的关注。
毕竟玩家去玩游戏就是为了体验模拟现实的那种真实感,所以当玩家碰上一款逼真度很高的游戏时,会有一种很兴奋的感觉:原来在游戏画面可以和现实场景一模一样哈!所以现在的玩家更倾向于去选择更为高端的DX11显卡,他们需要得到的就是这种强烈的画面真实感。
可以说DX11的游戏特效已经做的相当细微化了,尤其更加注重到物体的细节以及光照阴影等更加趋近于现实化的、自然化的特效。
所以我们也看到了GPU研发厂商也在不遗余力的在这些技术方面进行着大量而深入的研究。
如果拿好几年前的DX9画面和现如今的DX11画面相对比,你一定会从画面细节中发现:确实真有区别。而这一切正是图形技术革新所带来的最实惠的结果。 |