欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種動畫渲染方法、系統(tǒng)及動畫播放器的制作方法

文檔序號:6368979閱讀:222來源:國知局
專利名稱:一種動畫渲染方法、系統(tǒng)及動畫播放器的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,尤其涉及一種可對立體動畫進行渲染的動畫渲染方法、系統(tǒng)及動畫播放器。
背景技術(shù)
立體動畫是近年來隨著計算機軟硬件技術(shù)的發(fā)展而產(chǎn)生的一新興技術(shù),其是建立在計算機科學(xué)、數(shù)學(xué)、物理、人工智能等基礎(chǔ)上的綜合學(xué)科。近年興起的應(yīng)用iPhone操作系統(tǒng)、Adroid操作系統(tǒng)等的智能平臺中,也都應(yīng)用了立體動畫顯示效果。對于應(yīng)用了立體動畫顯示的游戲或其它立體顯示界面而言,為了增加畫面的感染力和真實感,需要對立體動畫進行實時渲染,而如何在智能平臺中更有效率、更方便的控制 實時動畫渲染是一技術(shù)瓶頸。若采用現(xiàn)有技術(shù)提供的動畫渲染方法實現(xiàn)對智能平臺中的立體動畫實時渲染,則隨著上層應(yīng)用需求的增加,在滿足對立體動畫實時渲染控制的同時,還要滿足設(shè)計效果,因而增加了立體動畫的邏輯復(fù)雜性,降低了立體動畫的可擴充性和可維護性。在本背景技術(shù)本部分所公開的上述信息僅僅用于增加對本發(fā)明背景技術(shù)的理解,因此其可能包括不構(gòu)成對該國的本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)。

發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供一種動畫渲染方法,旨在解決應(yīng)用現(xiàn)有技術(shù)提供的動畫渲染方法實現(xiàn)對智能平臺中的立體動畫實時渲染時,增加了立體動畫的邏輯復(fù)雜性,降低了立體動畫的可擴充性和可維護性的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種動畫渲染方法,所述方法包括以下步驟預(yù)定義待渲染動畫的多個狀態(tài),將預(yù)定義的所述多個狀態(tài)中的源狀態(tài)、相應(yīng)的目標(biāo)狀態(tài)和觸發(fā)事件作為關(guān)聯(lián)信息存儲;預(yù)定義所述多個狀態(tài)中每一狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性;在作為所述源狀態(tài)的當(dāng)前狀態(tài)下,根據(jù)觸發(fā)事件和存儲的所述關(guān)聯(lián)信息將所述當(dāng)前狀態(tài)切換到所述當(dāng)前狀態(tài)對應(yīng)的目標(biāo)狀態(tài);根據(jù)所述待渲染動畫的當(dāng)前狀態(tài)與所述當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性對所述待渲染動畫進行渲染。本發(fā)明實施例的另一目的在于提供一種動畫渲染系統(tǒng),所述系統(tǒng)包括設(shè)置模塊,用于預(yù)定義待渲染動畫的多個狀態(tài),并設(shè)置每一狀態(tài)在扭曲時間軸下的的狀態(tài)渲染屬性;存儲模塊,用于將所述設(shè)置模塊預(yù)定義的所述多個狀態(tài)中的源狀態(tài)、相應(yīng)的目標(biāo)狀態(tài)和觸發(fā)事件作為關(guān)聯(lián)信息存儲;切換模塊,用于在作為所述源狀態(tài)的當(dāng)前狀態(tài)下,根據(jù)觸發(fā)事件和所述存儲模塊存儲的所述關(guān)聯(lián)信息將所述當(dāng)前狀態(tài)切換到作為所述當(dāng)前狀態(tài)對應(yīng)的目標(biāo)狀態(tài);
渲染模塊,用于根據(jù)所述待渲染動畫的當(dāng)前狀態(tài)與所述當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性對所述待渲染動畫進行渲染。本發(fā)明實施例的另一目的在于提供一種動畫播放器,包括一動畫渲染系統(tǒng),所述動畫渲染系統(tǒng)是如上所述的動畫渲染系統(tǒng),并采用如上所述的動畫渲染方法對待渲染動畫進行渲染。本發(fā)明實施例提供的動畫渲染方法和系統(tǒng)是基于有限狀態(tài)機理論,通過預(yù)定義待渲染動畫的多個狀態(tài)及相應(yīng)的狀態(tài)渲染屬性,由事件的觸發(fā)實現(xiàn)不同狀態(tài)之間的轉(zhuǎn)換,其簡化了對動畫渲染的控制框架,計算量小,且結(jié)構(gòu)清晰、邏輯關(guān)系簡單明確,具有很高的操作性,易維護,易擴充,且在智能平臺上簡潔了上層控制邏輯,對于從3DS、MD2轉(zhuǎn)換過來的模型動畫,都可由此控制框架控制,具有一般性。


