一種3d立體桌面系統(tǒng)及其實(shí)現(xiàn)方法
【專(zhuān)利摘要】本發(fā)明一種3D立體桌面系統(tǒng)及其實(shí)現(xiàn)方法,包括:模型導(dǎo)入管理模塊,用于導(dǎo)入及儲(chǔ)存3D立體模型文件;解析模塊,用于解析3D立體模型文件獲得模型數(shù)據(jù);渲染模塊,用于根據(jù)模型數(shù)據(jù)重新繪制渲染3D立體模型;顯示模塊,用于將重新繪制的3D立體模型顯示于屏幕3D模型場(chǎng)景中。本發(fā)明通過(guò)設(shè)置模型導(dǎo)入管理模塊、解析模塊、渲染模塊、顯示模塊,將3D立體模型導(dǎo)入并進(jìn)行數(shù)據(jù)解析,再利用OpenGL底層進(jìn)行重新繪制渲染,以實(shí)現(xiàn)移動(dòng)終端的3D立體桌面,從而能增強(qiáng)移動(dòng)終端界面的趣味性和互動(dòng)性,提升用戶(hù)體驗(yàn)。
【專(zhuān)利說(shuō)明】一種3D立體桌面系統(tǒng)及其實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)終端領(lǐng)域,尤其涉及一種3D立體桌面系統(tǒng)及其實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]隨著終端設(shè)備的硬件配置越來(lái)越高,平面的、抽象的桌面已經(jīng)不能滿足用戶(hù)日益增高的使用需求。目前終端設(shè)備的桌面一般是二維的平面,桌面上每個(gè)元素都是一個(gè)抽象圖片代表的圖標(biāo),比較單調(diào)。隨著移動(dòng)終端界面交互技術(shù)的發(fā)展,用戶(hù)對(duì)于界面的要求也逐漸提高,而3D界面無(wú)疑可以給用戶(hù)更好的體驗(yàn)。然而,現(xiàn)有版本的移動(dòng)終端操作系統(tǒng)的桌面并未能提供3D界面。因此,如何向用戶(hù)提供一種新穎的桌面以提升用戶(hù)體驗(yàn),是現(xiàn)時(shí)需要解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0003]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種適用于手機(jī)操作系統(tǒng),能增強(qiáng)移動(dòng)終端界面趣味性和互動(dòng)性,提升用戶(hù)體驗(yàn)的3D立體桌面系統(tǒng)。
[0004]本發(fā)明的另外一個(gè)目的在于提供一種3D立體桌面系統(tǒng)實(shí)現(xiàn)方法。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:一種3D立體桌面系統(tǒng),包括:模型導(dǎo)入管理模塊,用于導(dǎo)入及儲(chǔ)存3D立體模型文件;解析模塊,用于解析3D立體模型文件獲得模型數(shù)據(jù);渲染模塊,用于根據(jù)模型數(shù)據(jù)重新繪制渲染3D立體模型;顯示模塊,用于將重新繪制的3D立體模型顯示于屏幕3D模型場(chǎng)景中。
[0006]進(jìn)一步,所述渲染模塊利用OpenGL底層進(jìn)行渲染,所述OpenGL底層創(chuàng)建數(shù)據(jù)緩沖區(qū)加載模型數(shù)據(jù)并進(jìn)行繪制渲染;將繪制渲染后的3D立體模型通過(guò)顯示模塊顯示于3D模型場(chǎng)景中。
[0007]進(jìn)一步,所述3D立體模型文件中嵌入有骨骼動(dòng)畫(huà),以實(shí)現(xiàn)模型中動(dòng)態(tài)功能鍵的動(dòng)畫(huà)展示。
[0008]進(jìn)一步,所述3D立體桌面系統(tǒng)還包括用于模擬一些剛體、流體的運(yùn)動(dòng)的物理仿真引擎。
[0009]進(jìn)一步,當(dāng)用戶(hù)輸入旋轉(zhuǎn)指令時(shí),所述3D立體模型繞著自身的中心軸在3D場(chǎng)景做旋轉(zhuǎn);當(dāng)用戶(hù)輸入移動(dòng)指令時(shí),所述3D立體模型隨著用戶(hù)的移動(dòng)軌跡移動(dòng);當(dāng)用戶(hù)輸入編輯指令時(shí),所述3D立體模型的大小可縮放。
[0010]進(jìn)一步,所述3D立體桌面系統(tǒng)還包括碰撞檢測(cè)模塊,用于檢測(cè)屏幕上被拖動(dòng)的3D立體模型的坐標(biāo)是否與其它模型的坐標(biāo)相交。
[0011]一種3D立體桌面系統(tǒng)實(shí)現(xiàn)方法,其特征在于,該方法包括以下步驟:
[0012]a、導(dǎo)入3D立體模型文件到模型導(dǎo)入管理模塊中;
[0013]b、解析模塊解析3D立體模型文件,獲得模型數(shù)據(jù);
[0014]C、渲染模塊調(diào)用模型數(shù)據(jù),利用OpenGL底層進(jìn)行繪制渲染;
[0015]d、顯示模塊將重新繪制的3D立體模型顯示于屏幕3D模型場(chǎng)景中。[0016]進(jìn)一步,在所述步驟c中渲染模塊調(diào)用模型數(shù)據(jù),利用OpenGL底層進(jìn)行繪制渲染的具體過(guò)程包括:
[0017]e、初始化渲染模塊,并啟動(dòng)渲染線程;
[0018]f、渲染線程根據(jù)消息,從指令列表中讀取繪制指令,執(zhí)行繪制指令;
[0019]g、OpenGL底層創(chuàng)建數(shù)據(jù)緩沖區(qū)加載模型數(shù)據(jù);
[0020]h、渲染線程從數(shù)據(jù)緩沖區(qū)提取繪制所需的相關(guān)數(shù)據(jù);
[0021]1、調(diào)用OpenGL提供的繪圖API進(jìn)行繪制渲染;
[0022]j、渲染線程寫(xiě)數(shù)據(jù)緩沖區(qū)的指針前移,實(shí)現(xiàn)循環(huán)讀?。?br>
[0023]k、渲染線程完成繪制后,將讀數(shù)據(jù)緩沖區(qū)的指針前移,實(shí)現(xiàn)循環(huán)讀取;
[0024]1、整個(gè)繪制線程結(jié)束后,渲染線程進(jìn)入休眠循環(huán)等待新的繪制消息到達(dá)。
[0025]相對(duì)于現(xiàn)有技術(shù),本發(fā)明所述的技術(shù)方案通過(guò)設(shè)置模型導(dǎo)入管理模塊、解析模塊、渲染模塊、顯示模塊,將3D立體模型導(dǎo)入并進(jìn)行數(shù)據(jù)解析,再利用OpenGL底層進(jìn)行重新繪制渲染,以實(shí)現(xiàn)移動(dòng)終端的3D立體桌面,從而能增強(qiáng)移動(dòng)終端界面的趣味性和互動(dòng)性,提升用戶(hù)體驗(yàn)。
[0026]為了充分地了解本發(fā)明的目的、特征和效果,以下將結(jié)合附圖對(duì)本發(fā)明的構(gòu)思、具體結(jié)構(gòu)及產(chǎn)生的技術(shù)效果作進(jìn)一步說(shuō)明。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0027]圖1是本發(fā)明所述3D立體桌面系統(tǒng)的模塊示意圖;
[0028]圖2是本發(fā)明所述3D立體桌面系統(tǒng)實(shí)現(xiàn)方法的流程圖;
[0029]圖3是本發(fā)明所述渲染模塊繪制渲染過(guò)程流程圖。
【具體實(shí)施方式】
[0030]下面將結(jié)合附圖以及具體實(shí)施方法來(lái)詳細(xì)說(shuō)明本發(fā)明,在本發(fā)明的示意性實(shí)施及說(shuō)明用來(lái)解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。
[0031]如圖1所示,一種3D立體桌面系統(tǒng),包括:模型導(dǎo)入管理模塊,用于導(dǎo)入及儲(chǔ)存3D立體模型文件;解析模塊,用于解析3D立體模型文件獲得模型數(shù)據(jù);渲染模塊,用于根據(jù)模型數(shù)據(jù)重新繪制渲染3D立體模型;顯示模塊,用于將重新繪制的3D立體模型顯示于屏幕3D模型場(chǎng)景中。
[0032]所述渲染模塊利用OpenGL底層進(jìn)行渲染,所述OpenGL底層創(chuàng)建數(shù)據(jù)緩沖區(qū)加載模型數(shù)據(jù)并進(jìn)行繪制渲染;將繪制渲染后的3D立體模型通過(guò)顯示模塊顯示于3D模型場(chǎng)景中。
[0033]所述3D立體模型文件中嵌入有骨骼動(dòng)畫(huà),以實(shí)現(xiàn)模型中動(dòng)態(tài)功能鍵的動(dòng)畫(huà)展示。
[0034]所述3D立體桌面系統(tǒng)還包括用于模擬一些剛體、流體的運(yùn)動(dòng),以及流體對(duì)置于其中的物體的影響的物理仿真Box2d引擎。Box2d引擎采用C++版本,通過(guò)jni的方式來(lái)使用,抽取Iibgdx對(duì)Box2d封裝使用。
[0035]當(dāng)用戶(hù)輸入旋轉(zhuǎn)指令時(shí),所述3D立體模型繞著自身的中心軸在3D場(chǎng)景做旋轉(zhuǎn);當(dāng)用戶(hù)輸入移動(dòng)指令時(shí),所述3D立體模型隨著用戶(hù)的移動(dòng)軌跡移動(dòng);當(dāng)用戶(hù)輸入編輯指令時(shí),所述3D立體模型的大小可縮放。[0036]所述3D立體桌面系統(tǒng)還包括碰撞檢測(cè)模塊,用于檢測(cè)屏幕上被拖動(dòng)的3D立體模型的坐標(biāo)是否與其它模型的坐標(biāo)相交,如相交,則停止移動(dòng)該模型,查詢(xún)預(yù)先保存的被拖動(dòng)的模型與發(fā)生碰撞的模型之間的空間位置關(guān)系,將被拖動(dòng)的模型顯示在符合所述空間位置關(guān)系的位置上;如不相交,則跟隨用戶(hù)拖動(dòng)的軌跡同步移動(dòng)該模型。
[0037]如圖2所示,一種3D立體桌面系統(tǒng)實(shí)現(xiàn)方法,該方法包括以下步驟:
[0038]步驟SlOl:導(dǎo)入3D立體模型文件到模型導(dǎo)入管理模塊中;
[0039]步驟S102:解析模塊解析3D立體模型文件,獲得模型數(shù)據(jù);
[0040]步驟S103:渲染模塊調(diào)用模型數(shù)據(jù),利用OpenGL底層進(jìn)行繪制渲染;
[0041]步驟S104:顯示模塊將重新繪制的3D立體模型顯示于屏幕3D模型場(chǎng)景中。
[0042]如圖3所示,在所述步驟S103中渲染模塊調(diào)用模型數(shù)據(jù),利用OpenGL底層進(jìn)行繪制渲染的具體過(guò)程包括:
[0043]步驟S201:初始化渲染模塊,并啟動(dòng)渲染線程;
[0044]步驟S202:渲染線程根據(jù)消息,從指令列表中讀取繪制指令,執(zhí)行繪制指令;
[0045]步驟S203 =OpenGL底層創(chuàng)建數(shù)據(jù)緩沖區(qū)加載模型數(shù)據(jù);
[0046]步驟S204:渲染線程從數(shù)據(jù)緩沖區(qū)提取繪制所需的相關(guān)數(shù)據(jù);
[0047]步驟S205:調(diào)用OpenGL提供的繪圖API進(jìn)行繪制渲染;
[0048]步驟S206:渲染線程寫(xiě)數(shù)據(jù)緩沖區(qū)的指針前移,實(shí)現(xiàn)循環(huán)讀?。?br>
[0049]步驟S207:渲染線程完成繪制后,將讀數(shù)據(jù)緩沖區(qū)的指針前移,實(shí)現(xiàn)循環(huán)讀??;
[0050]步驟S208:整個(gè)繪制線程結(jié)束后,渲染線程進(jìn)入休眠循環(huán)等待新的繪制消息到達(dá)。
[0051]本發(fā)明所述的技術(shù)方案通過(guò)設(shè)置模型導(dǎo)入管理模塊、解析模塊、渲染模塊、顯示模塊,將3D立體模型導(dǎo)入并進(jìn)行數(shù)據(jù)解析,再利用OpenGL底層進(jìn)行重新繪制渲染,以實(shí)現(xiàn)移動(dòng)終端的3D立體桌面,從而能增強(qiáng)移動(dòng)終端界面的趣味性和互動(dòng)性,提升用戶(hù)體驗(yàn)。
[0052]以上詳細(xì)描述了本發(fā)明的較佳具體實(shí)施例,應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)無(wú)需創(chuàng)造性勞動(dòng)就可以根據(jù)本發(fā)明的構(gòu)思作出諸多修改和變化。因此,凡本【技術(shù)領(lǐng)域】中技術(shù)人員依本發(fā)明構(gòu)思在現(xiàn)有技術(shù)基礎(chǔ)上通過(guò)邏輯分析、推理或者根據(jù)有限的實(shí)驗(yàn)可以得到的技術(shù)方案,均應(yīng)該在由本權(quán)利要求書(shū)所確定的保護(hù)范圍之中。
【權(quán)利要求】
1.一種3D立體桌面系統(tǒng),其特征在于,包括:模型導(dǎo)入管理模塊,用于導(dǎo)入及儲(chǔ)存3D立體模型文件;解析模塊,用于解析3D立體模型文件獲得模型數(shù)據(jù);渲染模塊,用于根據(jù)模型數(shù)據(jù)重新繪制渲染3D立體模型;顯示模塊,用于將重新繪制的3D立體模型顯示于屏幕3D模型場(chǎng)景中。
2.如權(quán)利要求1所述的3D立體桌面系統(tǒng),其特征在于,所述渲染模塊利用OpenGL底層進(jìn)行渲染,所述OpenGL底層創(chuàng)建數(shù)據(jù)緩沖區(qū)加載模型數(shù)據(jù)并進(jìn)行繪制渲染;將繪制渲染后的3D立體模型通過(guò)顯示模塊顯示于3D模型場(chǎng)景中。
3.如權(quán)利要求1所述的3D立體桌面系統(tǒng),其特征在于,所述3D立體模型文件中嵌入有骨骼動(dòng)畫(huà),以實(shí)現(xiàn)模型中動(dòng)態(tài)功能鍵的動(dòng)畫(huà)展示。
4.如權(quán)利要求1所述的3D立體桌面系統(tǒng),其特征在于,所述3D立體桌面系統(tǒng)還包括用于模擬一些剛體、流體的運(yùn)動(dòng)的物理仿真弓I擎。
5.如權(quán)利要求1所述的3D立體桌面系統(tǒng),其特征在于,當(dāng)用戶(hù)輸入旋轉(zhuǎn)指令時(shí),所述3D立體模型繞著自身的中心軸在3D場(chǎng)景做旋轉(zhuǎn);當(dāng)用戶(hù)輸入移動(dòng)指令時(shí),所述3D立體模型隨著用戶(hù)的移動(dòng)軌跡移動(dòng);當(dāng)用戶(hù)輸入編輯指令時(shí),所述3D立體模型的大小可縮放。
6.如權(quán)利要求1?5任一項(xiàng)所述的3D立體桌面系統(tǒng),其特征在于,所述3D立體桌面系統(tǒng)還包括碰撞檢測(cè)模塊,用于檢測(cè)屏幕上被拖動(dòng)的3D立體模型的坐標(biāo)是否與其它模型的坐標(biāo)相交。
7.—種3D立體桌面系統(tǒng)實(shí)現(xiàn)方法,其特征在于,該方法包括以下步驟: a、導(dǎo)入3D立體模型文件到模型導(dǎo)入管理模塊中; b、解析模塊解析3D立體模型文件,獲得模型數(shù)據(jù); C、渲染模塊調(diào)用模型數(shù)據(jù),利用OpenGL底層進(jìn)行繪制渲染; d、顯示模塊將重新繪制的3D立體模型顯示于屏幕3D模型場(chǎng)景中。
8.如權(quán)利要求7所述的3D立體桌面系統(tǒng)實(shí)現(xiàn)方法,其特征在于,在所述步驟c中渲染模塊調(diào)用模型數(shù)據(jù),利用OpenGL底層進(jìn)行繪制渲染的具體過(guò)程包括: e、初始化渲染模塊,并啟動(dòng)渲染線程; f、渲染線程根據(jù)消息,從指令列表中讀取繪制指令,執(zhí)行繪制指令; g> OpenGL底層創(chuàng)建數(shù)據(jù)緩沖區(qū)加載模型數(shù)據(jù); h、渲染線程從數(shù)據(jù)緩沖區(qū)提取繪制所需的相關(guān)數(shù)據(jù); .1、調(diào)用OpenGL提供的繪圖API進(jìn)行繪制渲染; j、渲染線程寫(xiě)數(shù)據(jù)緩沖區(qū)的指針前移,實(shí)現(xiàn)循環(huán)讀?。? k、渲染線程完成繪制后,將讀數(shù)據(jù)緩沖區(qū)的指針前移,實(shí)現(xiàn)循環(huán)讀??; . 1、整個(gè)繪制線程結(jié)束后,渲染線程進(jìn)入休眠循環(huán)等待新的繪制消息到達(dá)。
【文檔編號(hào)】G06F3/0481GK103577046SQ201310508549
【公開(kāi)日】2014年2月12日 申請(qǐng)日期:2013年10月24日 優(yōu)先權(quán)日:2013年10月24日
【發(fā)明者】鄧裕強(qiáng), 黃愛(ài)華, 梁國(guó)盛, 鄧偉明, 陳家煜 申請(qǐng)人:廣州市久邦數(shù)碼科技有限公司