999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

OpenGL ES的應(yīng)用

2018-03-30 02:26:56王玉峰
電子技術(shù)與軟件工程 2017年16期

王玉峰

摘要

案例驅(qū)動(dòng)的OpenGLES教學(xué)改革,突出了GLSL的核心地位,也和游戲引擎、Android、圖形處理等技術(shù)做了一定的融合,還借鑒了優(yōu)秀的英文網(wǎng)絡(luò)教程并制作了在線案例,努力使課程豐富、生動(dòng)起來(lái)。

【關(guān)鍵詞】OpenGL ES 案例驅(qū)動(dòng)

OpenGL作為圖形硬件的軟件接口,被廣泛應(yīng)用于計(jì)算機(jī)圖形學(xué)理論研究、視頻游戲開(kāi)發(fā)、并行計(jì)算、計(jì)算機(jī)仿真、三維可視化等領(lǐng)域。隨著OpenGL接口的進(jìn)化,其日益強(qiáng)大、復(fù)雜,有必要將其作為一門單獨(dú)的課程來(lái)教授。在教學(xué)實(shí)踐中,限于課時(shí)數(shù)和學(xué)生基礎(chǔ),我們把OpenGL ES(OpenGL的嵌入式設(shè)備版本)作為主線來(lái)講解,而且嘗試將基礎(chǔ)知識(shí)的講解與其它課程、技術(shù)結(jié)合起來(lái),增強(qiáng)課程的吸引力和授課效果。

1 OpenGL ES及其授課面臨的挑戰(zhàn)

Android、IOS兩個(gè)手機(jī)操作系統(tǒng)均對(duì)OpenGL ES提供了良好的發(fā)展。隨著智能手機(jī)的普及,OpenGL ES的應(yīng)用范圍得以大范圍擴(kuò)展,其也得以蓬勃發(fā)展。

用戶界面、視頻游戲等都依賴于OpenGL去驅(qū)動(dòng)顯示硬件來(lái)加速渲染,探究其后的原理、機(jī)制和技術(shù),對(duì)于深入把握計(jì)算機(jī)圖形學(xué)理論、理解游戲引擎、優(yōu)化程序設(shè)計(jì)等都具有重要的現(xiàn)實(shí)意義。

OpenGL ES即使是作為OpenGL的裁剪版本,仍然是龐大的,把握其中的關(guān)鍵點(diǎn)尤為重要。渲染流水線、狀態(tài)機(jī)兩個(gè)機(jī)制,學(xué)生難以轉(zhuǎn)換思維方式,需要花費(fèi)較長(zhǎng)的時(shí)間去理解。矩陣變換、光照計(jì)算涉及到數(shù)學(xué)運(yùn)算和基本理論,學(xué)生學(xué)習(xí)起來(lái)相對(duì)枯燥吃力。

2 案例驅(qū)動(dòng)OpenGL授課的相關(guān)實(shí)踐

案例設(shè)計(jì)突出了以下幾個(gè)要點(diǎn):

2.1 實(shí)現(xiàn)固定渲染流水線功能,把4屋可編程流水線精髓

早期的OpenGL是固定渲染渲染流水線,從OpenGL 2.0(OpenGL ES也是從2.0)開(kāi)始支持可編程渲染流水線,也即可以使用GLSL(OpenGL著色語(yǔ)言)來(lái)為圖形硬件編寫可在其上執(zhí)行的程序(shader),大大增強(qiáng)了圖形硬件的功能和靈活性。

固定渲染流水線時(shí)期的部分API(應(yīng)用程序接口)已經(jīng)不推薦使用,這意味著我們需要自己編寫shader來(lái)實(shí)現(xiàn)固定流水線階段提供的矩陣變換、光照計(jì)算等功能,這些功能在固定渲染流水線中是通過(guò)改變OpenGL內(nèi)部狀態(tài)就可以實(shí)現(xiàn)的。很多同學(xué)認(rèn)為這非常不方便,但是系統(tǒng)化地去編程實(shí)現(xiàn)這些功能對(duì)于把握背后的圖形學(xué)理論非常關(guān)鍵。

