什么是OpenGL?什么是direct x?單機游戲運行為什么與它們有關?
大家好 , 歡迎來到霍夫日記 , 我是霍夫 。 今天我來說說什么是directx?什么是OpenGL?為什么玩單機游戲的時候 , 經常彈窗提示缺少這些程序組件無法運行游戲呢?
某天 , 你剛下好的三A大作正版游戲終于下載完畢了 , 心里想著可以開玩了 , 趕緊點擊EXE程序運行 。
于是出現以下畫面

文章圖片

文章圖片
怎么打不開不了啊?計算機中提示缺少d3directx9.dll是怎么回事?
我們玩游戲天天都得接觸directx和OpenGL , 沒有這些程序游戲就玩不了了 。 可是你有沒有想過它們究竟是干嘛用的呢?這個OpenGL又是什么鬼呢?

文章圖片

文章圖片
在很早很早以前 , 軟件開發缺乏標準編程 , 可以說是一對一的 。 我這串代碼就對應著一種硬件一種系統 , 這樣一來呢 , 開發的過程就極其的繁瑣 , 畢竟你這軟件可是一對一高端定制 , 你想讓全世界的設備都用上你的軟件 , 那對不起 , 你得一個個去找軟硬件廠商 , 一個個去做適配吧 。

文章圖片
那這個時候我們就需要一個中間層 , 在不同的軟件 , 不同的硬件之間進行溝通 , 這就是api應用編程接口 。

文章圖片
api就相當于是一系列函數的集合,程序可以直接通過這些函數進行構建 , 不需要訪問更底層的東西 。 這樣一來 , 軟件開發的門檻就降低了 。
api的意義在于簡化編程的操作 。
打個比方 , 你現在想和法國人交流 , 如果沒有翻譯的話 , 你就只能自學法語 。 可這也太麻煩了吧 , 我就想搭個話 , 喝兩口法國紅酒 , 我還得再學一門外語才行嗎?
當然不必這么麻煩 , 你找個翻譯不就行了吧 。 這api就是你的翻譯 , 盡管翻譯會造成延遲 , 會降低一點交流的效率 , 你得額外花點時間等翻譯說完 , 但至少你可以聽懂法國佬說話了 , 可以正常交流正常喝酒了 , 這才是最重要的 。
說到這里你也應該猜到了 , 我們親愛的directx和OpenGL正是api 。

文章圖片
確切的說呢 , OpenGL是一種圖形api , 而directx則是許多各種各樣api的集合體 。 其中當然也包括圖形api--direct3D 。

文章圖片
圖形api , 猜猜這個名字都知道這是為圖形計算設計的 , 那么玩游戲說的最多也是圖形api , 這里我們用direct3D來舉例子 , 在游戲中它的作用差不多是這個樣子 。

文章圖片
承上啟下嘛 , 它就相當于是游戲引擎和顯卡驅動、系統層之間的橋梁 , 是同時精通上層下層各種語言的翻譯官 。
OpenGL其實也是類似的一個工作流程 , 但是它相比direct3D更加開放一些 。 因為OpenGL是由非盈利性的行業聯盟khronosgroup牽頭的 , 它是跨平臺的 , 對于系統沒有限制 , 你不僅可以在windows上用 , 也可以在macos、linux上使用 , 甚至還可以在安卓和ios上使用它們的閹割版本OpenGLes 。
相比之下呢 , direct3D就只允許在微軟自家的windows和xbox上使用了 。 此外 , OpenGL的學習門檻也更低 , 開發人員更容易上手 。 但是它的缺點就是效率往往不如direct3D , 新特性的更新往往也比較慢一些 。 說白了就是不如direct3D先進吧 。 但這兩種圖形api地位是一樣重要的 。
相關經驗推薦
- 原神: 4星主C為什么沒落了, 除了“國家隊”還有誰能打通深淵
- PCLP:“爹”來了,長龍開擺GYF或將解散,Longskr這下是破大防了
- 特戰榮耀:燕破岳為什么執著于“內卷”?市場需要個人英雄主義!
- 趙云和猴子兩大門面英雄,勝率卻常年墊底,策劃為什么無動于衷?
- EDG冠軍皮膚即將亮相?Meiko:快了!應該是在5月初
- 創造與魔法海景佛跳墻大包配方是什么?創造與魔法海景佛跳墻食譜獲取攻略
- 絕地求生未來之役2022靈敏度分享碼是什么?絕地求生未來之役靈敏度最穩分享碼
- 怨憎會游戲第四章通關方法是什么?怨憎會游戲第四章通關攻略技巧
- 王者榮耀:賽季初是最容易拿到英雄排名的時間段
- 創造與魔法永久坐騎兌換碼是什么?創造與魔法兌換碼2022永久坐騎一覽最新
