當前位置:編程學習大全網 - 編程語言 - OpenCL,OpenGL和DirectX三者的區別

OpenCL,OpenGL和DirectX三者的區別

 什麽是OpenCL?

OpenCL全稱Open Computing Language,是第壹個面向異構系統通用目的並行編程的開放式、免費標準,也是壹個統壹的編程環境,便於軟件開發人員為高性能計算服務器、桌面計算系統、手持設備編寫高效輕便的代碼,而且廣泛適用於多核心處理器(CPU)、圖形處理器(GPU)、Cell類型架構以及數字信號處理器(DSP)等其他並行處理器,在遊戲、娛樂、科研、醫療等各種領域都有廣闊的發展前景。

OpenCL 1.0主要由壹個並行計算API和壹種針對此類計算的編程語言組成,此外還特別定義了:

1、C99編程語言並行擴展子集;

2、適用於各種類型異構處理器的坐標數據和基於任務並行計算API;

3、基於IEEE 754標準的數字條件;

4、與OpenGL、OpenGL ES和其他圖形類API高效互通。

什麽是OpenGL?

OpenGL? 是行業領域中最為廣泛接納的 2D/3D 圖形 API, 其自誕生至今已催生了各種計算機平臺及設備上的數千優秀應用程序。OpenGL? 是獨立於視窗操作系統或其它操作系統的,亦是網絡透明的。在包含CAD、內容創作、能源、娛樂、遊戲開發、制造業、制藥業及虛擬現實等行業領域中,OpenGL? 幫助程序員實現在 PC、工作站、超級計算機等硬件設備上的高性能、極具沖擊力的高視覺表現力圖形處理軟件的開發。

OpenGL(全寫Open Graphics Library)是個定義了壹個跨編程語言、跨平臺的編程接口的規格,它用於三維圖象(二維的亦可)。OpenGL是個專業的圖形程序接口,是壹個功能強大,調用方便的底層圖形庫。OpenGL的前身是SGI公司為其圖形工作站開發的IRIS GL。IRIS GL是壹個工業標準的3D圖形軟件接口,功能雖然強大但是移植性不好,於是SGI公司便在IRIS GL的基礎上開發了OpenGL。OpenGL的英文全稱是“Open Graphics Library”,顧名思義,OpenGL便是“開放的圖形程序接口”。雖然DirectX在家用市場全面領先,但在專業高端繪圖領域,OpenGL是不能被取代的主角。

Open GL仍然是唯壹能夠取代微軟對3D圖形技術的完全控制的API。它仍然具有壹定的生命力,但是Silicon Graphics已經不再以任何讓微軟不悅的方式推廣Open GL,因而它存在較高的風險。遊戲開發人員是壹個有著獨立思想的群體,很多重要的開發人員目前仍然在使用Open GL。因此,硬件開發商正在設法加強對它的支持。Direct3D目前還不能支持高端的圖形設備和專業應用; Open GL在這些領域占據著統治地位。最後,開放源碼社區(尤其是Mesa項目)壹直致力於為任何類型的計算機(無論它們是否使用微軟的操作系統)提供Open GL支持。

今年08年正式公布OpenGL3.0版本。並且得到了,nv的支持,其官方網站上提供針對N卡的sdk下載。

什麽是DirectX?

DirectX是壹種應用程序接口(API),它可讓以windows為平臺的遊戲或多媒體程序獲得更高的執行效率,加強3d圖形和聲音效果,並提供設計人員壹個***同的硬件驅動標準,讓遊戲開發者不必為每壹品牌的硬件來寫不同的驅動程序,也降低用戶安裝及設置硬件的復雜度。這樣說是不是有點不太明白,其實從字面意義上說,Direct就是直接的意思,而後邊的X則代表了很多的意思,從這壹點上我們就可以看出DirectX的出現就是為了為眾多軟件提供直接服務的。

DirectX是由很多API組成的,按照性質分類,可以分為四大部分,顯示部分、聲音部分、輸入部分和網絡部分。

顯示部分擔任圖形處理的關鍵,分為DirectDraw(DDraw)和 Direct3D(D3D),前者主要負責2D圖像加速。它包括很多方面:我們播放mpg、DVD電影、看圖、玩小遊戲等等都是用的DDraw,妳可以把它理解成所有劃線的部分都是用的DDraw。後者則主要負責3D效果的顯示,比如CS中的場景和人物、FIFA中的人物等等,都是使用了DirectX的 Direct3D。

OpenCL、OpenGL和DirectX之間不得不說的故事

業界對Apple的OpenCL的支持將成為它發展的重要因素,早在90年代中期,微軟就曾經努力阻止OpenGL成為行業的標準,以推行自己的DirectX顯卡軟件和遊戲工具。微軟的Direct X起初的戰略是為了推動DOS遊戲開發者轉向Windows,從此之後它就被綁定在Windows下為PC遊戲服務,所以它僅支持Windows。

斷發布新版的DirectX也推動了開發者轉向最新版的Windows,比如最新版的DirectX 10就帶來了不少Vista專屬遊戲,從而推動了Vista的銷量,然而它並未達到預期的效果,因為Vista的速度阻礙了DirectX10遊戲的市場,開發者只能將目標再次轉向XP。

OpenGL和Apple

OpenGL的前身是高端圖形工作站廠商SGI在80年代所開發的IRIS G,它在90年代初期成為了開源的標準。當時微軟在它的Windows 95中發布了Direct3D,將它作為OpenGL的競爭對手。而在90年代末,微軟曾經和SGI進行了Fahrenheit項目的開發,試圖將兩者結合起來,但是沒有成功。之後微軟繼續開發DirectX並與GPU廠商合作,留下OpenGL任其發展。

OpenGL之後幾乎逐漸消失,直到90年代末Apple放棄了自己的QuickDraw 3D,將OpenGL作為Mac OS X的官方3D庫。Apple的系統給OpenGL程序帶來了不少擁護者。之後OpenGL正式被Linux采用,現在主流的遊戲平臺,包括PSP,PS3 和Wii都支持該技術。

但是微軟的Xbox360例外,它采用了自己的DirectX 圖形庫,而將OpenGL排除在外。如今OpenGL對DirectX來說比以前更有競爭力了。而微軟計劃在Windows 7中的DirectX 11增加類似於OpenCL的技術,以實現GPGPU運算。但是Apple的OpenCL能更緊密地與OpenGL代碼協同工作,能帶來更廣泛的支持。 Apple還將OpenCL作為壹個免費的,開源的標準,讓任何人都能參與到該平臺中來。

OpenGL和OpenCL設計的相似性,使開發者更易於開發。比如在OpenCL下進行數據虛擬化計算,可以把相同的對象在OpenGL上進行圖形渲染。同時OpenGL下的圖形渲染可以在OpenCL下進行處理和轉換。

OpenCL得到了GPU廠商NVIDIA和AMD的支持,同時支持Apple,SONY,任天堂的平臺,還支持Linux和Windows,而且任何公司的開發者都可以參與到該技術的發展中來。

  • 上一篇:學校教師職責概述
  • 下一篇:通達信量化選股公式
  • copyright 2024編程學習大全網