DirectX、Direct3D、OpenGL的区别(DX、D3D、OpenGL)
翻譯自:https://www.extremetech.com/computing/54604-top-tip-what-are-opengl-direct3d-directx-etc
?
首先一點(diǎn)澄清:DX包含D3D,D3D是DX的主要圖形處理部分,OpenGl從某方面來說是一個(gè)API。
一個(gè)游戲開發(fā)者,或者任何圖形學(xué)程序員,都能選擇是否去使用DX或者OpenGl的API。如果他們想要能完全控制內(nèi)部實(shí)現(xiàn),可以自己編寫需要的模塊來使用。
在補(bǔ)丁v226f之后的最終版本,虛幻游戲允許你的游戲來選擇自己的API,一些API已經(jīng)過時(shí)或者集成到DX或OpenGl中。
?
#1 DirectX(包含Direct3D) 和 OpenGl 都是 API
API = Application Program Interface? 應(yīng)用程序編程接口
API允許開發(fā)者(游戲開發(fā)者或者視頻CAD開發(fā)者等)使用預(yù)定義的函數(shù)調(diào)用讓開發(fā)游戲或者使用CAD更方便。DX和OpenGL定義了多種方式去渲染圖片,而且他們提供了中間層去控制硬件和軟件,(譯者注:某著名學(xué)者說過,任何計(jì)算機(jī)的問題都可以通過添加中間層的方式解決)。這些預(yù)定義的控制層簡化了視頻軟件開發(fā)如游戲。
當(dāng)使用特定功能的API時(shí),開發(fā)者會在開發(fā)寫代碼的時(shí)候會更簡單快捷,否則開發(fā)者必須自己去寫所有的圖形渲染。
#2 默認(rèn)情況下,Win95以上的Windows系統(tǒng)在某種程度上已經(jīng)包含了所有早期版本的API
所以他們不必去安裝早期的版本,不過需要實(shí)時(shí)更新。
#3下面是我們一定要知道的DX和OpenGL的差異
OpenGl單純是一個(gè)圖形渲染API,所以它只能處理圖像
DirectX包含圖形(Direct3D)、聲音甚至網(wǎng)絡(luò)API,他們?nèi)荚谝粋€(gè)package里
#4?DX和OpenGl的背景
D3D(現(xiàn)在包含在DX)是由微軟發(fā)明用來對抗OpenGL的,微軟發(fā)明的D3D會更簡單,微軟希望D3D未來會比OpenGL更強(qiáng)大,并取代他。(譯者注:D3D的API源碼真的比OpenGL的簡潔太多)
OpenGL是SGI公司在1980年發(fā)明的一門語言,開始SGI公司只是內(nèi)部使用其強(qiáng)大的圖形渲染能力,慢慢的,他們意識到如果想讓其成為行業(yè)標(biāo)準(zhǔn),必須開源允許其他公司來一起定義規(guī)范。
?
通過上面幾條,你應(yīng)該大致了解了這幾個(gè)的區(qū)別
?
總結(jié)
以上是生活随笔為你收集整理的DirectX、Direct3D、OpenGL的区别(DX、D3D、OpenGL)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前缀码的判断(个人摸索的小技巧)
- 下一篇: 苹果硬盘分区不见了 容量有问题