freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android手機系統(tǒng)的3d桌面主題開發(fā)畢業(yè)論文-資料下載頁

2024-08-27 15:39本頁面

【導讀】引發(fā)基于該系統(tǒng)的軟件開發(fā)熱潮。本論文主要是討論與研究基于安卓智能手機操作系統(tǒng)桌。面3d特效的開發(fā)及其性能優(yōu)化,以期能對3D開發(fā)有更深入的理解,以便能提出3D開發(fā)方面的見解。在用戶轉(zhuǎn)屏時,模擬3D通過在同一屏幕上以固定的夾角、不同的視覺方向。繪制兩個相關(guān)的子視圖圖像,從而實現(xiàn)轉(zhuǎn)屏效果。②安卓開發(fā)者官網(wǎng).

  

【正文】 大值清空整個 Depth Buffer,這個最大值缺省為 ,為距離 攝像機 最遠的裁剪的距離。最小值為 0,表示距離 攝像機 最近的裁剪面的距離。距離大小為相對值而非實際距離,這個值越大表示與 攝像機 之間的距離越大。因此將初值這設為 相當于清空 Depth Buffer。 當 OpenGL 柵格化所繪制基本圖形,將計算該圖形與 攝像機 之間的距離, 并 保存在Depth Buffer 中。 然后比較所要繪制的圖形的距離和當前 Depth Buffer 中的值,如果這個距離比Depth Buffer 中的值小,表示這個物體離 攝像機 較近, OpenGL 則使用這個距離更新 Depth Buffer。 否則,表示當前要繪制的圖形在已繪制的部分物體后面,則無需繪制該圖形。 因此,在繪制地面時,由于地面距離攝像機更近,所以所有 Depth Buffer 值都被更新了,即鏡像不會被繪制 出來。 基于 Android手機系統(tǒng)的 3D桌面主題開發(fā) 33頁 那么如何使鏡像能夠不被遮擋而被繪制出來呢?那就需要在繪制地面時,關(guān)閉深度檢測。但是,這仍然不可以實現(xiàn)所需效果。因為即使關(guān)閉了深度檢測,由于圖像不透明,它仍然會去更新覆蓋所有 Depth Buffer,而且把較遠的鏡像遮擋住。所以需要開啟 OpenGL ES的混合。 圖 開啟混合后的效果 那 混合是什么呢?混合就是把兩種顏色 以某種既定的方式混合 在一起 ,再顯示在屏幕上 。具體 來說 ,就是把某一像素位置原來的顏色和將要畫上去的顏色,通過某種方式 混合 ,從而實現(xiàn)特殊的效果。 如圖 是開啟混合后的效果。 但美中不足的是,雖然把鏡像繪制出來了,物體也沒有懸空的錯覺,可是場景依然缺乏真實效果。原因是:鏡像被繪制得過于清晰細致,而現(xiàn)實生活中的倒影都是十分模糊的,并不像上圖那樣高度清晰。 那么如何解決鏡像過于清晰,缺乏真實的問題呢? 首先,我們需要引入另外一幅地板紋理圖像,這幅地板圖像與原地板紋理圖像一模一樣,差別只在于這一地板紋理圖像的透明度為 30%,而原地板紋理圖像是不透明的(如圖、圖 )。 基于 Android手機系統(tǒng)的 3D桌面主題開發(fā) 34頁 圖 不透明地板紋理圖 圖 透明度為 30%地板紋理圖 其次,修改物體的繪制順序。先繪 制不透明地板,然后繪制鏡像,再繪制透明地板,最后繪制實際物體。 最終實現(xiàn)的效果如圖 。具體代碼如代碼 。 public void onDrawFrame(GL10 gl) { ?? 省略部分代碼 /** * 1,繪制反射面 :y=0;需關(guān)閉深度檢測,并打開混合模式 */ // 開啟混合 ()。 // 設置源混合因子與目標混合因子 (, )。 (gl)。 // 繪制反射面 基于 Android手機系統(tǒng)的 3D桌面主題開發(fā) 35頁 代碼 ()。 // 關(guān)閉混合 /*** 2,繪制鏡像體:需打開深度檢測 */ // 開啟深度檢測 ()。 (gl)。 // 繪制立方體鏡像 // 繪制旋轉(zhuǎn)體 ()。 // 開燈 initLight(gl)。 // 初始化燈光效果 initMaterialWhite(gl)。 // 初始化材質(zhì)為白色 (gl)。 // 繪制 ()。 // 關(guān)燈 // 關(guān)閉深度檢測 ()。 /*** 3,繪制半透明反射面:需關(guān)閉深度檢測(默認),打開混合模式 */ // 開啟混合 ()。 (gl)。// 繪制半透明反射面,用來 繪制比較真實的效果 // 關(guān)閉混合 ()。 /*** 4,繪制實際物體:需打開深度檢測 */ ()。 // 啟用深度檢測,被遮擋的物體不會被繪制 // 繪制立方體 (gl)。 // 繪制旋轉(zhuǎn)體 ()。 // 開燈 initLight(gl)。 // 初始化燈光 效果 initMaterialWhite(gl)。 // 初始化材質(zhì)為白色 (gl)。 // 繪制 ()。 // 關(guān)燈 ()。 //關(guān)閉深度檢測,被遮擋的物體會被繪制 } 基于 Android手機系統(tǒng)的 3D桌面主題開發(fā) 36頁 優(yōu)化方案 由于使用 OpenGL ES 來開發(fā) 3D程序十分耗費 cpu 計算資源以及內(nèi)存資源,特別像在手機這種硬件資源比較匱乏的設備上運行,十分有必要對程序進行優(yōu)化,以求達到使用資源的最小化以及高資源利用率。 在最終實現(xiàn)的效果圖上可以看到:場景中心有一個每個側(cè)面都 一樣的立方體。一般情況下,首先需要把立方體的每個點坐標都計算出來,然后在內(nèi)存中創(chuàng)建浮點型緩沖區(qū),并放置立方體的坐標,最后調(diào)用繪制方法把立方體繪制出來。但實際上,對于規(guī)則的物體,在實現(xiàn)上不必要計算出其每個頂點的坐標。而是可以通過一個平面圖形的坐標平移和旋轉(zhuǎn)變換來構(gòu)建,得到最終立體圖形。如本應用程序中的立方體就可以通過矩形的平移以及旋轉(zhuǎn)變化得到。代碼 是具體代碼實現(xiàn)。 /*** 繪制物體 */ public void drawSelf(GL10 gl){ /*** 保存矩陣 */ ()。 ()。 //打開背面剪裁 //總繪制思想:通過把一個顏色矩形旋轉(zhuǎn)移位到立方體每個面的位置 //繪制立方體的每個面 //沿 y軸上升 SCALE個單位,使底面 y=0 (0, *, 0)。 //繪制前小面 ()。 (0, 0, *)。 (gl)。 ()。 //繪制后小面 ()。 (0, 0, *)。 (180, 0, 1, 0)。 (gl)。 ()。 //繪制上大面 ()。 (0,*,0)。 (90, 1, 0, 0)。 基于 Android手機系統(tǒng)的 3D桌面主題開發(fā) 37頁 代碼 由于 3D場景進入顯示階段后,仍需要不斷調(diào)用渲染器的 onDrawFrame(GL10)方法來不斷刷新重繪畫面。因此,應該把更多初始化工作以及某些十分耗費計算資源的處理放在場景初始化的階段進行。本程序中,把對圖像紋理、物體初始化以及參數(shù)計算放在此階段處理。具體代碼如代碼 。 (gl)。 ()。 //繪制左大面 ()。 (*,0,0)。 (90, 1, 0, 0)。 (90, 0, 1, 0)。 (gl)。 ()。 //繪制右大面 ()。 (*,0,0)。 (90, 1, 0, 0)。 (90, 0, 1, 0)。 (gl)。 ()。 ()。 //關(guān)閉背面剪裁 /*** 恢復矩陣 */ ()。 } public void onSurfaceCreated(GL10 gl, EGLConfig config) { ?? 省略部分代碼 /*** 初始化場景元素 */ // 初始化紋理 floorTexId = initTexture(gl, bitmapFloor)。 alphaFloorTexId = initTexture(gl, bitmapAlphaFloor)。// 用來繪制比較真實的效果 // 創(chuàng)建半透明反射面 基于 Android手機系統(tǒng)的 3D桌面主題開發(fā) 38頁 代碼 使用 OpenGL ES 開發(fā)的程序往往耗費十分多的資源,而對資源的有效管理顯得十分有必要。在編程上,對資源的有效管 理更多地展現(xiàn)在是否存在內(nèi)存泄露的問題。本程序中,使用了各種圖像資源等。因此,在銷毀場景時,釋放持有的圖像資源。具體代碼如代碼 。 代碼 總結(jié) 使用模擬 3D主題樣式,應用程序運行得十分順暢;但使用 OpenGL ES 繪制的 3D效果,會導致手機出現(xiàn)卡機現(xiàn)象。經(jīng)分析,得出以下結(jié)論: 模擬 3D主題樣式只是對圖像進行矩陣變換處理,計算量并不高,而且占用的內(nèi)存也很小(相當于記錄圖像以及矩陣數(shù)據(jù)所需內(nèi)存)。 使用 OpenGL ES 繪制 3D場景,由于屏幕本身是二維的,因此把三維場景映射到二維屏幕上,需要大量的數(shù)學運算,因而加重了 cpu 的負載。 floor = new Floor(, , alphaFloorTexId)。// 用來 繪制比較真實的效果 // 創(chuàng)建普通不透明反射面 alphaFloor = new Floor(, , floorTexId)。 /** * 計算攝像機坐標參數(shù) */ caculateCameraParams()。 } /** * 釋放資源 */ public void destroy() { /** * 釋放 bitmap資源 */ ()。 ()。 (getHolder())。 } 基于 Android手機系統(tǒng)的 3D桌面主題開發(fā) 39頁 OpenGL 的 3D場景中,會有各種的光照、色彩渲染、紋理粘貼等效果,需要對屏幕上的每個像素進行 RGBA 計算,這將占用非常多的內(nèi)存資源及 cpu計算資源。 在 OpenGL ES 的 3D 場景中,其繪制速度還與場景中元素的多少及每個元素的復雜性有關(guān)。如果場景元素越多,元素越復雜,則繪制速度越慢。 使用鏡像技術(shù)也會使繪制速度下降,因為需要在場景中,繪制鏡像和使用混合。 近幾年,無論是手機的硬件設備,還是 手機的軟件資源,都高速地發(fā)展。硬件上,不斷地更新?lián)Q代,計算能力不斷增強,幾乎可以與個人計算機媲美。軟件資源發(fā)展速更為迅速,尤其在 Google 推出開源的 Android 系統(tǒng)后,越來越多的軟件市場為用戶提供了更為豐富的軟件資源。 但盡管手機在硬件和軟件上得到了發(fā)展,其計算能力還十分有限,還有待進一步提高。因此在選擇實現(xiàn)普通 3D 效果時,首選是模擬 3D 效果,因其占用較少的計算資源。但隨著用戶對體驗提出越來越高的要求個,開發(fā)更加逼真的 3D效果將被得到推崇。因此,使用OpenGL ES 開發(fā) 3D 將是一個不可避免的趨勢, OpenGL ES 將得到更加廣泛地使用。但開發(fā)者必須意識到使用 OpenGL ES 開發(fā)應用程序的固有缺點:十分占用計算資源及內(nèi)存。所以,對 OpenGL ES 應用程序的優(yōu)化,怎么要求都不為過。 基于 Android手機系統(tǒng)的 3D桌面主題開發(fā) 40頁 參考文獻 [1]吳亞峰 蘇亞光, Android 3D 游戲開發(fā)技術(shù)詳解與典型案例 [M].北京:電子工業(yè)出版社, 2020:P79– P268 [2]閻宏, JAVA 與模式 [M]. 北京:電子工業(yè)出版社, 2020:P209– P266 [3]Lauren Darcey[美 ] Shane Conder[美 ],Android 移動開發(fā)一 本就夠 [M].北京:人民郵電出版社, 2020:P276– P298 [4]葉乃文 鄺勁筠等, JAVA 核心技術(shù)卷一:基礎知識 [M].北京:機械工業(yè)出版社, 2020:P143– P273 [5]陳昊鵬 王浩等, JAVA 核心技術(shù)卷二:高級特性 [M].北京:機械工業(yè)出版社, 2020:P1– P147 [6]李軍 徐波等, OpenGL 編程指南 [M].北京:機械工業(yè)出版社, 2020:P1– P308 [7]張琪 付飛等, OpenGL超級寶典(第 4版) [M].北京:人民郵電出版社, 2020:P1– P246 [8]陳昊鵬, JAVA 編程思想 [M].北京:機械工業(yè)出版社, 2020:P76– P108 [9]尹松強 傅鸝 .java 反射機制探究 [J], 2020 年 (第 7卷第 11 期 ):P85P85 [10] google 公司官網(wǎng) . [11] 安卓開發(fā)者官網(wǎng) . 基于 Android手機系統(tǒng)的 3D桌面主題開發(fā) 41頁 致 謝 本論文在老師的悉心指導和嚴格要求下已完成,從課題選擇到具體撰寫和修改完善,無不凝聚了老師的心血和汗水。在四年的本 科課堂學習和課外科研項目中,也始終感受到老師的淳淳教導和耐心指導,讓我受益匪淺。在此向老師表示深深的感謝和崇高的敬意。 同時要感謝項目開發(fā)時帶領(lǐng)我們的老師,是他們帶著我一步步走進實戰(zhàn)編程的世界,提高了我的開發(fā)能力和思考能力。 不積跬步無以至千里,本論文能夠順利的完成,也歸功于各位指導老師的認真負責,使我能夠很好的掌握和運用專業(yè)知識,并在論文中得以體現(xiàn)。正是有了他們的悉心幫助和支持,才使我的畢業(yè)論文工作順利完成,在此向計算機學院的全體老師表示由衷的感謝,感謝他們四年來的辛勤栽培。
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1