首页 > 未分类 > (转)DirectX支配游戏!历代GPU架构全解析
2019
11-29

(转)DirectX支配游戏!历代GPU架构全解析

泡泡网显卡频道4月30日 NVIDIAATI(AMD)的GPU之战,远比Intel和AMD的CPU之战有意思,毕竟双方的实力差距并没有那么悬殊,经常斗得是难解难分。N/A的连年征战给我们带来无与伦比游戏画面和优秀产品的同时,也为喜欢IT技术的朋友带来了许多乐趣和谈资,只有深爱硬件技术的朋友才能有所体会。

    掐指一算,从GPU诞生至今双方都已推出了十代产品,每一代产品之间的对决都令无数玩家心动不已,而其中最精彩的战役往往在微软DirectX API版本更新时出现。虽说胜败乃兵家常事,但NVIDIAATI每一代产品谁更强大似乎有某种规律可循,而且与DirectX有着某种微妙的关系。

(转)DirectX支配游戏!历代GPU架构全解析 - 第1张  | 逗分享开发经验

    相信很多人都有这种感觉,似乎谁与微软走的更近,谁能最先支持新版DirectX API,谁就能占据更多的优势。但也有例外,比如DX8.1对于Radeon 8500的帮助有限,DX10.1也没有给HD3000带来好运。其实这些只是表象,如果我们能够透过现象看其本质的话,就会发现DirectX与GPU的架构是有直接关系的,而GPU架构的优劣直接了决定一代产品的成败。

    所以,今天我们就抛开GPU的晶体管数、管线/流处理器规模、工艺、频率、功能等等技术参数不谈,我们将关注的焦点集中在GPU体系架构方面。看看每逢DirectX版本有重大更新时,NVIDIA与ATI是如何博弈的,克敌制胜的关键到底是什么?

DirectX 7.0特性:硬件T&L


 

 

    在DirectX 5.0以前,这个被微软整合在Windows操作系统内部的图形API并没有现在这么风光,当时的显卡和游戏都以支持OpenGL和Glide(3DFX的专用API)为荣,DirectX在持续不断的改进与发展,但始终都没能超越对手,一方面基于DOS系统的Windows还不够强大,另一方面微软的影响力还没到左右游戏开发商和芯片厂商的地步。

    直到Windows 95发布之后,全新的图形界面让整个业界都兴奋不已,90%的占有率直接带动了整个行业的需求,也迫使全球软硬件厂商都不得不向其靠拢。此时整合Win95整合的DirectX 6.0也有了足够的实力与OpenGL/Glide分庭抗力,在技术特性不输与人的情况下,DirectX的影响力与日剧增。

DirectX 7.0确定权威:核心技术T&L

    DirectX 7.0是一次革命性的改进,其最大的特色就是支持Transform & Lighting(T&L,坐标转换和光源)。

(转)DirectX支配游戏!历代GPU架构全解析 - 第2张  | 逗分享开发经验

    3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换;3D游戏中除了场景+物体还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是最消耗资源的。

(转)DirectX支配游戏!历代GPU架构全解析 - 第3张  | 逗分享开发经验    (转)DirectX支配游戏!历代GPU架构全解析 - 第4张  | 逗分享开发经验

基于T&L技术的演示Demo

    在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显卡核心来计算,这样就可以把CPU从繁忙的劳动中解脱出来,让CPU做他该作的事情,比如逻辑运算、数据计算等等。换句话说,DX7显卡用T&L渲染游戏时,即使没有高速的CPU,同样能能流畅的跑3D游戏。

DirectX 7.0架构:首颗GPU GeForce 256


 

 

首颗GPU诞生:GeForce 256(NV10)

    T&L优秀的特性成为当时业界关注的焦点,那么首款支持DX7与T&L的显卡自然备受期待,NVIDIA的GeForce 256就是这样一款划时代的产品,为了突出它先进的技术特性,NVIDIA将GeForce 256的显示核心称为GPU(Graphic Processing Unit,图形处理器)。

    GeForce 256所采用的核心技术除了硬件T&L之外,还有立方环境材质贴图、顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素、256位渲染引擎等诸多先进技术。在性能大幅提升的同时,3D游戏的画面得到了质的提升。

(转)DirectX支配游戏!历代GPU架构全解析 - 第5张  | 逗分享开发经验

    此后发布的GeForce 2 GTS就是GeForce 256的提速版本,架构、规格和技术没有多少改变。因此可以说GeForce 256就已经确立了当今GPU的整体架构雏形,我们可以看到它拥有专门的坐标转换与光源引擎,还有装配引擎、渲染管线、后期处理模块等等,这些功能单元基本都被沿用至今。

两强争霸局面形成:Radeon 256

    在DX7大势所趋的局面下,ATI也发布了首款DX7显卡,其命名都与NVIDIA惊人的一致——Radeon 256,由此掀开了NVIDIA与ATI、GeForce与Radeon争霸的局面。

(转)DirectX支配游戏!历代GPU架构全解析 - 第6张  | 逗分享开发经验

