opengl繪制圖形旋轉(zhuǎn) 請問C 的圖形庫都是基于Windows提供的GDI函數(shù)實現(xiàn)的嗎?
請問C 的圖形庫都是基于Windows提供的GDI函數(shù)實現(xiàn)的嗎?首先,我們來談?wù)剤D形庫的概念。圖形庫分為二維圖形矢量庫和三維圖形庫。與2D一樣,它是windows上的GDI、gdiplus和dire
請問C 的圖形庫都是基于Windows提供的GDI函數(shù)實現(xiàn)的嗎?
首先,我們來談?wù)剤D形庫的概念。圖形庫分為二維圖形矢量庫和三維圖形庫。與2D一樣,它是windows上的GDI、gdiplus和direct2d。還有跨平臺Cairo和AGG,可以在Linux和MacOS上使用。
它還包括軟件實現(xiàn)和硬件加速。例如,GDI和gdiplus由CPU執(zhí)行,這是一種純軟件方式。而且,GDI長時間沒有抗混疊,繪制效果很差。但在早期的windows系統(tǒng)中,它被用來驅(qū)動2D界面?,F(xiàn)在基本上是D3D加D2D,GDI plus是一個讓GDI支持反走樣的產(chǎn)品,但是它的效率不能直接看出來。
現(xiàn)在我們在windows中看到的許多應(yīng)用程序都是用QT制作的,而且許多應(yīng)用程序是用directui框架制作的。QQ是用自己的directui框架制作的。也就是說,QT不是一個圖形庫,這是很多人無法分辨的。QT是一個跨平臺的接口框架。接口框架不僅包括圖形抽象層,還包括許多控制實現(xiàn)、邏輯處理和消息處理。它的底層圖形庫是根據(jù)不同的平臺抽象出來的,現(xiàn)在也支持OpenGL的渲染。
通用2D圖形庫僅由軟件實現(xiàn),由CPU執(zhí)行?,F(xiàn)在更好的是谷歌的skia,它是Android底層的渲染圖形庫。
對于GDI,它只能在windows下使用。雖然現(xiàn)在仍然有很多老的應(yīng)用程序使用GDI,windows以前也增加了GDI硬件加速,但是現(xiàn)在應(yīng)該用Direct3D和2D來代替,這是一個趨勢。新技術(shù)正在取代舊技術(shù)。
在未來,它肯定是3D庫。二維庫應(yīng)該是一個副產(chǎn)品,但二維庫將存在,因為它很容易繪制界面。
OpenGL與DirectX圖形開發(fā)庫的區(qū)別?
DirectX是一個應(yīng)用程序接口(API)。它可以使基于windows的游戲或多媒體程序更加高效,增強3D圖形和聲音效果,并為設(shè)計者提供一個通用的硬件驅(qū)動標(biāo)準(zhǔn),使游戲開發(fā)者不必為每個品牌的硬件編寫不同的驅(qū)動程序,也降低了用戶安裝和設(shè)置硬件的復(fù)雜程度。OpenGL是一個專業(yè)的三維程序接口,是一個功能強大且易于調(diào)用的底層三維圖形庫。OpenGL的前身是由SGI公司為其圖形工作站開發(fā)的irisgl。Irisgl是一個行業(yè)標(biāo)準(zhǔn)的三維圖形軟件接口。雖然功能強大,但可移植性較差。因此SGI公司開發(fā)了基于irisgl的OpenGL。雖然DirectX在國內(nèi)市場處于領(lǐng)先地位,但OpenGL在專業(yè)高端圖形領(lǐng)域卻是不可替代的。