iOS視覺-- (01) 初識OpenGL與OpenGL ES

一南吮、OpenGL 簡介

1宪哩、OpenGL是一種應(yīng)用程序編程接口,它是一種可以對圖形硬件設(shè)備特性進(jìn)行訪問的軟件庫心肪。
2菩帝、OpenGL被設(shè)計為一個現(xiàn)代化的、硬件無關(guān)的接口族檬,因此我們可以在不考慮計算機操作系統(tǒng)或窗口系統(tǒng)的前提下歪赢,在多種不同的圖形硬件系統(tǒng)上,或者完全通過軟件的方式實現(xiàn)OpenGL接口单料。
3埋凯、OpenGL自身并不包含任何執(zhí)行窗口任務(wù),或者處理用戶輸入的函數(shù)扫尖。
4白对、OpenGL也沒有提供任何用于表達(dá)三維物體模型,或者讀取圖像文件的操作换怖。我們需要通過一系列的幾何圖元(點甩恼,線段,三角形沉颂,以及patch)來創(chuàng)建三維空間物體条摸!
(ps: 2D + 透視 = 3D)
5、OpenGL API是過程性的铸屉,不是描述性的钉蒲,即OpenGL不是面向?qū)ο蟮模設(shè)penGL無法利用面向?qū)ο蟮奶匦蕴健J褂玫臅r候只需要:程序與OpenGL的實現(xiàn)鏈接就可以了子巾!
6、OpenGL的實現(xiàn)可以是軟件實現(xiàn)小压,也可以是硬件實現(xiàn)线梗。
軟件實現(xiàn):是對OpengGL函數(shù)調(diào)用時作出的響應(yīng)并創(chuàng)建二維或三維圖像的函數(shù)庫。
硬件實現(xiàn):則是通過設(shè)置能夠繪制圖形或圖像的圖形卡驅(qū)動程序
硬件實現(xiàn)要比軟件實現(xiàn)快得多5∫妗仪搔!
(ps: 簡單理解就是開發(fā)的圖形庫)

圖片來自:極客雨露--iOS OpenGL 學(xué)習(xí)
    1. OpenGL可以用來干什么?
  • 1.視頻,圖形,圖片處理
  • 2.2D/3D 游戲引擎開發(fā)
  • 3.科學(xué)可視化
  • 4.醫(yī)學(xué)軟件開發(fā)
  • 5.CAD(計算機輔助技術(shù))
  • 6.虛擬實境(AR,VR)
  • 7.AI ?工智能
    1. 圖片
    1. 了解客戶端/服務(wù)端的概念蜻牢?


      圖片
    1. OpenGL 與 OpenGL ES 的關(guān)系

OpenGL 與 OpenGL ES 的主要區(qū)別,在于OpenGL ES 主要針對嵌入式設(shè)備使?

  • 1烤咧、OpenGL ES是OpenGL的子集,針對手機抢呆、PDA和游戲主機嵌入式設(shè)備而設(shè)計
  • 2煮嫌、OpenGL ES 是從 OpenGL 裁剪定制而來的,去除了 glBegin/glEnd抱虐,四邊形(GL_QUADS)昌阿、多邊形(GL_POLYGONS)等復(fù)雜圖元等許多非絕對必要的特性,剩下最核心有用的部分。
    可以理解成:OpenGL ES是一個在移動平臺上能夠支持 OpenGL 最基本功能的精簡規(guī)范懦冰。

二灶轰、OpenGL基本知識了解

    1. 著色器渲染流程


      著色器渲染流程

      可編程管線 & 固定管線

      簡化版
  • 2.什么是管線?

在OpenGL 下渲染圖形,就會有經(jīng)歷一個一個節(jié)點.而這樣的操作可以理解管線.大家可以想象成流水線.每個任務(wù)類似流水線般執(zhí)行.任務(wù)之間有先后順序. 管線是一個抽象的概念刷钢,之所以稱之為管線是因為顯卡在處理數(shù)據(jù)的時候是按照一個固定的順序來的笋颤,而且嚴(yán)格按照這個順序。就像水從一根管子的一端流到另一端内地,這個順序是不能打破的

    1. 頂點著色器(VertexShader)

一般用來處理圖形每個頂點變換(旋轉(zhuǎn)/平移/投影等)
頂點著色器是OpenGL中用于計算頂點屬性的程序伴澄。頂點著色器是逐頂點運算的程序,也就是說每個頂點數(shù)據(jù)都會執(zhí)行一次頂點著色器瓤鼻,當(dāng)然這是并行的秉版,并且頂點著色器運算過程中無法訪問其他頂點的數(shù)據(jù)雹熬。
一般來說典型的需要計算的頂點屬性主要包括頂點坐標(biāo)變換拗馒、逐頂點光照運算等等厂抖。頂點坐標(biāo)由自身坐標(biāo)系轉(zhuǎn)換到歸一化坐標(biāo)系的運算,就是在這里發(fā)生的祭犯。

    1. 片元著色器程序(FragmentShader)