圖I是本發(fā)明提供的動畫渲染方法實施例的流程圖; 圖2是圖I中,開始狀態(tài)、運行狀態(tài)、結(jié)束狀態(tài)、掛起狀態(tài)、恢復(fù)狀態(tài)和重啟狀態(tài)的狀態(tài)遷移圖;圖3是本發(fā)明提供的動畫渲染系統(tǒng)提供的實施例的結(jié)構(gòu)圖; 圖4是圖3中切換模塊的結(jié)構(gòu)圖;圖5是圖3中渲染模塊的結(jié)構(gòu)圖。
具體實施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。針對現(xiàn)有技術(shù)存在的問題,本發(fā)明實施例提供的動畫渲染方法通過預(yù)定義待渲染動畫的多個狀態(tài)及其在扭曲時間軸下的相應(yīng)狀態(tài)渲染屬性,由事件的觸發(fā)實現(xiàn)不同狀態(tài)之間的轉(zhuǎn)換。圖I示出了本發(fā)明提供的動畫渲染方法實施例的流程。在步驟SlOl中,預(yù)定義待渲染動畫的多個狀態(tài),將預(yù)定義的多個狀態(tài)中的源狀態(tài)、相應(yīng)的目標(biāo)狀態(tài)和觸發(fā)事件作為關(guān)聯(lián)信息存儲。該觸發(fā)事件是指觸發(fā)相應(yīng)源狀態(tài)向相應(yīng)目標(biāo)狀態(tài)進行轉(zhuǎn)換的事件。在步驟S102中,預(yù)定義多個狀態(tài)中每一狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性。該狀態(tài)渲染屬性是指為了實現(xiàn)待渲染動畫顯示預(yù)定渲染效果所需的各種屬性,如待渲染動畫繪制的焦點、方向、位置、大小、旋轉(zhuǎn)等動畫狀態(tài)屬性。在步驟S103中,在作為源狀態(tài)的當(dāng)前狀態(tài)下,根據(jù)觸發(fā)事件和存儲的關(guān)聯(lián)信息將當(dāng)前狀態(tài)切換到該當(dāng)前狀態(tài)對應(yīng)的目標(biāo)狀態(tài),切換后,下一狀態(tài)即為待渲染動畫的當(dāng)前狀態(tài)。步驟S104 :根據(jù)待渲染動畫的當(dāng)前狀態(tài)與當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性對待渲染動畫進行渲染。本發(fā)明實施例提供的動畫渲染方法是基于有限狀態(tài)機理論,通過預(yù)定義待渲染動畫的多個狀態(tài)及相應(yīng)的狀態(tài)渲染屬性,由事件的觸發(fā)實現(xiàn)不同狀態(tài)之間的轉(zhuǎn)換,其簡化了對動畫渲染的控制框架,計算量小,且結(jié)構(gòu)清晰、邏輯關(guān)系簡單明確,具有很高的操作性,易維護,易擴充,且在智能平臺上簡潔了上層控制邏輯,對于從3DS、MD2轉(zhuǎn)換過來的模型動畫,都可由此控制框架控制,具有較強適應(yīng)性。舉例來說,假設(shè)預(yù)定義的多個狀態(tài)包括開始狀態(tài)Start、運行狀態(tài)Running、結(jié)束狀態(tài)End、掛起狀態(tài)Suspend、恢復(fù)狀態(tài)Resume、重啟狀態(tài)Restart,其相互之間的狀態(tài)遷移如圖2所示。其中的箭頭起始狀態(tài)即為源狀態(tài),箭頭終止?fàn)顟B(tài)即為目標(biāo)狀態(tài),可以看出,當(dāng)源狀態(tài)是開始狀態(tài)時,相應(yīng)的目標(biāo)狀態(tài)是運行狀態(tài)或掛起狀態(tài);當(dāng)源狀態(tài)是運行狀態(tài)時,相應(yīng)的目標(biāo)狀態(tài)是結(jié)束狀態(tài)或者掛起狀態(tài);當(dāng)源狀態(tài)是結(jié)束狀態(tài)時,相應(yīng)的目標(biāo)狀態(tài)是重啟狀態(tài);當(dāng)源狀態(tài)是重啟狀態(tài)時,相應(yīng)的目標(biāo)狀態(tài)是開始狀態(tài);當(dāng)源狀態(tài)是掛起狀態(tài)時,相應(yīng)的目標(biāo)狀態(tài)是恢復(fù)狀態(tài);當(dāng)源狀態(tài)是恢復(fù)狀態(tài)時,相應(yīng)的目標(biāo)狀態(tài)是運行狀態(tài),從而形成如下若干種遷移序列開始狀態(tài)->運行狀態(tài)-> 結(jié)束狀態(tài)->重啟狀態(tài)-> 開始狀態(tài);開始狀態(tài)->掛起狀態(tài)->恢復(fù)狀態(tài)->運行狀態(tài)->結(jié)束狀態(tài)->重啟狀態(tài)->開始狀態(tài);開始狀態(tài)->運行狀態(tài)->掛起狀態(tài)->恢復(fù)狀態(tài)->運行狀態(tài)->重啟狀態(tài)->開始狀態(tài)。當(dāng)然,實際中,多個狀態(tài)還可包括其它各種自定義狀態(tài)。為了提高控制邏輯的簡潔性,本發(fā)明實施例中,根據(jù)觸發(fā)事件和存儲的關(guān)聯(lián)信息將當(dāng)前狀態(tài)切換到該當(dāng)前狀態(tài)對應(yīng)的目標(biāo)狀態(tài)的步驟又可包括以下步驟接收用戶輸入或者系統(tǒng)發(fā)出的的用于切換下一狀態(tài)的切換信號;根據(jù)接收到的切換信號,判斷切換信號相應(yīng)的下一狀態(tài)與當(dāng)前狀態(tài)是否滿足預(yù)存的約束條件,是則發(fā)出觸發(fā)事件,將當(dāng)前狀態(tài)切換到作為與該當(dāng)前狀態(tài)、切換信號相關(guān)聯(lián)的目標(biāo)狀態(tài),否則保持當(dāng)前狀態(tài)。其中的約束條件可以包括并不限于是切換信號相應(yīng)的下一狀態(tài)與當(dāng)前狀態(tài)不相同;若當(dāng)前狀態(tài)是開始狀態(tài),則切換信號相應(yīng)的下一狀態(tài)不為恢復(fù)狀態(tài);若當(dāng)前狀態(tài)是結(jié)束狀態(tài),則切換信號相應(yīng)的下一狀態(tài)為重啟狀態(tài)。通過設(shè)定約束條件,大大降低了各狀態(tài)之間切換的復(fù)雜性,提高了邏輯控制的簡潔性,避免了潛在缺陷或漏洞的發(fā)生。本發(fā)明實施例中,待渲染動畫又包括幀動畫和時間控制動畫,當(dāng)待渲染動畫為幀動畫時,在動畫運行狀態(tài)下,不同巾貞的動畫具有不同的顯示屬性;當(dāng)動畫為時間控制動畫時,在動畫運行狀態(tài)下,不同的時間或時間段調(diào)用具有不同顯示屬性的動畫,以實現(xiàn)動畫顯示。該顯示屬性是指動畫在顯示界面的顯示位置、顯示區(qū)域等顯示屬性,還可以包括狀態(tài)渲染屬性。本發(fā)明實施例中,若假設(shè)當(dāng)前幀渲染所在的實際時間為Now,上次幀渲染的實際時間為LastNow,扭曲時間軸的扭曲時間為LocalTime,動畫的起始時間為StartTime,動畫的飛行時間為TimeForWay,時間扭曲系數(shù)為Radio,則時間扭曲函數(shù)可以表示為Radio =Radio + (Now-LastNow) /TimeForffay, JeL LocalTime = StartTime+TimeForWay*Radio。此時,進一步地,步驟S104又可以包括以下步驟根據(jù)扭曲時間軸的扭曲時間LocalTime,控制待渲染動畫的運行狀態(tài);根據(jù)待渲染動畫的每次渲染,更新扭曲時間軸的 扭曲時間LocalTime ;若待渲染動畫在運行狀態(tài)時間段內(nèi),根據(jù)當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性,得到一扭曲時間下待渲染動畫在顯示界面的狀態(tài)屬性;根據(jù)得到的相對時間下動畫在顯示界面的狀態(tài)屬性,不斷調(diào)用具有相應(yīng)顯示屬性的動畫幀,以進行動畫特效顯示渲染。
為了便于理解動畫特效顯示的步驟,下面以動畫在運行狀態(tài)下進行往返飛行和震蕩衰減運行為例進行說明假設(shè)預(yù)設(shè)的動畫運行狀態(tài)時間段是從2012年2月21日12點整始到2012年2月21日12點10分止,則在調(diào)用的當(dāng)前實際時間是2012年2月21日11點59分時,動畫保持當(dāng)前狀態(tài)而未進入運行狀態(tài);在調(diào)用的當(dāng)前實際時間是2012年2月21日12點10分時,發(fā)出觸發(fā)事件,動畫從運行狀態(tài)映射入下一狀態(tài);在調(diào)用的當(dāng)前實際時間是介于2012年2月21日12點整到2012年2月21日12點10分之間時,動畫處于運行狀態(tài)下。在扭曲時間軸下,由于扭曲時間收到幀間隔的控制,其狀態(tài)機狀態(tài)剛好受到動畫播放的幀狀態(tài)控制。當(dāng)動畫在運行狀態(tài)下進行往返飛行時,假設(shè)動畫的起始時間StartTime為0,飛行時間TimeForWay為2000毫秒,調(diào)用動畫幀的當(dāng)前實際時間Now為0,上次調(diào)用動畫幀的實際時間LastNow為0,并設(shè)置時間扭曲系數(shù)Radio,該時間扭曲系數(shù)Radio介于0. 0與I. 0閉 區(qū)間里,0. 0代表動畫在運行狀態(tài)下剛開始運行,I. 0代表動畫在運行狀態(tài)下運行結(jié)束。當(dāng)設(shè)置時間扭曲系數(shù)Radio小于1.0時,時間扭曲函數(shù)為Radio = Radio+ (Now-LastNow) /TimeForWay,則計算相對時間 LocalTime = StartTime+TimeForWay*Radio,之后以相對時間為基準(zhǔn),不斷調(diào)用不同相對時間下具有相應(yīng)顯示屬性的動畫。在此期間,隨著動畫的多次調(diào)用,時間扭曲系數(shù)Radio會漸漸從0. 0增大到I. 0,當(dāng)時間扭曲系數(shù)Radio大于或等于
I.0時,時間扭曲函數(shù)變?yōu)镽adio = Radio-(Now-LastNow)/TimeForWay,使得時間扭曲系數(shù)Radio會漸漸從I. 0減少到0. 0,則相對時間Local Time會先慢慢增大到結(jié)束時間,然后再慢慢減少到開始時間,之后同樣以相對時間為基準(zhǔn),不斷調(diào)用不同相對時間下具有相應(yīng)顯示屬性的動畫,從而改變了動畫根據(jù)相對時間的運行狀態(tài)。雖然外部的實際時間會越來越多,但由于動畫是以相對時間為基準(zhǔn),則動畫內(nèi)部的運行時間一直為0到2000毫秒。當(dāng)動畫在運行狀態(tài)下進行震蕩衰減運行時,假設(shè)動畫的起始時間StartTime為0,飛行時間TimeForffay為2000毫秒,調(diào)用的動畫的當(dāng)前實際時間Now為0,上次調(diào)用動畫中貞的實際時間LastNow為0,運行起始點坐標(biāo)startPosition為(0,0,0),運行終點坐標(biāo)endPostion為(X,0,0),并設(shè)置時間扭曲系數(shù)Radio,該時間扭曲系數(shù)Radio介于0. 0與I. 0閉區(qū)間里,0. 0代表動畫在運行狀態(tài)下剛開始運行,I. 0代表動畫在運行狀態(tài)下運行結(jié)束。此時,時間扭曲函數(shù)為Radio = Radio+(Now-LastNow)/TimeForWay。之后計算不同時間下動畫在顯示界面的位置屬性CurrentPostion,表示為PRadio = ((I-Radio) * (I-Radio)) *sin(Radio氺PI氺Cycle) ;CurrentPostion = startPosition+(endPostion-startPostion) *PRadio ;其中,Cycle為預(yù)設(shè)的震蕩衰減次數(shù),PI為預(yù)設(shè)的圓周率常數(shù),且優(yōu)選地,Cycle為5,且PI為3. 1415926。之后不斷調(diào)用不同時間下具有相應(yīng)顯示屬性的動畫,并將調(diào)用的動畫顯示在顯示界面的相應(yīng)位置,從而形成了動畫的震蕩衰減顯示。圖3示出了本發(fā)明實施例提供的動畫渲染系統(tǒng)的結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。本發(fā)明實施例提供的動畫渲染系統(tǒng)包括設(shè)置模塊11,用于預(yù)定義待渲染動畫的多個狀態(tài),并設(shè)置每一狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性;存儲模塊12,用于將設(shè)置模塊11預(yù)定義的多個狀態(tài)中的源狀態(tài)、相應(yīng)的目標(biāo)狀態(tài)和觸發(fā)事件作為關(guān)聯(lián)信息存儲;切換模塊13,用于在作為源狀態(tài)的當(dāng)前狀態(tài)下,根據(jù)觸發(fā)事件和存儲模塊12存儲的關(guān)聯(lián)信息將當(dāng)前狀態(tài)切換到作為該當(dāng)前狀態(tài)對應(yīng)的目標(biāo)狀態(tài),切換后,下一狀態(tài)即為待渲染動畫的當(dāng)前狀態(tài);渲染模塊14,用于根據(jù)所述待渲染動畫的當(dāng)前狀態(tài)與設(shè)置模塊11設(shè)置的、當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性對待渲染動畫進行渲染。為了提高控制邏輯的簡潔性,如圖4所示,切換模塊13又可包括接收模塊131,用于接收用戶輸入或者系統(tǒng)發(fā)出的用于切換下一狀態(tài)的切換信號;判斷模塊132,用于根據(jù)接收模塊131接收到的切換信號,判斷切換信號相應(yīng)的下一狀態(tài)與當(dāng)前狀態(tài)是否滿足預(yù)存的約束條件;狀態(tài)轉(zhuǎn)換模塊133,用于當(dāng)判斷模塊132判斷切換信號相應(yīng)的下一狀態(tài)與當(dāng)前狀態(tài)滿足預(yù)存的約束條件時發(fā)出觸發(fā)事件,將當(dāng)前狀態(tài)切換到作為與該當(dāng)前狀態(tài)、切換信號相關(guān)聯(lián)的目標(biāo)狀態(tài)的下一狀態(tài)。本發(fā)明實施例中,如圖5所示,渲染模塊14又可包括扭曲系數(shù)計算模塊141,用于根據(jù)公式Radio = Radio± (Now-LastNow)/TimeForWay 計算時間扭曲系數(shù) Radio,其中,Now為當(dāng)前幀渲染所在的實際時間,LastNow為上次幀渲染的實際時間,TimeForffay為動畫的飛行時間;扭曲時間計算模塊142,用于根據(jù)扭曲系數(shù)計算模塊141計算得到的時間扭曲系數(shù)Radio計算扭曲時間軸的扭曲時間LocalTime,表示為LocalTime =StartTime+TimeForWay*Radio,其中,StartTime為動畫的起始時間;狀態(tài)切換模塊143,用 于根據(jù)扭曲時間計算模塊142計算得到的扭曲時間軸的扭曲時間LocalTime,以及設(shè)置模塊11設(shè)置的、當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性控制待渲染動畫的渲染狀態(tài)。本發(fā)明實施例還提供了一種動畫播放器,包括一如上所述的動畫渲染系統(tǒng),并采用如上所述的動畫渲染方法對待渲染動畫進行渲染。本發(fā)明實施例提供的動畫渲染方法和系統(tǒng)是基于有限狀態(tài)機理論,通過預(yù)定義待渲染動畫的多個狀態(tài)及相應(yīng)的狀態(tài)渲染屬性,由事件的觸發(fā)實現(xiàn)不同狀態(tài)之間的轉(zhuǎn)換,其簡化了對動畫渲染的控制框架,計算量小,且結(jié)構(gòu)清晰、邏輯關(guān)系簡單明確,具有很高的操作性,易維護,易擴充,且在智能平臺上簡潔了上層控制邏輯,對于從3DS、MD2轉(zhuǎn)換過來的模型動畫,都可由此控制框架控制,具有一般性。再有,本發(fā)明實施例提供的動畫渲染方法和系統(tǒng)在對時間控制動畫進行渲染時,還可利用時間扭曲函數(shù)將絕對時間轉(zhuǎn)換成內(nèi)部相對時間,并根據(jù)相對時間實現(xiàn)動畫的特效顯示。另外,本發(fā)明實施例提供的動畫渲染方法和系統(tǒng)還對多個狀態(tài)的轉(zhuǎn)換設(shè)置了約束條件,在滿足約束條件下時才進行狀態(tài)轉(zhuǎn)換,,降低了各狀態(tài)之間切換的復(fù)雜性,提高了邏輯控制的簡潔性,避免了潛在缺陷或漏洞的發(fā)生。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來控制相關(guān)的硬件完成,所述的程序可以在存儲于一計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如R0M/RAM、磁盤、光盤等。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種動畫渲染方法,其特征在于,所述方法包括以下步驟 預(yù)定義待渲染動畫的多個狀態(tài),將預(yù)定義的所述多個狀態(tài)中的源狀態(tài)、相應(yīng)的目標(biāo)狀態(tài)和觸發(fā)事件作為關(guān)聯(lián)信息存儲; 預(yù)定義所述多個狀態(tài)中每一狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性; 在作為所述源狀態(tài)的當(dāng)前狀態(tài)下,根據(jù)觸發(fā)事件和存儲的所述關(guān)聯(lián)信息將所述當(dāng)前狀態(tài)切換到所述當(dāng)前狀態(tài)對應(yīng)的目標(biāo)狀態(tài); 根據(jù)所述待渲染動畫的當(dāng)前狀態(tài)與所述當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性對所述待渲染動畫進行渲染。
2.如權(quán)利要求I所述的動畫渲染方法,其特征在于,所述根據(jù)觸發(fā)事件和存儲的所述關(guān)聯(lián)信息將所述當(dāng)前狀態(tài)切換到所述當(dāng)前狀態(tài)對應(yīng)的目標(biāo)狀態(tài)的步驟又包括以下步驟 接收用戶輸入或者系統(tǒng)發(fā)出的的用于切換下一狀態(tài)的切換信號; 根據(jù)接收到的所述切換信號,判斷所述切換信號相應(yīng)的下一狀態(tài)與所述當(dāng)前狀態(tài)是否滿足預(yù)存的約束條件; 當(dāng)判斷所述切換信號相應(yīng)的下一狀態(tài)與所述當(dāng)前狀態(tài)滿足預(yù)存的約束條件時發(fā)出觸發(fā)事件,將所述當(dāng)前狀態(tài)切換到作為與所述當(dāng)前狀態(tài)、切換信號相關(guān)聯(lián)的目標(biāo)狀態(tài)。
3.如權(quán)利要求I所述的動畫渲染方法,其特征在于,所述多個狀態(tài)包括開始狀態(tài)、運行狀態(tài)、結(jié)束狀態(tài)、掛起狀態(tài)、恢復(fù)狀態(tài)和重啟狀態(tài); 當(dāng)所述源狀態(tài)是所述開始狀態(tài)時,所述相應(yīng)的目標(biāo)狀態(tài)是所述運行狀態(tài)或所述掛起狀態(tài);當(dāng)所述源狀態(tài)是所述運行狀態(tài)時,所述相應(yīng)的目標(biāo)狀態(tài)是所述結(jié)束狀態(tài)或者掛起狀態(tài);當(dāng)所述源狀態(tài)是結(jié)束狀態(tài)時,所述相應(yīng)的目標(biāo)狀態(tài)是所述重啟狀態(tài);當(dāng)所述源狀態(tài)是所述重啟狀態(tài)時,所述相應(yīng)的目標(biāo)狀態(tài)是所述開始狀態(tài);當(dāng)所述源狀態(tài)是所述掛起狀態(tài)時,所述相應(yīng)的目標(biāo)狀態(tài)是所述恢復(fù)狀態(tài);當(dāng)所述源狀態(tài)是恢復(fù)狀態(tài)時,所述相應(yīng)的目標(biāo)狀態(tài)是所述運行狀態(tài)。
4.如權(quán)利要求I所述的動畫渲染方法,其特征在于,所述狀態(tài)渲染屬性為包括焦點、方向、位置、大小、旋轉(zhuǎn)的動畫狀態(tài)屬性;若所述當(dāng)前幀渲染所在的實際時間為Now,上次幀渲染的實際時間為LastNow,所述扭曲時間軸的扭曲時間為LocalTime,動畫的起始時間為StartTime,所述動畫的飛行時間為TimeForWay,時間扭曲系數(shù)為Radio,則時間扭曲函數(shù)為Radio = Radio + (Now-LastNow) /TimeForffay,且 LocalTime =StartTime+T imeForWay*Radio。
5.如權(quán)利要求4所述的動畫渲染方法,其特征在于,所述根據(jù)所述待渲染動畫的當(dāng)前狀態(tài)與所述當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性對所述待渲染動畫進行渲染的步驟,具體又包括以下步驟 根據(jù)所述扭曲時間軸的扭曲時間LocalTime,控制所述待渲染動畫的運行狀態(tài); 根據(jù)所述待渲染動畫的每次渲染,更新所述扭曲時間軸的扭曲時間LocalTime ; 若所述待渲染動畫在運行狀態(tài)時間段內(nèi),根據(jù)所述當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性,得到一扭曲時間下待渲染動畫在顯示界面的狀態(tài)屬性; 根據(jù)得到的相對時間下動畫在顯示界面的狀態(tài)屬性,不斷調(diào)用具有相應(yīng)顯示屬性的動畫幀,以進行動畫特效顯示渲染。
6.如權(quán)利要求4所述的動畫渲染方法,其特征在于,所述待渲染動畫在所述運行狀態(tài)時間段內(nèi)進行往返飛行,則設(shè)置當(dāng)所述時間扭曲系數(shù)Radio小于I. O時,所述時間扭曲函數(shù)為Radio = Radio+ (Now-LastNow) /TimeForffay ;當(dāng)所述時間扭曲系數(shù)Radio大于或等于I. 0 時,所述時間扭曲函數(shù)為Radio = Radio-(Now-LastNow)/TimeForffay0
7.如權(quán)利要求4所述的動畫渲染方法,其特征在于,所述待渲染動畫在所述運行狀態(tài)時間段內(nèi)進行震蕩衰減運行,則時間扭曲函數(shù)為Radio = Radio+(Now-LastNow)/TimeForffay,且 Radio G
。
8.如權(quán)利要求7所述的動畫渲染方法,其特征在于,所述狀態(tài)渲染屬性中的位置屬性為CurrentPostion = startPosition+(endPostion-startPostion)*PRadio,其中,endPostion為運行終點坐標(biāo),startPosition為運行起始點坐標(biāo);PRadio 滿足PRadio = ((I-Radio) * (1-Radio)) *sin (Radio*PI*Cycle),其中,Cycle為預(yù)設(shè)的震蕩衰減次數(shù),PI為預(yù)設(shè)的圓周率常數(shù)。
9.一種動畫渲染系統(tǒng),其特征在于,所述系統(tǒng)包括 設(shè)置模塊,用于預(yù)定義待渲染動畫的多個狀態(tài),并設(shè)置每一狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性; 存儲模塊,用于將所述設(shè)置模塊預(yù)定義的所述多個狀態(tài)中的源狀態(tài)、相應(yīng)的目標(biāo)狀態(tài)和觸發(fā)事件作為關(guān)聯(lián)信息存儲; 切換模塊,用于在作為所述源狀態(tài)的當(dāng)前狀態(tài)下,根據(jù)觸發(fā)事件和所述存儲模塊存儲的所述關(guān)聯(lián)信息將所述當(dāng)前狀態(tài)切換到作為所述當(dāng)前狀態(tài)對應(yīng)的目標(biāo)狀態(tài); 渲染模塊,用于根據(jù)所述待渲染動畫的當(dāng)前狀態(tài)與所述設(shè)置模塊設(shè)置的、當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性對所述待渲染動畫進行渲染。
10.如權(quán)利要求9所述的動畫渲染系統(tǒng),其特征在于,所述切換模塊又包括 接收模塊,用于接收用戶輸入或者系統(tǒng)發(fā)出的用于切換下一狀態(tài)的切換信號; 判斷模塊,用于根據(jù)所述接收模塊接收到的所述切換信號,判斷所述切換信號相應(yīng)的下一狀態(tài)與所述當(dāng)前狀態(tài)是否滿足預(yù)存的約束條件; 狀態(tài)轉(zhuǎn)換模塊,用于當(dāng)所述判斷模塊判斷所述切換信號相應(yīng)的下一狀態(tài)與所述當(dāng)前狀態(tài)滿足預(yù)存的約束條件時發(fā)出觸發(fā)事件,將所述當(dāng)前狀態(tài)切換到作為與所述當(dāng)前狀態(tài)、切換信號相關(guān)聯(lián)的目標(biāo)狀態(tài)。
11.如權(quán)利要求9所述的動畫渲染系統(tǒng),其特征在于,所述渲染模塊又包括 扭曲系數(shù)計算模塊,用于根據(jù)公式Radio = Radio土(Now-LastNow)/TimeForWay計算時間扭曲系數(shù)Radio,其中,Now為所述當(dāng)前幀渲染所在的實際時間,LastNow為上次幀渲染的實際時間,TimeForffay為所述動畫的飛行時間; 扭曲時間計算模塊,用于根據(jù)扭曲系數(shù)計算模塊計算得到的時間扭曲系數(shù)Radio計算扭曲時間軸的扭曲時間 LocalTime,表不為LocalTime = StartTime+TimeForffay*Radio,其中,StartTime為動畫的起始時間; 狀態(tài)切換模塊,用于根據(jù)扭曲時間計算模塊計算得到的扭曲時間軸的扭曲時間LocalTime,控制待渲染動畫的渲染狀態(tài)。
12.—種動畫播放器,包括一動畫渲染系統(tǒng),其特征在于,所述動畫渲染系統(tǒng)是如權(quán)利要求9至11任一項所述的動畫渲染系統(tǒng),并采用如權(quán)利要求I至8任一項所述的動畫渲染方法對待渲染動畫進行渲染。
全文摘要
本發(fā)明于圖像處理技術(shù)領(lǐng)域,提供了一種可對立體動畫進行渲染的動畫渲染方法、系統(tǒng)及動畫播放器。方法包括預(yù)定義待渲染動畫的多個狀態(tài)、每一狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性;將多個狀態(tài)中的源狀態(tài)、目標(biāo)狀態(tài)和觸發(fā)事件作為關(guān)聯(lián)信息存儲;在作為源狀態(tài)的當(dāng)前狀態(tài)下,根據(jù)觸發(fā)事件和存儲的關(guān)聯(lián)信息將當(dāng)前狀態(tài)切換到作為當(dāng)前狀態(tài)相應(yīng)的目標(biāo)狀態(tài);根據(jù)當(dāng)前狀態(tài)與當(dāng)前狀態(tài)在扭曲時間軸下的狀態(tài)渲染屬性對待渲染動畫進行渲染。該方法和系統(tǒng)是基于有限狀態(tài)機理論,通過預(yù)定義待渲染動畫的多個狀態(tài)及相應(yīng)的渲染屬性,由事件的觸發(fā)實現(xiàn)不同狀態(tài)之間的轉(zhuǎn)換,其簡化了對動畫渲染的控制框架,計算量小,且結(jié)構(gòu)清晰、邏輯關(guān)系簡單明確,具有很高的操作性。
文檔編號G06T13/00GK102682461SQ20121013373
公開日2012年9月19日 申請日期2012年4月28日 優(yōu)先權(quán)日2012年4月28日
發(fā)明者盧偉超, 張穎, 趙智寶 申請人:Tcl集團股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汨罗市| 宁城县| 梨树县| 嵊州市| 诏安县| 大悟县| 读书| 长阳| 萨迦县| 醴陵市| 安远县| 滨州市| 阿克苏市| 齐齐哈尔市| 木兰县| 阜新| 九龙县| 平顶山市| 咸阳市| 滨海县| 简阳市| 皮山县| 通许县| 新干县| 买车| 崇礼县| 五河县| 资兴市| 皮山县| 崇左市| 博罗县| 定安县| 义乌市| 滦平县| 菏泽市| 淮阳县| 兴文县| 望城县| 奈曼旗| 治多县| 东兴市|