2.2 借鑒Cocos2d-x的著色器設(shè)計(jì),講解shader的基本運(yùn)用

應(yīng)用非常廣泛的2D游戲引擎Cocos2d-x采用了OpenGL/OpenGLES作為底層渲染技術(shù),它預(yù)定義了二十多組shader,用于濱染其中的精靈、UI組件、粒子、天空盒、地形等可視元素,這些shader并不復(fù)雜,容易理解,具有很好的借鑒價(jià)值,對(duì)于消除shader“神秘感”,開(kāi)闊視野均有一定的價(jià)值。在教學(xué)實(shí)踐中,我們選擇了其中的一些shader.來(lái)進(jìn)行分析,借以講述頂點(diǎn)數(shù)據(jù)類型、頂點(diǎn)數(shù)據(jù)傳輸、shader間數(shù)據(jù)傳遞、片元顏色生成等。

2.3模仿Android動(dòng)畫相關(guān)類,實(shí)現(xiàn)基本的動(dòng)態(tài)渲染

Android本身依賴OpenGL ES來(lái)進(jìn)行硬件加速渲染,AndroidSDK(軟件開(kāi)發(fā)套件)也提供了對(duì)OpenGL ES的支持。除此之外,Android的基本動(dòng)畫機(jī)制容易理解,也很容易使用OpenGL ES來(lái)模仿實(shí)現(xiàn)。

Android動(dòng)畫中,巾貞動(dòng)畫對(duì)應(yīng)的Java類是AnimationDrawable。在基本紋理濱染的基礎(chǔ)上,增加隨時(shí)間切換紋理的機(jī)制,就可以實(shí)現(xiàn)基本的幀動(dòng)畫。

Android的補(bǔ)間動(dòng)畫相關(guān)的Java類分別是AlphaAnimation、TranslateAnimation、ScaleAnimation、RotateAnimation。在基本紋理渲染的基礎(chǔ)上,增加隨時(shí)間改變目標(biāo)片元顏色的alpha值的機(jī)制,就可以實(shí)現(xiàn)淡入淡出效果。同樣,隨時(shí)間改變頂點(diǎn)著色器中的模型變換矩陣,就可以實(shí)現(xiàn)位移、縮放、旋轉(zhuǎn)的補(bǔ)間動(dòng)畫。

2.4 嘗試進(jìn)行基本的圖像處理,深入了解片元著色器的功能

運(yùn)用圖形硬件進(jìn)行基本的圖像處理包括:顏色通道提取、圖像彩色變成黑白、圖像縮小及放大、圖像倒置或水平鏡像、圖像裁剪、圖像混合、圖像遮罩顯示、圖像過(guò)渡漸變、圖像增加噪聲、去除背景綠幕等,還包括簡(jiǎn)單的利用卷積進(jìn)行處理,如平滑過(guò)濾、邊緣檢測(cè)、銳化處理、浮雕效果等。

進(jìn)行基本的圖像處理大大激發(fā)了學(xué)生的學(xué)習(xí)興趣,也加深了對(duì)片元處理器的理解,提高了shader的編寫技能。

2.5 引入優(yōu)秀網(wǎng)絡(luò)教程相關(guān)案例,豐富實(shí)驗(yàn)內(nèi)容和課余練習(xí)素材

OpenGL的經(jīng)典書籍,比如《OpenGL超級(jí)寶典》、《OpenGL編程指南》等,涵蓋面較廣,篇幅較長(zhǎng),適合作為參考書籍。作為補(bǔ)充,有不少成體系的英文OpenGL網(wǎng)絡(luò)教程,部分被一些熱心的OpenGL愛(ài)好者翻譯成中文。這些英文教程的案例具有很好的參考價(jià)值,大大豐富了課程實(shí)驗(yàn)內(nèi)容。

網(wǎng)絡(luò)教程中,比較突出的有l(wèi)eamopengl.com網(wǎng)站的《Leam OpenGL》、www.opengl-tutorial.org網(wǎng)站的《OpenGL Tutorial》、ogldev.atspacexo.uk網(wǎng)站的《Model Opengl Tutorials》、www.tomdalling.com網(wǎng)站的《Modem Opengl Serials》等,其中前兩個(gè)都有中文譯文。在課程實(shí)踐中,要求學(xué)生把這些教程作為輔助讀物。

