PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

通过天堂2.5介绍DX11两大技术——曲面细分、环境光遮蔽

[复制链接]
跳转到指定楼层
1#
jasu30 发表于 2011-5-9 14:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:9995|回复数:24
本帖最后由 jasu30 于 2011-5-15 12:08 编辑

原文:http://vga.zol.com.cn/227/2272691_all.html#p2272691

并非完全原文转载,对原文部分内容并不赞同,因此有我个人的修改。(zol是宣传N还是A的,大家都了解吧,所以以我认为较公正的观点修改了原文。我们需要了解的是技术知识,而不是商业宣传。)

================================================================================================================================================

天堂2.5简介及主要更新


    2011年3月4日,俄罗斯著名游戏引擎开发商Unigine Corp公司低调发布了Heaven Benchmark 2.5测试软件。作为在2009年当时全球第一款DX11 GPU测试工具——Unigine Heaven Benchmark一经推出便得到了众多玩家和媒体的青睐,并且在显卡GPU评测中的使用率颇高。

从2009年Heaven Benchmark 1.0版到今天的Heaven Benchmark 2.5,该软件共计推出了四个版本,软件不仅支持DirectX 9、DirectX 10、DirectX 11与OpenGL四种图形编程接口API,而且在测试的深度和广度上相比其他的Benchmark也要丰富不少。




●Heaven Benchmark 版本号、相关特性及主要更新

① 2009年10月份——Heaven Benchmark 1.0
② 2010年3月份——Heaven Benchmark 2.0
③ 2010年5月份——Heaven Benchmark 2.1
④ 2011年3月份——Heaven Benchmark 2.5

    主要更新:

    - 改进支持大量GPU,尤其是新型号显卡
    - 增加支持屏幕环境光遮蔽(SSAO)的改良技术“屏幕空间方向性遮蔽”(SSDO),模拟实时全局光照,
    - 改进环境光遮蔽的质量
    - 改进长时间运行(几个小时)的稳定性
    - 增加用户手册
    - 修正微小的内容性错误
    - 修正Windows图形界面启动器的兼容性问题
    - 改进Windows安装程序

从上面所罗列的主要特性和主要更新中,我们发现Unigine公司在这款Benchmark软件中“重点下功夫”的地方为:Tessellation(硬件曲面细分)技术和SSAO(屏幕空间环境光遮蔽)技术。

曲面细分技术自然不用说,一直一来都是“NVIDIA所大力宣传”的DX11核心技术之一,我们在这款Benchmark的测试场景中所看到的建筑物、街道、飞艇和飞龙雕像等都大量使用了曲面细分技术来进行建模。

而SSAO(屏幕空间环境光遮蔽)这项技术,想必知道AO(Ambient Occlusion:环境光遮蔽)技术的朋友对SSAO一定不陌生,“环境光遮蔽”(Ambient Occlusion,AO)是一种复杂的光照技术,通过计算光线在物体上的折射和吸收在受影响位置上渲染出适当的阴影,进一步丰富标准光照渲染器的效果。

“屏幕空间环境光遮蔽”(SSAO)就是该技术的一个变种,像《孤岛危机》、《鹰击长空》、《火爆狂飙》和《帝国:全面战争》等诸多游戏都运用了该技术。今日就来为各位玩家详解这两项核心技术。




【Heaven Benchmark 2.5/天堂2.5    测试软件下载】

http://bbs1.pceva.com.cn/thread-16983-1-1.html






================================================================================================================
相关文章:

<转载> 刨根问底 曲面细分到底是个啥?

DX10特效全开——《Crysis》技术详解


游戏领域——3D游戏视觉效果技术【名词解释】

主流PC游戏——【游戏引擎】介绍

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
jasu30  楼主| 发表于 2011-5-9 14:40 | 只看该作者

曲面细分技术解析

本帖最后由 jasu30 于 2011-5-9 16:15 编辑

天堂2.5 曲面细分技术直观对比



首先来一段视频,看看DX9和DX11(开启曲面细分)的画面区别。

