老牌的DIY玩家想必都还记得,自从微软在上个世纪90年代后期推出了DirectX 7之后,显卡行业便从此进入了“军阀混战”的时代,最终形成了以NVidia和ATI为主的两强争霸格局。也是从那时起,我们第一次有了GPU,也就是图形处理器的概念(GPU的全称是Graphic Processing Unit)。
GPU的诞生,显卡新时代的推动者:DirectX 7
GPU这个概念是由微软发布DirectX 7之后由NVidia首先提出的,在GPU出现之前,Transform & Lighting(T&L,坐标转换和光源处理)一直是由CPU来完成的。也就是说,如果玩家想要在高端游戏中获得更好的效果,就必须选购性能更为强大的CPU。但是这种情况随着GPU的出现而有了改观,因为从此以后,这两个方面的图形处理GPU完全可以胜任,从而有效的释放了CPU的空间,以便让其来做其他方面的运算。另外,这项技术的出现,也首次使得T&L技术在民用级显卡中得到应用,并逐渐开始普及。
所谓Transform & Lighting(T&L,坐标转换和光源处理)我们可以这么理解,3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换;3D游戏中除了场景+物体还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是最消耗资源的。虽然OpenGL中已有相关技术,但此前从未在民用级硬件中出现。
同时期代表产品:
伴随着微软的DirectX 7发布,NVidia随之发布了其GeForce 256显卡,GeForce 256完全遵循微软的DirectX 7架构设计,在硬件方面支持T&L技术。除此以外,这款产品还提供了立方环境材质贴图、顶点混合、256位渲染引擎等诸多先进技术。另外,GeForce这个产品命名方式也被NVidia一直沿用至今。
几乎与此同时,ATI方面也推出了同样遵循了微软DirectX 7标准的产品,也就是Radeon 256显卡了。该产品的直接竞争目标就是GeForce 256,同NVidia一样,ATI的“Radeon”产品命名方式也同样沿用至今。
同样在DirectX 7时代,显卡芯片厂商出现了一次大清洗,NVIDIA以及ATI逐渐形成了双雄争霸的格局,而3dfx、S3等品牌逐渐退出了历史舞台。
Shader Mode技术催生DirectX 8诞生
正当DirectX 7大红大紫的时候,微软更上一层楼的推出了DirectX 8,从而再次推动了显卡技术的大发展,因为伴随着DirectX 8的到来,微软还尝试性的加入了新技术Shader Model 1.0。而Shader Model 1.0最大的特点是加入了两个全新的顶点单元以及渲染单元(Vertex Shader,简称VS,顶点单元;Pixel Shader,简称PS,渲染单元)。
催生Shader Mode技术诞生主要是由于T&L单元已经不能完全满足大型游戏开发的需要,因为虽然其能够大幅减轻CPU方面的负担,但是随着游戏场景复杂度的增加,简单的T&L单元已经无法胜任,而Shader Model 1.0的最大好处是其VS以及PS单元让GPU拥有了更大的灵活性,同时也使得GPU的可编程性大大提高,从而降低在游戏开发时的难度。
得益于这一系列的改进,玩家也首次在游戏中体验到了拟真的感受,尤其在3DMark 2001SE当中的Nature场景最为明显,从那以后,DirectX 8当中的Shader Model也成为了随后DirectX更新的一个重要衡量标准,直到现在一直如此。
而此时的显卡芯片厂商方面,除了NVidia和ATI以外,其他厂商已全然不见了踪影。作为NVidia遵循DirectX 8推出的主力产品是GeForce 3 Ti,该款产品相比GeForce 2来说,几乎是改头换面。
而ATI方面这次却落在了后面,没能及时跟上NVidia的脚步。为了弥补这一错误,ATI大胆的跳过了DirectX8,直接支持DirectX 8.1,推出了基于DirectX 8.1的Radeon 8500。较上代产品的改动同样翻天覆地。
虽然ATI的Radeon 8500设计出色,无奈在时间上NVIDIA已经领先,因此市场对其的反应平淡。不过也正是由于Radeon 8500的诞生,使得NVidia真正感受到了来自ATI的市场压力。
帮ATI绝地反击:DirectX 9问世
随着时间的推移,微软又推出了DirectX 9,在这一带的DirectX当中,Shader Model技术更进一步升华成了标准配置,版本升级到2.0,并且PS单元的渲染精度达到浮点精度,而且取消了传统的硬件T&L单元,取而代之的是在较低DirectX版本游戏运行时使用VS单元模拟执行硬件T&L单元功能。不过类似的技术改进对产品架构的改进不大。不过这时候DirectX已经成为显卡性能的标准,从显卡支持什么版本的DirectX,用户就可以分辨出显卡的性能高低。DirectX在硬件厂商以及游戏开发商当中的地位已经举足轻重。
借助DirectX 9,ATI先发制人的推出了Radeon 9000系列产品。想必诸多老游戏迷还记得当年Radeon 9000系列产品横扫市场时的风光。无论是早期的Radeon 9500/9700还是后来的Radeon 9550/9600/9800等产品,均成为了一代经典之作。
与ATI相反NVidia由于涉及思路产生偏差,导致GeForce FX 5000系列产品被Radeon 9000系列打的一败涂地,几无还手之力。虽然NVidia在后期推出了FX 5000系列的升级产品,但由于ATI已经在技术和市场的掌控上处于全面的优势,所以NVidia最终还是回天乏术。
帮助NVidia再夺宝座:升级版的Direct9.0C
在Direct9.0之后,微软又推出了一个升级版本–Direct9.0C。虽然只是升级版,但是该版本的Direct将Shader Model升级到了3.0,而且还加入了HDRHDR(High Dynamic Range,高动态范围)。该技术能够使得游戏画面大幅提升,临场感更强。
这次NVidia吸取了FX5000系列的教训,在对显卡架构进行彻底改进之后推出了GeForce 6800,提供了对Direct9.0C标准的全面支持。
而ATI这一次却没能抢到先机,其对等产品Radeon X800不仅在推出时间上晚了一个月,而且还没提供对Direct9.0C的支持,使得刚获得不久的胜利转瞬间易手NVidia。
击败ATI的GeForce 6800 Ultra的架构设计图
ATI的R580架构设计图,虽然出色,却生不逢时
在这之后的大概一年的时间里,NVIDIA又乘胜追击推出了第二代DX9.0C显卡GeForce 7800系列,坐实了领跑Direct9.0C的宝座。而ATI方面也推出了全新架构的Radeon X1800系列产品与之抗衡,不过性能表现并不占优势,所以没有对NVidia造成实质上的威胁。虽然ATI随后又推出了另外一款规格、性能出色的Radeon X1900系列产品,但无奈此时的Direct10已经呼之欲出,虽然X1900系列性能强劲,但在新技术面前终究已无回天之力,最终没有能够挽救ATI在这一局落败的命运。
再一次的显示革命:DirectX10统一架构
从前几次的DirectX技术更新可以看出,微软几乎是每隔一到两年便会推出一次DirectX更新,转眼之间,DirectX 10推出了。这一次,微软对架构进行了较大的调整,在DirectX 10当中,提出了统一架构的概念。原有的VS单元和PS单元不再进行区分,同时还加入了集合渲染的概念,统称为Shader单元。新架构有效的提升了显卡的执行效率,在游戏画面的表现上也更进一步。
统一架构示意图,该架构摒弃了VS单元和PS单元的概念使得显卡的执行效率进一步提高
除了新的统一架构概念以外,Direct10还加入了全新的几何着色单元和HDR格式等等,值得一提的是几何着色单元允许GPU能够控制集合图形数据,这项新技术增强了GPU的功能,在这之后不久,微软又推出了一个DirectX 10.1,不过这个10.1版仅能看做是10.0的修改版,所以并没有引起多大的反响。
鉴于微软在DirectX 10的架构上进行的巨大改动,因此NVidia也对其当时的代表作Geforce 8800GTX显卡核心架构进行了大幅度的调整。从这一代产品开始,我们已经找不到一丁点前作的影子了。
NVidia的经典之作Geforce 8800GTX,该显卡在架构上较前代的改动是翻天覆地的
由于DirectX 10在架构方面进行了非常大的调整,因此首发上市的NVIDIA GeForce 8800GTX显卡核心架构也进行了非常大幅度的调整,我们已经无法在这款产品上看到上一代显卡的影子。而且,NVDIAI的首款DX10显卡的发布领先了ATI半年左右,让NVIDIA再次获得了巨大的市场先机。很多DIY玩家应该还记得,当时ATI的产品只能用降价来应对。在当时来说,这大概也是无奈之举了。
成功中的失败:Radeon HD 2900XT
更令人大跌眼镜的是,ATI虽然晚于NVidia半年之后才发布了支持DX10架构产品Radeon HD 2900XT,但是其无论是设计方式还是运行效率均不及对手。使得ATI争霸性能王者宝座的挑战再次落败。虽然
如此,ATI的这一设计思路也并非一无是处,至少对今后的ATI产品提供了基础,随后的HD3800、4800乃至最新的HD5800系列依然延续了这种思路。
也就是从这一时期开始,ATI认识到不断在原有架构基础上累加晶体管数量以及Shader数量的方法已经不足以撼动NVidia的地位,于是便改变市场策略,不再正面挑战NVidia的高端产品,而是在中低端产品上下手。虽然该策略在市场角度来看无可厚非,甚至不失为一个成功的策略,但是我们不得不说,在这一句的性能之王的竞争中,ATI又落败了。
后浪推前浪:DirectX 11的技术变革
随着2009年微软推出了Windows 7操作系统,Direct X技术也再一次的更新了其版本,达到了DirectX11,该版本较前作的改进主要体现在多线程处理、Shader Model 5.0、DirectComputer11、Tessellation、HDR纹理压缩几部分。不过除了除了Tessellation是在架构方面进行大改动以外,其他方面主要都是通过指令代码等方式来实现的。
所谓Tessellation,其实就是DirectX 11 Tessellation的处理单元,Tessellator单元本身不具备可编程性,因此DirectX11向tesselator单元输入或者从中输出的过程是通过两个传统的管线阶段完成的:Hull Shader (HS,外壳着色器)和Domain Shader (DS,域着色器)。Hull Shader负责接收琐碎的图形数据和资料,而control points将会基于如何配置Tessellator来产生数据。这些琐碎的图形数据和资料会形成一个新的primitive单元(类似于顶点单元和像素单元),这种primitive单元可以将平面的一段分块处理。Control points用来定义想要得到的图形(比如说一个曲面或者其他)的图形参数变量。如果您经常用Photoshop绘图软件的话,不妨把Control points理解为PS的钢笔
工具:用平面代替线的贝塞尔曲线功能。Hull Shader采用control points来决定如何安排tessellator处理数据,利用Tessellator生成大批量的、确定数量的点,然后将数据传送给Domain Shader,Domain Shader将这些点转换成3D处理中的顶点,最后GPU生成曲线以及多边形。
Tessellation是创造更多纹理细节、阴影以及平滑边缘的几何图形的最佳途径之一。如果开发者们采用Tessellation技术的话,我们可以看到非常逼真的物体效果,而且随着DX11的发布,NVIDIA以及ATI最终将会从Tessellation技术中获益。
ATI的DirectX 11主力级产品Radeon HD 5870
而在这一次的两强争霸战中,ATI并没有把Tessellator单元看得过于重要。在设计Cypress架构上,ATI的策略更像是将两个RV770整合在一颗芯片当中,进一步提升显卡在超高分辨率当中的性能表现。而DX11对于Cypress核心来说仅仅相当于其中的功能之一。Cypress设计的最成功之处在于将流处理器单元从前一代产品的800个激增到1600个而核心面积却没有大幅度增加。
虽然ATI设计的类似于双核的产品的确是增强显卡性能的捷径,但是其对Tessellator单元的轻视也注定了其不可能在DirectX 11技术上有太强的表现。
与ATI的设计思路不同,NVIDIA在GF100上花费了大量的精力以及时间进行研发。为了加强Tessellation的性能表现,NVIDIA甚至将第一版的GF100设计产品推翻重来,为的就是设计出一款
DX11性能强劲的产品。
从NVIDIA的首款统一架构的G80开始,到今天的GF100产品,这已经是NVIDIA第三代统一架构产品。与第一代、第二代产品的小幅改进不同的是,第三代GF100统一架构产品为了迎合DX11的特性,在整体设计方面进行了较大幅度的调整。
对于最新一代的DirectX 11架构设计来说,ATI与NVIDIA所注重的理念可以说是大相径庭。我们甚至可以这么理解,ATI是希望通过小的技术改动抢先获得发布DirectX 11的市场先机,但是NVidia则希望稳扎稳打,设计出有优秀DirectX 11性能的产品。一个注重的是市场效应,一个注重的是技术效应。
在未来的DirectX 11游戏当中,相信Tessellation会被大规模的采用,NVIDIA的DX11架构得益于其稳扎稳打的技术优势相信会获得不错的市场反响,而届时ATI的HD5000在技术方面则很可能会出现Shader单元的大范围空载,Tessellator单元的满负荷运行而影响游戏效果的现象。至于ATI在今年下半年推出的“南方群岛”DirectX 11显卡在这方面会否有大的改动,我们拭目以待。
结语:
纵观从上世纪90年代末开始的这场关于显示技术的群雄逐鹿之战到现在仅剩NVidia和ATI两家,其他厂商皆已成为历史。而时至今日,我们不难看出,经过十余年的争斗,NVidia似乎已经确立了在技术方面的领先,而ATI也转而面对现实,在市场方面广下功夫。今后的竞争想必更加激烈,然而无论厂商竞争如何,相信得益的最终只会是我们消费者。