"

引言

在與計算機圖形的接觸中,我一定聽說過兩個主要的編程接口:OpenGL和DirectX,它們一直在競爭並促進各自的開發。API戰爭真的很有趣。讓我們看看這兩個大老闆是什麼,他們的實力是什麼。

OpenGL是什麼

OpenGL是一個專業的圖形程序接口,它定義了一種跨編程語言和跨平臺編程接口規範。它用於三維圖像(或二維圖像),是一個功能強大、易於調用的底層圖形庫。OpenGL是一個獨立於硬件的軟件接口,可以在不同的平臺之間移植,如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2。因此,支持OpenGL的軟件具有良好的可移植性和廣泛的應用前景。由於OpenGL是圖形的底層圖形庫,它不提供幾何實體原語,不能直接用於描述場景。但是,通過一些轉換程序,可以很容易地將三維圖形設計軟件(如AutoCAD[2])生成的DXF和3DS模型文件轉換為OpenGL的頂點數組。市場研究機構JonPeddie Research預測OpenGL3.1將安裝超過1億個圖形硬件。AMD、Nvidia和S3圖形圖形驅動程序都支持OpenGL 3.0。

OpenGL-ES是什麼

OpenGL(OpenGL用於嵌入式系統)是OpenGL三維圖形API的一個子集。它是為移動電話、PDA和遊戲主機等嵌入式設備而設計的。Opengles是一個免費的、跨平臺的、功能良好的圖形應用程序接口API,用於二維和三維應用程序。專業設計各種嵌入式系統,包括控制檯、手機、手持設備、家用電器和汽車。它由一個定義良好的桌面OpenGL子集組成,在軟件和圖形加速之間創建了一個靈活而強大的底層接口,這是目前在移動遊戲中使用的底層圖形支持。

DirectX是什麼

從1995年到1996年,微軟推出了一個新的程序來支持在Windows95上運行的遊戲,旨在將市場擴展到任天堂和世嘉控制的遊戲。然而,微軟不想使用已經在NT上可用的OpenGL技術。微軟收購了rendermophics,ltd.並收購了3dapi所稱的現實實驗室。重組後,微軟發佈了一個新的3dapi,direct3d.microsoft,它實現了direct3d並凍結了OpenGL!發動API戰爭。這是DirectX的歷史!直接擴展(DX)是由微軟創建的多媒體編程接口。它用C語言編程,滿足COM的要求。廣泛應用於Microsoft Windows、Microsoft Xbox、Microsoft Xbox 360和Microsoft Xbox One視頻遊戲開發,只能支持這些平臺。DirectX增強了3D圖形和聲音的效果,併為設計師提供了通用的硬件驅動程序標準,這樣遊戲開發者就不必為每個品牌的硬件編寫不同的驅動程序,同時也降低了用戶安裝和硬件設置的複雜性。在字面意義上,直接的x是一個直接的意思,後面的x代表許多意思。從這個角度來看,我們可以看到DirectX是為許多軟件提供直接服務的。DirectX不是一個簡單的圖形API。它是微軟開發的一個廣泛使用的API。根據其性質,可分為四個部分:顯示部分、語音部分、輸入部分和網絡部分。DirectX已成為一個應用程序平臺。目前,DirectX在遊戲開發中佔有較大的市場份額。

OpenGL和DirectX的工作

兩者都是用於渲染二維或三維圖形的圖像應用程序編程接口。可以說,這些接口連接上應用程序和下GPU。應用程序向這些接口發送渲染命令,而這些接口又向圖形卡驅動程序發送渲染命令。這些圖形卡驅動程序真的知道如何與GPU通信。正是他們將OpenGL或DirectX函數調用轉換為GPU可理解的語言,他們還負責紋理等。數據轉換為GPU支持的格式。

OpenGL和DirectX的區別

1 在技術方面

OpenGL具有很強的可移植性,而DirectX只能在Windows操作系統中使用。它是基於Windows操作系統平臺的應用程序接口。OpenGL只是一個圖形庫。它是一個專業的三維程序界面。OpenGL被設計為只輸出,所以它只提供渲染。核心API沒有窗口系統、音頻、打印和其他輸入設備的概念。正是因為這種設計允許它呈現完全獨立於操作系統的代碼,從而允許跨平臺開發。DirectX是微軟開發的一種廣泛使用的API。它提供了一套多媒體接口解決方案,尤其是在3D圖形中。在硬件通信方面,DirectX是一個程序,它可以很容易地確定計算機的硬件性能,然後設置與之匹配的程序參數。此程序使多媒體軟件程序能夠在具有與DirectX兼容的硬件和驅動程序的基於Windows的計算機上運行,同時確保多媒體程序可以緊急使用高性能硬件。OpenGL是一個獨立於硬件的軟件接口,可以在任何平臺上運行。它在設置與硬件匹配的程序參數方面不如DirectX。目前,硬件開發人員正在加強對IT的支持。

2 在應用方面

OpenGL仍然是專業高端圖形領域不可替代的主角。OpenGL已廣泛應用於CAD、內容創作、能源、娛樂、遊戲開發和虛擬現實等行業。DirectX適用於多媒體、娛樂、實時三維動畫等廣泛實用的三維圖形計算。在基於Windows平臺的遊戲開發中,它佔據了大部分市場。

參考

https://www.insideria.cn/article/30567 《Unity Shader 入門精要》

"

引言

