谁都不会想到还没有捂热的Di r e c t X 10会如此快地被Di r e c t X 11所取代,而且这一次并不是简单的AP I更迭,游戏业界对D i r e c t X 11的热情超乎寻常。从首款拥有超逼真画面效果的Di r e c t X 11大作《尘埃2》诞生到现在的数十款顶着DirectX 11光环的游戏陆续上市,还不到4个月。如果你还在琢磨着挑选一款基于DirectX 10的显卡,显然你已经被高速发展的游戏图形技术甩开了,曲面细分、多线程处理以及S h a d e r Mo d el5.0等技术已经将游戏画面带入新的时代。现在我们可以在游戏中感受到逼真的自然环境光线、奔涌跌宕的江河湖泊、更好的材质质感和更快的游戏帧速——只要你拥有一块支持Di r e c t X 11的显卡。
1.DirectX 11的灵魂--Tessellation技术
Tessellation(曲面细分)技术的原理很简单,就是将大型几何模型分拆为多个更小的图形,从而实现更高精度的几何模型效果。而在构建球形体时,T e s s e l l a t i o n技术可通过旋转让立方体从底部看起来如同球形, 这无疑能节省大量的GPU资源。同时曲面细分技术还有助于提高模型的质量、性能和可控性。
实际上这项技术与A T I有着很深的渊源,从R6 0 0核心(RA D EON HD2900XT)至今,每一代ATI显示核心中都整合了一个特殊的模块专门用于支持这项技术。遗憾的是由于微软一直未在Di r e c t X中加入对它的支持,因此多年来一直没有游戏采用这一技术。Tessellation的前身是Di r e c t X 8/9.0a时代由微软提出的Tr u F o rm技术,该技术的目标与Tessellation相同,但由于缺乏经验,隐藏的Bug使它的应用面很窄,因此还遭到NV IDIA的反对。2005年,微软推出了X B O X 360家用游戏机,其图形芯片Xe n o s由A TI设计制造,引入了新的T r u F o r m技术消除了过去的B u g,并将之更名为Tessellation。
后来在AMD的不懈努力下,Te s s e l l a t i o n技术的推广获得了突破,一些好莱坞的CG影片设计公司发现该技术能够以很小的资源开销让模型细节丰富百倍,这种近乎免费的画质提升无疑是非常诱人的。于是AMD将Tessellation技术的推广重心转移至CG领域,并提出了Cinema 2.0的概念,为中小型图形公司提供技术支持,灵活应用Tessellation技术来高效的创作视频短片及广告特效。如今,微软终于认可了Tessellation技术的重要性,将第六代Tessellation技术整合到最新的DirectX 11中,且脱离了硬件限制,无论什么品牌型号的显卡,只要支持DirectX 11,就能支持这一技术。
第六代Tessellation技术的处理单元被称为“Tessellator”,Tessellator本身不具备可编程性,因此DirectX 11向Tesselator输入或者从中输出的过程是通过两个传统的管线阶段完成的:Hull Shader (HS,外壳着色器)和Domain Shader (DS,域着色器)。Hull Shader负责接收琐碎的图形数据和资料,并处理将它们处理成大批量的、确定数量的点,然后将这些数据交给Domain Shader,由Domain Shader将它们转换成3D处理中的顶点信息,最后由GPU生成对应的曲线和多边形。
Tessellation(曲面细分)技术的原理很简单,就是将大型几何模型分拆为多个更小的图形,从而实现更高精度的几何模型效果。而在构建球形体时,T e s s e l l a t i o n技术可通过旋转让立方体从底部看起来如同球形, 这无疑能节省大量的GPU资源。同时曲面细分技术还有助于提高模型的质量、性能和可控性。
|
Tessellation技术原理示意图 |
实际上这项技术与A T I有着很深的渊源,从R6 0 0核心(RA D EON HD2900XT)至今,每一代ATI显示核心中都整合了一个特殊的模块专门用于支持这项技术。遗憾的是由于微软一直未在Di r e c t X中加入对它的支持,因此多年来一直没有游戏采用这一技术。Tessellation的前身是Di r e c t X 8/9.0a时代由微软提出的Tr u F o rm技术,该技术的目标与Tessellation相同,但由于缺乏经验,隐藏的Bug使它的应用面很窄,因此还遭到NV IDIA的反对。2005年,微软推出了X B O X 360家用游戏机,其图形芯片Xe n o s由A TI设计制造,引入了新的T r u F o r m技术消除了过去的B u g,并将之更名为Tessellation。
《异形大战铁血战士2》中大量应用了Tessellation技术 |
后来在AMD的不懈努力下,Te s s e l l a t i o n技术的推广获得了突破,一些好莱坞的CG影片设计公司发现该技术能够以很小的资源开销让模型细节丰富百倍,这种近乎免费的画质提升无疑是非常诱人的。于是AMD将Tessellation技术的推广重心转移至CG领域,并提出了Cinema 2.0的概念,为中小型图形公司提供技术支持,灵活应用Tessellation技术来高效的创作视频短片及广告特效。如今,微软终于认可了Tessellation技术的重要性,将第六代Tessellation技术整合到最新的DirectX 11中,且脱离了硬件限制,无论什么品牌型号的显卡,只要支持DirectX 11,就能支持这一技术。
第六代Tessellation技术的处理单元被称为“Tessellator”,Tessellator本身不具备可编程性,因此DirectX 11向Tesselator输入或者从中输出的过程是通过两个传统的管线阶段完成的:Hull Shader (HS,外壳着色器)和Domain Shader (DS,域着色器)。Hull Shader负责接收琐碎的图形数据和资料,并处理将它们处理成大批量的、确定数量的点,然后将这些数据交给Domain Shader,由Domain Shader将它们转换成3D处理中的顶点信息,最后由GPU生成对应的曲线和多边形。
2.Multi-Threading多线程处理技术
Multi-Threading技术的本质是协调多核心(多线程)处理器与多个GPU之间的工作。在以往的DirectX中,无论系统中有多少个GPU,最终都将被模拟成一个,所有的GPU必须共享指令缓冲区并接受CPU调度,渲染线程的拆分与合并指令延迟都很大,而且GPU越多效率就越低。因此我们看到多核心显卡和多显卡系统无法达到1+1=2的效果。在DirectX 11中,如果系统中同时拥有四核心CPU和4块显卡,那么每个CPU核心都将单独控制一块显卡的渲染线程,这不仅解决了GPU利用效率的问题,还变相使游戏对多核心CPU提供了支持。
3.Shader Model 5.0
Shader Model 5.0是基于统一渲染架构,专门针对流处理器进行设计的全新渲染指令集,它允许GPU更灵活地进行数据访问和操作,统一了所有的着色器类型且所有着色器都能从新指令集中获益,比如:像素、顶点、几何、计算等,同时它还简化了编程对象的函数及子程序开发代码。ShaderModle 5.0中新增了5条指令,其中SV_Coverage和Flexible Gather指令是在DirectX 10.1基础上发展而来,在Shader Model 5.0中表现得要比Shader Model 4.1更智能和灵活,它可以针对特定颜色分别采样、还能自动识别可做阴影映射的值,精度和效率都进一步提高。 由于DirectX 11与DirectX 10.1在指令方面的相似性,现有的DirectX 10.1游戏可以很容易的通过更新程序代码升级支持DX11,从而获得更好的运行效率,比如《风起云涌》《潜行者》《尘埃2》等将会率先引入DirectX 11。
多显卡系统的效能有望获得解放 |
Multi-Threading技术的本质是协调多核心(多线程)处理器与多个GPU之间的工作。在以往的DirectX中,无论系统中有多少个GPU,最终都将被模拟成一个,所有的GPU必须共享指令缓冲区并接受CPU调度,渲染线程的拆分与合并指令延迟都很大,而且GPU越多效率就越低。因此我们看到多核心显卡和多显卡系统无法达到1+1=2的效果。在DirectX 11中,如果系统中同时拥有四核心CPU和4块显卡,那么每个CPU核心都将单独控制一块显卡的渲染线程,这不仅解决了GPU利用效率的问题,还变相使游戏对多核心CPU提供了支持。
3.Shader Model 5.0
Shader Model 5.0是基于统一渲染架构,专门针对流处理器进行设计的全新渲染指令集,它允许GPU更灵活地进行数据访问和操作,统一了所有的着色器类型且所有着色器都能从新指令集中获益,比如:像素、顶点、几何、计算等,同时它还简化了编程对象的函数及子程序开发代码。ShaderModle 5.0中新增了5条指令,其中SV_Coverage和Flexible Gather指令是在DirectX 10.1基础上发展而来,在Shader Model 5.0中表现得要比Shader Model 4.1更智能和灵活,它可以针对特定颜色分别采样、还能自动识别可做阴影映射的值,精度和效率都进一步提高。 由于DirectX 11与DirectX 10.1在指令方面的相似性,现有的DirectX 10.1游戏可以很容易的通过更新程序代码升级支持DX11,从而获得更好的运行效率,比如《风起云涌》《潜行者》《尘埃2》等将会率先引入DirectX 11。