3 課程改革實(shí)踐的效果及改進(jìn)方向

相比于計(jì)算機(jī)圖形學(xué)課程,本課程側(cè)重于程序設(shè)計(jì),需要重點(diǎn)把握OpenGL的API使用和GLSL運(yùn)用。以案例驅(qū)動(dòng)為導(dǎo)向的課程實(shí)踐,突出了程序設(shè)計(jì)的核心地位,也使得基礎(chǔ)理論有了生動(dòng)的外在“表象”,便于加深理解,使得理論和實(shí)踐相輔相成。和C0C0s2d-x、Android、圖像處理等技術(shù)進(jìn)行一定程度的結(jié)合,使得課程更接“地氣”,增加了課程的“親和力”。過(guò)去幾年的實(shí)踐表明,學(xué)生普遍表示課程內(nèi)容豐富、有趣。

參考文獻(xiàn)

[1]王銳譯.[美]DaveShreiner,Graham Sellers,John Kessenich,Bill Licea-Kane.OpenGL編程指南[M].北京:機(jī)械工業(yè)出版社,2015.

[2]姚軍譯.[美]Dan Ginsburg,Budirijanto Purnomo.OpenGL ES3.0編程指南[M].北京:機(jī)械工業(yè)出版社,2015.

主站蜘蛛池模板: 国产又黄又硬又粗| 午夜啪啪福利| 亚洲综合天堂网| 亚洲国产中文精品va在线播放| 在线精品亚洲一区二区古装| 夜色爽爽影院18禁妓女影院| 天堂网亚洲系列亚洲系列| 亚洲成a∧人片在线观看无码| 免费a级毛片视频| 欧美亚洲国产视频| 米奇精品一区二区三区| 毛片免费在线| 精品国产网| 五月天在线网站| 怡红院美国分院一区二区| 97免费在线观看视频| 思思热在线视频精品| 国产毛片久久国产| 亚洲无码高清一区| 色悠久久综合| 国产精品极品美女自在线看免费一区二区| 性喷潮久久久久久久久| 免费一级全黄少妇性色生活片| 成人午夜久久| 国产青青操| 日韩精品无码免费一区二区三区 | 91精品伊人久久大香线蕉| 人妻21p大胆| 天天综合天天综合| 日本一区二区三区精品视频| 91精选国产大片| 1769国产精品免费视频| 久久伊人操| 亚洲第一在线播放| 欧美五月婷婷| 自慰网址在线观看| 夜精品a一区二区三区| 婷婷中文在线| 免费高清a毛片| 国产不卡网| 一级毛片在线播放| 欧洲免费精品视频在线| 亚洲aⅴ天堂| 亚洲av无码片一区二区三区| 日韩A∨精品日韩精品无码| 欧美在线精品怡红院| 色婷婷啪啪| 99久久精品国产综合婷婷| 欧美a在线看| 99久久亚洲综合精品TS| 91青青视频| 久久综合成人| 激情六月丁香婷婷四房播| 亚洲欧美国产视频| 午夜久久影院| 亚洲欧美在线看片AI| 一级毛片免费的| 国产福利不卡视频| 四虎精品免费久久| 男女男免费视频网站国产| 91青青草视频| 久久亚洲精少妇毛片午夜无码 | 欧美一级视频免费| 伊伊人成亚洲综合人网7777| 人妻21p大胆| 欧美丝袜高跟鞋一区二区| 色欲不卡无码一区二区| 亚洲精品成人片在线观看 | 精品免费在线视频| 欧美午夜视频在线| 亚洲精品国产首次亮相| 亚卅精品无码久久毛片乌克兰| 国产91视频观看| 久久77777| 久久精品国产91久久综合麻豆自制| 新SSS无码手机在线观看| 婷婷中文在线| 亚洲精品免费网站| 亚洲午夜福利在线| 国产偷国产偷在线高清| 一级毛片a女人刺激视频免费| 国产a v无码专区亚洲av|