什么是OpenGL?什么是direct x?單機游戲運行為什么與它們有關?( 二 )

文章圖片
OpenGL在所有的領域都很吃香 , 包括許多的專業領域 。 而direct3D對于我們這些玩游戲的玩家來說是最熟悉 。
除了direct3D之外呢 , directx家族還有很多小兄弟 。 比如說direct2D是負責2d圖形的 , directcompute , 是負責通用計算的 , xaudio負責音頻 , 而xinput這個名字聽著是不是很耳熟啊 , 它是負責xbox手柄輸入的 。

文章圖片
隨著windows版本的更新 , directx也在不斷的更新換代 , 每一次版本升級都會加入一些新的特性 , 帶來畫面上的突破 , 或者效率上的改進 。
比如directx史上非常大的一次進步 , directx9.0c

文章圖片
它就帶來了SM3.0的支持

文章圖片
加入了如:置換貼圖、次表面反射、柔和陰影、還有最重要的全局光照這些特別棒的特效 。
所以你會發現2004年之后的游戲畫質突然就好起來了 。
再比如directx11給我們帶來了曲面細分的特性 , 讓我們游戲中的物體細節更加豐富 。
同時也幫助開發者節省了建模的時間 。

文章圖片
最近的一次更新是directx12 , directx12很有意思 , 它的游戲畫面相比directx11沒有任何的進步 , 因為directx12的升級完全是效率上的 。

文章圖片

文章圖片
那么directx12是怎么樣提高效率的呢?
還記得我們剛剛這張流程圖吧 , 我們把這個理解為directx11的流程 。

文章圖片
那么directx12的流程就是這個樣子的 。

文章圖片
在directx11時代呢 , 驅動和系統層會代替開發者來管理硬件資源 , 但是斗地主的時候選托管肯定沒有你自己打的好 , 所欲驅動不一定完全理解軟件的需求 , 只有開發者自己才最明白自己的軟件 。
在directx12這里 , 開發者的這個夢想就成真了 。

文章圖片
我們把directx12稱為底層api , 因為它賦予了開發者更多的管理權限 , 更加接近底層硬件 , 可以讓開發者更自由的和硬件直接交流 。 這樣一來 , 開發者就有了更大的調整空間 , 可以給游戲做出優化 。
這種剔除冗余 , 消除官僚主義作風 , 在directx12的方方面面都有所體現 。 比如說通過減少api帶來的cpu開銷 , 支持更多的Drawcall , 這樣就可以更好的利用上多核處理器了 。
可是很有意思的一個現象發生了 , directx12的游戲 , 盡管也有表現不錯 , 性能進步的 , 但同樣也出現了性能倒退的游戲 。
這是怎么回事呢?不是說好的directx12可以提升效率的嗎?怎么有些游戲反而開倒車 , 不如directx11代呢?這我就得給你好好分析一下了 。
你看這底層api的意義就在于放權給開發者 , 因為我們覺得開發者是最了解游戲的 , 可是你給了開發者自由 , 不代表它們愿意去干 。
本來應該驅動層干的事情 , 你現在扔給開發者來做 , 首先人家不一定樂意加班 , 其次游戲公司也不一定愿意掏這筆錢 , 最后也不是每個開發者都有這么強的技術能優化好游戲 , 這就是所謂的自由不等于繁榮 。
相關經驗推薦
- 原神: 4星主C為什么沒落了, 除了“國家隊”還有誰能打通深淵
- PCLP:“爹”來了,長龍開擺GYF或將解散,Longskr這下是破大防了
- 特戰榮耀:燕破岳為什么執著于“內卷”?市場需要個人英雄主義!
- 趙云和猴子兩大門面英雄,勝率卻常年墊底,策劃為什么無動于衷?
- EDG冠軍皮膚即將亮相?Meiko:快了!應該是在5月初
- 創造與魔法海景佛跳墻大包配方是什么?創造與魔法海景佛跳墻食譜獲取攻略
- 絕地求生未來之役2022靈敏度分享碼是什么?絕地求生未來之役靈敏度最穩分享碼
- 怨憎會游戲第四章通關方法是什么?怨憎會游戲第四章通關攻略技巧
- 王者榮耀:賽季初是最容易拿到英雄排名的時間段
- 創造與魔法永久坐騎兌換碼是什么?創造與魔法兌換碼2022永久坐騎一覽最新
