專利名稱:一種基于OpenGL ES的圖像特效實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式設(shè)備或移動設(shè)備圖像處理技術(shù)領(lǐng)域,具體涉及一種圖像特效方法,用以實現(xiàn)阿拉丁神燈效果。
背景技術(shù):
阿拉丁神燈效果是指圖像從一個目標(biāo)點逐漸飛出、放大成形,或者圖像向一個目標(biāo)點進行運動,并收縮于該目標(biāo)點,類似于神話中神仆從阿拉丁神燈的燈口處飛出或縮回的動畫效果?,F(xiàn)有技術(shù)中,動畫效果通常采用諸如3DsMax等軟件制作的幀動畫實現(xiàn),幀動畫是指分解動畫動作,也就是在時間軸的每幀上逐幀繪制不同的內(nèi)容,使其連續(xù)播放而成動畫。 幀動畫需逐幀制作,文件體積大,而且由于幀動畫的每一幀是既定的,因此局限性大,不能實現(xiàn)任意方向的阿拉丁神燈效果。計算機3D動畫已經(jīng)發(fā)展了很多年,隨著現(xiàn)在嵌入式設(shè)備3D顯卡越來越強大,嵌入式設(shè)備也能逐漸擁有PC電腦強大的3D圖形處理能力,OpenGL ES (OpenGL for Embedded Systems)是OpenGL三維圖形API的子集,針對手機、PDA和游戲主機等嵌入式設(shè)備而設(shè)計, 能實現(xiàn)非常豐富的動畫效果。
發(fā)明內(nèi)容
有鑒于此,為了解決上述問題,本發(fā)明公開了一種基于OpenGL ES的圖像特效實現(xiàn)方法,可對圖像實現(xiàn)任意目標(biāo)點的阿拉丁神燈效果。本發(fā)明的目的是這樣實現(xiàn)的一種基于OpenGL ES的圖像特效實現(xiàn)方法,包括如下步驟1)獲取待實現(xiàn)特效的圖像;2)獲取特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向;3)在待實現(xiàn)特效的圖像上分割出多個頂點,調(diào)用OpenGL ES對頂點進行建模;4)根據(jù)特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向,獲得每個頂點運動的順序、速度和方向;5)各頂點按步驟4)獲得的順序、速度和方向運動,同時調(diào)用OpenGLES對模型進行渲染,實現(xiàn)圖像從目標(biāo)點逐漸飛出、放大成形,或者圖像向目標(biāo)點收縮。優(yōu)選的,所述步驟2、中,特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向為自動設(shè)置。優(yōu)選的,所述步驟2、中,特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方
向由用戶設(shè)置。優(yōu)選的,當(dāng)動畫方向為朝向目標(biāo)點運動時,所述圖像區(qū)域位置為待實現(xiàn)特效的圖像的位置,當(dāng)動畫方向為背向目標(biāo)點運動時,所述圖像區(qū)域位置為待實現(xiàn)特效的圖像放大成形后的位置。
優(yōu)選的,當(dāng)步驟2)中目標(biāo)點坐標(biāo)位于圖像區(qū)域的上方或下方時,步驟3)中,在待實現(xiàn)特效的圖像的左右兩側(cè)分割頂點。優(yōu)選的,當(dāng)步驟2)中目標(biāo)點坐標(biāo)位于圖像區(qū)域的左側(cè)或下側(cè)時,步驟3)中,在待實現(xiàn)特效的圖像的上下兩側(cè)分割頂點。優(yōu)選的,當(dāng)步驟2)中目標(biāo)點坐標(biāo)位于圖像區(qū)域內(nèi)部時,步驟3)中,在待實現(xiàn)特效的圖像的上下左右兩側(cè)及圖像內(nèi)部分割頂點。本發(fā)明的基于OpenGL ES的圖像特效實現(xiàn)方法,能對任意大小、任意位置的圖像, 朝任意位置的目標(biāo)點圖像實現(xiàn)阿拉丁神燈特效,擺脫了幀動畫的局限性;在進一步的技術(shù)方案中,用較少的頂點數(shù)完成特定的動畫,效率比幀動畫更高。
圖1示出了基于OpenGL ES的圖像特效實現(xiàn)方法的流程示意圖;圖2示出了第一種頂點分割方案的示意圖;圖3示出了第二種頂點分割方案的示意圖;圖4示出了第三種頂點分割方案的示意圖。
具體實施例方式下面將結(jié)合附圖對本發(fā)明作進一步的詳細(xì)描述參見圖1,一種基于OpenGL ES的圖像特效實現(xiàn)方法,包括如下步驟1)獲取待實現(xiàn)特效的圖像.2)獲取特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向;所述特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向可為程序自動設(shè)置或者用戶手動設(shè)置, 如目標(biāo)點坐標(biāo),可由用戶點擊嵌入式設(shè)備或移動設(shè)備的觸摸屏來設(shè)置;當(dāng)動畫方向為朝向目標(biāo)點運動時,即實現(xiàn)收縮特效時,所述圖像區(qū)域位置為待實現(xiàn)特效的圖像的位置;當(dāng)動畫方向為背向目標(biāo)點運動時,即實現(xiàn)放大特效時,所述圖像區(qū)域位置為待實現(xiàn)特效的圖像放大成形后的位置。3)在待實現(xiàn)特效的圖像上分割出多個頂點,調(diào)用OpenGL ES對頂點進行建模。由于過多的頂點會造成更大的渲染負(fù)擔(dān),降低渲染速度,因此本實施例采用如下優(yōu)選方式當(dāng)步驟2)中目標(biāo)點坐標(biāo)位于圖像區(qū)域的上方或下方時,步驟3)中,在待實現(xiàn)特效的圖像的左右兩側(cè)分割頂點,如圖2所示。當(dāng)步驟2)中目標(biāo)點坐標(biāo)位于圖像區(qū)域的左側(cè)或下側(cè)時,步驟3)中,在待實現(xiàn)特效的圖像的上下兩側(cè)分割頂點,如圖3所示。當(dāng)步驟2)中目標(biāo)點坐標(biāo)位于圖像區(qū)域內(nèi)部時,步驟3)中,在待實現(xiàn)特效的圖像的上下左右兩側(cè)及圖像內(nèi)部分割頂點,如圖4所示,當(dāng)目標(biāo)點在圖像中心時,頂點環(huán)繞目標(biāo)
點ο4)根據(jù)特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向,獲得每個頂點運動的順序、速度和方向;5)各頂點按步驟4)獲得的順序、速度和方向運動,同時調(diào)用OpenGLES對模型進行渲染,實現(xiàn)圖像從目標(biāo)點逐漸飛出、放大成形,或者圖像向目標(biāo)點收縮,當(dāng)圖像向目標(biāo)點收縮時,每個頂點可以為勻變速直線運動,以下舉例說明參見圖2,當(dāng)目標(biāo)點坐標(biāo)位于圖像區(qū)域的下方,實現(xiàn)收縮特效時,首先第1、2頂點
向目標(biāo)點作勻變速直線運動,然后是第3、4頂點......直到第2n-l、2n個頂點,當(dāng)?shù)?、2
頂點到達(dá)目標(biāo)點后即縮合為一點,整個圖像變?yōu)榻迫切?,展現(xiàn)出來的效果即是整幅圖像逐漸縮合于目標(biāo)點,當(dāng)最后的兩個頂點到達(dá)目標(biāo)點時,圖像完全消失。而實現(xiàn)飛出放大特效時,與上述情形相反,首先第1、2頂點從目標(biāo)點飛出,分別向
圖像區(qū)域位置中的第1、2頂點定位作勻變速直線運動,然后是第3、4頂點......直到第
2n-l、2n個頂點,展現(xiàn)出來的效果即是整幅圖像逐漸從目標(biāo)點飛出、放大成形,當(dāng)所有頂點到達(dá)圖像區(qū)域位置時,即形成完整的圖像。當(dāng)目標(biāo)點坐標(biāo)位于圖像區(qū)域的上方、左方或右方時,與上述情形類似,只是運動方向不同,在此不再贅述。而作為當(dāng)目標(biāo)點坐標(biāo)位于圖像區(qū)域內(nèi)部的特殊情況時,頂點環(huán)繞目標(biāo)點。當(dāng)實現(xiàn)收縮特效時,頂點的運動順序是逐圈向外,首先是內(nèi)圍的頂點向目標(biāo)點作勻變速直線運動, 然后是外圍的頂點,實現(xiàn)一種圖像逐步蜷縮到塌陷點(目標(biāo)點)的特殊效果;當(dāng)實現(xiàn)飛出放大特效時,頂點逐漸從目標(biāo)點飛出、向四周展開,最后形成完整的圖像。應(yīng)當(dāng)指出,以上所述僅是本發(fā)明的優(yōu)選實施方法,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和變化,這些改進和變化也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于OpenGL ES的圖像特效實現(xiàn)方法,其特征在于包括如下步驟1)獲取待實現(xiàn)特效的圖像;2)獲取特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向;3)在待實現(xiàn)特效的圖像上分割出多個頂點,調(diào)用OpenGLES對頂點進行建模;4)根據(jù)特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向,獲得每個頂點運動的順序、速度和方向;5)各頂點按步驟4)獲得的順序、速度和方向運動,同時調(diào)用OpenGLES對模型進行渲染,實現(xiàn)圖像從目標(biāo)點逐漸飛出、放大成形,或者圖像向目標(biāo)點收縮。
2.如權(quán)利要求1所述的基于OpenGLES的圖像特效實現(xiàn)方法,其特征在于所述步驟 2)中,特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向為自動設(shè)置。
3.如權(quán)利要求1所述的基于OpenGLES的圖像特效實現(xiàn)方法,其特征在于所述步驟 2)中,特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向由用戶設(shè)置。
4.如權(quán)利要求1至3中任一項所述的基于OpenGLES的圖像特效實現(xiàn)方法,其特征在于當(dāng)動畫方向為朝向目標(biāo)點運動時,所述圖像區(qū)域位置為待實現(xiàn)特效的圖像的位置,當(dāng)動畫方向為背向目標(biāo)點運動時,所述圖像區(qū)域位置為待實現(xiàn)特效的圖像放大成形后的位置。
5.如權(quán)利要求4所述的基于OpenGLES的圖像特效實現(xiàn)方法,其特征在于當(dāng)步驟2) 中目標(biāo)點坐標(biāo)位于圖像區(qū)域的上方或下方時,步驟幻中,在待實現(xiàn)特效的圖像的左右兩側(cè)分割頂點。
6.如權(quán)利要求4所述的基于OpenGLES的圖像特效實現(xiàn)方法,其特征在于當(dāng)步驟2) 中目標(biāo)點坐標(biāo)位于圖像區(qū)域的左側(cè)或下側(cè)時,步驟幻中,在待實現(xiàn)特效的圖像的上下兩側(cè)分割頂點。
7.如權(quán)利要求4所述的基于OpenGLES的圖像特效實現(xiàn)方法,其特征在于當(dāng)步驟2) 中目標(biāo)點坐標(biāo)位于圖像區(qū)域內(nèi)部時,步驟幻中,在待實現(xiàn)特效的圖像的上下左右兩側(cè)及圖像內(nèi)部分割頂點。
全文摘要
本發(fā)明涉及嵌入式設(shè)備或移動設(shè)備圖像處理技術(shù)領(lǐng)域,具體涉及公開了一種基于OpenGL ES的圖像特效實現(xiàn)方法,可對圖像實現(xiàn)任意目標(biāo)點的阿拉丁神燈效果,包括如下步驟1)獲取待實現(xiàn)特效的圖像;2)獲取特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向;3)在待實現(xiàn)特效的圖像上分割出多個頂點,調(diào)用OpenGL ES對頂點進行建模;4)根據(jù)特效執(zhí)行時間長度、圖像區(qū)域位置、目標(biāo)點坐標(biāo)和動畫方向,獲得每個頂點運動的順序、速度和方向;5)各頂點按步驟4)獲得的順序、速度和方向運動,同時調(diào)用OpenGL ES對模型進行渲染,實現(xiàn)圖像從目標(biāo)點逐漸飛出、放大成形,或者圖像向目標(biāo)點收縮。
文檔編號G06T19/00GK102542610SQ20101061637
公開日2012年7月4日 申請日期2010年12月30日 優(yōu)先權(quán)日2010年12月30日
發(fā)明者張昊, 徐繼蕓, 湯周文 申請人:福建星網(wǎng)視易信息系統(tǒng)有限公司