本發(fā)明涉及android應(yīng)用的顯示方法和裸眼3d顯示領(lǐng)域,尤其涉及一種android應(yīng)用的裸眼3d顯示方法。
背景技術(shù):
android是一種基于linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。隨著近幾年移動(dòng)設(shè)備的高速發(fā)展,android逐漸成為移動(dòng)設(shè)備上的主要操作系統(tǒng),在2011年全球的市場(chǎng)份額上首次超過(guò)塞班系統(tǒng),躍居全球第一,2013年的第四季度,android平臺(tái)手機(jī)的全球市場(chǎng)份額已經(jīng)達(dá)到78.1%。
越來(lái)越多的移動(dòng)設(shè)備選用android作為他們的操作系統(tǒng),而在移動(dòng)設(shè)備上android應(yīng)用更是五花八門(mén),2014年android應(yīng)用數(shù)量高達(dá)143萬(wàn)超過(guò)了ios應(yīng)用數(shù)量。由于android系統(tǒng)是完全開(kāi)源的,android平臺(tái)提供給第三方開(kāi)發(fā)商一個(gè)十分寬泛、自由的環(huán)境,所以各種新穎的android應(yīng)用層出不窮。android應(yīng)用的ui界面是用戶對(duì)android應(yīng)用的第一感觀,獨(dú)特優(yōu)秀的ui界面設(shè)計(jì)會(huì)給人帶來(lái)舒暢的視覺(jué)享受,拉近人與機(jī)器的距離,隨著軟件應(yīng)用的廣泛,開(kāi)發(fā)者關(guān)于ui界面設(shè)計(jì)需要也逐步提高,用戶不止看中其功用實(shí)用性,更是需要ui來(lái)提升用戶領(lǐng)會(huì)性,在操作享受軟件帶來(lái)的便當(dāng)之余也不乏其美麗性帶來(lái)的愉悅感。
本發(fā)明就是提出一種全新的android應(yīng)用界面顯示方法,應(yīng)用裸眼3d顯示技術(shù)在android系統(tǒng)中顯示真實(shí)的3d圖形影像,塑造一種全新的裸眼3dui顯示界面。應(yīng)用了裸眼3d顯示方法可以讓android應(yīng)用界面看起來(lái)栩栩如生,具有真實(shí)的立體感官享受,還能夠讓用戶和移動(dòng)設(shè)備進(jìn)行具有真實(shí)感的人機(jī)交互,擺脫2d屏幕的束縛,而且開(kāi)發(fā)者還可以利用android應(yīng)用裸眼3d顯示方法進(jìn)行更加獨(dú)特生動(dòng)的ui界面和功能應(yīng)用開(kāi)發(fā)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種android應(yīng)用的裸眼3d顯示方法。該方法能提供給android開(kāi)發(fā)者一種全新的ui界面設(shè)計(jì)方法和全新的極具震撼效果的android應(yīng)用展示平臺(tái),具有比傳統(tǒng)2d的android應(yīng)用更加真實(shí)圖像顯示和更加生動(dòng)的三維立體交互體驗(yàn)。
如上所述,實(shí)現(xiàn)一種android應(yīng)用的裸眼3d顯示方法包括如下步驟:
a.在3d引擎中重新創(chuàng)建新的android工程,將原有的android工程資源包導(dǎo)入裸眼3d開(kāi)發(fā)工程中,并且加載裸眼ui界面資源包和裸眼camera資源包;
b.在主窗體布局界面activity中創(chuàng)建用戶界面,在用戶界面窗口中調(diào)用裸眼ui界面資源包用以編輯用戶界面。ui界面設(shè)置可以在指定的模擬屏幕中繪制3d區(qū)域,為每個(gè)3d區(qū)域設(shè)置好深度信息;
c.在每個(gè)3d區(qū)域內(nèi),編寫(xiě)腳本代碼以形成相應(yīng)的ui交互功能并且在3d區(qū)域內(nèi)添加圖片,文字信息以充實(shí)ui功能組件的材質(zhì),然后再給每個(gè)ui的功能組件綁定深度信息以達(dá)到用戶對(duì)界面立體效果的需求;
d.將編輯好的主窗體布局界面activity進(jìn)行深度立體渲染,深度立體渲染是將預(yù)編輯的ui界面通過(guò)預(yù)置深度信息,將2d的用戶界面轉(zhuǎn)換成3d立體用戶界面的渲染過(guò)程,
該過(guò)程需要用到的公式:
…
其中,
通過(guò)計(jì)算每個(gè)3d區(qū)域在n個(gè)視差中實(shí)際的空間偏移距離后,就可以在著色器的shader中使用android立體界面合成公式渲染出最終的3d立體ui界面。android立體界面合成需要對(duì)每個(gè)3d區(qū)域依次分別計(jì)算,根據(jù)計(jì)算空間實(shí)際偏移距離的結(jié)果d1,d2,d3…dn按照從小到大重新排列成t1,t2,t3…tn,再依次計(jì)算t1,t2,t3…tn:
其中tex2d是每個(gè)區(qū)域ui界面的渲染結(jié)果,p是每個(gè)區(qū)域的序號(hào),
e.在android應(yīng)用工程中的java主程序端中導(dǎo)入3d引擎庫(kù)用以在ui界面中添加3d特效,在深度立體渲染過(guò)后的主窗體布局界面activity中設(shè)置android應(yīng)用需要的模型動(dòng)畫(huà)或者動(dòng)畫(huà)特效并設(shè)置好響應(yīng)事件以得到android應(yīng)用界面;
f.使用裸眼camera資源包,創(chuàng)建裸眼3d顯示界面,將步驟5中的android應(yīng)用界面在裸眼3d顯示界面中按照android的n(n
其中tex3d是裸眼3d顯示界面的輸出圖像,
g.將渲染成裸眼3d顯示界面的android工程發(fā)布成apk,在相應(yīng)的android裸眼移動(dòng)設(shè)備中安裝運(yùn)行,用戶就可以體驗(yàn)到具有裸眼立體顯示效果的android應(yīng)用。
本發(fā)明所要解決的技術(shù)問(wèn)題:提供一種android應(yīng)用的裸眼3d顯示方法。該方法是一種全新的android設(shè)備顯示方法,該方法可以在android系統(tǒng)中顯示真實(shí)的3d圖形影像,塑造一種全新的裸眼3dui顯示界面,不僅讓android應(yīng)用界面看起來(lái)栩栩如生,具有真實(shí)的立體感官享受,還能夠讓用戶和移動(dòng)設(shè)備進(jìn)行具有真實(shí)感的人機(jī)交互,擺脫2d屏幕的束縛,而且開(kāi)發(fā)者還可以利用android應(yīng)用裸眼3d顯示方法進(jìn)行更加獨(dú)特生動(dòng)的ui界面和功能應(yīng)用開(kāi)發(fā)。
附圖說(shuō)明
圖1是本發(fā)明一種android應(yīng)用的裸眼3d顯示方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體的實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述。
圖1是本發(fā)明一種android應(yīng)用的裸眼3d顯示方法的流程圖,步驟為:
a.在開(kāi)發(fā)android應(yīng)用的3d引擎中重新創(chuàng)建android工程,將原2d的android應(yīng)用以資源包的形式導(dǎo)入新工程中,包括需要用到的腳本,圖片,文字,素材庫(kù),模型和動(dòng)畫(huà)等等并且加載裸眼ui界面資源包和裸眼camera資源包;
b.在工程的主窗體布局界面activity中創(chuàng)建好用戶界面,用戶界面包括首頁(yè)界面和次級(jí)界面等,在用戶界面中使用裸眼ui界面資源包為每個(gè)界面預(yù)先繪制3d區(qū)域,繪制的3d區(qū)域可以設(shè)定分辨率,所在屏幕的窗口坐標(biāo)和風(fēng)格類(lèi)型等。在預(yù)置的3d區(qū)域中還需要設(shè)置深度數(shù)值,深度數(shù)值直接影響了最終界面的立體效果,深度值越小表示該3d區(qū)域在界面中的z軸距離坐標(biāo)原點(diǎn)越遠(yuǎn),而深度值越大表示該3d區(qū)域在界面中的z軸距離原點(diǎn)越近。優(yōu)選的為了達(dá)到更好的立體效果,每個(gè)3d區(qū)域的深度數(shù)值需要形成一個(gè)階梯狀的排列,這樣ui界面的層次更加分明,用戶可以更加清楚地觀看到入屏和出屏效果;
c.在主窗體布局界面activity中還需要?jiǎng)?chuàng)建各種功能組件,功能組件需要使用gui(graphicaluserinterface)控件來(lái)添加相應(yīng)的功能模塊例如:按鈕,文本框,編輯框,選擇框和下拉列表等等,設(shè)定好功能模塊后還需要編寫(xiě)腳本用以實(shí)現(xiàn)各個(gè)模塊的各項(xiàng)實(shí)例功能并且綁定一個(gè)深度信息用以確定每個(gè)功能組件在ui界面中的前后關(guān)系。在用戶界面中還需要添加圖片,文字信息以充實(shí)ui功能組件的材質(zhì),優(yōu)選的這些材質(zhì)可以使用2d透明通道的材質(zhì),這樣材質(zhì)填充在功能組件中和功能組件的深度信息一致;還可以使用3d立體材質(zhì),3d材質(zhì)自身具有ui界面的z軸信息,需要預(yù)先調(diào)整好3d材質(zhì)在ui界面中的空間位置以確保功能組件能夠正確的在ui界面中顯示;
d.將編輯好的主窗體布局界面activity進(jìn)行深度立體渲染,深度立體渲染是將預(yù)編輯的ui界面通過(guò)預(yù)置深度信息,將2d的用戶界面轉(zhuǎn)換成3d立體用戶界面的渲染過(guò)程,該過(guò)程需要用到的公式:
…
其中,
通過(guò)計(jì)算每個(gè)3d區(qū)域在n個(gè)視差中實(shí)際的空間偏移距離后,就可以在著色器的shader中使用android立體界面合成公式渲染出3d立體ui界面。android立體界面合成需要對(duì)每個(gè)3d區(qū)域依次分別計(jì)算,根據(jù)計(jì)算空間實(shí)際偏移距離的結(jié)果d1,d2,d3…dn按照從小到大重新排列成t1,t2,t3…tn,再依次計(jì)算t1,t2,t3…tn:
其中tex2d是每個(gè)區(qū)域ui界面的渲染結(jié)果,p是每個(gè)區(qū)域的序號(hào),
e.在android應(yīng)用工程中的java主程序端中導(dǎo)入3d引擎庫(kù)用以在ui界面中添加3d特效。在導(dǎo)入3d引擎庫(kù)后,可以從3d引擎庫(kù)中選擇android應(yīng)用需要的模型動(dòng)畫(huà)或者動(dòng)畫(huà)特效,這些模型動(dòng)畫(huà)或動(dòng)畫(huà)特效可以通過(guò)android系統(tǒng)服務(wù)層反饋給java主程序端,由java主程序端來(lái)控制模型動(dòng)畫(huà)或者動(dòng)畫(huà)特效的響應(yīng)事件。設(shè)置好3d特效和3d特效的響應(yīng)事件后就得到了最終的android應(yīng)用界面;
f.使用裸眼camera資源包,創(chuàng)建一個(gè)裸眼3d顯示界面,最終的android應(yīng)用界面在裸眼3d顯示界面中按照android的n(n
其中tex3d是裸眼3d顯示界面的輸出圖像,
g.最后將渲染成裸眼3d顯示界面的android工程發(fā)布成apk,在相應(yīng)的android裸眼移動(dòng)設(shè)備中安裝運(yùn)行,用戶就可以體驗(yàn)到具有裸眼立體顯示效果的android應(yīng)用。