面的半自動(dòng)刷新。
[0027]應(yīng)用程序數(shù)據(jù)對(duì)接中間件提供一套按鍵事件回調(diào)機(jī)制,實(shí)現(xiàn)3D界面焦點(diǎn)的自動(dòng)控制和數(shù)據(jù)元的按鍵回調(diào)處理。按鍵回調(diào)處理方法如下,如圖3,3D View在獲取按鍵事件時(shí),將立即將此事件存入渲染線(xiàn)程的事件隊(duì)列中,當(dāng)渲染線(xiàn)程的循環(huán)輪詢(xún)到這個(gè)事件后,觸發(fā)GameKit的按鍵處理流程,GameKit將先檢測(cè)3D模型設(shè)計(jì)時(shí)注冊(cè)的GameLogic是否有此按鍵監(jiān)聽(tīng)。如果有監(jiān)聽(tīng),則執(zhí)行GameLogic的操作,按鍵流程結(jié)束,如果沒(méi)有監(jiān)聽(tīng),則回調(diào)到模型元的按鍵回調(diào)接口,再回調(diào)數(shù)據(jù)元的按鍵事件處理,組成完整的按鍵事件回調(diào)鏈。
[0028]本發(fā)明基于Android應(yīng)用程序運(yùn)行框架的中間件,提供單獨(dú)3D線(xiàn)程管控,界面數(shù)據(jù)刷新接口,按鍵事件處理等UI基本元素支撐。通過(guò)獨(dú)立渲染線(xiàn)程啟動(dòng)并運(yùn)行3D引擎,然后加載并解析前端輸出的blend文件,生成3D UI場(chǎng)景。然后從指定接口獲取界面數(shù)據(jù)并刷新,完成整個(gè)3D UI的開(kāi)發(fā)。
[0029]本發(fā)明面向程序開(kāi)發(fā)兩端的“用戶(hù)”:前端界面設(shè)計(jì)者和程序功能開(kāi)發(fā)者。前端界面設(shè)計(jì)通過(guò)Blender設(shè)計(jì)界面和動(dòng)畫(huà)以及交互,輸出成果直接放到應(yīng)用程序中解析,生成真機(jī)3D畫(huà)面。省卻了程序開(kāi)發(fā)者依據(jù)設(shè)計(jì)效果圖重新模擬布局,以及調(diào)整交互邏輯等可能需要反復(fù)修改,導(dǎo)致開(kāi)發(fā)周期延長(zhǎng)的不穩(wěn)定過(guò)程。程序功能開(kāi)發(fā)者在拋開(kāi)界面布局和交互邏輯控制的繁瑣任務(wù)后,依托開(kāi)發(fā)平臺(tái)的數(shù)據(jù)對(duì)接開(kāi)發(fā)庫(kù),組織好列表化的數(shù)據(jù)元素,就可快速完成程序功能的實(shí)現(xiàn)。
[0030]其具體實(shí)現(xiàn)如下:
[0031]1.前端設(shè)計(jì)人員設(shè)計(jì)了界面模型,動(dòng)畫(huà),交互邏輯,腳本等后,將所有打包成一個(gè).blend文件,輸出給程序開(kāi)發(fā)人員;
[0032]2.平臺(tái)給程序開(kāi)發(fā)人員提供一個(gè)GameKit的開(kāi)發(fā)庫(kù)(.so文件),和一個(gè)程序開(kāi)發(fā)中間件(.jar包),用于3D界面運(yùn)行和數(shù)據(jù)對(duì)接;
[0033]3.開(kāi)發(fā)人員依據(jù)和設(shè)計(jì)人員商定好的數(shù)據(jù)結(jié)構(gòu),覆寫(xiě)數(shù)據(jù)接口以及按鍵事件回調(diào)接口,完成數(shù)據(jù)對(duì)接。并將3D View添加到程序的指定顯示位置,實(shí)現(xiàn)3D Π的顯示與控制;
[0034]基于我們的程序運(yùn)行框架,應(yīng)用程序的運(yùn)行流程如下:
[0035]1.程序啟動(dòng),構(gòu)建3D View ;
[0036]2.渲染線(xiàn)程啟動(dòng),開(kāi)始啟動(dòng)3D引擎;
[0037]3.開(kāi)始加載.blend文件,并解析文件,在3D引擎中生成3D場(chǎng)景(渲染線(xiàn)程中);
[0038]4.運(yùn)行init腳本,初始化模型數(shù)據(jù)化列表,并回調(diào)主線(xiàn)程文件加載成功(渲染線(xiàn)程中);
[0039]5.主線(xiàn)程初始化數(shù)據(jù)列表,將3D View添加到當(dāng)前window,并調(diào)用3D界面入場(chǎng)動(dòng)畫(huà);
[0040]6.主線(xiàn)程發(fā)出界面刷新請(qǐng)求;
[0041]7.渲染線(xiàn)程播放完入場(chǎng)動(dòng)畫(huà)后,給各個(gè)貼圖模型刷上貼圖素材;
[0042]8.用戶(hù)按鍵,轉(zhuǎn)存進(jìn)渲染線(xiàn)程事件隊(duì)列;
[0043]9.渲染線(xiàn)程檢測(cè)到按鍵事件,先檢測(cè)3D Π設(shè)計(jì)時(shí)的GameLogic,有監(jiān)聽(tīng)按鍵,則按GameLogic處理(焦點(diǎn)切換動(dòng)畫(huà)調(diào)用),否則回調(diào)主線(xiàn)程數(shù)據(jù)元按鍵處理流程;
[0044]以上對(duì)本發(fā)明所提供的一種基于3D引擎的智能電視Π開(kāi)發(fā)平臺(tái)進(jìn)行了詳盡介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,對(duì)本發(fā)明的變更和改進(jìn)將是可能的,而不會(huì)超出附加權(quán)利要求所規(guī)定的構(gòu)思和范圍,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【主權(quán)項(xiàng)】
1.一種基于3D引擎的智能電視UI開(kāi)發(fā)平臺(tái),其特征在于:該平臺(tái)框架主要由3D引擎、3D界面設(shè)計(jì)開(kāi)發(fā)庫(kù)、應(yīng)用程序數(shù)據(jù)對(duì)接中間件組成, 所述3D引擎,采用Ogre圖形渲染引擎,基于Ogre引擎再引入一個(gè)GameKit封裝引擎的渲染接口,并根據(jù)智能電視界面開(kāi)發(fā)需求導(dǎo)出粒子系統(tǒng)、光照系統(tǒng)、物理系統(tǒng)的3D特效開(kāi)關(guān); 所述3D界面設(shè)計(jì)開(kāi)發(fā)庫(kù),采用定制Blender工具,界面設(shè)計(jì)人員可以方便快捷地進(jìn)行UI前端設(shè)計(jì),并提供與GameKit對(duì)接了的開(kāi)發(fā)庫(kù); 所述應(yīng)用程序數(shù)據(jù)對(duì)接中間件,主要包括3D Activity組件、3D界面的View組件; 所述3D引擎上帶有前端設(shè)計(jì)開(kāi)發(fā)庫(kù)和中間件JNI接口,所述3D引擎通過(guò)前端設(shè)計(jì)開(kāi)發(fā)庫(kù)與3D界面設(shè)計(jì)開(kāi)發(fā)庫(kù)對(duì)接,所述3D引擎通過(guò)中間件JNI接口與3D界面的View組件對(duì)接。2.根據(jù)權(quán)利要求1所述的一種基于3D引擎的智能電視Π開(kāi)發(fā)平臺(tái),其特征在于:所述View組件提供單獨(dú)3D線(xiàn)程管控,維護(hù)了一個(gè)渲染緩沖線(xiàn)程,所述渲染線(xiàn)程自帶循環(huán),將3D引擎運(yùn)行在這個(gè)線(xiàn)程中,實(shí)現(xiàn)界面的循環(huán)刷新。3.根據(jù)權(quán)利要求2所述的一種基于3D引擎的智能電視Π開(kāi)發(fā)平臺(tái),其特征在于:所述應(yīng)用程序數(shù)據(jù)對(duì)接中間件基于渲染線(xiàn)程的循環(huán),再維護(hù)一個(gè)事件隊(duì)列,用于3D UI的刷新請(qǐng)求以及按鍵事件的有序處理。4.根據(jù)權(quán)利要求3所述的一種基于3D引擎的智能電視Π開(kāi)發(fā)平臺(tái),其特征在于:所述應(yīng)用程序數(shù)據(jù)對(duì)接中間件提供一個(gè)兩極數(shù)據(jù)分層匹配架構(gòu),實(shí)現(xiàn)UI和數(shù)據(jù)分離。5.根據(jù)權(quán)利要求4所述的一種基于3D引擎的智能電視UI開(kāi)發(fā)平臺(tái),其特征在于:所述兩極數(shù)據(jù)分層匹配架構(gòu)是將界面上相同結(jié)構(gòu)的模型單元?dú)w成一個(gè)模型列表,一個(gè)模型單元,并與之對(duì)應(yīng)的創(chuàng)建數(shù)據(jù)元類(lèi)和數(shù)據(jù)元列表類(lèi)。模型列表和數(shù)據(jù)元列表以名稱(chēng)一一對(duì)應(yīng),模型單元和數(shù)據(jù)元以在列表中的序號(hào)一一對(duì)應(yīng),每類(lèi)數(shù)據(jù)元中有一個(gè)與模型單元中的貼圖模型對(duì)應(yīng)的素材獲取接口,數(shù)據(jù)對(duì)接時(shí),只需要覆寫(xiě)這個(gè)素材獲取接口,告知中間件從何獲取貼圖素材,即可實(shí)現(xiàn)界面的半自動(dòng)刷新。6.根據(jù)權(quán)利要求3所述的一種基于3D引擎的智能電視UI開(kāi)發(fā)平臺(tái),其特征在于:應(yīng)用程序數(shù)據(jù)對(duì)接中間件提供一套按鍵事件回調(diào)機(jī)制,實(shí)現(xiàn)3D界面焦點(diǎn)的自動(dòng)控制和數(shù)據(jù)元的按鍵回調(diào)處理。7.根據(jù)權(quán)利要求6所述的一種基于3D引擎的智能電視UI開(kāi)發(fā)平臺(tái),其特征在于:按鍵回調(diào)處理方法如下,3D View在獲取按鍵事件時(shí),將立即將此事件存入渲染線(xiàn)程的事件隊(duì)列中,當(dāng)渲染線(xiàn)程的循環(huán)輪詢(xún)到這個(gè)事件后,觸發(fā)GameKit的按鍵處理流程,GameKit將先檢測(cè)3D模型設(shè)計(jì)時(shí)注冊(cè)的GameLogic是否有此按鍵監(jiān)聽(tīng)。如果有監(jiān)聽(tīng),則執(zhí)行GameLogic的操作,按鍵流程結(jié)束,如果沒(méi)有監(jiān)聽(tīng),則回調(diào)到模型元的按鍵回調(diào)接口,再回調(diào)數(shù)據(jù)元的按鍵事件處理,組成完整的按鍵事件回調(diào)鏈。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于3D引擎的智能電視UI開(kāi)發(fā)平臺(tái),該平臺(tái)框架主要由3D引擎、3D界面設(shè)計(jì)開(kāi)發(fā)庫(kù)、應(yīng)用程序數(shù)據(jù)對(duì)接中間件組成,所述3D引擎通過(guò)前端設(shè)計(jì)開(kāi)發(fā)庫(kù)與3D界面設(shè)計(jì)開(kāi)發(fā)庫(kù)對(duì)接,所述3D引擎通過(guò)中間件JNI接口與3D界面的View組件對(duì)接。與現(xiàn)有技術(shù)相比,本發(fā)明通過(guò)整合3D建模工具、跨平臺(tái)的3D圖形渲染引擎以及基于具體的應(yīng)用平臺(tái)Android系統(tǒng)的應(yīng)用開(kāi)發(fā)庫(kù),形成一個(gè)開(kāi)發(fā)平臺(tái)。分離程序功能數(shù)據(jù)和UI,實(shí)現(xiàn)界面UI設(shè)計(jì)和開(kāi)發(fā)的一次設(shè)計(jì),一次成型;并提供穩(wěn)定的數(shù)據(jù)組織架構(gòu)和程序運(yùn)行框架,實(shí)現(xiàn)數(shù)據(jù)和UI的快速對(duì)接,極大的縮減程序開(kāi)發(fā)周期,降低開(kāi)發(fā)與維護(hù)的難度和成本。
【IPC分類(lèi)】H04N21/81, H04N21/443, G06T17/00
【公開(kāi)號(hào)】CN104883615
【申請(qǐng)?zhí)枴緾N201510260898
【發(fā)明人】張蛟, 李足紅, 陳科宇, 謝剛, 趙國(guó)氽, 陳貴鳳
【申請(qǐng)人】四川長(zhǎng)虹電器股份有限公司
【公開(kāi)日】2015年9月2日
【申請(qǐng)日】2015年5月20日