一種2.5維繩索扭曲動畫生成方法
【專利摘要】本發(fā)明公開一種2.5維繩索扭曲動畫生成方法,其步驟如下:(1)建立平面直角坐標(biāo)系,在坐標(biāo)系中定義周期變化的穹形曲線為上端輪廓線;對稱翻轉(zhuǎn)上端輪廓線并移動以確定下端輪廓線,其中下端輪廓線由對稱翻轉(zhuǎn)后的上端輪廓線及其移動的路線構(gòu)成;(2)由外輪廓線構(gòu)建封閉區(qū)域,將該區(qū)域分成若干子區(qū)域,并對子區(qū)域進(jìn)行標(biāo)記;由子區(qū)域的邊界線確定子區(qū)域的范圍,并在子區(qū)域內(nèi)構(gòu)建四邊形網(wǎng)格;(3)輸入繩索的填充紋理,并根據(jù)標(biāo)記確定子區(qū)域的填充紋理;然后確定子區(qū)域內(nèi)四邊形網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān)系;(4)連續(xù)變化繩索的外輪廓線,輸出繩索扭曲時的圖像幀,生成繩索扭曲的動畫。本方法原理簡單,易于實現(xiàn),且動畫生成效果好。
【專利說明】
一種2.5維繩索扭曲動畫生成方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及一種2.5維動畫的生成方法,屬于計算機動畫技術(shù)領(lǐng)域,尤其涉及一種 2.5維繩索扭曲動畫生成方法。
【背景技術(shù)】
[0002] 在計算機動畫領(lǐng)域,按照動畫制作技巧以及呈現(xiàn)效果的差異可以將動畫分為以下 三種:平面動畫、三維動畫以及2.5維動畫。
[0003] 中國專利CN103065348A、名稱"一種基于骨骼動作庫的二維動畫自動生成方法", 該類技術(shù)先將創(chuàng)建的骨骼與骨骼動作保存在骨骼動畫庫中;然后根據(jù)造型的外觀要求,繪 制造型圖形;其次從骨骼動作庫中調(diào)用骨骼動作,并將骨骼動作與造型圖形進(jìn)行綁定;最后 根據(jù)動畫要求內(nèi)插骨骼動作幀,得到動畫序列。該方法雖然能夠生成復(fù)雜的二維動畫,但在 實現(xiàn)過程中需要不斷更新骨骼動作數(shù)據(jù),且更新速度較慢。此外,得到的畫面質(zhì)量也有待提 升。
[0004]《一種基于樣條線變化生成的2.5維卡通動畫》(Rivers等,2.5D Cartoon Models, Transactions on Graphics,2010,29(4): 19-66),該方法用樣條曲線表示卡通對象的三視 圖數(shù)據(jù),并建立三視圖中每條曲線之間的對應(yīng)關(guān)系。然后通過視角變化,制作出卡通形象的 任意視圖,從而實現(xiàn)卡通形象的3D效果旋轉(zhuǎn)。但是該方法在繪制過程中對特定繪畫程序有 較多的依賴,并且中間視圖的質(zhì)量有待提升。
[0005] 中國專利CN101958007A、名稱"一種采用草繪的三維動畫姿態(tài)建模方法",該技術(shù) 首先解析用戶輸入的組件化人體輪廓草圖,提取出人體骨架結(jié)構(gòu)、骨架姿態(tài)和骨架輪廓等 參數(shù),并生成三維人體姿態(tài)模型;其次,將三維人體姿態(tài)模型組件投影到二維平面,通過二 維草繪交互,對三維人體姿態(tài)模型的骨架空間位置、骨架長度和骨架輪廓進(jìn)行編輯;最后, 采用基于核規(guī)約的運動插值方法插值姿態(tài)關(guān)鍵幀生成三維人體動畫。該技術(shù)與傳統(tǒng)三維人 體姿態(tài)建模方法相比,能有效地支持動畫師以二維草繪的方法對動畫進(jìn)行姿態(tài)設(shè)計和編 輯,但是三維動畫渲染時涉及大量的數(shù)據(jù)計算,且耗時較長。
【發(fā)明內(nèi)容】
[0006] 針對以上現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明提供一種基于雙面圖形的2.5維繩索扭 曲動畫生成方法,該方法能夠在平面上模擬出物體的三維動畫效果。在本發(fā)明中,用戶僅需 要輸入填充紋理與控制參數(shù),系統(tǒng)便可自動生成不同扭曲幅度下的繩索,并且該技術(shù)生成 的動畫具有良好的三維立體效果。
[0007] 本發(fā)明采用的技術(shù)方案如下:
[0008] -種2.5維繩索扭曲動畫的生成方法,包括如下步驟:
[0009] a.繪制外輪廓線:建立平面直角坐標(biāo)系,在坐標(biāo)系中定義周期變化的穹形曲線為 上立而輪廊線;對稱翻轉(zhuǎn)上?而輪廊線并移動以確定下?而輪廊線,其中下?而輪廊線由對稱翻轉(zhuǎn) 后的上端輪廓線及其移動的路線構(gòu)成;
[0010] b.構(gòu)建四邊形網(wǎng)格:由外輪廓線構(gòu)建封閉區(qū)域,將該區(qū)域分成若干子區(qū)域,并對子 區(qū)域進(jìn)行標(biāo)記;由子區(qū)域的邊界線確定子區(qū)域的范圍,并在子區(qū)域范圍內(nèi)構(gòu)建四邊形網(wǎng)格;
[0011] C.確定四邊形網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān)系:輸入繩索的填充紋理;由子區(qū)域 的標(biāo)記確定子區(qū)域的填充紋理;然后確定子區(qū)域內(nèi)四邊形網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān) 系;
[0012] d.生成2.5維繩索扭曲動畫:連續(xù)變化繩索的外輪廓線,輸出繩索扭曲時的圖像 幀,生成繩索扭曲的動畫。
[0013] 本發(fā)明相對于現(xiàn)有技術(shù),具有如下優(yōu)點:
[0014] (1)本發(fā)明2.5維繩索扭曲動畫的生成過程中,用戶僅需要輸入填充紋理與控制參 數(shù),系統(tǒng)就會自動生成2.5維繩索扭曲動畫。與二維、三維動畫相比,本方法涉及的計算量 小,易處理、更新速度快。
[0015] (2)本發(fā)明利用兩組數(shù)學(xué)函數(shù)確定繩索扭曲過程中變化的外輪廓線,通過控制數(shù) 學(xué)函數(shù)中的參數(shù)即可實現(xiàn)豐富多彩的繩索扭曲變形效果。
[0016] (3)通過在繪制區(qū)域內(nèi)構(gòu)建四邊網(wǎng)格頂點,并建立網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān) 系,可以有效地減少繩索扭曲時失真現(xiàn)象,提升扭曲繩索的三維空間立體感。
[0017] (4)本發(fā)明方法原理簡單,易于實現(xiàn),且動畫生成效果較好。
【附圖說明】
[0018] 圖1是本發(fā)明一種2.5維繩索扭曲動畫生成流程圖;
[0019]圖2是實施例中繩索輪廓示意圖;
[0020] 圖3是子區(qū)域示意圖;
[0021] 圖4是y = sin(x)函數(shù)示意圖;
[0022] 圖5是四邊形網(wǎng)格結(jié)構(gòu)示意圖。
【具體實施方式】
[0023] 為了更清楚地闡述本發(fā)明的技術(shù)方案,下面結(jié)合附圖和實例,對本發(fā)明相關(guān)步驟 做詳細(xì)說明。
[0024] 如附圖1所示,本實施例一種2.5維繩索扭曲動畫生成方法,其具體實施步驟如下:
[0025] 1.繪制外輪廓線:外輪廓線由上、下端輪廓線組成,參見附圖2所示,其中X表示橫 軸,y表示縱軸,fk表示穹形曲線,sk表示分點,其中k = 0,l,2,...,控制參數(shù)α、β分別為周期 與相位,用于確定穹形曲線fk的形狀;對稱翻轉(zhuǎn)上端輪廓線并移動以確定下端輪廓線,其中 下端輪廓線由對稱翻轉(zhuǎn)后的上端輪廓線及其移動的路線構(gòu)成。圖2中線段a表示移動的路 線,穹形曲線gk由穹形曲線fk確定,分點a由分點sk確定,線段a與穹形曲線gk組合確定下端 輪廓線。
[0026] (1)定義上端輪廓線:不失一般性,定義上端輪廓線中的穹形曲線ft:
[0027] fk = cos(ax-kP)
[0028] 定義穹形曲線間的交點為分點&,分點Sk的橫坐標(biāo)為:
[0029] sl --= (k + 1/2)/3/a
[0030] 本實例中α、β的初始值分別為〇.l3i、〇.53i,k = 0,l,2···。
[0031] (2)定義下端輪廓線:下端輪廓線由線段a以及穹形曲線gk組成。定義線段a的坐標(biāo) 為:
[0032] y = -l ,xe [0, (π-β)/α]
[0033] 定義穹形曲線gk為:
[0034] gk = -cos(a(x-(ji-0)/a)-kP)
[0035] 分點改的橫坐標(biāo)為:
[0036] e'l = π / a + {k-\ i 2)/3 / a
[0037] 其中,a j、k與fk中的系數(shù)對應(yīng)且保持一致。
[0038] 2.構(gòu)建四邊形網(wǎng)格:
[0039 ] 參見圖2,上、下端輪廓線以及直線X = p、X = 0組成封閉區(qū)域,將分點ek與分點sk對 應(yīng)并連接,將封閉區(qū)域分成若干子區(qū)域;由子區(qū)域的邊界線確定子區(qū)域的范圍,并確定子區(qū) 域內(nèi)四邊形網(wǎng)格結(jié)構(gòu)。參見圖3,由子區(qū)域的邊界線確定子區(qū)域在橫軸上的正投影區(qū)間,并 在該區(qū)間內(nèi)進(jìn)行等距離采樣以確定一組點;過該組點做橫軸的垂線,定義垂線與子區(qū)域邊 界線的交點為邊界點,如附圖3中點#〖、g所示;再在由邊界點確定的垂線段上進(jìn)行等距 離采樣,得到另一組采樣點;建立相鄰垂線段上采樣點的對應(yīng)關(guān)系;由采樣點的關(guān)聯(lián)關(guān)系連 接相鄰垂線上的采用點,確定子區(qū)域內(nèi)四邊形網(wǎng)格結(jié)構(gòu)。
[0040] (1)劃分子區(qū):定義由上、下端輪廓線以及直線χ = ρ、χ = 0圍成的封閉有限區(qū)域為 繪制區(qū)域,本實例中p= 1;將分點sk、ek用實線連接,將繪制區(qū)域劃分成若干子區(qū)域Ev( v = 0, 1,2···)〇
[0041] (2)構(gòu)建四邊形網(wǎng)格:不失一般性,以附圖3所示的子區(qū)域為例,子區(qū)域內(nèi)構(gòu)建四邊 形網(wǎng)格過程如下:
[0042] a.確定子區(qū)域在橫軸上的正投影區(qū)間:通過子區(qū)域的邊界線確定子區(qū)域在橫軸上 的正投影區(qū)間。參見附圖3,上端輪廓線在橫軸上的正投影區(qū)間為[XQ,X1],下端輪廓線在橫 軸上的正投影區(qū)間為[ X2,X3],線段^在橫軸上的正投影區(qū)間為[XQ,X2],線段^;在橫 軸上的正投影區(qū)間為[ X1,X3],合并區(qū)間獲得子區(qū)域在橫軸上的正投影區(qū)間[XQ,X3]。
[0043] b.確定四邊形網(wǎng)格頂點的初始位置:將區(qū)間[XQ,x3]均分為Μ等份,本實例中 ,W =「(α3 并得到該線段上各分點(采樣點)坐標(biāo)(ht,0)(t = 0,...,)且舊為不 小于q的最小整數(shù),ht+1>ht;過點(ht,0)做垂直于橫軸的垂線,每條垂線與子區(qū)域的邊界線相 交于P0、X兩點,對應(yīng)坐標(biāo)分別為汍,4)、(V.vi),其中父,參見附圖3;將線段;^ 均分為Ν份,得到線段/?丨/?丨上各點的坐標(biāo)(h t,kr)(r = 0,. . .,Ν),本實例中Ν=20,其中kr的計 算公式為:
[0044] kr -y〇)f+
[0045] c.確定網(wǎng)格頂點最終位置:參見附圖4所示,將區(qū)間[-V2, V2]均分為N份,并得到 一組點;通過這組點做橫軸的垂線,在y = sin(X)函數(shù)確定的曲線上重新得到一組交點,并 將這組交點橫向投影至縱軸上,其投影坐標(biāo)為(〇,lr),其中l(wèi)r+1>lr;確定點(h t,kr)偏移后的 坐標(biāo)位置(ht,Wr),其中wr的計算公式為:
[0046] Π;. = (/,. + 1)/2 * (ν[ - ν'?) + ylj
[0047] 在子區(qū)域內(nèi)將相鄰垂線段上的點(ht,Wr)按下標(biāo)r對應(yīng)并連接,在子區(qū)域內(nèi)建立起 四邊形網(wǎng)格結(jié)構(gòu)。按照上述方法在每個子區(qū)域內(nèi)建立四邊形網(wǎng)格結(jié)構(gòu),參見附圖5所示。 [0048] 3.確定四邊形網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān)系:輸入圖像Ιο、^作為繩索輪廓區(qū)域 的填充紋理,其中子區(qū)域Εν下標(biāo)ν為偶數(shù)時,確定圖像Ιο為其填充紋理,否則確定圖像h為其 填充紋理;然后確定子區(qū)域內(nèi)四邊形網(wǎng)格頂點與紋理坐標(biāo)映射關(guān)系,具體映射關(guān)系如下:
[0049] (1)確定子區(qū)域Eo內(nèi)四邊形網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān)系:計算網(wǎng)格頂點(ht, Wr)的紋理坐標(biāo)(qt,Zr)為: i q, = hi / D
[0050] " " 丨' Ζ,.=(夂.+ Ι)/(Α'.'. + I)
[0051] (2)確定子區(qū)域Εν(ν=1,2,3...)內(nèi)四邊形網(wǎng)格頂點與紋理坐標(biāo)映射關(guān)系:不失一 般性,以附圖3所示的子區(qū)域為例。在附圖3中,子區(qū)域Ε ν在橫軸的正投影區(qū)間為[XQ,X3],線 段^的中點在橫軸i的投影坐標(biāo)為(ds,〇),線段^的中點在橫軸±的投影坐標(biāo)點為 (d e,0);若hte [x0,ds],則網(wǎng)格頂點(ht,Wr)的紋理坐標(biāo)(qt,Zr)為: \qt =htIp
[0052] |z; =(,v_A.〇)/(j_/i〇)
[0053] 若hte [ds,de],則網(wǎng)格頂點(ht,Wr)的紋理坐標(biāo)(qt,Zr)為: \qr = ht! p
[0054] * , 、
[Z;. = {kr - - k&)
[0055] 若hte [de,X3],則網(wǎng)格頂點(ht,Wr)的紋理坐標(biāo)(qt,Zr)為: \qt = ht f p
[0056] \ !Z;.= (A:,.+ 1)/(^ 4-1)
[0057] 按照上述(1)或(2)方法,確定所有子區(qū)域內(nèi)網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān)系。對 于缺失一部分上、下端輪廓線的子區(qū)域,如附圖2中子區(qū)域E 4。其紋理坐標(biāo)求法為:首先確定 完整的上、下端輪廓線,參見附圖2中穹形曲線f4、g 4,然后根據(jù)子區(qū)域Εν下標(biāo)v選擇上述(1) 或(2)方法,確定繪制區(qū)域內(nèi)網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān)系。
[0058] 4.繪制動畫:調(diào)整控制參數(shù)α、β的值,變化繩索的外輪廓線,輸出繩索扭曲時的圖 像幀,生成繩索扭曲動畫。本例中β值不變,相鄰動畫幀之間α值以步長Δ增加,其中Δ=〇.1 JI〇
【主權(quán)項】
1. 一種2.5維繩索扭曲動畫的生成方法,其特征在于,包括如下步驟: a. 繪制外輪廓線:建立平面直角坐標(biāo)系,在坐標(biāo)系中定義周期變化的穹形曲線為上端 輪廊線;對稱翻轉(zhuǎn)上?而輪廊線并移動以確定下?而輪廊線,其中下?而輪廊線由對稱翻轉(zhuǎn)后的 上端輪廓線及其移動的路線構(gòu)成; b. 構(gòu)建四邊形網(wǎng)格:由外輪廓線構(gòu)建封閉區(qū)域,將該區(qū)域分成若干子區(qū)域,并對子區(qū)域 進(jìn)行標(biāo)記;由子區(qū)域的邊界線確定子區(qū)域的范圍,并在子區(qū)域范圍內(nèi)構(gòu)建四邊形網(wǎng)格; c. 確定四邊形網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān)系:輸入繩索的填充紋理;由子區(qū)域的標(biāo) 記確定子區(qū)域的填充紋理;然后確定子區(qū)域內(nèi)四邊形網(wǎng)格頂點與紋理坐標(biāo)的映射關(guān)系; d. 生成2.5維繩索扭曲動畫:連續(xù)變化繩索的外輪廓線,輸出繩索扭曲時的圖像幀,生 成繩索扭曲的動畫。2. 根據(jù)權(quán)利要求1所述的一種2.5維繩索扭曲動畫的生成方法,其特征在于,所述步驟a 中,上端輪廓線中的穹形曲線fk為:fk=cos(ax-kP),其中k = 0,1,2. . .,α、β分別為用于控制 曲線fk的周期與相位;下端輪廓線由線段a以及穹形曲線gk組成,所述線段a的橫坐標(biāo)為:xe [〇,(π-β)/α],其縱坐標(biāo)為:y = -l;所述穹形曲線gk為:gk = -cos(a(x-(Ji-0)/a)-k0)。3. 根據(jù)權(quán)利要求1或2所述的一種2.5維繩索扭曲動畫的生成方法,其特征在于,所述步 驟b中,封閉區(qū)域由上端輪廓線、下端輪廓線以及直線χ = ρ、Χ = 0組成,通過將上端輪廓線上 的分點Sk與下端輪廓線上對應(yīng)的分點%相連接,將封閉區(qū)域分成若干子區(qū)域。
【文檔編號】G06T13/00GK106097415SQ201610671529
【公開日】2016年11月9日
【申請日】2016年8月15日 公開號201610671529.5, CN 106097415 A, CN 106097415A, CN 201610671529, CN-A-106097415, CN106097415 A, CN106097415A, CN201610671529, CN201610671529.5
【發(fā)明人】龐明勇, 吳磊
【申請人】南京師范大學(xué)