OpenCV
- OpenCV是一個基于BSD許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。 它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
- opencv官網
- github源碼
OpenGL
- OpenGL(英語:Open Graphics Library,譯名:開放圖形庫或者“開放式圖形庫”)是用于渲染2D、3D矢量圖形的跨語言、跨平臺的應用程序編程接口(API)。這個接口由近350個不同的函數調用組成,用來從簡單的圖形比特繪制復雜的三維景象。而另一種程序接口系統是僅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虛擬實境、科學可視化程序和電子游戲開發。
- opengl官網
- 入門教程
OpenSceneGraph
- OpenSceneGraph 能夠更加快速、便捷地創建高性能、跨平臺的交互式圖形程序。OpenSceneGraph是一個開放源碼,跨平臺的圖形開發包,它為諸如飛行器仿真,游戲,虛擬現實,科學計算可視化這樣的高性能圖形應用程序開發而設計。它基于場景圖的概念,它提供一個在OpenGL之上的面向對象的框架,從而能把開發者從實現和優化底層圖形的調用中解脫出來,并且它為圖形應用程序的快速開發提供很多附加的實用工具。
Vulkan
- Vulkan是一個跨平臺的2D和3D繪圖應用程序接口(API),最早由科納斯組織(Khronos Group)在2015年游戲開發者大會(GDC)上發表。科納斯最先把VulkanAPI稱為“下一代OpenGL行動”(next generation OpenGL initiative)或“glNext”, 但在正式宣布Vulkan之后這些名字就沒有再使用了。就像OpenGL,Vulkan針對實時3D程序(如電子游戲)設計,Vulkan并計劃提供高性能和低CPU管理負擔(overhead),這也是Direct3D12和AMD的Mantle的目標。Vulkan兼容Mantle的一個分支,并使用了Mantle的一些組件。
WebGL
- WebGL(全寫Web Graphics Library)是一種3D繪圖協議,這種繪圖技術標準允許把JavaScript和OpenGL ES 2.0結合在一起,通過增加OpenGL ES 2.0的一個JavaScript綁定,WebGL可以為HTML5 Canvas提供硬件3D加速渲染,這樣Web開發人員就可以借助系統顯卡來在瀏覽器里更流暢地展示3D場景和模型了,還能創建復雜的導航和數據視覺化。顯然,WebGL技術標準免去了開發網頁專用渲染插件的麻煩,可被用于創建具有復雜3D結構的網站頁面,甚至可以用來設計3D網頁游戲等等。
OpenCL
- OpenCL(全稱Open Computing Language,開放運算語言)是第一個面向異構系統通用目的并行編程的開放式、免費標準,也是一個統一的編程環境,便于軟件開發人員為高性能計算服務器、桌面計算系統、手持設備編寫高效輕便的代碼,而且廣泛適用于多核心處理器(CPU)、圖形處理器(GPU)、Cell類型架構以及數字信號處理器(DSP)等其他并行處理器,在游戲、娛樂、科研、醫療等各種領域都有廣闊的發展前景。
CUDA
- CUDA(Compute Unified Device Architecture),是顯卡廠商NVIDIA推出的運算平臺。 CUDA?是一種由NVIDIA推出的通用并行計算架構,該架構使GPU能夠解決復雜的計算問題。 它包含了CUDA指令集架構(ISA)以及GPU內部的并行計算引擎。 開發人員可以使用C語言來為CUDA?架構編寫程序,C語言是應用最廣泛的一種高級編程語言。所編寫出的程序可以在支持CUDA?的處理器上以超高性能運行。CUDA3.0已經開始支持C++和FORTRAN。
DirectX
- DirectX(Direct eXtension,簡稱DX)是由微軟公司創建的多媒體編程接口,是一種應用程序接口(API)。DirectX可以讓以windows為平臺的游戲或多媒體程序獲得更高的執行效率,加強3D圖形和聲音效果,并提供設計人員一個共同的硬件驅動標準,讓游戲開發者不必為每一品牌的硬件來寫不同的驅動程序,也降低用戶安裝及設置硬件的復雜度。DirectX已被廣泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE電子游戲開發。
Direct3D
- 由微軟公司所制定的3D規格界面,與Windows 95和Windows NT操作系統兼容性好,可繞過圖形顯示接口(GDI)直接進行支持該API的各種硬件的底層操作,大大提高了游戲的運行速度。Direct 3D是基于微軟的通用對象模式COM(Common Object Mode)的3D圖形API。它是由微軟(Microsoft)一手樹立的3D API規范,微軟公司擁有該庫版權,它所有的語法定義包含在微軟提供的程序開發組件的幫助文件、源代碼中。Direct3D是微軟公司DirectX SDK集成開發包中的重要部分,適合多媒體、娛樂、即時3D動畫等廣泛和實用的3D圖形計算。自1996年發布以來,Direct3D以其良好的硬件兼容性和友好的編程方式很快得到了廣泛的認可,現在幾乎所有的具有3D圖形加速的主流顯示卡都對Direct3D提供良好的支持。但它也有缺陷,由于是以COM接口形式提供的,所以較為復雜,穩定性差,另外,目前只在Windows平臺上可用。
DirectX和Direct3D區別與聯系
- direct3D只是directX其中一個模塊。
- DirectX是由很多API組成的,按照性質分類,可以分為四大部分:顯示部分、聲音部分、輸入部分和網絡部分。
- 顯示部分擔任圖形處理的關鍵,分為DirectDraw(DDraw)和Direct3D(D3D)。前者主要負責2D圖像加速,它包括很多方面:我們播放DVD電影、看圖、玩小游戲等等都是用的DDraw,你可以把它理解成所有劃線的部分都是用的DDraw;后者則主要負責3D效果的顯示,比如CS中的場景和人物等,都是使用了DirectX的Direct3D。
- 聲音部分中最主要的API是DirectSound,除了播放聲音和處理混音之外,還加強了3d音效,并提供了錄音功能。比如聲卡兼容,就是利用了DirectSound來解決的。
- 輸入部分DirectInput可以支持很多的游戲輸入設備,它能夠讓這些設備充分發揮最佳狀態和全部功能。除了鍵盤和鼠標之外還可以連接手柄、搖桿、模擬器等。
- 網絡部分DirectPlay主要就是為了具有網絡功能游戲而開發的,提供了多種連接方式,TPC/IP,IPX,Modem,串口等,讓玩家可以用各種聯網方式來進行對戰,此外也提供網絡對話功能及保密措施。