專利名稱:九宮格繪制方法、裝置及九宮格旋轉(zhuǎn)方法、裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于多媒體應(yīng)用領(lǐng)域,尤其涉及一種九宮格繪制方法、裝置及九宮格旋轉(zhuǎn)方法、裝置。
背景技術(shù):
傳統(tǒng)的九宮格實(shí)現(xiàn)方式是用程 序動態(tài)的將九個圖標(biāo)和一個背景圖合成一張圖片后再將該圖片生成一張九宮格的紋理。因此,當(dāng)其中一個圖標(biāo)發(fā)生變化時必須要重新將9個圖標(biāo)及背景合成新的圖片并重新生成一張所有圖標(biāo)及背景的紋理,使得圖標(biāo)變化的處理效率極為低下。在每次改變九宮格時,需要重新獲取9個圖標(biāo)的圖像文件進(jìn)行解碼,并將9個圖標(biāo)合成到一張圖片上,若所獲取的9張圖片大小不一致,還需要對圖片本身進(jìn)行拉伸或者放縮,占用過多的CPU、內(nèi)存資源。此外,傳統(tǒng)的九宮格實(shí)現(xiàn)方式還不能動態(tài)的修改每個圖標(biāo)的顯示效果。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種九宮格繪制方法、裝置及九宮格旋轉(zhuǎn)方法、裝置,旨在解決現(xiàn)有的九宮格實(shí)現(xiàn)方式使得需要改變九宮格中圖標(biāo)時,處理效率過低的問題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種九宮格繪制方法,所述方法包括加載九宮格各個圖標(biāo)及背景的頂點(diǎn),并將所述九宮格的投影模式設(shè)置為透視投影;采用不同的紋理分別繪制所述九宮格的背景及各個圖標(biāo)。本發(fā)明實(shí)施例的另一目的在于提供一種九宮格繪制裝置,所述裝置包括九宮格初始設(shè)置單元,用于加載九宮格各個圖標(biāo)及背景的頂點(diǎn),并將所述九宮格的投影模式設(shè)置為透視投影;九宮格繪制單元,用于采用不同的紋理分別繪制所述九宮格的背景及各個圖標(biāo)。在本發(fā)明實(shí)施例中,由于采用了多重紋理混合的方式實(shí)現(xiàn)九宮格的繪制,若九宮格中的圖標(biāo)發(fā)生了變化,則只需要替換發(fā)生變化的圖標(biāo),不需要替換整個九宮格,保證了九宮格的繪制效率。本發(fā)明實(shí)施例的另一目的在于提供一種基于所繪九宮格的九宮格旋轉(zhuǎn)方法,所述方法包括接收到九宮格旋轉(zhuǎn)指令時,將所述九宮格轉(zhuǎn)換為3D九宮格,并將投影模式由透視投影改為平行投影,所述3D九宮格包括兩面所述九宮格;設(shè)置所述3D九宮格的旋轉(zhuǎn)參數(shù),使所述3D九宮格圍繞設(shè)定的軸旋轉(zhuǎn)。本發(fā)明實(shí)施例的另一目的在于提供一種基于所繪九宮格的九宮格旋轉(zhuǎn)裝置,所述裝置包括九宮格轉(zhuǎn)換單元,用于接收到九宮格旋轉(zhuǎn)指令時,將所述九宮格轉(zhuǎn)換為3D九宮格,所述3D九宮格包括兩面所述九宮格;
投影模式轉(zhuǎn)換單元,用于將投影模式由透視投影改為平行投影;九宮格旋轉(zhuǎn)單元,用于設(shè)置所述3D九宮格的旋轉(zhuǎn)參數(shù),使所述3D九宮格圍繞預(yù)設(shè)的軸旋轉(zhuǎn)。在本發(fā)明實(shí)施例中,通過平行投影的方式實(shí)現(xiàn)3D九宮格,不僅實(shí)現(xiàn)了 3D的九宮格,九宮格還能圍繞預(yù)設(shè)的軸進(jìn)行旋轉(zhuǎn),且避免了采用透視投影方式時由于眼睛的視角不同,造成看到雙面3D九宮格的側(cè)面為空 的問題;也避免了采用透視投影方式時若在兩個側(cè)面都繪制九宮格,則會由于增加頂點(diǎn)數(shù)量導(dǎo)致幀率的降低,且側(cè)面看到的九宮格圖標(biāo)不美觀的問題。
圖I是本發(fā)明提供的一種九宮格繪制方法第一實(shí)施例的流程圖;圖2是本發(fā)明提供的一種優(yōu)選的九宮格繪制方法第二實(shí)施例的流程圖;圖3是本發(fā)明提供的一種基于實(shí)施例一或?qū)嵤├L制的九宮格來實(shí)現(xiàn)的一種九宮格旋轉(zhuǎn)方法的流程圖;圖4是本發(fā)明提供的一種優(yōu)選的九宮格繪制裝置第四實(shí)施例的結(jié)構(gòu)示意圖;圖5是本發(fā)明提供的優(yōu)選的九宮格繪制裝置第五實(shí)施例的結(jié)構(gòu)示意圖;圖6是本發(fā)明第六實(shí)施例提供的一種基于實(shí)施例四或?qū)嵤├逅L制的九宮格的九宮格繪制裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。實(shí)施例一如圖I所示為本發(fā)明第一實(shí)施例提供的一種優(yōu)選的九宮格繪制方法的流程圖,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。在步驟SlOl中,加載九宮格各個圖標(biāo)及背景的頂點(diǎn),并將九宮格的投影模式設(shè)置為透視投影。在本發(fā)明實(shí)施例中,將九宮格的九個圖標(biāo)及背景的頂點(diǎn)坐標(biāo)加載至內(nèi)存,其中,每個圖標(biāo)有四個頂點(diǎn),背景也有四個頂點(diǎn),共加載40個頂點(diǎn)坐標(biāo)至內(nèi)存。并通過在透視投影函數(shù)中設(shè)置透視投影的各個參數(shù)將九宮格的投影模式設(shè)置為透視投影,其中,將九宮格的投影模式設(shè)置為透視投影的方法在此不做限制,使用的透視投影函數(shù)不同,相應(yīng)設(shè)置的參數(shù)也不同。由于在計算機(jī)圖形中,3D圖的默認(rèn)投影模式為透視投影,因而在此先將九宮格的投影模式設(shè)置為透視投影。例如若使用下述函數(shù)設(shè)置投影模式為透視投影Void gluPerspective (GLdouble fovy, GLdoubIe aspect, GLdoubIezNear, GLdouble zFar);則需要獲得四個參數(shù)fovy、aspect、zNear及zFar。其中,參數(shù)fovy定義視野在X-Z平面的角度,范圍是
;參數(shù)aspect是投影平面寬度與高度的比率;參數(shù)zNear和Far分別是遠(yuǎn)近裁剪面到眼睛的距離,它們總為正值。在本發(fā)明實(shí)施例中,既可以先加載九宮格各個圖標(biāo)及背景的頂點(diǎn),也可以先將九宮格的投影模式設(shè)置為透視投影,其順序不受限制。在步驟S102中,采用不同的紋理分別繪制九宮格的背景及各個圖標(biāo)。在本發(fā)明實(shí)施例中,當(dāng)九宮格的頂點(diǎn)加載完畢且九宮格投影模式設(shè)置好后,將九宮格的九個圖標(biāo)及背景圖片分別生成不同 的紋理,即生成10個紋理,然后由這10個不同的紋理分別繪制九宮格的背景及各個圖標(biāo)。其中,在繪制九宮格的過程中,先繪制背景紋理,并在背景紋理繪制好后設(shè)置紋理的混合參數(shù),采用多重紋理混合的方式,在背景紋理上依次繪制各個圖標(biāo)的紋理。一般而言,采用一種單獨(dú)的顏色作為九宮格的背景,然后將各個圖標(biāo)的圖片分別作為對應(yīng)圖標(biāo)的紋理,此時若圖標(biāo)發(fā)生了變化,則只需要替換發(fā)生變化的圖標(biāo)對應(yīng)的紋理,不需要替換整個九宮格,保證了九宮格的繪制效率。在本發(fā)明實(shí)施例中,由于采用了多重紋理混合的方式實(shí)現(xiàn)九宮格的繪制,若九宮格中的圖標(biāo)發(fā)生了變化,則只需要替換發(fā)生變化的圖標(biāo),不需要替換整個九宮格,保證了九宮格的繪制效率。實(shí)施例二 由于現(xiàn)有的九宮格不能動態(tài)的修改每個圖標(biāo)的顯示效果。因此如圖2所示為本發(fā)明第二實(shí)施例提供的基于實(shí)施例一繪制的九宮格的一種優(yōu)選的九宮格的實(shí)現(xiàn)方法的流程圖,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。在如圖I所述的步驟SlOl及步驟S102后,本發(fā)明第二實(shí)施例提供的優(yōu)選的九宮格的實(shí)現(xiàn)方法還包括下述步驟在步驟S201中,判斷接收到的是圖標(biāo)點(diǎn)亮指令還是圖標(biāo)灰度指令,若是圖標(biāo)點(diǎn)亮指令則執(zhí)行步驟S202,若是圖標(biāo)灰度指令則執(zhí)行步驟S203。在步驟S202中,將預(yù)設(shè)的高亮蒙版圖片與圖標(biāo)點(diǎn)亮指令指定的圖標(biāo)混合生成一個紋理,并將該紋理繪制于九宮格中圖標(biāo)點(diǎn)亮指令指定的圖標(biāo)上。在步驟S203中,將預(yù)設(shè)的灰色蒙版圖片與圖標(biāo)灰度指令指定的圖標(biāo)混合生成一個紋理,并將該紋理繪制于九宮格中圖標(biāo)灰度指令指定的圖標(biāo)上。在本發(fā)明實(shí)施例中,為了單獨(dú)給九宮格中的各個圖標(biāo)實(shí)現(xiàn)動態(tài)的高亮或灰度的顯示效果,預(yù)先制作了一副高亮蒙版圖片和一副灰色蒙版圖片,其中,高亮蒙版圖片與灰色蒙版圖片與圖標(biāo)大小一致。當(dāng)接收到用戶輸入的圖標(biāo)點(diǎn)亮指令時,通過設(shè)置混合參數(shù)將預(yù)先制作的高亮蒙版圖片與圖標(biāo)點(diǎn)亮指令指定的圖標(biāo)混合生成一個紋理,并將該紋理繪制于九宮格中所述圖標(biāo)點(diǎn)売指令指定的圖標(biāo)上,使該圖標(biāo)呈現(xiàn)聞売顯不。當(dāng)接收到用戶輸入的圖標(biāo)灰度指令時,通過設(shè)置混合參數(shù)將預(yù)先制作的灰色蒙版圖片與圖標(biāo)灰度指令指定的圖標(biāo)混合生成一個紋理,并將該紋理繪制于九宮格中所述圖標(biāo)灰度指令指定的圖標(biāo)上,使該圖標(biāo)呈現(xiàn)灰度顯示。在本發(fā)明實(shí)施例中,由于圖標(biāo)高亮或灰色的切換,需要用alpha半透混合計算,如果采用CPU計算,則需要占用大量CPU,所以此處采用GPU計算多重紋理混合。對于現(xiàn)有技術(shù)而言,由于九宮格是一個整體,如果需要實(shí)現(xiàn)其中一個圖標(biāo)的灰色顯示或高亮的顯示,都需要重新繪制整個九宮格,無法高效率的實(shí)現(xiàn),尤其對于硬件計算能力不是很強(qiáng)大的設(shè)備更是無法實(shí)現(xiàn)。而在本發(fā)明實(shí)施例中,由于九宮格的各個圖標(biāo)都是采用不同的紋理繪制,因而可為每個圖標(biāo)單獨(dú)混合高亮蒙版圖片或灰色蒙版圖片,從而單獨(dú)對每個圖標(biāo)進(jìn)行聞売顯不或灰色顯不,實(shí)現(xiàn)簡單,聞效。實(shí)施例三如圖3所示為本發(fā)明第三實(shí)施例提供的基于實(shí)施例一或?qū)嵤├L制的九宮格來實(shí)現(xiàn)的一種九宮格旋轉(zhuǎn)方法的流程圖,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。在步驟S301中,接收到九宮格旋轉(zhuǎn)指令時,將九宮格轉(zhuǎn)換為3D九宮格。在本發(fā)明實(shí)施例中,當(dāng)接收到用戶發(fā)出的九宮格旋轉(zhuǎn)指令時,繪制3D九宮格,將上述實(shí)施例一或?qū)嵤├L制的單面的九宮格替換為3D九宮格。其中,該3D九宮格包括前面和底面兩面九宮格,每面九宮格都與實(shí)施例一或?qū)嵤├欣L制的單面九宮格相同,各個圖標(biāo)及背景由不同的紋理分別繪制。九宮格旋轉(zhuǎn)指令可由用戶將鼠標(biāo)停留在九宮格上啟動。其中,將單面的九宮格替換為3D九宮格的過程如下加載3D九宮格中各個圖標(biāo)及背景的頂點(diǎn),隨之繪制3D九宮格中每個九宮格面的背景及各個圖標(biāo),在步驟S302中,將投影模式由透視投影改為平行投影。在本發(fā)明實(shí)施例中,由于繪制3D九宮格時若采用透視投影的方式,會因?yàn)檠劬Φ囊暯遣煌吹诫p面3D九宮格的側(cè)面為空;而如果在兩個側(cè)面都繪制九宮格,則會由于增加頂點(diǎn)數(shù)量導(dǎo)致幀率的降低,且從側(cè)面看到的九宮格圖標(biāo)不美觀。因此,將投影模式替換為采用物體大小不會隨著Z軸方向發(fā)生變化的平行投影來實(shí)現(xiàn)3D九宮格的繪制。在本發(fā)明實(shí)施例中,為了保持九宮格的大小及位置不變,則需計算出在透視投影模式下平行投影的參數(shù),再根據(jù)所計算出的平行投影的參數(shù)及相應(yīng)的平行投影函數(shù)將投影模式設(shè)置為平行投影。下面以先設(shè)置一個平行投影矩陣,然后通過加載該平行投影矩陣來設(shè)置投影模式為平行投影的方法來說明計算透視投影模式下平行投影參數(shù)的過程。例如
權(quán)利要求
1.一種九宮格繪制方法,其特征在于,所述方法包括 加載九宮格各個圖標(biāo)及背景的頂點(diǎn),并將所述九宮格的投影模式設(shè)置為透視投影; 采用不同的紋理分別繪制所述九宮格的背景及各個圖標(biāo)。
2.如權(quán)利要求I所述的方法,其特征在于,所述采用不同的紋理分別繪制九宮格的背景及各個圖標(biāo)的步驟之后,還包括 當(dāng)接收到圖標(biāo)點(diǎn)亮指令時,將預(yù)設(shè)的高亮蒙版圖片與所述圖標(biāo)點(diǎn)亮指令指定的圖標(biāo)混合生成一個紋理,并將該紋理繪制于所述九宮格中所述圖標(biāo)點(diǎn)亮指令指定的圖標(biāo)上; 當(dāng)接收到圖標(biāo)灰度指令時,將預(yù)設(shè)的灰色蒙版圖片與所述圖標(biāo)灰度指令指定的圖標(biāo)混合生成一個紋理,并將該紋理繪制于所述九宮格中所述圖標(biāo)灰度指令指定的圖標(biāo)上。
3.一種基于權(quán)利要求I或2所述的九宮格的九宮格旋轉(zhuǎn)方法,其特征在于,所述方法包括 接收到九宮格旋轉(zhuǎn)指令時,將所述九宮格轉(zhuǎn)換為3D九宮格,并將投影模式由透視投影改為平行投影,所述3D九宮格包括兩面所述九宮格; 設(shè)置所述3D九宮格的旋轉(zhuǎn)參數(shù),使所述3D九宮格圍繞設(shè)定的軸旋轉(zhuǎn)。
4.如權(quán)利要求3所述的方法,其特征在于,所述將投影模式由透視投影改為平行投影包括 計算在透視投影模式下平行投影的參數(shù); 根據(jù)所述平行投影的參數(shù)將投影模式設(shè)置為平行投影。
5.如權(quán)利要求3所述的方法,其特征在于,所述3D九宮格包括前面和底面兩面九宮格,每一面九宮格的各個圖標(biāo)及背景由不同的紋理分別繪制。
6.一種九宮格繪制裝置,其特征在于,所述裝置包括 九宮格初始設(shè)置單元,用于加載九宮格各個圖標(biāo)及背景的頂點(diǎn),并將所述九宮格的投影模式設(shè)置為透視投影; 九宮格繪制單元,用于采用不同的紋理分別繪制所述九宮格的背景及各個圖標(biāo)。
7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括 高亮設(shè)置單元,用于當(dāng)接收到圖標(biāo)點(diǎn)亮指令時,將預(yù)設(shè)的高亮蒙版圖片與所述圖標(biāo)點(diǎn)亮指令指定的圖標(biāo)混合生成一個紋理,并將該紋理繪制于所述九宮格中所述圖標(biāo)點(diǎn)亮指令指定的圖標(biāo)上; 灰度設(shè)置單元,用于當(dāng)接收到圖標(biāo)灰度指令時,將預(yù)設(shè)的灰色蒙版圖片與所述圖標(biāo)灰度指令指定的圖標(biāo)混合生成一個紋理,并將該紋理繪制于所述九宮格中所述圖標(biāo)灰度指令指定的圖標(biāo)上。
8.一種基于權(quán)利要求6或7所述的九宮格的九宮格旋轉(zhuǎn)裝置,其特征在于,所述裝置包括 九宮格轉(zhuǎn)換單元,用于接收到九宮格旋轉(zhuǎn)指令時,將所述九宮格轉(zhuǎn)換為3D九宮格,所述3D九宮格包括兩面所述九宮格; 投影模式轉(zhuǎn)換單元,用于將投影模式由透視投影改為平行投影; 九宮格旋轉(zhuǎn)單元,用于設(shè)置所述3D九宮格的旋轉(zhuǎn)參數(shù),使所述3D九宮格圍繞預(yù)設(shè)的軸旋轉(zhuǎn)。
9.如權(quán)利要求8所述的裝置,其特征在于,所述投影模式轉(zhuǎn)換單元包括參數(shù)計算單元,用于計算在透視投影模式下平行投影的參數(shù); 平行投影設(shè)置單元,用于根據(jù)所述平行投影的參數(shù)將投影模式設(shè)置為平行投影。
10.如權(quán)利要求8所述的裝置,其特征在于,所述3D九宮格包括前面和底面兩面九宮格,每一面九宮格的各個圖標(biāo)及背景由不同的紋理分別繪制。
全文摘要
本發(fā)明適用于多媒體應(yīng)用領(lǐng)域,提供了一種九宮格繪制方法、裝置、基于所繪九宮格的九宮格旋轉(zhuǎn)方法及裝置,所述九宮格繪制方法包括加載九宮格各個圖標(biāo)及背景的頂點(diǎn),并將九宮格的投影模式設(shè)置為透視投影;采用不同的紋理分別繪制九宮格的背景及各個圖標(biāo)。在本發(fā)明實(shí)施例中,由于采用了多重紋理混合的方式實(shí)現(xiàn)九宮格的繪制,若九宮格中的圖標(biāo)發(fā)生了變化,則只需要替換發(fā)生變化的圖標(biāo),不需要替換整個九宮格,保證了九宮格的繪制效率。
文檔編號G06T3/60GK102855604SQ20121028012
公開日2013年1月2日 申請日期2012年8月8日 優(yōu)先權(quán)日2012年8月8日
發(fā)明者盧偉超, 趙智寶, 李星, 張穎, 黃雅琳 申請人:Tcl集團(tuán)股份有限公司