開放式圖形庫?(OpenGL?)和Direct3D計算機圖形庫之間存在一些差異,盡管并非所有這些都對程序員和最終用戶顯而易見。最大的區別在于每個圖形庫的開發和維護方式,OpenGL?主要由不同的利益相關方聯合開發,Direct3D由Micros...
開放式圖形庫?(OpenGL?)和Direct3D計算機圖形庫之間存在一些差異,盡管并非所有這些都對程序員和最終用戶顯而易見。最大的區別在于每個圖形庫的開發和維護方式,OpenGL?主要由不同的利益相關方聯合開發,Direct3D由Microsoft?開發和維護。Direct3D在其實現中也完全是專有的,而OpenGL?則遵循一個基本上開放的標準,除了一些獲得專利的硬件例程外,OpenGL?和Direct3D庫之間的最后一個主要區別在于它們支持的平臺,因為OpenGL?可以在多種平臺和語言上工作,雖然Direct3D只能在基于Microsoft?Windows?的系統上工作。OpenGL是一種開放源代碼標準和抽象編程接口(API),用于在計算機程序中編程三維(3D)圖形。在20世紀90年代早期到中期,當OpenGL?和Direct3D都可用于計算機程序員時,底層框架有很大的不同。隨著時間的推移,圖形硬件變得越來越普遍,成本也越來越低,許多高級功能被引入,這兩個庫都需要支持才能保持相關性。最終,OpenGL?和Direct3D之間的競爭導致這兩個庫具有幾乎相同的功能,盡管仍存在一些細微的差異。大多數最終用戶不知道OpenGL?或Direct3D是否用于設備或應用程序中,并且大量3D程序實際上包含對這兩個庫的支持。其中之一是OpenGL?和Direct3D之間最大和最不可避免的區別是它們將在哪些平臺上運行Direct3D是Microsoft?Windows?軟件開發工具包(SDK)的一部分,因此它特別依賴于只能在Windows?操作系統及其衍生產品中找到的組件。另一方面,OpenGL?,通常是跨平臺開發的,并且盡可能少地依賴于操作特定的功能。一些程序的開發允許Direct3D在Windows?以外的操作系統上工作,盡管其功能通常會大大減少。從編程的角度來看,在總體設計上這些庫。OpenGL?傾向于抽象圖形硬件的使用,允許程序員使用一組核心函數進行繪圖,然后依賴驅動程序直接訪問硬件。Direct3D要求程序員在正在編寫的程序中管理硬件的某些方面,這可以使Direct3D程序更加強大雖然很復雜,但也提供了更靈活的資源管理。最終,OpenGL?更容易編寫程序,但硬件制造商更難為其編寫驅動程序。或者,Direct3D有大量Microsoft?提供的工具和支持,但需要更多的硬件和編程知識才能使用。OpenGL?和Direct3D之間的最后一個區別是在主要標準版本之間添加新硬件和語言功能的方式。通過OpenGL?,硬件制造商能夠實現稱為擴展的特殊功能,這些功能可以立即訪問新硬件的獨特功能。使用Direct3D,這些功能需要通過Microsoft?處理,然后Microsoft?會通過官方分銷渠道發布新功能。OpenGL?方法允許新功能可以快速使用,但會降低使用擴展的程序的總體兼容性,而Direct3D方法速度較慢,但可以保證不同系統之間的兼容性
-
發表于 2020-08-07 01:01
- 閱讀 ( 784 )
- 分類:電腦網絡