DirectX 12是現(xiàn)在計算機愛好者的熱門話題。無論是Win10系統(tǒng)還是一些大作游戲配置要求,都可以看到DirectX 12的標記。DirectX 12到底是什么,有什么功能?下面詳細介紹一下這些電腦小白朋友不熟悉的問題。
什么是DirectX 12?
DirectX,稱為直接擴展,是微軟公司創(chuàng)建的多媒體編程接口。
DirectX由C編程語言實現(xiàn),遵循COM。廣泛應用于微軟Windows、微軟Xbox、微軟Xbox 360視頻游戲的開發(fā),只能支持這些平臺。DirectX12是目前DirectX的最新版本。大家熟悉的XP系統(tǒng)版本是DirectX 9.0,Win7/8系統(tǒng)版本是DirectX 11。在Win10正式版中,會內(nèi)置最新的DirectX 12。
簡單來說,DirectX 12是微軟Windows系統(tǒng)中DirectX的最新版本,帶來了更好的3d圖形和音效優(yōu)化。無疑受到游戲玩家的喜愛。
DirectX 12有什么用?
DirectX的主要功能是增強3D圖形和音效,為設計師提供一個通用的硬件驅動標準,讓游戲開發(fā)者不必為每個品牌的硬件編寫不同的驅動,同時也降低了用戶安裝和設置硬件的復雜度。
從字面上來說,Direct就是直接的意思,而后面的x則代表了很多意思。從這一點上,我們可以看到DirectX似乎為許多軟件提供了直接的API接口服務。一般來說,DirectX的高版本會有更好的體驗。
簡單來說,DirectX 12其實是一個非常重要的API更新,主要是提高驅動效率,給開發(fā)者更多的控制權。DirectX 12改變了底層API,在硬件抽象層比以前更深入,具體包括可追蹤GPU流水線的應用、資源狀態(tài)轉換的控制(比如從渲染目標到紋理)、資源重命名的控制、更少的API和驅動跟蹤、可預測的屬性、多線程優(yōu)化等??梢詭砀玫挠螒蝮w驗。
在PC端,游戲開發(fā)者也可以更輕松地展示效果。總的來說,這個DirectX 12是大家非常喜歡看的新版本。
DirectX版本的發(fā)展歷史
DirectX不是一個簡單的圖形API,它是微軟開發(fā)的一個廣泛使用的API。它包含許多組件,如Direct graphics(Direct 3d Direct Draw)、直接輸入、直接播放、直接聲音、直接顯示、直接設置、直接媒體對象等。它提供了一整套多媒體接口解決方案。只是它在3D圖形方面的出色表現(xiàn),讓它的其他方面顯得黯淡無光。DirectX開發(fā)之初是為了彌補Windows 3.1系統(tǒng)圖形和聲音處理能力的不足,現(xiàn)在已經(jīng)發(fā)展成為對整個多媒體系統(tǒng)各個方面都有決定性影響的接口。
DirectX 5.0
微軟沒有推出DirectX 4.0,而是直接推出了DirectX 5.0。該版本對Direct3D進行了很大的改動,加入了霧化效果、Alpha混合等3D特效,增強了3D游戲中的空間感和真實感,還加入了S3紋理壓縮技術。同時,DirectX 5.0在其他組件上得到了加強,在聲卡和游戲手柄上得到了改進,支持更多的設備。所以DirectX發(fā)展到DirectX 5.0才真正成熟。此時DirectX的性能并不遜色于其他3D API,有后來居上的潛力。
DirectX 6.0
DirectX 6.0推出時,其最大的競爭對手之一Glide逐漸衰落,而DirectX則得到了大多數(shù)廠商的認可。DirectX 6.0增加了雙線性過濾、三線性過濾等技術來優(yōu)化3D圖像的質量,游戲中的3D技術也逐漸進入成熟階段。
DirectX 7.0
DirectX 7.0最大的特點就是支持TL,它的中文名字叫“坐標變換和光源”。3D游戲中的任何物體都有一個坐標。當這個物體移動時,它的坐標發(fā)生變化,也就是坐標變換。在3D游戲中,除了場景物體,還需要燈光。沒有燈光,就沒有3D物體的表現(xiàn)。無論是實時3D游戲還是3D圖像渲染,帶燈光的3D渲染都是最耗費資源的。OpenGL中雖然有相關技術,但之前從未在民用硬件中出現(xiàn)過。TL出來之前,位置轉換和燈光都需要CPU計算。CPU速度越快,游戲性能越流暢。使用TL函數(shù)后,這兩個效果由顯卡的GPU計算,讓CPU從繁忙的工作中解脫出來。換句話說,有了TL顯卡和DirectX 7.0,即使沒有高速CPU也能流暢運行3D游戲。
DirectX 8.0
DirectX 8.0的推出引發(fā)了一場顯卡革命。它首次引入了“像素渲染”的概念,同時擁有像素著色器和頂點著色器,在特效中體現(xiàn)了動態(tài)的光影效果。VS和PS單元相對于只通過硬件TL實現(xiàn)的固定光影轉換更加靈活,使得GPU真正成為可編程處理器。這意味著程序員通過它們構建3D場景的難度要小得多。通過VS和PS的渲染,很容易在水面上營造出真實的動態(tài)波紋光影效果。此時,DirectX的權威地位終于確立。
DirectX 9.0
2002年底,微軟發(fā)布了DirectX9.0,DirectX9中PS單元的渲染精度已經(jīng)達到浮點精度,傳統(tǒng)的硬件TL單元也被取消。新的VertexShader (VertexShader引擎)編程會比以前復雜很多。新的頂點著色器標準增加了流量控制,更多的常數(shù),每個程序的著色指令增加到1024條。
PS 2.0擁有完全可編程的架構,可以即時計算紋理效果,動態(tài)映射紋理,不占用顯存。理論上可以無限提高紋理映射的分辨率精度。另外,PS1.4只能支持28條硬件指令,同時操作6個素材,而PS2.0可以支持160條硬件指令,同時操作16個素材。新的高精度浮點數(shù)據(jù)規(guī)范可以使用多個紋理圖,可操作指令的數(shù)量可以任意長,因此可以輕松實現(xiàn)電影級的顯示效果。
通過增加頂點程序的靈活性,VS 2.0顯著提升了舊版本(DirectX8)的VS性能。有了新的控制指令,通用程序可以代替以前專用的單獨著色程序,效率提高了很多倍。增加循環(huán)作業(yè)指令,減少工作時間,提高加工效率;著色指令的數(shù)量從128個增加到256個。
增加浮點數(shù)據(jù)的處理功能。以前只能處理整數(shù),提高了渲染精度,使最終處理的色彩格式達到電影級別。它突破了過去限制PC圖形圖像質量的數(shù)學精度壁壘,每一條渲染流水線都升級為128位浮點色彩,讓游戲程序員更容易創(chuàng)作出更精美的效果,讓程序員更容易編程。
DirectX 9.0c
與過去的DirectX 9.0b和Shader Model 2.0相比,DirectX 9.0c最大的改進是引入了對Shader Model 3.0(包括像素著色器3.0和頂點著色器3.0)的全面支持。例如,DirectX 9.0b的著色器模型2.0支持的頂點著色器指令的最大數(shù)量僅為256,像素著色器指令的最大數(shù)量僅為96。在最新的著色器模型3.0中,頂點著色器和像素著色器的最大指令數(shù)增加到了65,535。新的動態(tài)程序流程控制、位移貼圖、MRT、亞表面散射亞表面散射、軟陰影、環(huán)境和地面陰影的環(huán)境和地面陰影、全局光照等新技術特性,GeForce 6、GeForce7系列和鐳龍X1000系列立即為新一代游戲提供強大的動力,以及復雜的數(shù)字世界以無與倫比的真實感和幻想性以及逼真的人物在影視質量的環(huán)境中運動。
因此,DirectX 9.0c和Shader Model 3.0標準的推出可以說是DirectX發(fā)展的一個重要轉折點。在DirectX 9.0c中,Shader Model 3.0除了取消了指令數(shù)限制,增加了位移貼圖等新特性之外,還有更多專注于解決游戲執(zhí)行效率和質量的特性。Shader Model 3.0誕生后,人們對游戲的態(tài)度從過去單純追求速度轉變?yōu)榧骖櫽螒蛸|量和運行速度。因此,著色器模型3.0對游戲行業(yè)產(chǎn)生了深遠的影響。
另外,隨著Win7和Win8的推出,DirectX版本已經(jīng)升級到了DirectX 10/11,甚至是最新的DirectX 12。對于電腦愛好者來說,只要知道DirectX主要是為了提升游戲或者圖形性能體驗,更高版本的DirectX就能帶來電腦游戲性能的提升。不過也要注意,最新的DirectX 12需要系統(tǒng)和硬件支持。比如系統(tǒng)需要Win10,顯卡需要支持DirectX 12,一些老顯卡可能無法支持最新的DirectX 12。