Windows 支援 DirectX 和 OpenGL,為什麼大多數 PC 遊戲還是 DirectX 開發?

時間 2021-05-05 20:51:22

1樓:fox fox

大多數遊戲引擎都是兩種api都支援的,雖然從dx9以後,dx已經甩ogl好幾條街,但是,只跨平台一條,就能保證ogl不死,而移動裝置的崛起,正式宣告ogl的春天

2樓:陸音

主要是產業鏈控制力和生態營造的問題,這個已有帖子講過了,不多說。從使用者的角度補充兩句。dx流行主要是因為:在適配管理方面,它對開發者比ogl更友好。

在遊戲產業裡其實有很大一塊成本涉及「適配優化」,不同裝置、不同平台的適配,不同vendor顯示卡的適配,不同版本驅動的適配,等等。幫助內容提供者專注遊戲內容創作而非無休止的適配技術工作,是圖形API最大價值所在。真正理性的遊戲開發商都明白,遊戲製作的核心在於內容成本,而非其技術支撐成本,但真正的遊戲產品必須得考慮對不同顯示卡的支援,以覆蓋盡可能多的使用者群,從遊戲開發商的角度,適配工作實際上屬於商業價值不高的工作(比方說,有很多專給遊戲廠做移植適配的外包廠),在成本上拖後腿,但卻不能不去做,所以這裡的重點在於,作為開發者,誰能幫我節省這塊成本我就挺誰。

基本上,從圖形API使用者的角度,ogl使用者看待適配問題(如feature,即你在圖形程式設計中能使用的技術功能)是以「顯示卡+驅動版本」的組合為粒度單位,也就是說不同顯示卡feature不同,甚至同一顯示卡不同驅動版本的feature不同。而dx使用者看待適配問題則是以d3d level(如d3d9 d3d11)為粒度單位,只要明確了顯示卡的support level,至少feature上能保持一致,最大區別一般在於效能差異。前者適配粒度顯然比後者要細得多,隨之而來的適配工作量也大的多。

這個是從使用者的角度所看到的dx比ogl流行的根本原因。

3樓:熊起

DX6 7的時代,directX的殺手應用其實是directdraw,當年因為硬體限制,3D遊戲畫面太有風格,2D遊戲依然占有大量份額,典型的就是暴雪成名作:魔獸2,暗黑1,偽3D的FPS毀滅公爵,雷神之鎚等。

4樓:

windows對OpenGL的支援有限制,linux上不能直接跑DirectX,只能在wine裡跑 ~~

題主的這個問題也就是為什麼linux下的遊戲沒有windows下的多的原因了~

5樓:pxqsuffix

前幾天剛好 @戴一冕 給我看Matlab執行bench的結果,同樣的配置下Linux表現遠好於Windows,檢查分項結果後發現差距全出在3D渲染上,而Matlab在兩個平台上都是用OpenGL的,可見Windows對OpenGL做了很大限制?

6樓:叛逆者

似乎沒人提到生態環境問題。dx的生態環境包括很方便的除錯工具、資源檢視工具、指令流擷取工具。。。gl的生態環境只能吃屎。

7樓:

個人感覺是 OGL 的API 不好用。話說現在鼓吹轉投OGL的一部分原因竟然是中國網咖大部分都還在用XP,DX新特性沒法用……

8樓:Milo Yip

補充一下Windows的限制。

在Direct3D在9.0c後就不支援Windows XP了,Direct3D 11.1也只有限度支援Windows 7。

那麼即使有SM 4.0或以上的硬體也無法在較早版本的Windows中使用。

而OpenGL只需要顯示卡廠商繼續提供驅動,便可以在各Windows版本裡使用最新的硬體功能。

9樓:Vinjn張靜

很重要的歷史原因 @vczh已經提到了。

對於從遊戲開發者角度而言,OpenGL 曾經是個沒人用的東西,Windows / Xbox 上可以用 DirectX,PS3 和 Wii 則又是另外的影象API。

直到iPhone的興起,OpenGL 居然又活了過來,你看現在連 WebGL 都出現了,有一種統一天下的感覺。

遊戲開發者又開始重視 OpenGL 了,當然主要還是 OpenGL ES。

對於顯示卡公司而言,Windows 上的 D3D 驅動特別重要,會針對各種流行遊戲進行定製、優化、hack……至於 OpenGL 驅動,似乎只要滿足 CAD 大廠的需求即可,畢竟幾乎沒有 Windows 上的 OpenGL 遊戲啊……

現階段,從效能考慮(D3D 驅動會特別優化),大型的遊戲還是以 D3D 的形式發布,不排除 OpenGL 的優化上去以後也會有大型的桌面 OpenGL 遊戲。

對於微軟而言,他對於OpenGL的限制非常多,比如WindowsRT,Windows Phone是不支援OpenGL,Windows商店裡的應用也必須是DirectX的。

10樓:Xana Hopper

你要知道,至少到vs2008,vs自帶的opengl標頭檔案都只是1.1版本的,你這叫人如何用?

微軟為了發展DX抑制OpenGL幾乎每一本OpenGL書籍都會提到分割更新再有就是DX的SDK屬於雖然要自己下而且很大但是可以開箱即用,OpenGL就不一樣了,glew,glext,glut等等一大堆各式版本的標頭檔案,還要自己保證相容等等問題……不說了,都是淚

如何看待 Windows 原生支援 Docker

張斌 windows在服務端領域已經沒有什麼地位,這是歷史遺留問題,即使是docker也難以改變這種格局,當然玩玩是可以的!同意你的看法。 Windows原生支援docker應該是指的windows核心,可以用容器來部署windows上的一些應用。而Mac上現在只能原生支援Linux核心,用來應付L...

Windows已經原生支援了Ubuntu的Subsystem了,那為什麼還有很多人在使用Ubuntu?

廢物 wsl1有點殘 比原生系統肯定有功能缺失 wsl2有點廢 突然就給我記憶體滿了下不去 如果讓我選我肯定選1,2的話我乾脆開vmware虛擬機器得了,還不用專業版,還是原味的。 Liam Windows 10裡面的subsystem只是提供了kernel和乙個使用者環境,可以和Windows共享...

如何讓 Windows 下的 Chrome 支援 WebGL

runner time 當前我的Chrome是最新的49穩定版,那麼我將根據這個版本進行相關選項的設定說明。檢查瀏覽器是否開啟WebGL的辦法 WebGL Report 如果頂部出現 This browser supports WebGL 1 字樣,說明瀏覽器已經開啟了WebGL。開啟WebGL的辦...