如何評(píng)價(jià)微軟全新的DirectX?
前幾天我們?nèi)咨钤诮o大家分析Xbox Series X的技術(shù)細(xì)節(jié)時(shí)曾提出,這是一款充分利用了現(xiàn)有技術(shù)的主機(jī),幾乎可以說是把至今為止PC上的圖形成果與最新設(shè)計(jì)思路結(jié)合到了極限。而且由于Xbox Series X本身是基于x86硬件架構(gòu),以及Windows操作系統(tǒng),因此當(dāng)中的不少新圖形API和新的硬件調(diào)度技術(shù),其實(shí)都有望出現(xiàn)在未來的桌面級(jí)Windows 10中。
不過即便是我們也確實(shí)沒想到,微軟的動(dòng)作會(huì)這么快。僅僅就在Xbox Series X公布細(xì)節(jié)數(shù)天之后,微軟就突然公布了全新的“DirectX 12 Ultimate”標(biāo)準(zhǔn),并宣布其將為統(tǒng)一Xbox與PC體驗(yàn)的最新、最高級(jí)別的游戲圖形標(biāo)準(zhǔn)。這意味著,諸如DXR 1.1新版光線追蹤、VRS可變著色率、Mesh Shader多線程渲染管線,以及SFS采樣反饋流等等,剛剛在Xbox Series X中登場(chǎng)的圖形技術(shù)很快就將隨著Windows 10 2004版的更新,降臨到那些已經(jīng)配備了RTX顯卡的PC中來,并進(jìn)一步成為大量次時(shí)代3A大作的技術(shù)標(biāo)準(zhǔn)。
很顯然,微軟為了提升自家平臺(tái)的游戲體驗(yàn),這次算是發(fā)了個(gè)“大招”。而DirectX 12 Ultimate這霸氣的名字以及它所包含的一系列新功能,也確實(shí)令人對(duì)新版本的Windows 10有了更多期待。
但是,這樣一來問題就出現(xiàn)了。眾所周知,微軟在Windows Vista時(shí)代引入了DirectX 10,在Windows 7上帶來了DirectX 11,在Windows 8上發(fā)布了DirectX 12。那么為什么Windows 10發(fā)布的時(shí)候,我們卻并沒有等來DirectX 13,反倒是直到這多年之后,才終于有了一個(gè)“DirectX 12 Ultimate”呢?
要知道,DirectX曾經(jīng)是顯卡換代的原動(dòng)力
要理解這一點(diǎn),首先我們要先弄懂一件事。就是顯卡的硬件功能和它對(duì)應(yīng)的DirectX軟件規(guī)范,究竟是“先有雞還是先有蛋”。
PC上的第一款GPU,同時(shí)也是第一塊支持DirectX 7.0的民用顯卡
追溯歷史不難發(fā)現(xiàn),在DirectX 12之前,歷代顯卡的硬件換代基本上都是受軟件與游戲技術(shù)換代所驅(qū)動(dòng)。比如PC史上最早的“GPU”GeForce 256,就是在微軟先公布了DirectX 7.0規(guī)范,引入硬件T&L功能需求之后,NVIDIA第一個(gè)做出了適配的顯卡,從此便一戰(zhàn)成名。
又比如說在DirectX 10的時(shí)代,NVIDIA先推出了符合新圖形規(guī)范的GeForce 8800Ultra,而ATI那邊的Radeon HD2900XT“遲到”了很長(zhǎng)時(shí)間,因此便在市場(chǎng)中陷于被動(dòng)。
這塊卡誰能準(zhǔn)確說出名字和出處來?
從這些歷史資料中我們都不難看出,在很長(zhǎng)一段時(shí)間里,PC顯卡市場(chǎng)都是微軟先發(fā)布新版DirectX,相當(dāng)于先提出了一個(gè)“技術(shù)規(guī)范”或者說性能需求,然后才有各大廠商針對(duì)性研發(fā)的硬件產(chǎn)品。
從DX9時(shí)代開始,微軟的節(jié)奏就慢了下來
但是隨著顯卡市場(chǎng)在競(jìng)爭(zhēng)中淘汰了越來越多的參與者,隨著NVIDIA和AMD兩家的寡頭局面形成。微軟作為操作系統(tǒng)的開發(fā)者,作為DirectX圖形規(guī)范的制定者,也不免需要越來越多地“照顧”到兩位硬件巨頭的需求,或者說開始在DirectX規(guī)范里融入來自N、A兩家的獨(dú)家技術(shù)。
2003年,NVIDIA推出了GeForce FX系列顯卡,它最大的特征有兩點(diǎn)。一是“吃螃蟹”首發(fā)了GDDR2顯存,二是在圖形渲染上提供高速但低精度的16bit與低速但高精度的32bit兩種工作模式。然而彼時(shí)的ATI卻看出了GeForce FX設(shè)計(jì)的缺點(diǎn),他們舍棄了高溫高成本的GDDR2顯存,繼續(xù)使用GDDR一代顯存控制器,并在圖形渲染上創(chuàng)造性的使用了折中的24bit精度。
很顯然,最終ATI的設(shè)計(jì)幫助他們?nèi)〉昧藰O大成功,也直接促使NVIDIA在后來的GeForce 6000系列上搞出了“大殺器”SLI技術(shù)。但是很少有人關(guān)注到這樣一個(gè)重點(diǎn),由于NVIDIA和ATI兩家在DirectX 9時(shí)代的最初兩款產(chǎn)品在設(shè)計(jì)上實(shí)在是差異太大,最后逼得微軟不得不實(shí)際上為兩家顯卡分別推出了一個(gè)DirectX版本——NVIDIA GeForce FX系列用DirectX 9.0a,而ATI Radeon 9800系列用DirectX 9.0b。這是顯卡廠商第一次直接以他們自己的技術(shù)在PC平臺(tái)上影響到了DirectX規(guī)范的發(fā)展,而它實(shí)際上也就此改變了微軟與顯卡芯片企業(yè)的關(guān)系。
ATI Radeon HD4890,此卡的第一批貨在中國(guó)是一張難求
正因?yàn)槿绱?,到了DirectX 10的時(shí)代,統(tǒng)一渲染管線的設(shè)計(jì)很明顯更“合”NV的意,因此GeForce 8800系列得以早早登場(chǎng),迅速搶占了市場(chǎng)。而DirectX 10.1則更多融入了ATI(AMD)的需求,因此Radeon HD3650、HD3870,以及后來的HD4000系列強(qiáng)勢(shì)反攻,而NVIDIA那邊卻對(duì)這一代規(guī)范幾乎視若無睹。
DX11時(shí)代最流行的就是測(cè)曲面細(xì)分性能,然而這也有顯卡廠商的利益因素在里面
很顯然到了這個(gè)地步,DirectX與其說是微軟所提出的圖形技術(shù)規(guī)范,不如說其實(shí)已經(jīng)是微軟、NVIDIA、AMD三家的博弈結(jié)果了。也正是因此,在此后的DirectX 11和DirectX 12中,我們就看到了更多更符合顯卡廠商利益的技術(shù)設(shè)定,比如說對(duì)顯卡性能消耗極大,能夠充分拉開高中低端顯卡游戲體驗(yàn)差距的Tessellation(鑲嵌,也稱細(xì)分曲面)技術(shù),實(shí)際上就來自于ATI在DX10時(shí)代的一項(xiàng)自研項(xiàng)目。又比如說現(xiàn)在大紅大紫的光線追蹤技術(shù),其實(shí)好幾年前就已經(jīng)出現(xiàn)在一些專業(yè)級(jí)的制圖顯卡中,但游戲領(lǐng)域最早則是由NVIDIA用他們自己的RT Core和Tensor Core硬件,以私有API的方式實(shí)現(xiàn),此后才被納入了DirectX 12的DXR功能子集中,成為微軟官方規(guī)范的一部分。
加量不改名,如今的DirectX對(duì)玩家更友好
那么,這意味著什么呢?首先,由于DirectX不再是直接刺激顯卡廠商更新?lián)Q代的標(biāo)準(zhǔn),這意味著一方面來說DirectX大版本換代的必要性本身就不似當(dāng)年那般迫切了,而且還能一定程度上讓消費(fèi)者“感到實(shí)惠”——比如說NVIDIA家的Maxwell、Fermi架構(gòu)、AMD家的GCN 1.0~4.0,都可以通過軟件更新支持到DX12,這就一定程度上增強(qiáng)了各家的消費(fèi)者粘性,對(duì)于兩家顯卡廠商來說都是喜聞樂見的局面。
而另一方面來說,由于DirectX標(biāo)準(zhǔn)的更新速度相對(duì)放慢,那么對(duì)于游戲開發(fā)者來說,也就不用再把很多精力花費(fèi)在轉(zhuǎn)換到新技術(shù)和新標(biāo)準(zhǔn)上去,而是可以開發(fā)出能適應(yīng)更多代硬件的作品,同時(shí)通過高配置的高分辨率、高特效水平、物理運(yùn)算的有無、同屏敵人(AI)數(shù)量等方式,來區(qū)分不同硬件配置的游戲感受,實(shí)際上也比單純的“從DX8升級(jí)到DX9”更為可感。
你所不知道的DirectX版本們
與此同時(shí)必須要說明的一點(diǎn)就是,其實(shí)微軟在Windows 8到Windows 10的這幾年里,也絕非守著已有的Direct X標(biāo)準(zhǔn)而沒做任何改動(dòng)。事實(shí)上,在知名顯卡信息軟件GPU-Z的“Advanced”頁面,我們可以查看到當(dāng)前顯卡所支持的DirectX標(biāo)準(zhǔn)的詳細(xì)信息的。而就在這里,赫然列出了很多人都不知道的一些DX近年來的更新版本號(hào)。
微軟開發(fā)者網(wǎng)站上可以看到DX11~DX11.4的功能改變
比如說在推出Windows 8.1時(shí),微軟實(shí)際上將DirectX 11升級(jí)到了11.1版本,增加了諸如FMA(乘加計(jì)算)、半精度運(yùn)算以及一大票強(qiáng)化渲染效率的新功能。而到了WIndows 10里,DirectX 11又先后得到了11.3、11.4以及11.5三次更新,為只支持DX11的“老顯卡”引入了部分源自Direct 12的功能,以提升它們的運(yùn)行效率。
源自Github上的微軟官方wiki頁面
又比如說,Windows 10至今為止已經(jīng)至少推出過十一個(gè)更新版本(從最早的正式版TH1到最新的20H2測(cè)試版),在這個(gè)過程中,DirectX 12雖未有過“版本號(hào)”層面上的變動(dòng),但微軟實(shí)際上先后五次對(duì)DX12的Shader Mode渲染引擎進(jìn)行過更新,頻繁程度和更新幅度甚至超過DirectX 11時(shí)代。諸如DXR光線追蹤等功能,其實(shí)就是在這個(gè)過程中才被加入到DX12規(guī)范里的。
DXR1.1版光線追蹤,它是本次DirectX12 Ultimate的重要部分之一
這也就是說,實(shí)際上微軟在近幾年里其實(shí)是一直在對(duì)DirectX 12進(jìn)行著持續(xù)的“小修小補(bǔ)”的,之所以沒有大張旗鼓地推出“DX13”,除了本身技術(shù)上變革并不算特別徹底之外,自然也是考慮到了對(duì)老卡的兼容性以及DirectX當(dāng)前的功能定位所致。事實(shí)上,啾臉最新的DirectX 12 ULtimate,也是可以完全兼容NVIDIA家的RTX顯卡的——只需要更新一下系統(tǒng)和驅(qū)動(dòng),光追用戶們就能體驗(yàn)到免費(fèi)的性能提升了,不得不說微軟確實(shí)是干了一件大好事。
畢竟那個(gè)由DirectX版本驅(qū)動(dòng)顯卡換代的時(shí)代已經(jīng)結(jié)束,而如今的微軟似乎也更在乎服務(wù)好現(xiàn)有的玩家,而不是讓大家都去買新硬件了。