Radeon 256独特的单管线3纹理架构

    Radeon 256同样支持硬件T&L、环境贴图和凹凸贴图,还支持Hyper及和DOT3压缩技术,Radeon 256只有两条渲染管线,但每条管线拥有多达3个纹理单元,而GeForce 256每条管线只有1一个纹理单元,GeForce 2 GTS才改进为2个。但遗憾的是Radeon 256的第3个贴图单元直到它退市的时候也没有任何程序能够支持它,同时令人诟病的驱动也令用户大为恼火。

    Radeon 256及其衍生的Radeon VE/LE/SE等都是优秀的产品,技术与架构不输给GeForce系列,功能甚至还更丰富,但糟糕的软硬件支持度导致它无法同GeForce相抗衡,口碑和市场都不如人意。

★ 小结:DX7架构平分秋色,硬件规格决定性能

    GeForce 256与Radeon 256的基本架构是相同的,不同的是管线设计,GeForce 256拥有更多4条管线,但纹理单元也只有4个;Radeon 256虽然只有2条管线,但每管线拥有3个纹理单元,而且工作频率很高,因此在理论性能上占优势。

    在当时来说,游戏大量使用了各种纹理贴图,因此对纹理单元提出了很高的要求,所以NVIDIA在GeForce 2 GTS当中改进为单管线双纹理。NVIDIA管线:纹理=1:2、ATI管线:纹理=1:3的架构都维持了很多年,直到DX9时代才有了较大的变化。 

DirectX 8.0特性:像素和顶点管线


 

 

DirectX 8.0:引入像素和顶点两大渲染管线

    面向图形计算,让GPU逐渐找到了自己的方向,那就是给予用户更真更快地视觉体验,但是GPU架构也遇到一些问题亟待解决。首要问题就是,要实现更加复杂多变的图形效果,不能仅仅依赖三角形生成和固定光影转换,虽然当时游戏画面的提高基本上都是通过大量的多边形、更复杂的贴图来实现的。

    但后期的发展中,顶点和像素运算的需求量猛增。每个顶点都包含许多信息,比顶点上的纹理信息,散光和映射光源下表现的颜色,所以在生成多边形的时候带上这些附加运算,就可以带来更多的效果,但这也更加考验顶点和像素计算能力。

(转)DirectX支配游戏!历代GPU架构全解析 - 第7张  | 逗分享开发经验

    2001年微软发布了DirectX 8.0,一场新的显卡革命开始,它首次引入了ShaderModel的概念,ShaderModel就相当于是GPU的图形渲染指令集。其中像素渲染引擎(Pixel Shader)与顶点渲染引擎(Vertex Shader)都是ShaderModel 1.0的一部分,此后每逢DirectX有重大版本更新时,ShaderModel也会相应的升级版本,技术特性都会大大增强。

    与DX7引入硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大,它使GPU真正成为了可编程的处理器,时至今日DX11时代ShaderModel都在不停地更新,以便渲染出更逼真更完美的画面。这意味着程序员可通过它们实现3D场景构建的难度大大降低,但在当时来说可编程性还是很弱,GPU的这一特性还是太超前了。

(转)DirectX支配游戏!历代GPU架构全解析 - 第8张  | 逗分享开发经验   (转)DirectX支配游戏!历代GPU架构全解析 - 第9张  | 逗分享开发经验   (转)DirectX支配游戏!历代GPU架构全解析 - 第10张  | 逗分享开发经验

(转)DirectX支配游戏!历代GPU架构全解析 - 第11张  | 逗分享开发经验   (转)DirectX支配游戏!历代GPU架构全解析 - 第12张  | 逗分享开发经验   (转)DirectX支配游戏!历代GPU架构全解析 - 第13张  | 逗分享开发经验

DX8动态光影效果展示:变色龙和不同角度的人脸

    DirectX 8.0当中的Pixel Shader和Vertex Shader的引入,使得GPU在硬件逻辑上真正支持像素和顶点的可编程,反映在特效上就是动态光影效果,当时波光粼粼的水面都是第一次展现在玩家面前。

    但是DX8的普及之路并不顺畅,主要是因为当时的DX8显卡都定位太高,NVIDIA和ATI双方都没有推出过低端DX8显卡,热卖的产品都是DX7,直到DX9诞生之后,双方才把昔日高端的DX8显卡当作低端产品处理。

DirectX 8.0架构:N/A争霸开始


 

 

首款DX8显卡:GeForce 3 Ti

    在DX8之前,无论NVIDIA还是ATI,都在强调显卡前端及后端输出。而Shader理念提出之后,双方逐渐将竞争重点放在了显卡的渲染核心部分——像素渲染管线和顶点渲染管线,无论是GeForce 3 Ti还是Radeon 8500都内置的规格和频率更强的PS和VS单元。当然也对显卡的后端ROP(光栅化引擎,负责完成像素的输出)也做了相应的改进,各种各样的多重采样AA模式和材质过滤技术逐步得以实现。

(转)DirectX支配游戏!历代GPU架构全解析 - 第14张  | 逗分享开发经验

    上图就是GeForce 3的核心架构图,可以看出,由于DX8渲染模式的改变,GeForce 3相对于DX7的GeForce 2/256有了天翻地覆的变化,一半以上的模块需要重新设计(绿色部分)。

