常見(jiàn)的圖形API
目前比較常見(jiàn)的圖形API主要有以下幾種
- OpenGL
- OpenGL ES
- OPenCV
- DirectX
- Metal
下面來(lái)具體介紹下各種API的特點(diǎn)
OPenGL(Open Graphics Library)
- OpenGL是一個(gè)跨平臺(tái)、跨語(yǔ)言的編程圖形框架,主要用于windows、mac等PC端
- 它將計(jì)算機(jī)資源資源抽象成一個(gè)個(gè)OpenGL對(duì)象,對(duì)這些資源的操作抽象為一個(gè)個(gè)OpenGL指令
要點(diǎn)
- 跨平臺(tái)、跨語(yǔ)言
- OpenGL對(duì)象:計(jì)算機(jī)資源
- OpenGL指令:對(duì)計(jì)算機(jī)資源的操作
OpenGL ES(OpenGL for Embedded Systems)
- OpenGL ES 是OpenGL三維圖像API的子集,主要是針對(duì)嵌入式設(shè)備的圖形處理,比如安卓、iOS等
- 去除了許多不必要和性能較低的接口
要點(diǎn)
- 跨平臺(tái):ios、安卓等移動(dòng)端,以及嵌入式設(shè)備
- 兼容GLSL
OpenCV(Open Source Computer Vision Library)
- OpenCV 與 OpenGL是圖形API中兩個(gè)大的分支,類(lèi)似于iOS中的OC和swift,是兩個(gè)不同的方向
- OpenCV主要用于識(shí)別技術(shù),例如人臉識(shí)別、身份識(shí)別、物體識(shí)別等,
- 該API的使用需要與人工智能相結(jié)合
- 目前市面上用的最多的識(shí)別三方是 face++,且是收費(fèi)的,支付寶等大廠的識(shí)別功能也是集成的face++
要點(diǎn)
- 跨平臺(tái)、跨語(yǔ)言
- 識(shí)別API
- 與人工智能結(jié)合
DirectX
- 由很多API組成,是一個(gè)多媒體處理框架,并不是單一的圖形API
- DirectX僅支持Windows平臺(tái)
- 該框架可以大致分為4類(lèi)
==> 顯示+聲音+輸入+網(wǎng)絡(luò)
要點(diǎn)
- 非跨平臺(tái):只支持Windows
- 多媒體處理API
Metal
- Metal是蘋(píng)果為了解決3D渲染問(wèn)題而推出的框架
- 可以將3D渲染圖像的性能提高10倍
- Apple為游戲開(kāi)發(fā)者提供的新的平臺(tái)技術(shù)
- 蘋(píng)果系統(tǒng)中的CoreGraphics、CoreAnimation、CoreImage框架在2018年以前是基于OpenGL ES封裝的,在2018年以后是基于Metal封裝的
要點(diǎn)
- Apple平臺(tái)新的圖形API
- 提高了3D渲染性能
- CoreGraphics、CoreAnimation、CoreImage目前是基于Metal封裝的
圖形API的目的
一句話概括:圖形底層渲染的實(shí)現(xiàn)
解決了什么問(wèn)題
- 系統(tǒng)針對(duì)按鈕、圖片、視圖、圖層的渲染
- 游戲開(kāi)發(fā)中,游戲場(chǎng)景、人物的渲染
- 音視頻開(kāi)發(fā)中,視頻解碼數(shù)據(jù)的渲染
- 核心動(dòng)畫(huà)開(kāi)發(fā)中,旋轉(zhuǎn)、平移、縮放等動(dòng)畫(huà)操作中圖層特效的渲染
- 視頻處理中,路徑效果的實(shí)現(xiàn)
- 離屏渲染
總結(jié)
- OpenGL、OpenGL ES、Metal在任何項(xiàng)目中解決問(wèn)題的本質(zhì)就是利用GPU芯片高效渲染圖形圖像
- 圖形API,是iOS開(kāi)發(fā)者接近GPU的唯一方式