在與計算機圖形的接觸中,我一定聽說過兩個主要的編程接口:OpenGL和DirectX,它們一直在競爭並促進各自的開發。API戰爭真的很有趣。讓我們看看這兩個大老闆是什麼,他們的實力是什麼。

OpenGL是什麼

OpenGL是一個專業的圖形程序接口,它定義了一種跨編程語言和跨平臺編程接口規範。它用於三維圖像(或二維圖像),是一個功能強大、易於調用的底層圖形庫。OpenGL是一個獨立於硬件的軟件接口,可以在不同的平臺之間移植,如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2。因此,支持OpenGL的軟件具有良好的可移植性和廣泛的應用前景。由於OpenGL是圖形的底層圖形庫,它不提供幾何實體原語,不能直接用於描述場景。但是,通過一些轉換程序,可以很容易地將三維圖形設計軟件(如AutoCAD[2])生成的DXF和3DS模型文件轉換為OpenGL的頂點數組。市場研究機構JonPeddie Research預測OpenGL3.1將安裝超過1億個圖形硬件。AMD、Nvidia和S3圖形圖形驅動程序都支持OpenGL 3.0。

OpenGL-ES是什麼

OpenGL(OpenGL用於嵌入式系統)是OpenGL三維圖形API的一個子集。它是為移動電話、PDA和遊戲主機等嵌入式設備而設計的。Opengles是一個免費的、跨平臺的、功能良好的圖形應用程序接口API,用於二維和三維應用程序。專業設計各種嵌入式系統,包括控制檯、手機、手持設備、家用電器和汽車。它由一個定義良好的桌面OpenGL子集組成,在軟件和圖形加速之間創建了一個靈活而強大的底層接口,這是目前在移動遊戲中使用的底層圖形支持。

DirectX是什麼

從1995年到1996年,微軟推出了一個新的程序來支持在Windows95上運行的遊戲,旨在將市場擴展到任天堂和世嘉控制的遊戲。然而,微軟不想使用已經在NT上可用的OpenGL技術。微軟收購了rendermophics,ltd.並收購了3dapi所稱的現實實驗室。重組後,微軟發佈了一個新的3dapi,direct3d.microsoft,它實現了direct3d並凍結了OpenGL!發動API戰爭。這是DirectX的歷史!直接擴展(DX)是由微軟創建的多媒體編程接口。它用C語言編程,滿足COM的要求。廣泛應用於Microsoft Windows、Microsoft Xbox、Microsoft Xbox 360和Microsoft Xbox One視頻遊戲開發,只能支持這些平臺。DirectX增強了3D圖形和聲音的效果,併為設計師提供了通用的硬件驅動程序標準,這樣遊戲開發者就不必為每個品牌的硬件編寫不同的驅動程序,同時也降低了用戶安裝和硬件設置的複雜性。在字面意義上,直接的x是一個直接的意思,後面的x代表許多意思。從這個角度來看,我們可以看到DirectX是為許多軟件提供直接服務的。DirectX不是一個簡單的圖形API。它是微軟開發的一個廣泛使用的API。根據其性質,可分為四個部分:顯示部分、語音部分、輸入部分和網絡部分。DirectX已成為一個應用程序平臺。目前,DirectX在遊戲開發中佔有較大的市場份額。

OpenGL和DirectX的工作

兩者都是用於渲染二維或三維圖形的圖像應用程序編程接口。可以說,這些接口連接上應用程序和下GPU。應用程序向這些接口發送渲染命令,而這些接口又向圖形卡驅動程序發送渲染命令。這些圖形卡驅動程序真的知道如何與GPU通信。正是他們將OpenGL或DirectX函數調用轉換為GPU可理解的語言,他們還負責紋理等。數據轉換為GPU支持的格式。

OpenGL和DirectX的區別

1 在技術方面

OpenGL具有很強的可移植性,而DirectX只能在Windows操作系統中使用。它是基於Windows操作系統平臺的應用程序接口。OpenGL只是一個圖形庫。它是一個專業的三維程序界面。OpenGL被設計為只輸出,所以它只提供渲染。核心API沒有窗口系統、音頻、打印和其他輸入設備的概念。正是因為這種設計允許它呈現完全獨立於操作系統的代碼,從而允許跨平臺開發。DirectX是微軟開發的一種廣泛使用的API。它提供了一套多媒體接口解決方案,尤其是在3D圖形中。在硬件通信方面,DirectX是一個程序,它可以很容易地確定計算機的硬件性能,然後設置與之匹配的程序參數。此程序使多媒體軟件程序能夠在具有與DirectX兼容的硬件和驅動程序的基於Windows的計算機上運行,同時確保多媒體程序可以緊急使用高性能硬件。OpenGL是一個獨立於硬件的軟件接口,可以在任何平臺上運行。它在設置與硬件匹配的程序參數方面不如DirectX。目前,硬件開發人員正在加強對IT的支持。

2 在應用方面

OpenGL仍然是專業高端圖形領域不可替代的主角。OpenGL已廣泛應用於CAD、內容創作、能源、娛樂、遊戲開發和虛擬現實等行業。DirectX適用於多媒體、娛樂、實時三維動畫等廣泛實用的三維圖形計算。在基於Windows平臺的遊戲開發中,它佔據了大部分市場。

參考

https://www.insideria.cn/article/30567 《Unity Shader 入門精要》

計算機圖形學中OpenGL和DirectX

"

相關推薦

推薦中...