http://player.youku.com/player.php/sid/XMjUwODYyNjk2/v.swf



    在天堂2.5 Benchmark中的Tessellation(曲面细分)选项中共有3个调节按钮(Scale、Factor、Distance),我们将这3个调节按钮的数值分3个档位进行进行设定,即数值同时为0、同时为1和同时2,通过下面的截图我们可以很清楚的看到曲面细分在程度上从无到有、从低级到高级的变化。

●曲面细分对比第一组 - 路面细节


★动态对比图(Scale;Factor;Distance三项的值同时是“0”、“1”、“2”时候的区别)



●曲面细分对比第二组 - 墙壁细节


★动态对比图(Scale;Factor;Distance三项的值同时是“0”、“1”、“2”时候的区别)



●曲面细分对比第三组 - 铜炮细节


★动态对比图(Scale;Factor;Distance三项的值同时是“0”、“1”、“2”时候的区别)


●曲面细分对比第四组 - 屋顶瓦片细节



★动态对比图(Scale;Factor;Distance三项的值同时是“0”、“1”、“2”时候的区别)



●曲面细分对比第五组 - 飞龙雕塑


★动态对比图(Scale;Factor;Distance三项的值同时是“0”、“1”、“2”时候的区别)



总结:

从上面关于曲面细分技术的直观细节对比图上看,无曲面细分的画面显得没有立体感,较为平淡或者说凹凸感不够强烈。(Scale;Factor;Distance三项的值同时是“0”)

采用了曲面细分技术之后,我们从画面上可以很直观的感觉到画面变得更加丰满、立体和凹凸有致,建模的形状也比较接近真实情况。(Scale;Factor;Distance三项的值同时是“1”)

而在用最高级别的曲面细分后,大家有没觉得画面变得过于突兀,建模臃肿变形,甚至让人觉得很奇怪?(Scale;Factor;Distance三项的值同时是“2”)






曲面细分技术解析

    曲面细分这项技术最先应用在专业领域,而首次被引入到PC图形技术中来的则是AMD公司,当年所发布的R600架构中新增加的Tessellation(曲面细分)由于专属性太强,也缺乏像微软以及游戏厂商的支持,所以该技术推出时并未得到游戏开发商的广泛使用。而首次让微软尝到曲面细分技术甜头的是:AMD为微软打造的XBOX360图形核心采用了这项技术,且大量游戏都采用了曲面细分技术。正是得到了微软老大的认可,曲面细分这项技术才在日后的DX11中大展拳脚。



R600架构中首次增加曲面细分单元



DX11流水线图

    曲面细分的作用,通俗的来讲:就是为一个一个多边形模型增加更多的多边形数量。但是这样还不能保证能够提升图形的效果,从DX11流水线图我们可以清楚的看到:在曲面细分(Tessellator)单元的前后多出了Hull Shader和Domain Shader两个单元,正是借助这2个前后控制模块,才使得采用了曲面细分技术的图形效果有了较为显著的提升。



DX11中的曲面细分技术

    从上面这张技术解析图,我们可以很了解到Hull Shader、Tessellator、Domain Shader这3个新单元的具体作用:Hull Shader主要负责定义细分等级(LOD)和相关控制点在细分中的“形变”趋势,需要说明的是这种形变仅仅是类似于曲率改变等小幅度的变化,而非大幅度的多边形位移;Tessellator则负责根据Hull Shader传输下来的信息,通过“暴力”增加多边形去实现Hull Shader的要求;Domain Shader负责的最重要的功能就是通过贴图控制的方式,实现模型的形变,也就是我们大家在DX11的细分曲面中看到的高细节画面。


总结:Hull Shader定义细分级别和形变趋势;Tessellator按照Hull Shader需求增加多边形;Domain Shader实现模型形变。



曲面细分技术演示



曲面细分技术演示



曲面细分技术演示

    然而有趣的是,作为曲面细分“创始人”的AMD并没有将曲面细分这项技术发扬光大,这从AMD和NVIDIA两家公司在新一代DX11显卡的核心架构上就可以看出端倪。NVIDIA对曲面细分技术的态度似乎很狂热,所以在核心架构上采用的是专用的曲面细分单元,而AMD则认为曲面细分技术的滥用是没有必要的,他们更强调曲面细分的合理性,所以AMD比较保守,依然沿袭的是R600架构的传统做法,即内部集成曲面细分处理单元。所以在高负载的曲面细分处理过程中,NVIDIA显卡的表现要比AMD的显卡更加出色一些,在部分程度夸张的曲面细分测试软件里,几乎可以到达6倍于竞争对手的处理能力。

