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

基于Android的動態壁紙的設計

2019-12-09 02:06:28王曉東
智富時代 2019年10期
關鍵詞:設計

【摘 要】本文介紹了手機動態壁紙的設計方法,以及實現的過程。運行的目標平臺為Android,使用OpenGL ES3.0渲染技術。

【關鍵詞】Android;動態壁紙;設計

一、引言

隨著移動互聯網的快速發展,單一的圖片壁紙已經不能滿足用戶的需求,動態壁紙用動態的影像替換了原始古板的靜態壁紙,并且不影響圖標的顯示和應用程序的使用。通過動態壁紙讓桌面顯得更加酷炫、個性,增加手機的魅力。本項目采用的動態壁紙為3D水族館,在該壁紙中有許多自由游動的魚,地面有不斷一張一合的珍珠貝和不斷閃爍的珍珠。還有幾處不斷冒出氣泡,并且這些氣泡隨高度增加而不斷變大。用戶可以單擊地面給魚喂食,也可以左右滑動屏幕,使壁紙跟隨滑動。使用3ds Max對模型進行設計與貼圖,所有相關圖片資源統一放在一個項目文件夾中。采用OpenGL ES3.0渲染技術,使得場景中有很強的立體感,以及非常逼真的光影效果。

二、類的設計

在水族館壁紙的制作中設計了很多類,主要有以下五個方面。(1)壁紙實現類,具體又有壁紙服務類和自定義場景渲染器類。前者是水族館壁紙的基礎類,通過繼承GLWallpaperService類,重寫onCreateEngine方法等來實現壁紙功能;后者是水族館壁紙的核心類,在本類中首先設置使用渲染技術,然后創建需要繪制的所有對象,設置繪制方式,加載各類物體模型以及所需紋理,設置攝像機位置,使用投影矩陣,初始化光源位置等。

(2)繪制類,具體包括群魚控制類、單條魚類、單個魚群類、喂食類、魚食類、氣泡控制類以及珍珠貝類等。群魚控制類定義了群魚列表,存放所有的單條魚對象,創建并啟動魚的移動線程,最后遍歷列表對魚進行繪制。單條魚類定義了魚的所有屬性,包括位置、速度、外力、質量以及旋轉角度等,單個魚群類定義了魚群中每條魚的所有相關屬性。喂食類是食物的控制類,其中的startFeed方法由攝像機與觸控點確定一條與場景地面高度交叉的拾取射線,并計算出交點的坐標。魚食類的作用是創建并啟動線程,繪制魚食。

(3)線程類,具體包括群魚游動線程類、魚食移動線程類和氣泡移動線程類等。群魚游動線程類的作用是通過遍歷群魚列表判斷兩條魚之間的距離,若距離小于閾值,則兩條魚之間產生力的作用。還可以進行碰撞檢測,修改外力、速度和位置等屬性值。魚食移動線程類的主要作用是判斷魚群中的魚與相對位置的距離,若大于閾值就會對該魚產生向心力,并對魚群進行碰撞檢測。氣泡移動線程類的作用是遍歷氣泡列表,判斷氣泡移動方向,然后調用氣泡對象中的bubbleMove方法,實現氣泡的移動。

(4)工具常量類,具體包括常量類、向量類、屏幕拾取類和存儲矩陣狀態類等。常量類是整個壁紙中用到的所有靜態常量的集合,向量類包含了相關向量算法、獲取力的大小等方法。屏幕拾取類通過拾取計算獲得觸控點在攝像機坐標系中的坐標,再乘以攝像機矩陣的逆矩陣,即可得到該點在世界坐標系中的坐標。

(5)輔助繪制類,具體包括背景圖輔助繪制類、氣泡輔助繪制類和珍珠貝輔助繪制類等。以背景圖輔助繪制類為例,它給出背景圖的頂點坐標和紋理坐標,并生成緩沖送進渲染管線,用來繪制背景圖。

三、類的實現

以自定義場景渲染器類為例,介紹動態壁紙相關類的實現。首先清除深度緩沖與顏色緩沖,進行現場保護,依次繪制背景圖、魚食、單條魚魚群以及珍珠貝。相關代碼如下:

GLE30.glClear(GLES30.GL_DEPTH_BUFFER_BIT| GLES30.GL_COLOR_BUFFER_BIT);

if(bg!=null){bg.drawSelf(back);}

if(singlefood!=null){singlefood.drawSelf();}

if(fishControl!=null){fishControl.drawSelf();}

…………

重寫onSurfaceChanged方法,設置視窗的尺寸和位置,計算寬高比,產生投影矩陣以及攝像機參數位置矩陣。相關代碼如下:

