如果你跟我一樣是一個 Windows 骨灰級用戶和遊戲玩家,應該對過去 15 年以來,在 Windows 中安裝好遊戲時就會提示是否升級到 DirectX 最新版本記憶猶新。你有沒想過 Windows 為什麼要提示進行 DirectX 升級呢?下面我們就來逐步揭曉答案。
什麼是 DirectX
計算機其實是通過軟件在與硬件進行交互,對於普通用戶來說,你可能不太關心軟件對硬件的操作和管理過程。軟件的所有操作層面下,開發人員需要花費大量時間進行編程,以期讓硬件資源的高效利用變成可能。
對於像 Xbox One 或 PlayStation 4 這樣的遊戲機來說,通常採用相同的處理器、顯卡和內存等硬件,所以其操作系統都是相同的。例如 Xbox One 的遊戲開發商已經明確知道將來會運行的硬件平臺,所以可以有針對性的為硬件開發遊戲,以利用好每個硬件特性和資源,提供最佳性能。
然而,對於普通 PC 遊戲開發而言,事情就不那麼簡單了。不同 PC 生產廠商和用戶自行組裝的兼容機會有不同的 CPU、顯卡、主板和聲卡等硬件,這樣硬件平臺就會有無數種不同的排列組合。那麼,開發人員要如何確保能得到最好的性能呢?
這就是 DirectX 的用武之地了!DirectX 是一種應用程序編程接口(API),微軟在 Windows 系統引入它之後,就可以讓軟件開發商(例如遊戲廠商)更容易地與不同硬件組件進行交互。
DirectX 大致分為如下三個部分:
Direct3D:用於顯卡渲染 3D 對象
DirectDraw:用於顯卡渲染 2D 對象
DirectSound:用於聲卡更好地處理音頻
簡單點來說,DirectX 就是讓遊戲廠商在 Windows 中與不同硬件打交道的一個傳話員和橋樑,不必再單獨為不同硬件編寫代碼。
DirectX 與 OpenGL
與微軟的 DirectX 類似,還有另一套被稱為 OpenGL 的行業標準 API。其實無論 DirectX 還是 OpenGL,都是在做相類似的基本工作:讓開發人員更容易與不同硬件進行交互。
雖然工作方式類似,但兩項技術在實現上還是有一些根本區別。DirectX 讓開發人員能夠更多的控制硬件,讓他們自行選擇如何使用系統中的各種資源。而 OpenGL 的開發人員則必需遵循特定參數並相應地進行資源分配。
至於 DirectX 與 OpenGL 孰優孰劣,這麼多年來一直是個爭論不休的話題。對於普通消費用戶來說其實不必關心這麼多,只需要知道 DirectX 是為 Windows PC 提供,而 OpenGL 大多針對 Linux 遊戲進行優化,例如 SteamOS。
DirectX 12 有什麼特別之處
Windows 10 是微軟最新版本的操作系統,我們在之前的 Windwos 10隱藏特性Top 10 中就曾介紹過最新的 DirectX 12 也是其獨有的最新版本。就目前的各種性能測試數據來看,Windows 10 中 DirectX 12 的性能遠優於 Windows 8 支持的 DirectX 11,這應該也是微軟勸用戶升級的一種策略吧。
DirectX 12 的最大優點之一就在於多顯示核心支持,現代 CPU 大多都是處理器與顯示核心集成的統一芯片,既然 CPU 已經有了圖形處理單元,為什麼要浪費掉呢?DirectX 12 可以智能平衡計算機主顯卡與 CPU 內置圖形處理單元的負載,讓顯卡處理較大負荷而核顯處理輕負載狀態,以達到更好的圖形和遊戲渲染處理速度。
需要注意的是目前 DirectX 12 還沒被各大開發商廣泛應用,而且不支持一些老舊硬件:
Nvidia 顯卡需要 GTX400 及較新的基於 Fermi 架構的產品
AMD 顯卡需要 HD7000、R5240 或較新的 基於GCN 架構的產品
對於 Intel 板載顯卡需要 Intel Haswell 或更高 CPU
對於 AMD PC 板載顯卡需要 AMD Kaveri、Mullins、Beema 或更高 CPU
如何查看和更新DirectX
要查看當前 Windows 中的 DirectX 版本步驟非常簡單:
1使用 Windows + R 快捷鍵打開「運行」
2執行 dxdiag 命令並回車
3在彈出的「DirectX 診斷工具」中即可看到當前 Windows 所使用的 DirectX 版本號。
Windows 10 用戶會是 DirectX 12 或 DirectX 11,Windows 7 和 Windows 8 應該為 DirectX 11,如果還有人在用 Windows XP,可能會看到 DirectX 9。如果你認為版本過老,可以從微軟官網下載安裝 DirectX 或通過 Windows Update 自動更新。
此外還請大家到「DirectX 診斷工具」的「顯示」選項卡查看 DirectDraw 加速、Direct3D 加速和 AGP 紋理加速這 3 項目功能是否已啟用。如果沒啟用的話說明當前硬件不支持,只能通過升級硬件來解決了。
閱讀更多 系統極客 的文章