(转)DirectX支配游戏!历代GPU架构全解析 - 第15张  | 逗分享开发经验

GeForce 3的顶点管线设计

    硬件规格方面,GeForce 3依然只有4条渲染管线,每条管线内置2个纹理单元,这与上代的GeForce 2没有区别。但是GeForce 3的核心晶体管数竟然是GeForce 2的两倍以上,额外的晶体管大都用在了顶点管线部分,虽然它只有一个顶点着色单元。这个顶点着色单元其实就是一个4D SIMD(单指令多数据流)处理器,可以计算最多16项数据的顶点,这在当时来说运算能力已经非常富裕了。

    不过,主流的游戏还是基于DX7开发,因此GeForce 3的VS单元很多时候都派不上用场,由此导致GeForce 3在DX7游戏当中领先GeForce 2 Ti的优势并不大,毕竟它们的像素渲染管线和纹理单元数目是相同的,频率也没有提升太多。

ATI直上DX8.1:Radeon 8500

    DX8方面ATI再次落后于NVIDIA,但后发制人也有好处,ATI直接采用了微软更新的DX8.1 API,因此在硬件特性方面要更胜一筹。不过DX8.1的改进极为有限,只是改进了大纹理水波纹的效能,未能得到整个业界的重视。

(转)DirectX支配游戏!历代GPU架构全解析 - 第16张  | 逗分享开发经验

    Radeon 8500与DX7版的Radeon系列相比,架构上也产生了翻天覆地的变化,除了加入顶点引擎外,更多尚处于实验性的技术都被置于其中,而且2D输出部分的功能更为丰富,可以说在技术和功能方面完全超越了GeForce 3 Ti。

    规格方面,Radeon 8500拥有4条像素渲染管线,这与GeForce 3是相同的,但是8500拥有2个顶点着色单元,而GeForce 3只有1个,这就使得8500的理论性能更占优势。纹理单元方面ATI放弃了管线:纹理=1:3的设计,采用了与NVIDIA相同的1:2设计,因为第3个纹理单元在多数游戏中都毫无用处,这样双方的纹理单元数量也完全相同。

小结:DX8架构ATI更出色,NV性能更强

    整体来看双方都是重新设计的优秀架构,考虑到众多的特色功能和技术,Radeon 8500的确要优于GeForce 3 Ti。这是在3DFX灭亡之后,第一次有一家公司对NVIDIA造成如此大的压力,所以NVIDIA发布了更高频率的GeForce 3 Ti 500才勉强夺回性能之王的宝座。当然NVIDIA成熟稳定的驱动和长期积累的用户口碑以帮助GeForce 3 Ti力压Radeon 8500系列。

    后期NVIDIA推出更多管线的GeForce 4 Ti自然拥有更强的DX8性能,但考虑到ATI方面没有与之相对应的产品,就不做对比了,因为ATI已经直接进入了DX9时代。

DirectX 9.0特性:高精度渲染


 

 

DirectX 9.0:高精度渲染时代来临

    2002年底,微软发布DirectX 9.0,如果从技术规格上看,DX9似乎没有DX7和DX8那种让人眼前一亮的革命性技术,它只是将ShaderModel版本从1.0升级到2.0而已。其实不然,此次ShaderModel指令集的改进让图形渲染画质提高到了新的水平。

(转)DirectX支配游戏!历代GPU架构全解析 - 第17张  | 逗分享开发经验

    首先,PixelShader 2.0具备完全可编程架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。

(转)DirectX支配游戏!历代GPU架构全解析 - 第18张  | 逗分享开发经验

3DMark03中的最后一个场景就是DX9渲染,让人眼前一亮

    其次,VertexShader 2.0通过增加顶点指令的灵活性,显著的提高了老版本的顶点性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。

(转)DirectX支配游戏!历代GPU架构全解析 - 第19张  | 逗分享开发经验

Radeon 9700所提供的HDR Demo

    另外,增加对浮点数据的处理功能,以前只能对整数进行处理,这样提高渲染精度,使最终处理的色彩格式达到电影级别。突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。

DirectX 9.0架构:”真DX9″大获全胜


 

 

首款DX9显卡——Radeon 9700

    当NVIDIA沉浸于GeForce 4 Ti大获全胜的DX8时代时,ATI在DX9标准正式确立之前就提前发布了Radeon 9700显卡,打得NVIDIA措手不及。这款产品来得如此突然,以至于ATI发布之时甚至没有提供相关技术PPT/PDF。

(转)DirectX支配游戏!历代GPU架构全解析 - 第20张  | 逗分享开发经验

    由于DX9相比DX8并没有改变3D渲染流程,仅仅是强化了ShaderModel指令集,因此R300的架构相比R200改进并不大,主要的变化是规模的扩充与外围控制模块的加强。比如:首次使用256bit显存控制器、类似CPU的FCBGA封装、更先进的纹理压缩技术以及后期处理单元。

(转)DirectX支配游戏!历代GPU架构全解析 - 第21张  | 逗分享开发经验

最后编辑:
作者:游戏创作者大陆