总结:NVIDIA的DX11显卡采用的是专用曲面细分处理单元的设计,而AMD则采用的是内部集成曲面细分处理单元的设计。比较可惜的是,就目前游戏支持情况而言,NVIDIA的优势并没有测试软件里面那么夸张。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
jasu30  楼主| 发表于 2011-5-9 14:40 | 只看该作者

光影特效技术解析

本帖最后由 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画面相对比,你一定会从画面细节中发现:确实真有区别。而这一切正是图形技术革新所带来的最实惠的结果。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
jasu30  楼主| 发表于 2011-5-9 15:35 | 只看该作者
咳咳。。那些个gif动态对比图,原图1920X1200的,一张就4、5MB了,所以只上传800X600的低清版
5#
oys 发表于 2011-5-9 20:19 | 只看该作者
这个顶一下,玩游戏的这个还是得看看~
6#
sapphirex 发表于 2011-5-9 23:59 | 只看该作者
很立体啊。。场景做的好
7#
jasu30  楼主| 发表于 2011-5-10 00:14 | 只看该作者
很立体啊。。场景做的好
sapphirex 发表于 2011-5-9 23:59



   您回复的还真是业余啊- -
好吧,不怪你
8#
airfan 发表于 2011-5-13 14:28 | 只看该作者
注册, 回复, 看隐藏内容...
9#
schip 发表于 2011-5-13 19:49 | 只看该作者
苏30辛苦了。。。顶一下。。
10#
jasu30  楼主| 发表于 2011-5-13 19:52 | 只看该作者
苏30辛苦了。。。顶一下。。
schip 发表于 2011-5-13 19:49



   哈哈,还会有更多好贴出现的~~
11#
schip 发表于 2011-5-13 20:08 | 只看该作者
哈哈,还会有更多好贴出现的~~
jasu30 发表于 2011-5-13 19:52



   
12#
kanon421 发表于 2011-5-14 11:43 | 只看该作者
竟然基本看懂了。 很好的技术文章。
13#
nacc 发表于 2011-5-14 16:35 | 只看该作者
还是 驱动的写的好~
http://news.mydrivers.com/1/171/171974.htm
14#
jasu30  楼主| 发表于 2011-5-14 16:51 | 只看该作者
还是 驱动的写的好~
nacc 发表于 2011-5-14 16:35



   恩,我这也是转zol的嘛。你觉得驱家的好,转载过来我给你加分~
15#
nacc 发表于 2011-5-14 17:23 | 只看该作者
恩,我这也是转zol的嘛。你觉得驱家的好,转载过来我给你加分~
jasu30 发表于 2011-5-14 16:51

我也就觉得ZOL这篇容易看懂8~ 贴个地址出来有兴趣的自己去看呗~   

好8..  我就转下~
16#
jasu30  楼主| 发表于 2011-5-14 17:32 | 只看该作者
我也就觉得ZOL这篇容易看懂8~ 贴个地址出来有兴趣的自己去看呗~   

好8..  我就转下~ ...
nacc 发表于 2011-5-14 17:23



   图片本地上传下,谢谢。转载好给你加30分奖励。
17#
duo_luo 发表于 2011-5-16 21:24 | 只看该作者
画面党,支持下。
18#
135tt 发表于 2011-5-18 19:57 | 只看该作者
学习了。感触颇深。斑斑 辛苦了、
19#
jasu30  楼主| 发表于 2011-5-18 19:59 | 只看该作者
学习了。感触颇深。斑斑 辛苦了、
135tt 发表于 2011-5-18 19:57



   你们爱看我就觉得值了
20#
pphiuyt 发表于 2011-6-9 19:33 | 只看该作者
回复 14# jasu30


    曲面细分 Scale;Factor;Distance三项的值同时是“2”

有没有更变态的数值?
感觉1的画面效果正好
2的画面效果太BT了....那样的石头路和房顶太夸张了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部