《OpenGL ES: (二) 基本概念》

學(xué)習(xí)OpenGL ES 2.0需要知道OpenGL ES 2.0相關(guān)的一些概念及知識端考。
在上段中提到了OpenGL ES 2.0相對1.x全新的兩個重要東西——頂點著色器和片元著色器只洒。

頂點著色器

著色器(Shader)是在GPU上運(yùn)行的小程序匀泊。從名稱可以看出丽啡,可通過處理它們來處理頂點。此程序使用OpenGL ES SL語言來編寫赌莺。它是一個描述頂點或像素特性的簡單程序泰讽。

對于發(fā)送給GPU的每一個頂點,都要執(zhí)行一次頂點著色器薪贫。其功能是把每個頂點在虛擬空間中的三維坐標(biāo)變換為可以在屏幕上顯示的二維坐標(biāo)恍箭,并帶有用于z-buffer的深度信息。頂點著色器可以操作的屬性有:位置瞧省、顏色扯夭、紋理坐標(biāo),但是不能創(chuàng)建新的頂點鞍匾。
頂點著色器的輸入輸出模型如下:


image.png

片元著色器

片元著色器計算每個像素的顏色和其它屬性交洗。它通過應(yīng)用光照值、凹凸貼圖橡淑,陰影构拳,鏡面高光,半透明等處理來計算像素的顏色并輸出梁棠。它也可改變像素的深度(z-buffering)或在多個渲染目標(biāo)被激活的狀態(tài)下輸出多種顏色置森。一個片元著色器不能產(chǎn)生復(fù)雜的效果,因為它只在一個像素上進(jìn)行操作符糊,而不知道場景的幾何形狀暇藏。
片元著色器的輸入輸出模型如下:


image.png

著色器語言

著色器語言(Shading Language)是一種高級的圖形編程語言,僅適合于GPU編程濒蒋,其源自應(yīng)用廣泛的C語言盐碱。對于頂點著色器和片元著色器的開發(fā)都需要用到著色器語言進(jìn)行開發(fā)把兔。它是面向過程的而非面向?qū)ο蟆?br> 關(guān)于著色器語言中的變量、語法在以后使用過程中會提及瓮顽。想要系統(tǒng)的學(xué)習(xí)著色器語言县好,請查閱其他相關(guān)博文和書籍。

坐標(biāo)系

OpenGL ES采用的是右手坐標(biāo)暖混,選取屏幕中心為原點缕贡,從原點到屏幕邊緣默認(rèn)長度為1,也就是說默認(rèn)情況下拣播,從原點到(1,0,0)的距離和到(0,1,0)的距離在屏幕上展示的并不相同晾咪。即向右為X正軸方向,向左為X負(fù)軸方向贮配,向上為Y軸正軸方向谍倦,向下為Y軸負(fù)軸方向,屏幕面垂直向上為Z軸正軸方向泪勒,垂直向下為Z軸負(fù)軸方向昼蛀。

圖形的繪制

前面提到OpenGL ES2.0的世界里面只有點、線圆存、三角形叼旋,其它更為復(fù)雜的幾何形狀都是由三角形構(gòu)成的。包括正方形沦辙、圓形夫植、正方體、球體等油讯。但是其他更為復(fù)雜的物體偷崩,我們不可能都自己去用三角形構(gòu)建,這個時候就需要通過加載利用其他軟件(比如3DMax)構(gòu)建的3D模型撞羽。

投影

OpenGL ES 的世界是3D的阐斜,但是手機(jī)屏幕能夠給我展示的終究是一個平面,只不過是在繪制的過程中利用色彩和線條讓畫面呈現(xiàn)出3D的效果诀紊。OpenGL ES將這種從3D到2D的轉(zhuǎn)換過程利用投影的方式使計算相對使用者來說變得簡單可設(shè)置谒出。
OpenGL ES中有兩種投影方式:正交投影透視投影。正交投影邻奠,物體不會隨距離觀測點的位置而大小發(fā)生變化笤喳。而透視投影,距離觀測點越遠(yuǎn)碌宴,物體越小杀狡,距離觀測點越近,物體越大贰镣。

光照

如果利用直接給出顏色的方式來對3D場景中的物體進(jìn)行著色渲染呜象,很難使3D場景擁有較強(qiáng)的真實感膳凝。一般來說,曲面物體比平面物體更能體現(xiàn)出光照效果恭陡。想用數(shù)學(xué)模型完全模擬真實世界的光照情況是很難的蹬音,而OpenGL ES 2.0采用的光照模型相對真實世界的光照是進(jìn)行了很大的簡化。在OpenGL ES 2.0中休玩,光照由三種元素組成(也可以說是三種通道組成)著淆,分別為環(huán)境光鏡面光散射光拴疤。

  • 環(huán)境光是指從四面八方照射到物體上永部,其具體公式為:
image.png
  • 散射光是指現(xiàn)實世界中組草的物體表面被光照射時,反射光在各個方向基本均勻的情況呐矾,其具體公式為:
image.png

實際開發(fā)中往往分兩步計算:


image.png
  • 鏡面光是指現(xiàn)實世界中光滑的表面被照射時會有方向很集中的反射光苔埋,與散射光最終強(qiáng)度依賴于入射光與被照射點的法向量夾角不同,鏡面光的強(qiáng)度還依賴于觀察者的位置凫佛,具體公式如下:


    image.png

    實際開發(fā)中也是往往分兩步計算:

image.png

紋理映射

現(xiàn)實世界中的物體往往是絢麗多彩的讲坎,要模擬現(xiàn)實世界的絢麗多彩孕惜,繪制出更加真實愧薛、酷炫的3D物體,就需要用到紋理映射了衫画。紋理映射是將2D的紋理映射到3D場景中的立體物體上毫炉。

其它

其它更多的諸如3D模型加載、貼圖削罩、陰影瞄勾、粒子、混合與霧弥激、標(biāo)志板进陡、天空盒和與天空穹等知識后續(xù)學(xué)習(xí)使用時再詳細(xì)介紹。

參考:https://blog.csdn.net/junzia/article/details/52793354

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末微服,一起剝皮案震驚了整個濱河市趾疚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌以蕴,老刑警劉巖糙麦,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丛肮,居然都是意外死亡赡磅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門宝与,熙熙樓的掌柜王于貴愁眉苦臉地迎上來焚廊,“玉大人冶匹,你說我怎么就攤上這事〗谥担” “怎么了徙硅?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長搞疗。 經(jīng)常有香客問我嗓蘑,道長,這世上最難降的妖魔是什么匿乃? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任桩皿,我火速辦了婚禮,結(jié)果婚禮上幢炸,老公的妹妹穿的比我還像新娘泄隔。我一直安慰自己,他們只是感情好宛徊,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布佛嬉。 她就那樣靜靜地躺著,像睡著了一般闸天。 火紅的嫁衣襯著肌膚如雪暖呕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天苞氮,我揣著相機(jī)與錄音湾揽,去河邊找鬼。 笑死笼吟,一個胖子當(dāng)著我的面吹牛库物,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贷帮,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼戚揭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了撵枢?” 一聲冷哼從身側(cè)響起民晒,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诲侮,沒想到半個月后镀虐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沟绪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年刮便,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绽慈。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡恨旱,死狀恐怖辈毯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搜贤,我是刑警寧澤谆沃,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站仪芒,受9級特大地震影響唁影,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掂名,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一据沈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饺蔑,春花似錦锌介、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至发皿,卻和暖如春崔慧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背雳窟。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工尊浪, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留匣屡,地道東北人封救。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像捣作,于是被迫代替她去往敵國和親誉结。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

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