什麼是OpenCL?
OpenCL全稱Open Computing Language,是第一個面向異構系統通用目的並行編程的開放式、免費標準,也是一個統一的編程環境,便於軟件開發人員爲高性能計算服務器、桌面計算系統、手持設備編寫高效輕便的代碼,並且普遍適用於多核心處理器(CPU)、圖形處理器(GPU)、Cell類型架構以及數字信號處理器(DSP)等其餘並行處理器,在遊戲、娛樂、科研、醫療等各類領域都有廣闊的發展前景。
OpenCL 1.0主要由一個並行計算API和一種針對此類計算的編程語言組成,此外還特別定義了:
一、C99編程語言並行擴展子集;
二、適用於各類類型異構處理器的座標數據和基於任務並行計算API;
三、基於IEEE 754標準的數字條件;
四、與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,並且任何公司的開發者均可以參與到該技術的發展中來。