就在很多人翹首以盼DX12到來的時(shí)候,微軟卻突然宣布,DX11、DX12之間還會有一個(gè)過渡版本11.3——確切地說是Direct3D 11.3。
![](/d/20211018/37c3c71706221a073ea43003293b1bda.gif)
DX12既然都要來了,此時(shí)再搞一個(gè)DX11.3意義何在呢?
其實(shí)很有道理。DX12是一個(gè)底層API,很強(qiáng)大,但很難駕馭,在生手那里也很危險(xiǎn)。DX12的開發(fā)模型是針對極少數(shù)編程高手的,他們來寫就新的引擎、渲染器,其他人則在此基礎(chǔ)上二次開發(fā)。也就是說,底層API并不是適合每一個(gè)人的。
DX11則是一個(gè)高層API,自然有其繼續(xù)存在的價(jià)值。它隱藏了復(fù)雜的底層硬件,對程序員更友好,開發(fā)自然更容易。因此,DX11、DX12將在今后長期共存,一高一低,服務(wù)于不同人群。
在功能特性上,DX11.3、DX12將是共通的,而且同時(shí)加入了大量的新技術(shù)。因?yàn)樗鼈兌急容^復(fù)雜(特別是對普通人而言),而且是微軟首次對外公布,一切都還在進(jìn)一步研究、定義之中,所以我們會稍后盡量給大家細(xì)細(xì)分析。
另外,微軟還在針對DX11.3、DX12制定新的特性等級(Feature Level)。說起這個(gè)特性等級,有點(diǎn)讓人愛恨交加。它是隨DX11誕生的,初衷很好,讓程序員可以使用同樣的API為不同檔次的硬件進(jìn)行編程,而不必像以前那樣,每一代都寫一次代碼。
舉例來說,你用DX11 API編程,但程序可同時(shí)適用于DX9、DX10、DX11級別硬件,只不過在檔次較低的硬件上,功能特性會有所限制,DX9.0c上就是FL9_3。
但對于普通用戶來說,廠商的宣傳就可以因此忽悠人了,比如某顯卡號稱兼容DX12,但其實(shí)并不完全支持DX12的全部功能特性,特性等級可能只有FL11_2。也正因?yàn)槿绱?,再加上廠商們故意含糊其辭,目前顯卡對DX12的支持仍然籠罩著一團(tuán)迷霧,只能等明年底DX12真正誕生之后再說。
反正,GM204新核心的二代麥克斯韋架構(gòu)GTX 980、970都已經(jīng)號稱完整支持DX12,AMD也說GCN架構(gòu)的卡都支持DX12。因此,DX11、DX12將在今后長期共存,一高一低,服務(wù)于不同游戲開發(fā)廠商、開發(fā)者等群體。