GLES30.glViewport(0,0,width,height);

float ratio=(float)width/height;

…………

重寫onSurfaceCreated方法,初始化光源位置,加載紋理,加載BNModel模型,創建魚群、珍珠貝等對象,開啟深度檢測等。相關代碼如下:

MatrixState.setInitStack();

MatrixState.setLightLocation(0,9,13);

dpm=initTexture(MySurfaceView,this,getResources(),”dpm.png”);

back=initTexture(MySurfaceView,this,getResources(),”background.png”);

…………

重寫initTexture方法,通過輸入流從assets中加載圖片,生成紋理ID,設置紋理的拉伸方式,設置紋理采樣方式,最后釋放Bitmap。相關代碼如下:

GLES30.glGenTextures(1,textures,0);

int textureId=textures[0];

GLES30.glBindTexture(GLES30.GL_TEXTURE_2D,textureId);

back=initTexture(MySurfaceView,this,getResources(),”background.png”);

…………

bitmapTmp.recycle();

四、結語

在軟件設計過程中,重點是著色器的應用,以及魚游動過程中魚與魚之間作用力的變化規律等。動態壁紙的界面和風格還可以繼續改進,使其更加完美。例如水族館背景壁紙、魚的骨骼動畫及紋理圖、珍珠貝的紋理圖都可以進一步完善,從而達到更加理想的效果。本項目將明暗紋理和法向量的計算放在了片元著色器上進行,這樣的處理方式占用資源過多。可以考慮將片元著色器中這部分計算任務轉移到頂點著色器中進行,預期會顯著減少壁紙在運行時對手機GPU資源的消耗。

【參考文獻】

[1] 吳亞峰. Android應用案例開發大全(第4版)[M].北京:人民郵電出版社, 2018.

作者簡介:王曉東(1971—),男,漢族,湖北十堰人,副教授,主要研究方向:軟件開發。

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 天堂亚洲网| 国产成人一区免费观看| 91精品情国产情侣高潮对白蜜| 日韩av无码精品专区| 四虎影视永久在线精品| 制服丝袜一区| 久久精品无码国产一区二区三区| 中文字幕无码中文字幕有码在线| 99资源在线| 多人乱p欧美在线观看| 99国产精品国产高清一区二区| 极品国产一区二区三区| 成人精品区| 亚洲国产看片基地久久1024| 亚洲天堂免费观看| 国产成人综合日韩精品无码首页| 尤物午夜福利视频| 欧洲精品视频在线观看| 国产高清在线精品一区二区三区| 国产精品偷伦视频免费观看国产| 日本人又色又爽的视频| 国产成人高清精品免费5388| 免费国产高清视频| 伊人久热这里只有精品视频99| 中文字幕av一区二区三区欲色| 国产视频大全| 精品国产成人av免费| 亚洲永久视频| 精品一區二區久久久久久久網站| 欧美a级在线| 一本大道AV人久久综合| 欧洲av毛片| 欧美人与性动交a欧美精品| 久久人搡人人玩人妻精品| 国产三级a| 免费在线看黄网址| 久久亚洲高清国产| 无码精品国产dvd在线观看9久| 久久国产精品影院| 一本大道无码日韩精品影视| 亚洲不卡影院| 在线免费a视频| 国产97视频在线观看| 国产精品亚洲一区二区三区z| 亚洲第一黄片大全| 国模极品一区二区三区| 一区二区自拍| 四虎永久免费在线| 成年网址网站在线观看| 亚洲中文字幕国产av| 在线观看免费国产| 亚洲成a人片在线观看88| 精品午夜国产福利观看| 狠狠色成人综合首页| 午夜福利视频一区| 久久亚洲美女精品国产精品| 黄色网页在线播放| 中文字幕中文字字幕码一二区| 黄色网站不卡无码| 99re在线视频观看| 99国产在线视频| 9啪在线视频| 四虎永久免费地址在线网站| 五月天丁香婷婷综合久久| 天天视频在线91频| 日韩av电影一区二区三区四区| 色欲不卡无码一区二区| 久久青草免费91线频观看不卡| 婷婷伊人久久| 啊嗯不日本网站| 国产网站一区二区三区| 亚洲天堂.com| 激情無極限的亚洲一区免费| 美女裸体18禁网站| 九九九久久国产精品| 亚洲欧美极品| 日本午夜三级| 99久视频| 亚洲二区视频| 园内精品自拍视频在线播放| 中文字幕人妻av一区二区| 波多野结衣国产精品|