一般用來處理圖形中每個像素點顏色計算和填充
片段著色器是OpenGL中用于計算片段(像素)顏色的程序。片段著色器是逐像素運算的程序滚停,也就是說每個像素都會執(zhí)行一次片段著色器沃粗,當(dāng)然也是并行的。

  • 5.GLSL(OpenGL Shading Language)

OpenGL著色語言(OpenGL Shading Language)是用來在OpenGL中著色編程的語言键畴,也即開發(fā)人員寫的短小的自定義程序最盅,他們是在圖形卡的GPU (Graphic Processor Unit圖形處理單元)上執(zhí)行的,代替了固定的渲染管線的一部分起惕,使渲染管線中不同層次具有可編程性涡贱。比如:視圖轉(zhuǎn)換、投影轉(zhuǎn)換等惹想。GLSL(GL Shading Language)的著色器代碼分成2個部分:Vertex Shader(頂點著色器)和Fragment(片斷著色器)

  • 6.光柵化(Rasterization)
  • 是把頂點數(shù)據(jù)轉(zhuǎn)換為片元的過程问词,具有將圖轉(zhuǎn)化為一個個柵格組成的圖象的作用,特點是每個元素對應(yīng)幀緩沖區(qū)中的一像素嘀粱。
  • 光柵化就是把頂點數(shù)據(jù)轉(zhuǎn)換為片元的過程激挪。片元中的每一個元素對應(yīng)于幀緩沖區(qū)中的一個像素。
  • 光柵化其實是一種將幾何圖元變?yōu)槎S圖像的過程锋叨。該過程包含了兩部分的工作垄分。第一部分工作:決定窗口坐標(biāo)中的哪些整型柵格區(qū)域被基本圖元占用;第二部分工作:分配一個顏色值和一個深度值到各個區(qū)域娃磺。光柵化過程產(chǎn)生的是片元
  • 把物體的數(shù)學(xué)描述以及與物體相關(guān)的顏色信息轉(zhuǎn)換為屏幕上用于對應(yīng)位置的像素及用于填充像素的顏色薄湿,這個過程稱為光柵化,這是一個將模擬信號轉(zhuǎn)化為離散信號的過程
  • 7.紋理

紋理可以理解為圖片. 大家在渲染圖形時需要在其編碼填充圖片,為了使得場景更加逼真.而這里使用的圖片,就是常說的紋理.但是在OpenGL,我們更加習(xí)慣叫紋理,而不是圖片.

  • 8.混合(Blending)

在測試階段之后,如果像素依然沒有被剔除嘿般,那么像素的顏色將會和幀緩沖區(qū)中顏色附著上的顏色進(jìn)行混合段标,混合的算法可以通過OpenGL的函數(shù)進(jìn)行指定。但是OpenGL提供的混合算法是有限的炉奴,如果需要更加復(fù)雜的混合算法逼庞,一般可以通過像素著色器進(jìn)行實現(xiàn),當(dāng)然性能會比原生的混合算法差一些瞻赶。

  • 9.OpenGL 圖元
  • 1.點
  • 2.線
  • 3.線帶
  • 4.線環(huán)
  • 5.三角形
  • 6.三角形帶
  • 7.三角形扇
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赛糟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子砸逊,更是在濱河造成了極大的恐慌璧南,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件师逸,死亡現(xiàn)場離奇詭異司倚,居然都是意外死亡,警方通過查閱死者的電腦和手機篓像,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門动知,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人员辩,你說我怎么就攤上這事盒粮。” “怎么了奠滑?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵丹皱,是天一觀的道長。 經(jīng)常有香客問我宋税,道長摊崭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任弃甥,我火速辦了婚禮爽室,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淆攻。我一直安慰自己阔墩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布瓶珊。 她就那樣靜靜地躺著啸箫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪伞芹。 梳的紋絲不亂的頭發(fā)上忘苛,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天蝉娜,我揣著相機與錄音,去河邊找鬼扎唾。 笑死召川,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胸遇。 我是一名探鬼主播荧呐,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纸镊!你這毒婦竟也來了倍阐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤逗威,失蹤者是張志新(化名)和其女友劉穎峰搪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凯旭,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡概耻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了尽纽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咐蚯。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖弄贿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情矫膨,我是刑警寧澤差凹,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站侧馅,受9級特大地震影響危尿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜馁痴,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一谊娇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罗晕,春花似錦济欢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至酬屉,卻和暖如春半等,著一層夾襖步出監(jiān)牢的瞬間揍愁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工杀饵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留莽囤,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓切距,卻偏偏與公主長得像烁登,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蔚舀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容