決戰(zhàn)性能之巔!NV雙芯旗艦GTX590評測
華麗圖形畫面和DirectX API的進(jìn)步相伴相生。幾乎每一次的版本升級,都會帶來一個(gè)或幾個(gè)讓玩家牢記心中的核心級的技術(shù)進(jìn)步,比如DX9C帶來的HDR效果,DX10帶來的體積光。玩家們甚至可以說,出現(xiàn)了HDR效果的就是DX9C游戲,出現(xiàn)了體積光的則是DX10游戲。美輪美奐的即時(shí)渲染畫面和DirectX API是分不開的。
而圖形API世代交替對于圖形廠商來說,既是機(jī)遇也是挑戰(zhàn)。DX9讓9700成為經(jīng)典,讓5800跌入低谷;DX9C讓6800風(fēng)光無限,讓X800暗淡無光;DX10成就了8800的霸主地位,讓HD2900一敗涂地;DX11則讓HD5800搶得先機(jī)。圖形硬件和DirectX API也是息息相關(guān)。
希望對顯卡和游戲有深入研究的朋友,一定不能錯(cuò)過這一章,在這里,我將帶大家了解,過去的十年中,DirectX API究竟給我們帶來了什么,而圖形芯片廠商為什么對它如此奉為綱領(lǐng)!
5.1 DirectX10 - DirectX 3D發(fā)展史
在圖形編程API出現(xiàn)之前,三維程序直接向圖形硬件發(fā)送圖形命令來完成繪制工作。雖然這樣繪制效率相當(dāng)高,但是程序中要應(yīng)對各種不同硬件上的不同命令,這使得開發(fā)工作十分困難,且程序中很容易出錯(cuò)。當(dāng)越來越多不同的圖形硬件冒出來的時(shí)候,這就成了一件十分不能忍的事。
于是便出現(xiàn)了像DirectX和OpenGL這樣的圖形API。它們在圖形硬件和應(yīng)用程序之間架起了一個(gè)中間層,這樣,應(yīng)用程序可以使用統(tǒng)一的圖形編程代碼,而對底層各種硬件的適應(yīng),則由圖形API來完成。這就將游戲程序員們從與大量的圖形硬件交換意見的惡夢中解救出來,使他們能夠?qū)⒕性凇爸谱鱾ゴ蟮挠螒蜃髌贰鄙厦妗?/P>
作為泛用性底層API,DirectX讓市場上原本雜亂的方案趨于統(tǒng)一。憑借微軟自身強(qiáng)大的影響力以及其對圖形編程領(lǐng)域的認(rèn)知,DirectX不斷將圖形領(lǐng)域的成熟技術(shù)引入到桌面。雖然微軟未必是一個(gè)被所有人所喜歡的企業(yè),但他在推動圖形發(fā)展方面做出的卓越貢獻(xiàn)卻有目共睹的。
DirectX中應(yīng)用在3D圖形方面的特定DirectX API即Direct3D,這也是DirectX中最重要的部分。不過,DirectX 3D得到廣泛應(yīng)用是在DirectX 6.0之后:
DirectX 6.0:加入了雙線性過濾、三線性過濾等優(yōu)化3D圖像質(zhì)量的技術(shù),加入環(huán)境影射凹凸貼圖,使3D游戲的畫面更具有真實(shí)感。
DirectX 7.0:最大的特色就是支持了T&L,中文名稱是“坐標(biāo)轉(zhuǎn)換和光源”,3D游戲中坐標(biāo)和燈光的轉(zhuǎn)換工作從此由CPU轉(zhuǎn)交給了GPU,比DX6.1性能提升20%。這也成就了nVIDIA GeForce 256與ATi Radeon 256的輝煌,令3DFX徹底退出市場競爭。
DirectX 7.0a:增強(qiáng)了力反饋游戲控制設(shè)備的性能和兼容性。
DirectX 7.1:與Windows Millennium一同發(fā)布。
DirectX 8.0/8.0a:支持Shader Model 1.0和1.1,從此在顯卡中引入可編程像素著色器(Pixel Shaders)和頂點(diǎn)著色器(Vertex Shaders)的概念,同時(shí)應(yīng)用在Xbox游戲機(jī)中。同硬件T&L僅僅實(shí)現(xiàn)的固定光影轉(zhuǎn)換相比,VS和PS單元的靈活性更大,它使GPU真正成為了可編程的處理器。
DirectX 8.1: Pixel Shader升級到1.2、1.3、1.4版,可以支持最高每時(shí)鐘28指令執(zhí)行,其中1.4版當(dāng)時(shí)僅ATi Radeon 8500顯卡支持。
DirectX 9.0 Shader Model 2.0: SM2.0的shader性能更強(qiáng),支持最高96指令的pixel shader長度,同時(shí)DirectPlay和一些音頻方面也有大幅提升。
DirectX 9.0 Pixel Shader 2.0b: ATI Radeon X600/700/800系列顯卡首先采納,開始支持更多指令(最高1536)和更多臨時(shí)寄存器(32相比之前為12),同時(shí)還加入新的貼面寄存器(facing register)和幾何實(shí)例(geometry instancing)的支持。
DirectX 9.0 Shader Model 3.0:支持更多指令,支持指令的流量控制和動態(tài)分支,從而使得編程人員可以在shaders中加入循環(huán)操作,使得編程更加容易,首次被Geforce 6800顯卡采用。
關(guān)注我們
