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

OpenGL ES的應用

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

王玉峰

摘要

案例驅動的OpenGLES教學改革,突出了GLSL的核心地位,也和游戲引擎、Android、圖形處理等技術做了一定的融合,還借鑒了優秀的英文網絡教程并制作了在線案例,努力使課程豐富、生動起來。

【關鍵詞】OpenGL ES 案例驅動

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

1 OpenGL ES及其授課面臨的挑戰

Android、IOS兩個手機操作系統均對OpenGL ES提供了良好的發展。隨著智能手機的普及,OpenGL ES的應用范圍得以大范圍擴展,其也得以蓬勃發展。

用戶界面、視頻游戲等都依賴于OpenGL去驅動顯示硬件來加速渲染,探究其后的原理、機制和技術,對于深入把握計算機圖形學理論、理解游戲引擎、優化程序設計等都具有重要的現實意義。

OpenGL ES即使是作為OpenGL的裁剪版本,仍然是龐大的,把握其中的關鍵點尤為重要。渲染流水線、狀態機兩個機制,學生難以轉換思維方式,需要花費較長的時間去理解。矩陣變換、光照計算涉及到數學運算和基本理論,學生學習起來相對枯燥吃力。

2 案例驅動OpenGL授課的相關實踐

案例設計突出了以下幾個要點:

2.1 實現固定渲染流水線功能,把4屋可編程流水線精髓

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

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

2.2 借鑒Cocos2d-x的著色器設計,講解shader的基本運用

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

2.3模仿Android動畫相關類,實現基本的動態渲染

Android本身依賴OpenGL ES來進行硬件加速渲染,AndroidSDK(軟件開發套件)也提供了對OpenGL ES的支持。除此之外,Android的基本動畫機制容易理解,也很容易使用OpenGL ES來模仿實現。

Android動畫中,巾貞動畫對應的Java類是AnimationDrawable。在基本紋理濱染的基礎上,增加隨時間切換紋理的機制,就可以實現基本的幀動畫。

Android的補間動畫相關的Java類分別是AlphaAnimation、TranslateAnimation、ScaleAnimation、RotateAnimation。在基本紋理渲染的基礎上,增加隨時間改變目標片元顏色的alpha值的機制,就可以實現淡入淡出效果。同樣,隨時間改變頂點著色器中的模型變換矩陣,就可以實現位移、縮放、旋轉的補間動畫。

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

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

進行基本的圖像處理大大激發了學生的學習興趣,也加深了對片元處理器的理解,提高了shader的編寫技能。

2.5 引入優秀網絡教程相關案例,豐富實驗內容和課余練習素材

OpenGL的經典書籍,比如《OpenGL超級寶典》、《OpenGL編程指南》等,涵蓋面較廣,篇幅較長,適合作為參考書籍。作為補充,有不少成體系的英文OpenGL網絡教程,部分被一些熱心的OpenGL愛好者翻譯成中文。這些英文教程的案例具有很好的參考價值,大大豐富了課程實驗內容。

網絡教程中,比較突出的有leamopengl.com網站的《Leam OpenGL》、www.opengl-tutorial.org網站的《OpenGL Tutorial》、ogldev.atspacexo.uk網站的《Model Opengl Tutorials》、www.tomdalling.com網站的《Modem Opengl Serials》等,其中前兩個都有中文譯文。在課程實踐中,要求學生把這些教程作為輔助讀物。

3 課程改革實踐的效果及改進方向

相比于計算機圖形學課程,本課程側重于程序設計,需要重點把握OpenGL的API使用和GLSL運用。以案例驅動為導向的課程實踐,突出了程序設計的核心地位,也使得基礎理論有了生動的外在“表象”,便于加深理解,使得理論和實踐相輔相成。和C0C0s2d-x、Android、圖像處理等技術進行一定程度的結合,使得課程更接“地氣”,增加了課程的“親和力”。過去幾年的實踐表明,學生普遍表示課程內容豐富、有趣。

參考文獻

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

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

主站蜘蛛池模板: 国产高潮视频在线观看| 51国产偷自视频区视频手机观看 | 色婷婷狠狠干| 91亚洲精品第一| 国产乱人伦AV在线A| 91精品国产自产在线观看| 国产精品福利社| 呦女亚洲一区精品| 精品国产女同疯狂摩擦2| 欧美日韩在线亚洲国产人| 日本一区中文字幕最新在线| 欧洲av毛片| 国产白浆在线观看| 国产香蕉在线| 成人在线观看一区| 亚洲视频a| 中文字幕 日韩 欧美| 国产女主播一区| 国产精品无码在线看| 国产一区二区精品高清在线观看| 国产精品无码在线看| 婷婷丁香色| 免费观看成人久久网免费观看| 制服丝袜亚洲| 免费一级大毛片a一观看不卡| 黄色网站在线观看无码| 91av成人日本不卡三区| 久久久久久高潮白浆| 久草中文网| 2021国产精品自拍| 九九热这里只有国产精品| 欧美中文一区| 日本不卡在线播放| 国产在线观看一区二区三区| 无码一区二区波多野结衣播放搜索| 国产香蕉在线视频| 久久综合伊人77777| 超碰91免费人妻| 久久久波多野结衣av一区二区| 亚洲色图另类| 国产欧美专区在线观看| 国产精品成人一区二区不卡| 搞黄网站免费观看| 精品国产乱码久久久久久一区二区| 漂亮人妻被中出中文字幕久久| 51国产偷自视频区视频手机观看| 蜜桃视频一区| 亚洲男人的天堂在线| 一级毛片在线免费视频| 看看一级毛片| 免费一极毛片| 伊人色综合久久天天| 毛片国产精品完整版| 国产亚洲美日韩AV中文字幕无码成人| 免费人成黄页在线观看国产| 久久久精品无码一二三区| 欧美成人精品高清在线下载| 成年网址网站在线观看| 国产亚洲视频中文字幕视频| 亚洲天堂精品视频| 亚洲日本www| 91亚洲精品第一| 岛国精品一区免费视频在线观看 | 露脸一二三区国语对白| 久草国产在线观看| 欧美一级高清片欧美国产欧美| 亚洲免费毛片| 久久综合色88| 亚洲无码在线午夜电影| 伊人久久青草青青综合| 亚洲国产第一区二区香蕉| a级高清毛片| 欧美性精品| 精品国产成人a在线观看| 成人精品午夜福利在线播放 | 国产大全韩国亚洲一区二区三区| 久久伊人色| 91精品专区国产盗摄| 国产午夜无码片在线观看网站 | 婷婷亚洲综合五月天在线| 激情六月丁香婷婷四房播| av在线手机播放|