編/藍色
據不完全統計,微軟大型免費“公測”系統Windows10的裝機量目前已經達到3億台,市場份額則達到14.5%,成為全球使用人數第二多的操作系統,距離10億台的目标指日可待。毫無疑問,已經有越來越多的遊戲玩家轉向Windows10系統,其中緣由不言而喻,畢竟微軟新一代圖形API——DirectX12(以下簡稱DX12)是Windows10專屬的,那麼想玩新遊戲,體驗最精彩的3D特效,非Windows10莫屬。
Windows10巨大的裝機量也推動了DX12遊戲的蓬勃發展,今年以來已經有越來越多的遊戲支持DX12,或者是在遊戲正去年最驚豔的DX12Demo《Witch》中人物角色式發售後通過補丁升級了對DX12的支持,想要找一款DX12的遊戲仔細體驗一番已不再是件難事。不過,對于DX12帶來的諸多變化以及AMD、NVIDIA和Intel對DX12的支持情況,很多讀者還是一頭霧水,那麼,DX12裡到底都有什麼新東西?支持DX12的遊戲又有哪些呢?
有關DX12帶來的技術革新,我們在去年已經做過一次全面解析,着重介紹了DirectX12到底帶來了什麼,在本文中,雖然我們還聚焦于DX12,但與上次的側重點有所不同,DX12的一些技術介紹、功能等級之前已經說過了,這次我們的着眼點則是AMD、NVIDIA和Intel最新顯卡對DX12的支持情況以及它們之間的主要區别,另外,我們還會提及一些已上市或者即将上市的可支持DX12的遊戲。
DX12到底帶來了什麼新功能?
盡管本文不會再長篇贅述DX12的新特性,但我們還是有必要重溫一個話題:DX12帶來了什麼新功能?去年我們說過,這次還會再說一次,因為即便Windows10裝機量超過3億了,這個問題對不少用戶來說仍是個困惑——自己使用的顯卡到底支持什麼DX12功能。
從最初曝光的類似AMDMantle那樣的底層優化,再到支持AMD、NVIDIA顯卡混合工作,微軟的DX12确實帶來了不少新技術和新功能,而就API層面來說,DX12的新功能可分為三個層級:
首先是底層的優化,DX12降低了系統開銷(LowOverhead),給予開發者更多的控制(MoreControl),并支持異步運算(AsynchronousCompute)。其中,對用戶來說,低開銷這一項是最重要的,我們此前見過的DX12優勢特性展示大多基于這一點,它跟AMD的Mantel優化很相似,可以提高遊戲性能,有效利用多核處理器。另外,異步運算也值得一提,AMD與NVIDIA在這一點上有分歧,産生過不少争議,後面我們還會重點談到。
DX12帶來的渲染功能主要是平鋪資源(TiledResoure)、歸類UAV訪問、無綁定(Bindless),這屬于DX12FeatureLevel12_0級的要求。一般來說,支持DX12FeatureLevel12_0已經算是完整支持DX12了,不過類似此前的DX10.1、DX11.1一樣,DX12還有個更高級的FeatureLevel12_1,其中有保守光栅(ConservativeRasterization)、光栅順序視圖(RasterOrderViews)等新功能。
參考前面那張NVIDIA的PPT,需要留意的是,NVIDIA在這裡“耍”了一點小花招——從圖中的結構劃分來看,我們很容易誤認為立體平鋪資源(VolumeTiledResources,簡稱VTR)也是FeatureLevel12_1的要求,但實際上它并不是,VTR是DX11.3裡的功能了,在DX12中并不是必備要求。
實際上,微軟對DXAPI的支持定義了多個級别,上述很多技術其實并不是DX12中才出現的,此前的DX11及DX11.1中就被列為可選功能了,在DX12中隻是把平鋪資源、無綁定等特性變成了必備或者提升了功能級别。
具體到每個技術上,它實際上也是分為多個等級,可分為Tier1(簡稱T1,玩魔獸的玩家對這種稱呼應該不會陌生)到T2再到T3,不過,本文并不會詳細介紹T1到T3的區别,也不會詳細介紹上述技術在圖形渲染中具體的作用,因為這些東西說清楚不容易,而且内容太枯燥,非專業人士不會對此感興趣的。
我們隻要知道的是,微軟在DXFL12_0、DXFL12_1上的定義比較寬松,反倒是NVIDIA、AMD這兩家廠商私下裡争得異常激烈,就和之前的DX10.1及DX11.1/11.2完整支持一樣,隻不過這一次是NVIDIA占“上風”,他們的顯卡可以支持到DXFL12_1,而AMD的GCN架構隻支持到DXFL12_0,對可選的保守光栅、光栅順序視圖等技術并不熱心。
微軟DX12_1、DX12_0與DX11_1、DX11_0的區别