為什麼要使用特定版本的 DirectX?我應該如何選擇?
我注意到最近有很多遊戲讓我可以選擇執行遊戲的 DirectX 版本,通常是 9、10 或 11(或其中的某個子集)。我有一張支持 DirectX 11 的顯卡(AMD 6750M,但對於這個問題並不重要),但我注意到當我使用任何“檢測硬體”最佳時,一些遊戲仍然建議使用舊版本的 DirectX遊戲建議的圖形設置。此外,在某些遊戲中,我實際上註意到切換到舊版本後 FPS 的顯著改善。
一般來說,是否有一個經驗法則來確定我應該使用哪個版本的 DirectX?是否有任何理由給出這個選項,而不是自動使用任何可用影片卡支持的最新版本?
免責聲明:以下內容基於個人經驗,您的里程可能會有所不同。
我的經驗法則如下:
如果在中等或低設置下執行遊戲,請使用 DX9。
如果以最高設置執行遊戲,請使用 DX11。(如果出現性能問題,請嘗試 DX9)
如果遊戲告訴您使用 DX9,請使用 DX9。如果遊戲告訴你使用 DX11,你可能仍然需要使用 DX9。遊戲往往會高估電腦的性能。
這是因為到目前為止,兩者之間最重要的區別是只有 DX11 才能啟用的高級效果。但是,如果不使用這些效果,DX11 可能會比 DX9 慢,尤其是如果您的影片卡具有較舊的驅動程序。因此,在較舊的卡上最好使用 DX9,除非您在頂級設置上遇到 0 性能問題,在這種情況下,使用 DX11 來獲得額外功能是可以的。根據我的經驗,DX10 從來都不是正確的選擇。
如果您的顯卡支持,請始終使用 DX11。如果您啟用附帶的其他圖形功能(通常像鑲嵌),更高版本通常只會花費您更多的性能,而遊戲通常會讓您控制它。
原因是在 DX9 和 DX11 模式下的渲染程式碼將是相同的(= 相同的性能,除非您的驅動程序不好)或針對 DX11 中的速度進行了優化(= 看起來相同,但執行快點)。遊戲程式碼中唯一真正改變的就是這里和那裡的幾個不同的函式呼叫,但是耗時的事情會保持不變(沒有理由讓它不同)
優點是更高版本的 DirectX 有時使開發人員能夠使用替代方法來計算遊戲中的某些內容(一個簡單的情況是螢幕上的精靈、GUI 等的幾何著色器,這在 DX9 中是不可能的) ),這可以為您帶來可觀的性能提升。
如果即使您的圖形設置相同,但不同版本之間的速度明顯變慢(意味著 >5%),那麼這是兩件事之一: 開發人員故意做了某事而沒有給您做某事的選項(例如自動DX11 使用更複雜的後處理步驟)或由於驅動程序問題。其他來源,例如在 DX11 程式碼中需要處理更多成本的作業系統,通常根本不應該引起注意。