本申請涉及界面的顯示處理領(lǐng)域,特別涉及一種用戶界面的顯示處理方法及裝置。
背景技術(shù):
用戶界面是游戲中非常重要的一個部分,在沒有進入游戲場景前,玩家所看到的所有內(nèi)容都是用戶界面,進入場景后玩家絕大部分的交互行為都和用戶界面相關(guān)。因此,玩家對游戲的最直觀的感受,來源于用戶界面。
鑒于用戶界面對游戲的體驗起到了至關(guān)重要的影響,因此,需要對用戶界面的顯示效果(例如界面顯示的流暢性)進行提升,而目前對用戶界面的顯示效果進行提升主要從以下兩方面進行改善:(1)降低用戶界面的內(nèi)存占用率;(2)降低用戶界面的Draw Call。現(xiàn)有版本的Unity,在實際工作過程中,在生成用戶界面之前,對生成用戶界面所需的圖集進行紋理壓縮,保證生成的用戶界面中的UI紋理是經(jīng)過壓縮的,進而實現(xiàn)降低用戶界面的內(nèi)存占用率。并且,在生成用戶界面之前,對生成用戶界面所需的小圖進行合集處理,減少所有圖片整體的渲染次數(shù),進而實現(xiàn)降低用戶界面的Draw Call。
但是,目前的Unity版本不支持對包含透明或半透明圖片的圖集進行紋理壓縮,因此在對包含透明或半透明圖片的圖集進行處理時,不能同時使用合集處理和紋理壓縮,導(dǎo)致Draw Call低和內(nèi)存占用率低不可兼得,進而影響用戶界面的顯示效果。
技術(shù)實現(xiàn)要素:
為解決上述技術(shù)問題,本申請實施例提供一種用戶界面的顯示處理方法及裝置,以達(dá)到實現(xiàn)Draw Call低和內(nèi)存占用率低的兼得,進而改善用戶界面的顯示效果的目的,技術(shù)方案如下:
一種用戶界面的顯示處理方法,包括:
獲取用戶界面的用戶界面原圖組,所述用戶界面原圖組包括至少一個用戶界面原圖;
若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù);
獲取所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為按照預(yù)先設(shè)定的圖集合并格式對拆分得到的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式對拆分得到的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集;
將所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集,作為紋理壓縮的輸入數(shù)據(jù)。
一種用戶界面的顯示處理方法,包括:
獲取用戶界面的用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為:按照預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集;
所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)為:若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分,得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù);
按照指定壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
一種用戶界面的顯示處理裝置,包括:
第一獲取模塊,用于獲取用戶界面的用戶界面原圖組,所述用戶界面原圖組包括至少一個用戶界面原圖;
拆分模塊,用于若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù);
第二獲取模塊,用于獲取所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為按照預(yù)先設(shè)定的圖集合并格式對拆分得到的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式對拆分得到的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集;
第一確定模塊,用于將所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集,作為紋理壓縮的輸入數(shù)據(jù)。
一種用戶界面的顯示處理裝置,包括:
第五獲取模塊,用于獲取用戶界面的用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為:按照預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集;
所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)為:若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分,得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù);
第一壓縮模塊,用于按照指定壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
與現(xiàn)有技術(shù)相比,本申請的有益效果為:
在本申請中,若用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù),然后對拆分得到的RGB圖像數(shù)據(jù)進行合并,得到RGB圖像數(shù)據(jù)集及對拆分得到的alpha圖像數(shù)據(jù)進行合并,得到alpha圖像數(shù)據(jù)集,并將得到的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集作為紋理壓縮的輸入數(shù)據(jù),以對RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。由此可以看出,本申請公開的實施例中,首先將所有的用戶界面原圖拆分成不透明圖像數(shù)據(jù),對拆分得到的不透明圖像數(shù)據(jù)進行合圖集處理,得到不透明的圖像數(shù)據(jù)集,并對不透明的圖像數(shù)據(jù)集進行紋理壓縮,從而實現(xiàn)了包含透明或半透明圖片的圖集能夠被合圖集處理和紋理壓縮,進而實現(xiàn)了Draw Call低和內(nèi)存占用率低的兼得,進而改善用戶界面的顯示效果。
附圖說明
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的用戶界面的顯示處理系統(tǒng)的結(jié)構(gòu)框圖;
圖2是本發(fā)明實施例提供的用戶界面的顯示處理方法的一種流程圖;
圖3是本發(fā)明實施例提供的用戶界面的顯示處理方法的一種子流程圖;
圖4-1是本發(fā)明實施例提供的RGB圖集的一種示意圖;
圖4-2是本發(fā)明實施例提供的alpha圖集的一種示意圖;
圖5是本發(fā)明實施例提供的用戶界面的顯示處理方法的另一種子流程圖;
圖6是本發(fā)明實施例提供的用戶界面的顯示處理方法的再一種子流程圖;
圖7是本發(fā)明實施例提供的用戶界面的顯示處理方法的另一種流程圖;
圖8是本發(fā)明實施例提供的用戶界面的顯示處理方法的再一種子流程圖;
圖9本發(fā)明實施例提供的用戶界面的顯示處理方法的再一種流程圖;
圖10是本發(fā)明實施例提供的用戶界面的顯示處理方法的再一種流程圖;
圖11是本發(fā)明實施例提供的用戶界面的顯示處理方法的再一種流程圖;
圖12是本發(fā)明實施例提供的用戶界面的顯示處理方法的再一種流程圖;
圖13是本發(fā)明實施例提供的用戶界面的顯示處理方法的一種信令流程圖;
圖14是本發(fā)明實施例提供的用戶界面的顯示處理方法的另一種信令流程圖;
圖15是本發(fā)明實施例提供的用戶界面的顯示處理裝置的一種邏輯結(jié)構(gòu)示意圖;
圖16是本發(fā)明實施例提供的用戶界面的顯示處理裝置的另一種邏輯結(jié)構(gòu)示意圖;
圖17是本發(fā)明實施例提供的用戶界面的顯示處理裝置的再一種邏輯結(jié)構(gòu)示意圖;
圖18是本發(fā)明實施例提供的用戶界面的顯示處理設(shè)備的一種硬件結(jié)構(gòu)框圖;
圖19是本發(fā)明實施例提供的用戶界面的顯示處理裝置的再一種邏輯結(jié)構(gòu)示意圖;
圖20是本發(fā)明實施例提供的用戶界面的顯示處理裝置的再一種邏輯結(jié)構(gòu)示意圖;
圖21是本發(fā)明實施例提供的用戶界面的顯示處理裝置的再一種邏輯結(jié)構(gòu)示意圖;
圖22是本發(fā)明實施例提供的用戶界面的顯示處理裝置的再一種邏輯結(jié)構(gòu)示意圖;
圖23是本發(fā)明實施例提供的用戶界面的顯示處理設(shè)備的另一種硬件結(jié)構(gòu)框圖。
具體實施方式
下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
圖1為本發(fā)明實施例提供的用戶界面的顯示處理系統(tǒng)的結(jié)構(gòu)框圖,參照圖1,該用戶界面的顯示處理系統(tǒng)可以包括:服務(wù)器11和終端12。
服務(wù)器11為游戲開發(fā)的設(shè)備,具體涉及游戲中用戶界面的開發(fā)時,為了改善用戶界面的顯示效果,例如對界面顯示的流暢性進行提升,需要在開發(fā)過程中,對用戶界面進行優(yōu)化。
服務(wù)器11可以由單臺服務(wù)器實現(xiàn),也可以是多臺服務(wù)器組成的服務(wù)器群組。
終端12為游戲運行的設(shè)備,如智能手機、平板電腦、筆記本電腦等用戶設(shè)備。終端12對于經(jīng)服務(wù)器11優(yōu)化過的用戶界面,可以更為流暢的呈現(xiàn)給用戶,從而改善用戶的游戲體驗。
服務(wù)器11和終端12之間的交互具體可以為:服務(wù)器11將開發(fā)完成的游戲發(fā)布到網(wǎng)絡(luò)上,由終端12從網(wǎng)絡(luò)上下載游戲,并完成游戲的安裝和運行;或者,服務(wù)器11直接將開發(fā)完成的游戲發(fā)送至終端12,由終端12完成游戲的安裝和運行。
站在圖1示出的用戶界面的顯示處理系統(tǒng)中的服務(wù)器的角度,更具體的是,站在用戶界面的顯示處理系統(tǒng)中的服務(wù)器中不同于應(yīng)用開發(fā)工具(如,游戲開發(fā)工具Unity)的程序的角度,對用戶界面的顯示處理方法進行闡述,請參見圖2,其示出了本發(fā)明實施例提供的用戶界面的顯示處理方法的一種流程圖,可以包括以下步驟:
步驟S101:獲取用戶界面的用戶界面原圖組,所述用戶界面原圖組包括至少一個用戶界面原圖。
用戶界面原圖組中的一個或多個用戶界面原圖欲合成為同一個用戶界面。
步驟S102:若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù)。
RGB為是工業(yè)界的一種顏色標(biāo)準(zhǔn),通過對紅(R)、綠(G)、藍(lán)(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色,RGB即是代表紅、綠、藍(lán)三個通道的顏色。RGB圖像數(shù)據(jù)即不透明的彩色圖像數(shù)據(jù)。
alpha指的是alpha通道,alpha通道為8位的灰度通道,該通道用256級灰度來記錄圖像中的透明度信息,定義透明、不透明和半透明區(qū)域,其中白表示不透明,黑表示透明,灰表示半透明。其中,在本實施例中,alpha圖像數(shù)據(jù)為不透明的灰度圖像數(shù)據(jù)且灰度圖像數(shù)據(jù)的R、G、B通道中存儲有用戶界面原圖的alpha信息即透明度信息。
步驟S103:獲取所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為按照預(yù)先設(shè)定的圖集合并格式對拆分得到的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式對拆分得到的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集。
由于游戲開發(fā)工具Unity中UGUI組件官方自帶的合圖集方式無法將透明或半透明圖片拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),因此在本發(fā)明中,棄用游戲開發(fā)工具Unity中UGUI組件官方自帶的合圖集方式,轉(zhuǎn)由另外的合圖集工具按照預(yù)先設(shè)定的圖集合并格式對拆分得到的RGB圖像數(shù)據(jù)進行合并,得到RGB圖像數(shù)據(jù)集,并按照預(yù)先設(shè)定的圖集合并格式對拆分得到的alpha圖像數(shù)據(jù)進行合并,得到alpha圖像數(shù)據(jù)集。
步驟S104:將所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集,作為紋理壓縮的輸入數(shù)據(jù)。
在本實施例中,紋理壓縮由游戲開發(fā)工具Unity執(zhí)行,具體的,游戲開發(fā)工具Unity中的壓縮組件按照指定壓縮格式分別對RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
在本申請中,若用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù),然后對拆分得到的RGB圖像數(shù)據(jù)進行合并,得到RGB圖像數(shù)據(jù)集及對拆分得到的alpha圖像數(shù)據(jù)進行合并,得到alpha圖像數(shù)據(jù)集,并將得到的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集作為紋理壓縮的輸入數(shù)據(jù),以對RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。由此可以看出,本申請公開的實施例中,首先將所有的用戶界面原圖拆分成不透明圖像數(shù)據(jù),對拆分得到的不透明圖像數(shù)據(jù)進行合圖集處理,得到不透明的圖像數(shù)據(jù)集,并對不透明的圖像數(shù)據(jù)集進行紋理壓縮,從而實現(xiàn)了包含透明或半透明圖片的圖集能夠被合圖集處理和紋理壓縮,進而實現(xiàn)了Draw Call低和內(nèi)存占用率低的兼得,進而改善用戶界面的顯示效果。
步驟S101至步驟S104為不同于游戲開發(fā)工具Unity的單獨程序運行的過程。
在本發(fā)明中,可以定義合圖集工具為獲取方,直接從步驟S101至步驟S104對應(yīng)的單獨程序中獲取拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),并按照預(yù)先設(shè)定的圖集合并格式,分別對拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)進行合并。其中,預(yù)先設(shè)定的圖集合并格式可以預(yù)先輸入到合圖集工具中,也可以由合圖集工具在獲取拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)的同時,獲取預(yù)先設(shè)定的圖集合并格式。
當(dāng)然,也可以定義合圖集工具為接收方,由步驟S101至步驟S104對應(yīng)的單獨程序?qū)⒉鸱值玫降腞GB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)發(fā)送至合圖集工具,由合圖集工具按照預(yù)先設(shè)定的圖集合并格式,分別對拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)進行合并?;诖耍纛A(yù)先設(shè)定的圖集合并格式也由步驟S101至步驟S104對應(yīng)的單獨程序發(fā)送至合圖集工具,則上述獲取所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集的具體過程可以參見圖3,可以包括以下步驟:
步驟S11:發(fā)送所述預(yù)先設(shè)定的圖集合并格式和拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)至合圖集工具,以由所述合圖集工具按照所述預(yù)先設(shè)定的圖集合并格式,將拆分得到的RGB圖像數(shù)據(jù)合并為RGB圖像數(shù)據(jù)集,以及,將拆分得到的alpha圖像數(shù)據(jù)合并為alpha圖像數(shù)據(jù)集。
步驟S12:從所述合圖集工具中獲取所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集。
預(yù)先設(shè)定的圖集合并格式可以限定為不同的圖集合并格式,具體需與指定游戲的圖集合并格式相匹配。
在本發(fā)明中,在從合圖集工具中獲取RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集的同時,可以獲取RGB圖像數(shù)據(jù)集的大小和利用率,以便在引用圖像數(shù)據(jù)集的時候直觀看到最后圖像數(shù)據(jù)集的大小和利用率,及時的進行優(yōu)化調(diào)整。
在本發(fā)明中,合圖集工具具體可以但不局限于為:TexturePacker。使用TexturePacker的優(yōu)勢為:可以自定義合圖集的方式,如按照需求傳入?yún)?shù),強行指定圖集合并格式為同時滿足POT、正方形和RGB888屬性的格式。
其中,POT是指2的n次方,表征的是圖像數(shù)據(jù)集的大??;正方形,表征的是圖像數(shù)據(jù)集的形狀;RGB888表征的是圖像數(shù)據(jù)集的像素格式。
同理,在本發(fā)明中,可以定義游戲開發(fā)工具Unity為獲取方,直接從步驟S101至步驟S104對應(yīng)的單獨程序中獲取RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,并按照指定壓縮格式分別對RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
當(dāng)然,也可以定義游戲開發(fā)工具Unity為接收方,由步驟S101至步驟S104對應(yīng)的單獨程序?qū)GB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集發(fā)送至游戲開發(fā)工具Unity,由游戲開發(fā)工具Unity按照指定壓縮格式分別對RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
其中,指定壓縮格式可以預(yù)先輸入至游戲開發(fā)工具Unity,當(dāng)然,也可以由步驟S101至步驟S104對應(yīng)的單獨程序中將指定壓縮格式發(fā)送至游戲開發(fā)工具Unity。
為保證最后渲染出的用戶界面能夠在不同的應(yīng)用平臺(如Android平臺和iOS平臺)正常顯示,需要將指定壓縮格式限定為分別與Android平臺和iOS平臺適配的壓縮格式。具體的,與Android平臺相適配的指定壓縮格式限定為ETC1紋理壓縮格式;與iOS平臺相適配的指定壓縮格式限定為PVRTC紋理壓縮格式。
與Android平臺相適配的指定壓縮格式限定為ETC1紋理壓縮格式的原因在于:ETC1紋理壓縮格式是OpenGL ES圖形標(biāo)準(zhǔn)的一部分,并且被所有使用opengl2.0的Android設(shè)備所支持,適配性強。
優(yōu)選的,PVRTC紋理壓縮格式具體為PVRTC 4bits格式,相比于PVRTC2bits格式,降低了畫質(zhì)的損失。
其中,PVRTC 4bits格式又分為PVRTC RGBA 4bits格式和PVRTC RGB4bits格式,但是由于PVRTC RGBA 4bits格式雖然帶alpha通道,但是壓縮時R和G占位最高,A占位最低,同時透明的占位均比不透明的低,因此理論上透明的圖實際表現(xiàn)并不會太理想,經(jīng)過測試也驗證,部分貼圖中出現(xiàn)了很明顯的毛刺,部分貼圖則出現(xiàn)了邊緣輪廓線,因此質(zhì)量難以達(dá)到要求。因此,基于提高質(zhì)量的思路是提高alpha在壓縮中的比重,更為優(yōu)選的是采用PVRTC RGB 4bits格式。
與Android平臺相適配的指定壓縮格式限定為ETC1紋理壓縮格式,及與iOS平臺相適配的指定壓縮格式限定為PVRTC RGB 4bits格式的優(yōu)勢在于:ETC1紋理壓縮格式和PVRTC RGB 4bits格式各自的內(nèi)存消耗較小,如表1所示,ETC1紋理壓縮格式和PVRTC RGB 4bits格式的內(nèi)存消耗都是0.5bpp。由此可以計算得出按照ETC1紋理壓縮格式或PVRTC RGB 4bits壓縮格式進行紋理壓縮過后的內(nèi)存占用,對于一張1024*1024的紋理,不透明的圖片內(nèi)存占用是1024*1024*0.5=0.5M,透明的圖片由于拆分成了RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),有兩張壓縮紋理,因此內(nèi)存占用是1024*1024*0.5*2=1M,對比不壓縮紋理內(nèi)存1024*1024*4=4M的占用,壓縮過后可以節(jié)省4-8倍的內(nèi)存。
表1
由于ETC1紋理壓縮格式僅支持對不帶透明通道的圖片即不透明圖片進行紋理壓縮,PVRTC紋理壓縮格式僅支持對正方形圖片進行紋理壓縮,因此具體可以將預(yù)先設(shè)定的圖集合并格式限定為同時滿足POT、正方形和RGB888屬性的格式。
例如,使用合圖集工具按照同時滿足POT、正方形和RGB888屬性的格式分別對拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)進行合并,得到的RGB圖像數(shù)據(jù)集可以參見圖4-1,得到的alpha圖像數(shù)據(jù)集可以參見圖4-2。如圖4-1和圖4-2所示,RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集都是不透明圖片,而且是正方形、POT、RGB888格式的圖片,即RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集可以同時支持Android平臺的紋理壓縮格式ETC1和iOS平臺的紋理壓縮格式PVRTC。
由于與Android平臺相適配的ETC1紋理壓縮格式和與iOS平臺相適配的PVRTC紋理壓縮格式,合圖集的方式相同即若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),使用合圖集工具將拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),分別按照預(yù)先設(shè)定的圖集合并格式進行合并,得到RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,因此保證Android平臺和iOS平臺處理透明圖片的方式可以保持一致,避免了維護Android平臺和iOS平臺兩套資源。
在本發(fā)明中,合圖集工具、步驟S101至步驟S104對應(yīng)的單獨程序及游戲開發(fā)工具Unity的承載主體可以為同一個服務(wù)器。
在合圖集工具、步驟S101至步驟S104對應(yīng)的單獨程序及游戲開發(fā)工具Unity的承載主體為同一個服務(wù)器的情況下,合圖集工具、步驟S101至步驟S104對應(yīng)的單獨程序及游戲開發(fā)工具Unity在不同的時隙運行即可。
可選的,合圖集工具、步驟S101至步驟S104對應(yīng)的單獨程序及游戲開發(fā)工具Unity的承載服務(wù)器各不相同。
在合圖集工具、步驟S101至步驟S104對應(yīng)的單獨程序及游戲開發(fā)工具Unity的承載主體各不相同的情況下,可以不考慮三者在同一個服務(wù)器上的運行時隙,但需要保證三者的承載服務(wù)器能夠正常通信,并按照步驟S101至步驟S104對應(yīng)的單獨程序的執(zhí)行過程進行信息的交互。
可選的,步驟S101至步驟S104對應(yīng)的單獨程序及游戲開發(fā)工具Unity的承載服務(wù)器相同,而合圖集工具的承載主體與前兩者的承載服務(wù)器不同。
上述用戶界面的顯示處理方法中,在執(zhí)行步驟S102之前,還包括以下步驟:
判斷用戶界面原圖組中是否存在透明或半透明的用戶界面原圖。
若判斷結(jié)果為用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)。
其中,判斷用戶界面原圖組中是否存在透明或半透明的用戶界面原圖的具體實現(xiàn)過程可以參見圖5,可以包括以下步驟:
步驟S21:分別獲取所述用戶界面原圖組中各個用戶界面原圖對應(yīng)的二維紋理圖中的像素。
步驟S22:判斷所述用戶界面原圖組中各個用戶界面原圖對應(yīng)的二維紋理圖中的像素中,是否包含有頂點色包含透明度值為非255的alpha通道的像素。
透明度值為非255的alpha通道的像素即透明或半透明的像素。
若是,執(zhí)行將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù)的步驟。
由于在對用戶界面原圖組中的用戶界面原圖進行合圖集和紋理壓縮后,需要在游戲開發(fā)工具Unity中進行合成渲染,最后生成用戶界面原圖組對應(yīng)的用戶界面,因此采用的數(shù)據(jù)格式為游戲開發(fā)工具Unity中的Texture2D(即二維紋理),并遍歷二維紋理圖中的所有像素即步驟S21至步驟S22的過程。
上述用戶界面的顯示處理方法中,將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)的具體過程可以參見圖6,可以包括以下步驟:
步驟S31:分別為所述用戶界面原圖組中的每一用戶界面原圖創(chuàng)建兩張RGB24的二維紋理圖,包括:第一二維紋理圖和第二二維紋理圖。
RGB24使用24位來表示一個像素,RGB分量都用8位表示,取值范圍為0-255。
步驟S32:將所述用戶界面原圖組中的每一用戶界面原圖中的每個像素點的RGB信息賦值給該用戶界面原圖對應(yīng)的第一二維紋理圖,所述第一二維紋理圖中的RGB信息為所述用戶界面原圖對應(yīng)的RGB圖像數(shù)據(jù)。
步驟S33:將所述用戶界面原圖組中的每一用戶界面原圖中的每個像素點的alpha信息賦值給該用戶界面原圖對應(yīng)的第二二維紋理圖,所述第二二維紋理圖中的alpha信息為所述用戶界面原圖對應(yīng)的alpha圖像數(shù)據(jù)。
在圖1示出的用戶界面的顯示處理方法的基礎(chǔ)上擴展出另外一種用戶界面的顯示處理方法,請參見圖7,在圖1示出的用戶界面的顯示處理方法的基礎(chǔ)上還包括以下步驟:
步驟S105:若所述用戶界面原圖組中不存在透明或半透明的用戶界面原圖,則獲取所述用戶界面原圖組對應(yīng)的第一圖像數(shù)據(jù)集,所述第一圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式,對所述用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集。
步驟S106:將所述第一圖像數(shù)據(jù)集作為紋理壓縮的輸入數(shù)據(jù)。
在本實施例中,紋理壓縮由游戲開發(fā)工具Unity執(zhí)行,具體的,游戲開發(fā)工具Unity中的壓縮組件按照指定壓縮格式對第一圖像數(shù)據(jù)集進行紋理壓縮。
若所述用戶界面原圖組中不存在透明或半透明的用戶界面原圖,說明用戶界面原圖組中的各個用戶界面原圖均是不透明圖片。在用戶界面原圖組中的各個用戶界面原圖均是不透明圖片的情況下,不需要對用戶界面原圖進行拆分,直接對用戶界面原圖組中的各個用戶界面原圖進行合圖集即可。
第一圖像數(shù)據(jù)集仍然由上述合圖集工具按照所述預(yù)先設(shè)定的圖集合并格式,對用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)進行合并得到。
可選的,獲取所述用戶界面原圖組對應(yīng)的第一圖像數(shù)據(jù)集的具體過程可以參見圖8,可以包括以下步驟:
步驟S41:發(fā)送所述預(yù)先設(shè)定的圖集合并格式和所述用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)至所述合圖集工具,以由所述合圖集工具按照所述預(yù)先設(shè)定的圖集合并格式,將所述用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)合并為第一圖像數(shù)據(jù)集。
步驟S42:從所述合圖集工具中獲取所述第一圖像數(shù)據(jù)集。
站在圖1示出的用戶界面的顯示處理系統(tǒng)中的服務(wù)器的角度,更具體的是,站在用戶界面的顯示處理系統(tǒng)中的服務(wù)器中游戲開發(fā)工具Unity的角度,對用戶界面的顯示處理方法進行闡述,請參見圖9,其示出了本申請?zhí)峁┑挠脩艚缑娴娘@示處理方法的一種流程圖,可以包括以下步驟:
步驟S201:獲取用戶界面的用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為:按照預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為:按照所述預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集;
所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)為:若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分,得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù)。
如圖1示出的用戶界面的顯示處理方法中所述,游戲開發(fā)工具Unity可以作為獲取方,直接從步驟S101至步驟S104對應(yīng)的單獨程序中獲取用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集;也可以作為接收方,接收步驟S101至步驟S104對應(yīng)的單獨程序發(fā)送的用戶界面原圖組隊員的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集。
步驟S202:按照指定壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
游戲開發(fā)工具Unity在按照指定壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮后,需要對紋理壓縮后的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行渲染合成,生成用戶界面原圖組對應(yīng)的用戶界面,具體的渲染合成過程,請參見圖10,可以包括以下步驟:
步驟S203:創(chuàng)建材質(zhì)球,并在所述材質(zhì)球上添加自定義的用戶界面著色器,所述自定義的用戶界面著色器包含有進行紋理壓縮后的alpha圖像數(shù)據(jù)集。
步驟S204:將應(yīng)用開發(fā)工具中UGUI的Image組件的sprite賦值為進行紋理壓縮后的RGB圖像數(shù)據(jù)集中的RGB圖像數(shù)據(jù)。
在本實施例中,應(yīng)用開發(fā)工具具體是指游戲開發(fā)工具Unity。
步驟S205:將所述應(yīng)用開發(fā)工具中UGUI的Image組件的material賦值為所述材質(zhì)球。
步驟S206:按照所述自定義的用戶界面著色器中的渲染邏輯,對所述sprite中進行紋理壓縮后的RGB圖像數(shù)據(jù)集中的RGB圖像數(shù)據(jù)和所述material中進行紋理壓縮后的alpha圖像數(shù)據(jù)集中的alpha圖像數(shù)據(jù)進行合成,得到透明圖片。
由于合圖集工具合圖集的位置和圖片的名稱、大小相關(guān),一張透明圖片拆分之后的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)大小肯定一致,名字重命名一致,因此一張透明圖片拆分后的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)再合并到各自的大圖集之后,在大圖集中uv坐標(biāo)肯定一致?;诖耍远x的用戶界面著色器中的渲染邏輯為:同一個uv坐標(biāo)的像素點的RGB信息從進行紋理壓縮后的RGB圖像數(shù)據(jù)集中提取,alpha信息從進行紋理壓縮后的alpha圖像數(shù)據(jù)集中提取,將提取到的RGB信息和alpha信息合成,得到該像素點的完整的RGBA信息。
基于上述自定義的用戶界面著色器中的渲染邏輯,按照所述自定義的用戶界面著色器中的渲染邏輯,對所述sprite中進行紋理壓縮后的RGB圖像數(shù)據(jù)集中的RGB圖像數(shù)據(jù)和所述material中進行紋理壓縮后的alpha圖像數(shù)據(jù)集中的alpha圖像數(shù)據(jù)進行合成,得到透明圖片的具體實現(xiàn)過程即為:提取各個uv坐標(biāo)對應(yīng)的所述sprite中進行紋理壓縮后的RGB圖像數(shù)據(jù)集中的RGB圖像數(shù)據(jù)和所述material中進行紋理壓縮后的alpha圖像數(shù)據(jù)集中的alpha圖像數(shù)據(jù),并對提取到的各個uv坐標(biāo)對應(yīng)的所述sprite中進行紋理壓縮后的RGB圖像數(shù)據(jù)集中的RGB圖像數(shù)據(jù)和所述material中進行紋理壓縮后的alpha圖像數(shù)據(jù)集中的alpha圖像數(shù)據(jù)進行合成,得到各個uv坐標(biāo)對應(yīng)的完整RGBA圖,并對各個uv坐標(biāo)對應(yīng)的完整RGBA圖進行組合,得到透明圖片。
圖10示出的用戶界面的顯示處理方法,即完成了透明圖片的生成。
在圖9示出的用戶界面的顯示處理方法的基礎(chǔ)上擴展出另外一種用戶界面的顯示處理方法,請參見圖11,在圖9示出的用戶界面的顯示處理方法的基礎(chǔ)上還包括以下步驟:
步驟S207:獲取第一圖像數(shù)據(jù)集,所述第一圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式,對所述用戶界面原圖組中的各個用戶界面原圖進行合并得到的圖像數(shù)據(jù)集。
在本方法實施例中,用戶界面原圖組中的各個用戶界面原圖均為不透明圖片。
步驟S208:按照所述指定壓縮格式對所述第一圖像數(shù)據(jù)集進行紋理壓縮。
在按照指定壓縮格式對所述第一圖像數(shù)據(jù)集進行紋理壓縮之后,需要對進行紋理壓縮后的第一圖像數(shù)據(jù)集進行合成,生成不透明圖片,具體的合成過程請參見圖12,可以包括以下步驟:
步驟S209:將所述應(yīng)用開發(fā)工具中UGUI的Image組件的sprite賦值為進行紋理壓縮后的圖像數(shù)據(jù)集里的圖像數(shù)據(jù),并將所述sprite中進行紋理壓縮后的圖像數(shù)據(jù)集里的圖像數(shù)據(jù),合成為不透明圖片。
在本方法實施例中,預(yù)先設(shè)定的圖集合并格式和指定壓縮格式的說明及具體限定與圖1示出的用戶界面的顯示處理方法中的預(yù)先設(shè)定的圖集合并格式和指定壓縮格式相同,在此不再贅述。
站在圖1示出的用戶界面的顯示處理系統(tǒng)中的服務(wù)器的角度,更具體的是,站在用戶界面的顯示處理系統(tǒng)中的服務(wù)器中不同于游戲開發(fā)工具Unity的程序與游戲開發(fā)工具Unity交互的角度,對用戶界面的顯示處理方法進行闡述,請參見圖13,其示出了本發(fā)明實施例提供的用戶界面的顯示處理方法的一種信令流程圖,可以包括以下步驟:
步驟S301:獲取用戶界面的用戶界面原圖組,所述用戶界面原圖組包括至少一個用戶界面原圖。
步驟S302:若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù)。
步驟S303:發(fā)送預(yù)先設(shè)定的圖集合并格式和拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)至合圖集工具,以由所述合圖集工具按照所述預(yù)先設(shè)定的圖集合并格式,將拆分得到的RGB圖像數(shù)據(jù)合并為RGB圖像數(shù)據(jù)集,以及,將拆分得到的alpha圖像數(shù)據(jù)合并為alpha圖像數(shù)據(jù)集。
步驟S304:從所述合圖集工具中獲取所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集。
步驟S305:發(fā)送所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集至游戲開發(fā)工具Unity。
步驟S306:游戲開發(fā)工具Unity接收所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集。
步驟S307:游戲開發(fā)工具Unity按照指定壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
步驟S308:游戲開發(fā)工具Unity創(chuàng)建材質(zhì)球,并在所述材質(zhì)球上添加自定義的用戶界面著色器,所述自定義的用戶界面著色器包含有進行紋理壓縮后的alpha圖像數(shù)據(jù)集。
步驟S309:將游戲開發(fā)工具Unity中UGUI的Image組件的sprite賦值為進行紋理壓縮后的RGB圖像數(shù)據(jù)集中的RGB圖像數(shù)據(jù)。
步驟S310:將所述游戲開發(fā)工具Unity中UGUI的Image組件的material賦值為所述材質(zhì)球。
步驟S311:按照所述自定義的用戶界面著色器中的渲染邏輯,對所述sprite中進行紋理壓縮后的RGB圖像數(shù)據(jù)集中的RGB圖像數(shù)據(jù)和所述material中進行紋理壓縮后的alpha圖像數(shù)據(jù)集中的alpha圖像數(shù)據(jù)進行合成,得到透明圖片。
在圖13示出的用戶界面的顯示處理方法的基礎(chǔ)上擴展出另外一種用戶界面的顯示處理方法,請參見圖14,在圖13示出的用戶界面的顯示處理方法的基礎(chǔ)上還包括以下步驟:
步驟S312:若所述用戶界面原圖組中不存在透明或半透明的用戶界面原圖,則發(fā)送所述預(yù)先設(shè)定的圖集合并格式和所述用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)至所述合圖集工具,以由所述合圖集工具按照所述預(yù)先設(shè)定的圖集合并格式,將所述用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)合并為第一圖像數(shù)據(jù)集。
步驟S313:從所述合圖集工具中獲取所述第一圖像數(shù)據(jù)集。
步驟S314:發(fā)送所述第一圖像數(shù)據(jù)集至游戲開發(fā)工具Unity。
步驟S315:游戲開發(fā)工具Unity接收所述第一圖像數(shù)據(jù)集,并按照指定壓縮格式對所述第一圖像數(shù)據(jù)集進行紋理壓縮。
步驟S316:將游戲開發(fā)工具Unity中UGUI的Image組件的sprite賦值為進行紋理壓縮后的圖像數(shù)據(jù)集里的圖像數(shù)據(jù),并將所述sprite中進行紋理壓縮后的圖像數(shù)據(jù)集里的圖像數(shù)據(jù),合成為不透明圖片。
與圖1示出的用戶界面的顯示處理方法相對應(yīng),提供一種用戶界面的顯示處理裝置,請參見圖15,用戶界面的顯示處理裝置包括:第一獲取模塊151、拆分模塊152、第二獲取模塊153和第一確定模塊154。
第一獲取模塊151,用于獲取用戶界面的用戶界面原圖組,所述用戶界面原圖組包括至少一個用戶界面原圖。
拆分模塊152,用于若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù)。
第二獲取模塊153,用于獲取所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為按照預(yù)先設(shè)定的圖集合并格式對拆分得到的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式對拆分得到的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集。
第一確定模塊154,用于將所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集,作為紋理壓縮的輸入數(shù)據(jù)。
第二獲取模塊153具體可以包括:第一發(fā)送單元和第一獲取單元。
第一發(fā)送單元,用于發(fā)送所述預(yù)先設(shè)定的圖集合并格式和拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)至合圖集工具,以由所述合圖集工具按照所述預(yù)先設(shè)定的圖集合并格式,將拆分得到的RGB圖像數(shù)據(jù)合并為RGB圖像數(shù)據(jù)集,以及,將拆分得到的alpha圖像數(shù)據(jù)合并為alpha圖像數(shù)據(jù)集。
第一獲取單元,用于從所述合圖集工具中獲取所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集。
上述用戶界面的顯示處理裝置還包括:第三獲取模塊155和判斷模塊156,如圖16所示。
第三獲取模塊155,用于分別獲取所述用戶界面原圖組中各個用戶界面原圖對應(yīng)的二維紋理圖中的像素。
判斷模塊156,用于判斷用戶界面原圖組中各個用戶界面原圖對應(yīng)的二維紋理圖中的像素中,是否包含有頂點色包含透明度值為非255的alpha通道的像素。
在本實施例中,拆分模塊152具體可以包括:創(chuàng)建單元、第一賦值單元和第二賦值單元。
創(chuàng)建單元,用于分別為所述用戶界面原圖組中的每一用戶界面原圖創(chuàng)建兩張RGB24的二維紋理圖,包括:第一二維紋理圖和第二二維紋理圖。
第一賦值單元,用于將所述用戶界面原圖組中的每一用戶界面原圖中的每個像素點的RGB信息賦值給該用戶界面原圖對應(yīng)的第一二維紋理圖,所述第一二維紋理圖中的RGB信息為所述用戶界面原圖對應(yīng)的RGB圖像數(shù)據(jù)。
第二賦值單元,用于將所述待處理用戶界面原圖組中的每一用戶界面原圖中的每個像素點的alpha信息賦值給該用戶界面原圖對應(yīng)的第二二維紋理圖,所述第二二維紋理圖的alpha信息為所述用戶界面原圖對應(yīng)的alpha圖像數(shù)據(jù)。
在本實施例中,第一發(fā)送單元具體可以包括:第一發(fā)送子單元,用于發(fā)送同時滿足POT、正方形和RGB888屬性的格式和拆分得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)至合圖集工具,以由所述合圖集工具按照所述同時滿足POT、正方形和RGB888屬性的格式,將拆分得到的RGB圖像數(shù)據(jù)合并為RGB圖像數(shù)據(jù)集,以及,將拆分得到的alpha圖像數(shù)據(jù)合并為alpha圖像數(shù)據(jù)集。
圖15示出的用戶界面的顯示處理裝置還可以包括:第四獲取模塊157和第二確定模塊158,如圖17所示。
第四獲取模塊157,用于若所述用戶界面原圖組中不存在透明或半透明的用戶界面原圖,則獲取所述用戶界面原圖組對應(yīng)的第一圖像數(shù)據(jù)集,所述第一圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式,對所述用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集。
第二確定模塊158,用于將所述第一圖像數(shù)據(jù)集作為紋理壓縮的輸入數(shù)據(jù)。
第四獲取模塊157具體可以包括:第二發(fā)送單元和第二獲取單元。
第二發(fā)送單元,用于發(fā)送所述預(yù)先設(shè)定的圖集合并格式和所述用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)至所述合圖集工具,以由所述合圖集工具按照所述預(yù)先設(shè)定的圖集合并格式,將所述用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)合并為第一圖像數(shù)據(jù)集。
第二獲取單元,用于從所述合圖集工具中獲取所述第一圖像數(shù)據(jù)集。
上述合圖集工具具體可以但不局限于為TexturePacker。
本發(fā)明實施例還提供了一種用戶界面的顯示處理設(shè)備,該用戶界面的顯示處理設(shè)備可以包括上述用戶界面的顯示處理裝置,用戶界面的顯示處理設(shè)備可以是部署在網(wǎng)絡(luò)側(cè)的用戶界面的顯示處理服務(wù)器,請參見圖18,其示出了用戶界面的顯示處理設(shè)備的硬件結(jié)構(gòu),用戶界面的顯示處理設(shè)備可以包括:處理器1,通信接口2,存儲器3和通信總線4;
其中處理器1、通信接口2、存儲器3通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如GSM模塊的接口;
處理器1,用于執(zhí)行程序;
存儲器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括計算機操作指令;
處理器1可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
存儲器3可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
其中,程序可具體用于:獲取用戶界面的用戶界面原圖組,所述用戶界面原圖組包括至少一個用戶界面原圖;
若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分成RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù);
獲取所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為按照預(yù)先設(shè)定的圖集合并格式對拆分得到的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式對拆分得到的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集;
將所述RGB圖像數(shù)據(jù)集和所述alpha圖像數(shù)據(jù)集,作為紋理壓縮的輸入數(shù)據(jù)。
與圖9示出的用戶界面的顯示處理方法相對應(yīng),提供了一種用戶界面的顯示處理裝置,請參見圖19,用戶界面的顯示處理裝置包括:第五獲取模塊191和第一壓縮模塊192。
第四獲取模塊191,用于獲取用戶界面的用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為:按照預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集;
所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)為:若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分,得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù)。
第一壓縮模塊192,用于按照指定壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
在本發(fā)明中,第一壓縮模塊192具體可以包括:第一壓縮單元或第二壓縮單元。
所述第一壓縮單元,用于按照ETC1紋理壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
所述第二壓縮單元,用于按照PVRTC紋理壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
圖19示出的用戶界面的顯示處理裝置還包括:創(chuàng)建模塊193、添加模塊194、第一賦值模塊195、第二賦值模塊196和第一合成模塊197,如圖20所示。
創(chuàng)建模塊193,用于創(chuàng)建材質(zhì)球。
添加模塊194,用于在所述材質(zhì)球上添加自定義的用戶界面著色器,所述自定義的用戶界面著色器包含有進行紋理壓縮后的alpha圖像數(shù)據(jù)集。
第一賦值模塊195,用于將應(yīng)用開發(fā)工具中UGUI的Image組件的sprite賦值為進行紋理壓縮后的RGB圖像數(shù)據(jù)集中的RGB圖像數(shù)據(jù)。
第二賦值模塊196,用于將所述應(yīng)用開發(fā)工具中UGUI的Image組件的material賦值為所述材質(zhì)球。
第一合成模塊197,用于按照所述自定義的用戶界面著色器中的渲染邏輯,對所述sprite中進行紋理壓縮后的RGB圖像數(shù)據(jù)集中的RGB圖像數(shù)據(jù)和所述material中進行紋理壓縮后的alpha圖像數(shù)據(jù)集中的alpha圖像數(shù)據(jù)進行合成,得到透明圖片。
圖19示出的用戶界面的顯示處理裝置還包括:第六獲取模塊198和第二壓縮模塊199,如圖21所示。
第五獲取模塊198,用于獲取第一圖像數(shù)據(jù)集,所述第一圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式,對所述用戶界面原圖組中的各個用戶界面原圖的圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集。
第二壓縮模塊199,用于按照所述指定壓縮格式對所述第一圖像數(shù)據(jù)集進行紋理壓縮。
第二壓縮模塊199具體可以包括:第三壓縮單元或第四壓縮單元。
所述第三壓縮單元,用于按照ETC1紋理壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
所述第四壓縮單元,用于按照PVRTC紋理壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
圖21所述的用戶界面的顯示處理裝置還包括:第三賦值模塊1910和第二合成模塊1911,如圖22所示。
第三賦值模塊1910,用于將所述應(yīng)用開發(fā)工具中UGUI的Image組件的sprite賦值為進行紋理壓縮后的圖像數(shù)據(jù)集里的圖像數(shù)據(jù)。
第二合成模塊1911,用于將所述sprite中進行紋理壓縮后的圖像數(shù)據(jù)集里的像數(shù)據(jù),合成為不透明圖片。
上述指定壓縮格式具體可以但不局限于包括:ETC1紋理壓縮格式;或,PVRTC紋理壓縮格式。
本發(fā)明實施例還提供了一種用戶界面的顯示處理設(shè)備,該用戶界面的顯示處理設(shè)備可以包括上述用戶界面的顯示處理裝置,用戶界面的顯示處理設(shè)備可以是部署在網(wǎng)絡(luò)側(cè)的用戶界面的顯示處理服務(wù)器,請參見圖23,其示出了用戶界面的顯示處理設(shè)備的硬件結(jié)構(gòu),用戶界面的顯示處理設(shè)備可以包括:處理器5,通信接口6,存儲器7和通信總線8;
其中處理器5、通信接口6、存儲器7通過通信總線8完成相互間的通信;
可選的,通信接口6可以為通信模塊的接口,如GSM模塊的接口;
處理器5,用于執(zhí)行程序;
存儲器7,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括計算機操作指令;
處理器5可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
存儲器7可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
其中,程序可具體用于:獲取用戶界面的用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集,所述RGB圖像數(shù)據(jù)集為:按照預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集,所述alpha圖像數(shù)據(jù)集為按照所述預(yù)先設(shè)定的圖集合并格式對所述用戶界面原圖組對應(yīng)的alpha圖像數(shù)據(jù)進行合并得到的圖像數(shù)據(jù)集;
所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù)為:若所述用戶界面原圖組中存在透明或半透明的用戶界面原圖,則將所述用戶界面原圖組中的各個用戶界面原圖分別拆分,得到的RGB圖像數(shù)據(jù)和alpha圖像數(shù)據(jù),所述RGB圖像數(shù)據(jù)和所述alpha圖像數(shù)據(jù)均為不透明圖像數(shù)據(jù);
按照指定壓縮格式分別對所述用戶界面原圖組對應(yīng)的RGB圖像數(shù)據(jù)集和alpha圖像數(shù)據(jù)集進行紋理壓縮。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當(dāng)然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。
以上對本申請所提供的一種用戶界面的顯示處理方法及裝置進行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。