本發(fā)明涉及模型形狀編輯技術領域,尤其是指一種權值c2連續(xù)線性混合形狀編輯方法。
背景技術:
模型形狀編輯與計算機動畫息息相關。采用編輯算法或者軟件編輯成的模型,可以作為動畫的關鍵幀,并通過插值算法等,生成動畫序列。計算機動畫也可以通過編程或者動畫制作軟件等方法,采用計算機圖形圖像處理算法產生一系列的景物模型或者場景的畫面。一般地,當前幀是上一幀的局部修改。計算機動畫是通過快速連續(xù)播放靜止的畫面來達到視覺上物體運動的效果。一般而言,刷新率為每秒25幀以上能讓人眼感覺看到的是連續(xù)的視覺效果。
二維動畫是最先被應用在印刷、制圖、廣告等領域,生成的有gif文件、mp4文件、flash和powerpoint動畫等。二維動畫圖像一般由二維的位圖或者二維向量圖來表示或者編輯。這當中包括了自動化的傳統(tǒng)動畫技術、插值變形技術、onion蒙皮算法以及對位插值。
三維動畫是通過動畫師對模型進行數(shù)字化建模和操作得到。動畫師一般通過創(chuàng)建一個3d多邊形網格,然后對其進行一系列的拉伸、旋轉等操作,變形至需要的姿態(tài)或場景等。關于網格,在計算機圖形學中是定義為一系列的點、邊和面的集合,通過設定好的拓撲關系使之展示出固定的姿態(tài),能夠讓人在視覺上形成一個三維的模型或者三維的場景。有時候,網格模型會給出內部數(shù)字骨架結構以及相應的關節(jié)點,使用戶能夠方便操作模型。在運動或操作的過程中,軟件或者算法會產生一系列的關鍵幀,然后,再通過算法(如線性插值)對關鍵幀之間的幀進行插值,生成相應的動畫序列。
近十多年來,隨著三維網格模型的廣泛應用,許多形狀編輯算法在相關的領域中相繼被提出?,F(xiàn)有的模型編輯算法,歸納為基于表面微分坐標、基于重心坐標和控制網格、基于蒙皮插值的三類編輯算法。但是通過對比發(fā)現(xiàn)上述的第一類算法有一部分需要求解一組帶約束的線性方程組,往往這種算法的求解最終會演變?yōu)樽钚』唤M能量方程。這類算法大量耗時的計算會在編輯過程中影響模型對用戶操作的響應速度,同時這算法的原理也不容易理解。上述的第二類算法通過構造包圍盒或者控制網格等方式,然后用戶通過操作包圍盒和控制網格,間接地影響模型,達到編輯的目的。這類算法的編輯不夠直觀,用戶要對相應的控制單元操作,需要一定的技巧和經驗。而且,這類算法有一部分的包圍盒和控制網格是半自動生成的,有些算法需要其他軟件生成包圍盒和控制網格,甚至需要用戶參與生成的工作,不能自適應所有的三維模型。上述第三類算法會出現(xiàn)“糖紙效應”,對于有一部分對有細小特征的模型的編輯不能達到精細形變的編輯效果,那么,需要額外對這類模型添加約束。所以現(xiàn)有的算法均不能同時滿足上述編輯的幾點要求,缺少一個原理容易理解、高效、便于操作編輯和效果良好的編輯算法。一個編輯算法對模型的編輯效果主要體現(xiàn)在模型的形變質量、編輯的效率和簡易的操作上,但是現(xiàn)有的大多數(shù)算法很少能夠在上述三個方面都達到理想的效果。因此,研究一個針對三維網格模型的高質量、高效的編輯方法是十分有必要的。
技術實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術的缺點與不足,提供了一種權值c2連續(xù)的線性混合形狀編輯方法,該方法可以在編輯的過程中,盡量保持模型表面原有的細節(jié)特征,模型變形過渡平滑,能夠感知模型的局部或整體形狀,模型的編輯效果良好,重構模型階段使用gpu并行計算加速,能夠及時給用戶的編輯反饋,高效的編輯效率能夠達到實時效果。
為實現(xiàn)上述目的,本發(fā)明所提供的技術方案為:一種權值c2連續(xù)的線性混合形狀編輯方法,包括以下步驟:
1)獲取基礎信息,包括用戶輸入的模型、實控制點和控制骨骼;
2)使用實控制點離散化控制骨骼,并對實控制點初始化;
3)估算模型各頂點到實控制點的內部距離;
4)生成虛控制點;
5)計算實控制點對虛控制點的權重以及控制點對模型頂點的權重;
6)用戶操作實控制點變換,虛控制點響應變換;
7)gpu并行加速重構模型。
在步驟1)中,所述模型是用戶輸入的待編輯的模型,包括模型的頂點集合、模型的面集合;所述實控制點和控制骨骼是指獲得用戶輸入實控制點位置信息和控制骨骼兩端的位置信息。
在步驟2)中,用實控制點去模擬控制骨骼,并初始化實控制點,包括以下步驟:
2.1)對于每個控制骨骼的兩端,分別使用兩個實控制點去模擬控制骨骼;
2.2)然后初始化實控制點:對于用來模擬控制骨骼的實控制點,它的標架n(nx,ny,nz)的第一個方向nx沿著連接的一根或者多根控制骨骼的加權方向,標架的另外兩個方向只需要滿足跟第一個方向兩兩相互垂直的要求即可;對于其他的實控制點,標架n(nx,ny,nz)的三個方向分別初始化為nx=(1,0,0),ny=(0,1,0),nz=(0,0,1);
在步驟3)中,先對模型體素化,得到模型致密的體素化結果,然后通過體素化的結果使用廣度優(yōu)先搜索的方法去估算模型頂點到各個實控制點的內部距離。
在步驟4)中,用戶輸入的實控制點有可能過于稀疏或者過于稠密,對于實控制點不滿足約束的時候,插入兩類虛控制點,包括如下步驟:
4.1)實控制點和虛控制點統(tǒng)稱為控制點,以控制點為中心使用voronoi劃分模型區(qū)域,得到的劃分區(qū)域是各個控制點的影響區(qū)域;影響區(qū)域內的頂點離該區(qū)域中心的控制點hi的最大內部距離為該控制點hi的支持度sz(i);對控制點hi而言,其他控制點到hi的內部距離的最小值為hi的隔離距離gl(i);
4.2)如果存在支持度大于隔離距離的控制點,其中控制點hj是上述控制點中(支持度-隔離距離)/支持度的值是最大的話,則在hj的影響區(qū)域內找出一個離hj的內部距離最大的點,在上面生成一個第一類虛控制點,該虛控制點的標架n(nx,ny,nz)初始化為nx=(1,0,0),ny=(1,0,0),nz=(1,0,0);
4.3)迭代更新各個控制點的支持度和隔離距離,然后重復步驟4.2),直到所有控制點的支持度不大于其隔離距離;
4.4)對于所有的控制骨骼:用于模擬某個控制骨骼的兩個實控制點的支持度分別為sz1和sz2,取d=min{sz1,sz2},控制骨骼的長度為l,如果
4.5)執(zhí)行步驟4.3)。
在步驟5)中,先計算實控制點對虛控制點的權重,然后再計算控制點對模型頂點的權重,包括以下步驟:
5.1)以控制點為中心,使用voronoi劃分模型區(qū)域得到voronoi圖,構建該voronoi圖的對偶圖dg;
5.2)賦予實控制點的調和場值為1,虛控制點的調和場值為0,通過步驟6.1)的對偶圖dg的鄰接關系使用拉普拉斯算子把實控制點的調和場值分配給虛控制點,然后虛控制點獲得各個實控制點的調和場值后歸一化,得到的為實控制點對該虛控制點的權重;
5.3)通過模型體素化的結果估算模型上某頂點p到所有控制點的內部距離并定義為d1,d2,…,dm,m為控制點的個數(shù),控制點hi對p的權重wi為:
上式的函數(shù)φ(·)是c2連續(xù)的基函數(shù),sz(i)是第i個控制點的支持度,sz(j)是第j個控制點的支持度,基函數(shù)φ(·)具有如下性質:
φ(0)=1,并且φ(t)=0,
φ'(t)≤0;(3)
φ”(t)在區(qū)間(0,1)是連續(xù)的;
φ'(0)=φ'(1)=φ”(0)=φ”(1)=0(4)
然后基函數(shù)選擇貝塞爾多項式,通過方程(1)求解各個控制點對模型頂點的權重。
在步驟6)中,用戶操作實控制點變換,虛控制點響應變換,包括以下步驟:
6.1)用戶選取實控制點,可以通過平移實控制點或者旋轉實控制點的標架來變換,得到r個實控制點的變換矩陣t1,t2,…,tr;
6.2)對于第i個第一類虛控制點hi響應實控制點的變換而變換,其變換矩陣
在步驟7)中,需要重構模型,包括求得所有m個控制點(包括實控制點和虛控制點)的變換矩陣t1,t2,…,tm之后,對于模型的頂點p的新位置p’的坐標公式為
本發(fā)明與現(xiàn)有技術相比,具有如下優(yōu)點與有益效果:
1、本發(fā)明首次使用模型體素化的方法去估算模型內兩點的內部距離。
2、本發(fā)明首次提出使用c2連續(xù)的基函數(shù)顯示求解權重的方法。
3、本發(fā)明通過生成虛控制點的方法,減少因為用戶隨意設置的控制點可能過于密集或者過于稀疏的可能而導致編輯過程中模型大幅度變形和不夠平滑的過度,虛控制點的生成能夠使得權重在模型上的分布更加均衡和離散。
4、本發(fā)明使用voronoi劃分模型,并構建voronoi圖的對偶圖,通過該對偶圖的鄰接關系把實控制點的調和場值分配給虛控制點,從而生成實控制點對虛控制點的權重,達到編輯時實控制點操縱虛控制點的效果。
5、本發(fā)明方法首次給出虛控制點的變換規(guī)則,在特定的特則下,虛控制點的變換能夠保證c2連續(xù)的權重的編輯性質,保證良好的編輯效果,使得編輯結果更加符合用戶的需求,在編輯模型的時,模型的變形更加合理。
6、本發(fā)明方法在重構模型的過程中,利用編輯算法簡單的頂點更新公式,使用gpu并行加速計算模型頂點的新位置,能夠極大程度地提高計算效率,提高模型編輯時的響應速度,能夠及時給用戶提供模型變形的反饋,做到實時編輯的效果。
附圖說明
圖1為本發(fā)明形狀編輯流程示意圖。
圖2為對模型手部骨骼離散化后使用實控制點模擬的效果圖。
圖3a為對模型體素化之前的示意圖(展示了輸入的模型和控制骨骼的信息)。
圖3b為對模型體素化之后的示意圖。
圖4為本發(fā)明選用的c2連續(xù)的基函數(shù)的函數(shù)圖。
圖5a為輸入的模型和控制點示意圖。
圖5b為生成虛控制點后的狀態(tài)圖。
圖5c為對應圖5a的voronoi區(qū)域劃分圖。
圖5d為對應圖5b的voronoi區(qū)域劃分圖。
圖6a為用戶輸入的控制骨骼示意圖。
圖6b為用戶輸入的待編輯模型的渲染圖。
圖6c為用戶變換控制實控制點后控制骨骼的狀態(tài)圖。
圖6d為編輯算法重構模型的結果圖。
具體實施方式
下面結合具體實施例對本發(fā)明作進一步說明。
如圖1所示,本實施例所提供的權值c2連續(xù)的線性混合形狀編輯方法,包括以下步驟:
1)如圖3a所示,圖3a主要的編輯單元為控制骨骼,首先讀入用戶輸入的待編輯的模型,包括模型的頂點集合、模型的面集合;所述的實控制點和控制骨骼是指獲得用戶輸入實控制點位置信息和控制骨骼兩端的位置信息。
2)離散化控制骨骼,并使用實控制點去模擬控制骨骼,如圖2所示,對模型手部的控制骨骼離散化后,并使用實控制點去模擬,并初始化實控制點的標架,對用于模擬控制骨骼的實控制點的標架其中的一個方向必須沿著連接的控制骨骼的加權方向,如圖2的兩個實控制點標架所示,其余的實控制點的標架直接簡單地設為(1,0,0)、(0,1,0)和(0,0,1)。
3)估算模型各頂點到實控制點的內部距離,如圖3b所示,對模型體素化后得到致密的體素結果。模型內部兩點都肯定會位于體素化結果的兩個體素中,利用致密的體素結果,使用廣度優(yōu)先遍歷的方法估算出模型內兩點的內部距離。
4)用戶輸入的實控制點有可能過于稀疏或者過于稠密,對于實控制點不滿足約束的時候,插入兩類虛控制點,包括如下步驟:
4.1)實控制點和虛控制點統(tǒng)稱為控制點,如圖5a所示為輸入的模型和實控制點,以控制點為中心使用voronoi劃分模型區(qū)域,得到的劃分區(qū)域是各個控制點的影響區(qū)域;影響區(qū)域內的頂點離該區(qū)域中心的控制點hi的最大內部距離為該控制點hi的支持度sz(i);對控制點hi而言,其他控制點到hi的內部距離的最小值為hi的隔離距離gl(i),如圖5c所示,為對圖5a的實控制點為中心的voronoi劃分的結果。
4.2)如果存在支持度大于隔離距離的控制點,其中控制點hj是上述控制點中(支持度-隔離距離)/支持度的值是最大的話,則在hj的影響區(qū)域內找出一個離hj的內部距離最大的點,在上面生成一個第一類虛控制點,該虛控制點的標架n(nx,ny,nz)初始化為nx=(1,0,0),ny=(1,0,0),nz=(1,0,0)。
4.3)迭代更新各個控制點的支持度和隔離距離,然后重復步驟4.2),直到所有控制點的支持度不大于其隔離距離。
4.4)對于所有的控制骨骼:用于模擬某個控制骨骼的兩個實控制點的支持度分別為sz1和sz2,取d=min{sz1,sz2},控制骨骼的長度為l,如果
5)先計算實控制點對虛控制點的權重,然后再計算控制點對模型頂點的權重,包括以下步驟:
5.1)以控制點為中心,使用voronoi劃分模型區(qū)域得到voronoi圖,構建該voronoi圖的對偶圖dg。
5.2)賦予實控制點的調和場值為1,虛控制點的調和場值為0,通過步驟6.1)的對偶圖dg的鄰接關系使用拉普拉斯算子把實控制點的調和場值分配給虛控制點,然后虛控制點獲得各個實控制點的調和場值后歸一化,得到的為實控制點對該虛控制點的權重。
5.3)通過模型體素化的結果估算模型上某頂點p到所有控制點的內部距離并定義為d1,d2,…,dm,m為控制點的個數(shù),控制點hi對p的權重wi為:
上式的函數(shù)φ(·)是c2連續(xù)的基函數(shù),sz(i)是第i個控制點的支持度,sz(j)是第j個控制點的支持度,基函數(shù)φ(·)具有如下性質:
φ(0)=1,并且φ(t)=0,
φ'(t)≤0;(3)
φ”(t)在區(qū)間(0,1)是連續(xù)的;
φ'(0)=φ'(1)=φ”(0)=φ”(1)=0(4)
然后基函數(shù)選擇貝塞爾多項式,通過方程(1)求解各個控制點對模型頂點的權重,本方法使用的基函數(shù)是φ(t)=(1-t)5+5t(1-t)4+10t2(1-t)3,其函數(shù)圖像如圖4所示,在[0,1]區(qū)間外的函數(shù)值為0,通過基函數(shù)可以顯示求得控制點對模型頂點的權重。
6)用戶操作實控制點變換,虛控制點響應變換,包括以下步驟:
6.1)用戶選取實控制點,可以通過平移實控制點或者旋轉實控制點的標架來變換,得到r個實控制點的變換矩陣t1,t2,…,tr,如圖6a所示為控制骨骼原始的狀態(tài),如圖6b所示為用戶輸入的待編輯模型的渲染圖,用戶通過變換實控制點后,得出圖6c的控制骨骼的狀態(tài)。
6.2)對于第i個第一類虛控制點hi響應實控制點的變換而變換,其變換矩陣
7)重構模型,包括求得所有m個控制點(包括實控制點和虛控制點)的變換矩陣t1,t2,…,tm之后,對于模型的頂點p的新位置p’的坐標公式為
綜上所述,本發(fā)明為高效的模型形狀編輯提供了新的方法,允許用戶自定義設置實控制點和控制骨骼,嚴格定義了模型內部距離并使用模型體素化方法估算內部距離。在編輯的過程中,根據(jù)用戶預先設置的實控制點的位置而迭代生成虛控制點,并給出虛控制點的變換規(guī)則。虛控制點能夠使得權重在模型區(qū)域的分布更均衡。c2連續(xù)的權重使得編輯的結果更加平滑自然,可以精確保持模型原有的特征,符合用戶需求,gpu并行計算的高效的編輯效率保證用戶的實時編輯??傊?,本發(fā)明在模型形狀編輯領域提供了一種高效便捷的編輯方法,能夠及時給用戶編輯反饋,達到實時編輯的效果,具有實際應用價值,值得推廣。
以上所述實施例只為本發(fā)明之較佳實施例,并非以此限制本發(fā)明的實施范圍,故凡依本發(fā)明之形狀、原理所作的變化,均應涵蓋在本發(fā)明的保護范圍內。