OpenCL、OpenGL、OpenAL

一:OpenCL程序員

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

  OpenCL是一個爲異構平臺編寫程序的框架,此異構平臺可由 CPUGPU或其餘類型的處理器組成。OpenCL由一門用於編寫kernels (在OpenCL設備上運行的函數)的語言(基於 C99)和一組用於定義並控制平臺的API組成。OpenCL提供了基於任務分割和 數據分割並行計算機制。
OpenCL相似於另外兩個開放的工業標準 OpenGLOpenAL,這兩個標準分別用於三維圖形和計算機音頻方面。OpenCL擴展了GPU用於圖形生成以外的能力。OpenCL由非盈利性技術組織 Khronos Group掌管。
 

二:OpenGL編程

  (全寫Open Graphics Library)是指定義了一個跨編程語言、跨平臺的編程接口規格的專業的圖形程序接口。它用於三維圖像(二維的亦可),是一個功能強大,調用方便的底層圖形庫。數組

OpenGL™ 是行業領域中最爲 普遍接納的 2D/3D 圖形  API,其自誕生至今已催生了各類計算機平臺及設備上的數千優秀應用程序。OpenGL™ 是獨立於視窗操做系統或其它操做系統的,亦是網絡透明的。在包含CAD、內容創做、能源、娛樂、遊戲開發、製造業、製藥業及 虛擬現實等行業領域中,OpenGL™ 幫助程序員實如今 PC、 工做站超級計算機等硬件設備上的高性能、極具衝擊力的高視覺表現力圖形處理軟件的開發。  
  OpenGL是個與硬件無關的 軟件接口,能夠在不一樣的平臺如 Windows 95Windows NTUnixLinux、MacOS、OS/2之間進行移植。所以,支持OpenGL的軟件具備很好的移植性,能夠得到很是普遍的應用。因爲OpenGL是圖形的底層圖形庫,沒有提供幾何實體圖元,不能直接用以描述場景。
可是,經過一些轉換程序,能夠很方便地將 AutoCAD、3DS/3DSMAX等3D圖形設計軟件製做的DXF和3DS模型文件轉換成OpenGL的頂點數組。
在OpenGL的基礎上還有Open Inventor、Cosmo3D、Optimizer等多種高級圖形庫,適應不一樣應用。其中,Open Inventor應用最爲普遍。該軟件是基於OpenGL面向對象的工具包,提供建立交互式3D圖形應用程序的對象和方法,提供了預約義的對象和用於交互的事件處理模塊,建立和編輯3D場景的高級應用程序單元,有打印對象和用其它圖形格式交換數據的能力。
  OpenGL是一個開放的三維圖形軟件包,它獨立於窗口系統和操做系統,以它爲基礎開發的應用程序能夠十分方便地在各類平臺間移植;OpenGL能夠與Visual C++緊密接口,便於實現機械手的有關計算和圖形算法,可保證算法的正確性和可靠性;OpenGL使用簡便,效率高。它具備七大功能:
1.建模:OpenGL圖形庫除了提供基本的點、線、多邊形的繪製函數外,還提供了複雜的三維物體(球、錐、多面體、茶壺等)以及複雜曲線和曲面繪製函數。
2.變換:OpenGL圖形庫的變換包括基本變換和 投影變換。基本變換有平移、旋轉、縮放、鏡像四種變換,投影變換有平行投影(又稱正射投影)和透視投 影兩種變換。其變換方法有利於減小算法的運行時間,提升三維圖形的顯示速度。
3.顏色模式設置:OpenGL顏色模式有兩種,即RGBA模式和顏色索引(Color Index)。
4.光照和材質設置:OpenGL光有自發光(Emitted Light)、環境光(Ambient Light)、漫反射光(Diffuse Light)和高光(Specular Light)。材質是用光反射率來表示。場景(Scene)中物體最終反映到人眼的顏色是光的紅綠藍份量與材質紅綠藍份量的反射率相乘後造成的顏色。
5: 紋理映射(Texture Mapping)。利用OpenGL紋理映射功能能夠十分逼真地表達物體表面細節。
6: 位圖顯示和圖象加強圖象功能除了基本的拷貝和像素讀寫外,還提供融合(Blending)、抗鋸齒(反走樣)(Antialiasing)和霧(fog)的特殊圖象效果處理。以上三條可以使被仿真物更具真實感,加強圖形顯示的效果。
7:雙緩存動畫(Double Buffering)雙緩存即前臺緩存和後臺 緩存,簡言之,後臺緩存計算場景、生成畫面,前臺緩存顯示後臺緩存已畫好的畫面。
此外,利用OpenGL還能實現深度暗示(Depth Cue)、運動模糊(Motion Blur)等特殊效果。從而實現了消隱算法。OpenGL設備運用,目前瑞芯微2918芯片和英偉達芯片Tegra2 就是採用OpenGL 2.0技術進行圖形處理,而基於瑞芯微2918芯片方案表明是臺電T760和微蜂X7平板電腦所採用到。
三:OpenAL
  
  OpenAL(Open Audio Library)是 自由軟件界的跨平臺音效API,由Loki Software,使用在Windows、Linux 系統上,用來音效緩衝和收聽者中編碼。
OpenAL設計給多通道三維位置音效的特效表現。其 API 風格模仿自 OpenGL
OpenAL 主要的功能是在來源物體、音效緩衝和收聽者中編碼。來源物體包含一個指向 緩衝區的指標、聲音的速度、位置和方向,以及聲音強度。收聽者物體包含收聽者的速度、位置和方向,以及所有聲音的總體增益。緩衝裏包含 8 或 16 位元、單聲道或立體聲 PCM 格式的音效資料,表現引擎進行全部必要的計算,如距離衰減、多普勒效應等。
  不一樣於 OpenGL 規格,OpenAL 規格包含兩個API分支;以實際 OpenAL 函式組成的核心,和 ALC API,ALC 用於管理表現內容、資源使用狀況,並將跨平臺風格封在其中。還有「ALUT」 程式庫,提供高階「易用」的函式,其定位至關於 OpenGL 的 GLUT。
相關文章
相關標籤/搜索