亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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)起來。

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

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

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

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

        用戶界面、視頻游戲等都依賴于OpenGL去驅(qū)動(dòng)顯示硬件來加速渲染,探究其后的原理、機(jī)制和技術(shù),對于深入把握計(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)較長的時(shí)間去理解。矩陣變換、光照計(jì)算涉及到數(shù)學(xué)運(yùn)算和基本理論,學(xué)生學(xué)習(xí)起來相對枯燥吃力。

        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)開始支持可編程渲染流水線,也即可以使用GLSL(OpenGL著色語言)來為圖形硬件編寫可在其上執(zhí)行的程序(shader),大大增強(qiáng)了圖形硬件的功能和靈活性。

        固定渲染流水線時(shí)期的部分API(應(yīng)用程序接口)已經(jīng)不推薦使用,這意味著我們需要自己編寫shader來實(shí)現(xiàn)固定流水線階段提供的矩陣變換、光照計(jì)算等功能,這些功能在固定渲染流水線中是通過改變OpenGL內(nèi)部狀態(tài)就可以實(shí)現(xiàn)的。很多同學(xué)認(rèn)為這非常不方便,但是系統(tǒng)化地去編程實(shí)現(xiàn)這些功能對于把握背后的圖形學(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à)值,對于消除shader“神秘感”,開闊視野均有一定的價(jià)值。在教學(xué)實(shí)踐中,我們選擇了其中的一些shader.來進(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來進(jìn)行硬件加速渲染,AndroidSDK(軟件開發(fā)套件)也提供了對OpenGL ES的支持。除此之外,Android的基本動(dòng)畫機(jī)制容易理解,也很容易使用OpenGL ES來模仿實(shí)現(xiàn)。

        Android動(dòng)畫中,巾貞動(dòng)畫對應(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)行基本的圖像處理包括:顏色通道提取、圖像彩色變成黑白、圖像縮小及放大、圖像倒置或水平鏡像、圖像裁剪、圖像混合、圖像遮罩顯示、圖像過渡漸變、圖像增加噪聲、去除背景綠幕等,還包括簡單的利用卷積進(jìn)行處理,如平滑過濾、邊緣檢測、銳化處理、浮雕效果等。

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

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

        OpenGL的經(jīng)典書籍,比如《OpenGL超級寶典》、《OpenGL編程指南》等,涵蓋面較廣,篇幅較長,適合作為參考書籍。作為補(bǔ)充,有不少成體系的英文OpenGL網(wǎng)絡(luò)教程,部分被一些熱心的OpenGL愛好者翻譯成中文。這些英文教程的案例具有很好的參考價(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é)合,使得課程更接“地氣”,增加了課程的“親和力”。過去幾年的實(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.

        亚州AV成人无码久久精品| 丰满多毛的大隂户毛茸茸| 午夜dj在线观看免费视频 | 日本一级三级在线观看| 亚洲精品无码精品mv在线观看| 成人爽a毛片在线视频| 2021国产成人精品国产| 男女视频网站免费精品播放| 黄片视频免费在线播放观看| аⅴ资源天堂资源库在线| 日韩中文字幕不卡网站| 最新日本免费一区二区三区| 国产成人精品无码免费看| 国产精品18久久久久久麻辣| 久久国产欧美日韩高清专区| 女同在线视频一区二区| 久久精品国产亚洲av果冻传媒| 国产自偷亚洲精品页65页| 亚洲国产精品综合久久20| 深夜福利国产精品中文字幕| 国产精品久久久久精品一区二区| 最近高清中文在线字幕观看| 免费人成黄页网站在线观看国内| 美妇炮灰被狂躁爽到高潮h| 国产精品亚洲欧美大片在线看| 国产成人AV无码精品无毒| 日韩精品一区二区三区av| 欧美老熟妇乱子| 精品无码国产污污污免费网站 | 成熟了的熟妇毛茸茸| 日产精品久久久久久久性色| 天天中文字幕av天天爽| 亚洲中文字幕人成乱码在线| 欧美亚洲熟妇一区二区三区| 日中文字幕在线| 国产一区二区白浆在线观看| 国产午夜精品av一区二区麻豆| 5级做人爱c视版免费视频| 久久一二三四区中文字幕| 国产亚洲精品久久久久5区| 亚洲欧洲巨乳清纯|