專利名稱:一種面向虛擬裝配的基于粒子的晶格形狀匹配變形方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機虛擬現(xiàn)實領(lǐng)域,具體地說,是一種面向虛擬裝配的基于粒子的晶格形狀匹配變形方法。
背景技術(shù):
傳統(tǒng)的虛擬裝配系統(tǒng)主要面向剛體零部件,對可變形部件不能有效的仿真。為解決這個問題,將晶格形狀匹配變形算法與虛擬拆裝系統(tǒng)相結(jié)合,可高效的仿真出直列四缸發(fā)動機中進出氣門金屬彈簧的變形效果。在計算機圖形學的研究領(lǐng)域中,變形技術(shù)已經(jīng)發(fā)展了很多年,但研究成果很少被應用在虛擬拆裝系統(tǒng)里。長期以來,變形體物理仿真的固有難點制約著實時仿真的發(fā)展。例如一些算法時間復雜度高且不夠魯棒,在交互式虛擬環(huán)境中不能夠滿足實時的應用需求。 另一些算法雖然達到了實時可交互的計算速度,但卻加入過多的約束條件,例如限制了物體變形的區(qū)域范圍,或限制了用戶的交互方式。此外,許多算法原理復雜,實現(xiàn)難度很大。因此在應用領(lǐng)域,傳統(tǒng)的虛擬拆裝系統(tǒng)主要面向剛體零部件,對于變形體不能有效仿真。以直列四缸汽車發(fā)動機為例,每個進氣門和出氣門都受一個金屬彈簧的控制。當安裝氣門的時候,需要先將彈簧壓縮變形,然后放置氣門蓋子。作為仿真的需求,我們要以交互的方式模擬彈簧的變形。而且算法要求必須具有穩(wěn)定性,高效性,和可交互性。大量試驗證明,當把晶格區(qū)域?qū)挾仍O(shè)置為特定數(shù)值時,可以模擬不同剛度物體的變形效果,對于小于2萬個三角面片的中等規(guī)模模型可以實現(xiàn)實時可交互的仿真效果。本發(fā)明的主要貢獻在于,將晶格形狀匹配變形方法應用于虛擬拆裝領(lǐng)域,通過大量實驗,找到了適用于模擬金屬形變的晶格寬度值。在虛擬拆裝系統(tǒng)里,我們用該方法模擬了發(fā)動機氣門彈簧的形變效果。結(jié)果表明,我們的仿真達到了可交互、高魯棒性和高真實性的多重要求。同時以算法為輔助,我們設(shè)計并實現(xiàn)了一個虛擬拆裝系統(tǒng)。在變形算法的輔助下,虛擬拆裝系統(tǒng)適用于復雜的航空發(fā)動機拆裝,汽車發(fā)動機拆裝以及簡單的自行車拆裝等多種背景。
發(fā)明內(nèi)容
本發(fā)明的目的是彌補虛擬拆裝系統(tǒng)缺乏對于變形體支持的現(xiàn)狀,將基于粒子的晶格形狀匹配變形算法應用于虛擬拆裝系統(tǒng),使得在系統(tǒng)中,實時可交互的對變形體進行操作。為達到上述目的,本發(fā)明提出一種面向虛擬裝配的基于粒子的晶格形狀匹配變形方法,具體的步驟如下1)載入三維模型;2)通過提取模型頂點信息對模型進行體素化;3)生成晶格區(qū)域和晶格列表,利用寬度優(yōu)先搜索設(shè)置粒子關(guān)系,建立晶格與粒子之間的關(guān)系,計算每個粒子的初始位置,以及每個粒子下一時刻的速度,計算每個粒子下一時刻的位置,根據(jù)晶格區(qū)域的平均值計算每個粒子的終止位置;4)渲染背景,渲染模型;5)通過實驗找到適合模擬真實金屬硬度的晶格寬度值;上述方法中,步驟1)中,載入工作需要從模型文件中提取頂點的位置坐標,頂點法線坐標,三角面片中點的索引信息。上述方法中,步驟2、中,根據(jù)采集到的頂點坐標信息,對三維物體進行體素化處理,將物體用點陣表示。上述方法中,步驟3)中,利用寬度優(yōu)先搜索設(shè)置粒子關(guān)系,建立晶格與粒子之間的關(guān)系,計算每個粒子的初始位置,計算每個粒子下一時刻的速度,計算每個粒子下一時刻的位置,根據(jù)晶格區(qū)域的平均值計算每個粒子的終止位置。上述方法中,步驟幻中,通過多組對比試驗,找到適合模擬真實金屬變形硬度的晶格寬度值。本發(fā)明的優(yōu)點在于1、變形算法實時可交互;2、通過設(shè)置晶格寬度值,變形體的硬度可以隨意調(diào)整,適合于模擬軟體到硬金屬等多種不同物理屬性的物體。
圖1示出本發(fā)明的操作流程圖;圖2示出通過增加晶格寬度值,可以改變物體變形的硬度;圖3示出粒子之間的牽制關(guān)系。
具體實施例方式下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細說明。本發(fā)明的主要流程圖如圖1所示,具體步驟如下(1)載入模型,通常載入OBJ格式的模型,根據(jù)文件行標記V、vn、f分別提取出模型的頂點信息,頂點法線信息,三角面片信息等等;(2)根據(jù)提取出的模型頂點信息,將模型進行體素化處理;(3)利用寬度優(yōu)先搜索設(shè)置粒子關(guān)系,由初始位置和目標位置的差值計算每個粒子的初始位置和變形后的位置,求解旋轉(zhuǎn)矩陣R和平移向量t,根據(jù)當前的移動時間和預設(shè)的加速度值來計算每個粒子下一時刻的速度,計算每個粒子下一時刻的位置;求解公式如下所示ν (t+h) = ν (t) +a (g (t) -χ (t)) /h+hf (t) /m(1)χ (t+h) = χ (t) +hv (t+h)(2)式⑴中,a為剛度系數(shù),(g(t)_x(t))/h是速度增量,(g(t)-x(t))是位移增量,m 為每個粒子的質(zhì)量,h代表時間間隔。使得粒子直接向最終位置移動,由當前時刻速度v(t) 求解出下一時刻速度V(Uh);式(2)中,由當前位置x(t)求解出下一時刻位置X(Uh);(4)構(gòu)建晶格;根據(jù)輸入的晶格寬度值將相鄰的不同數(shù)量的點集形成一個點陣從而構(gòu)建一個晶格(如附圖的圖2所示),每一個晶格頂點和粒子共享同一個索引i。對每一個粒子,設(shè)定它的初始位置、動態(tài)位置、質(zhì)量。對于每一個粒子,構(gòu)建它的相鄰鄰居鏈表,該鏈表與粒子至少同屬于一個晶格。給定一個需要變形的網(wǎng)格模型,我們通過適當?shù)捏w素化該模型來構(gòu)建立方體晶格的頂點,在本發(fā)明中為網(wǎng)格模型中三角面片的頂點。通過對晶格頂點位置的三線性插值來求得嵌入的模型的變形情況。對晶格頂點進行控制可以實現(xiàn)對模型變形的交互控制。每一個晶格頂點和粒子共享同一個索引i,對于每一個粒子i,令它的初始位置為V,它的動態(tài)位置為Xi,質(zhì)量為Α。對于每一個粒子i,我們構(gòu)建它的相鄰鄰居鏈表Ni (距離為1),該鏈表由與粒子i.至少同屬于一個晶格的粒子組成。每一個粒子i都與一個形狀匹配晶格區(qū)域Ri相關(guān)。該區(qū)域由一組形狀匹配粒子集合組成。如圖2所示,w是該晶格區(qū)域的半寬度。Ri是這樣一個粒子鏈表(Ri是區(qū)域也是指該區(qū)域里面的粒子鏈表),它是由所有與粒子i距離不大于w的鄰居粒子組成的。當w =1時,Ri =隊。w作為晶格區(qū)域的半寬度是系統(tǒng)的輸入項。這一氏的定義同樣適用于非規(guī)則的形狀匹配區(qū)域并且可以處理邊界情況。一般情況下,粒子之間都是最大化鏈接的,晶格區(qū)域的邊長為2w+l。如圖2所示,當w = 1時,晶格寬度為1,此時9個點共享一個晶格,居于中心的點的相鄰鄰居列表就是它周圍的8個點的列表;當w = 2時,晶格寬度為2,此時15個點共享一個晶格,居于中心的點的相鄰鄰居列表就是晶格里除去它自己的14個點的列表。(5)通過大量實驗,找到適合模擬真實金屬硬度的晶格寬度數(shù)值。當寬度值較小時,晶格區(qū)域?qū)挾纫草^小,此時對物體平滑程度的擾動較緩慢,使得物體呈現(xiàn)松軟的剛度特征。當精度區(qū)域?qū)挾容^大時,物體變的不易被擾動,它會迅速回到平衡位置,物體呈現(xiàn)堅硬的剛度特征,如圖2所示。(6)將算法應用于汽車發(fā)動機中的金屬彈簧中,調(diào)整晶格寬度值,找到適合金屬特性的晶格寬度值,在加入面向彈簧的拆裝交互后,實現(xiàn)了把算法應用到虛擬拆裝系統(tǒng)中的目的。
權(quán)利要求
1.一種面向虛擬裝配的基于粒子的晶格形狀匹配變形方法,其特征在于它包括以下步驟1)載入三維模型;2)通過提取模型頂點信息對模型進行體素化;3)根據(jù)需要的晶格寬度值生成晶格區(qū)域和晶格列表,利用寬度優(yōu)先搜索設(shè)置粒子關(guān)系,建立晶格與粒子之間的關(guān)系,計算每個粒子的初始位置,計算每個粒子下一時刻的速度,根據(jù)粒子當前的位置和目標位置的差值計算每個粒子下一時刻的位置,根據(jù)晶格區(qū)域的平均值計算每個粒子的終止位置;4)渲染背景,渲染模型;5)使用同一個網(wǎng)格模型,選擇不同的晶格寬度值,在同一高度分別將模型跌落向平面, 根據(jù)變形的不同程度,選擇適合模擬真實金屬硬度的晶格寬度值。
2.按照權(quán)利要求1所述的面向虛擬裝配的基于粒子的晶格形狀匹配變形算法,其特征在于,在步驟1)中,分別采集三維模型的頂點坐標,頂點法線坐標,三角面片中點的索引信息,載入模型。
3.按照權(quán)利要求1所述的面向虛擬裝配的基于粒子的晶格形狀匹配變形算法,其特征在于,在步驟幻中,根據(jù)步驟1)中采集的頂點坐標信息,對三維物體進行體素化處理,將物體變?yōu)辄c陣表示。
4.按照權(quán)利要求1所述的面向虛擬裝配的基于粒子的晶格形狀匹配變形算法,其特征在于,在步驟3)中,利用寬度優(yōu)先搜索設(shè)置粒子關(guān)系,建立晶格與粒子之間的關(guān)系,計算每個粒子的初始位置,計算每個粒子下一時刻的速度,計算每個粒子下一時刻的位置,根據(jù)晶格區(qū)域的平均值計算每個粒子的終止位置。
5.按照權(quán)利要求1所述的面向虛擬裝配的基于粒子的晶格形狀匹配變形算法,其特征在于,在步驟幻中,通過多組對比試驗,找到適合模擬真實金屬變形硬度的晶格寬度值。
全文摘要
本發(fā)明是面向虛擬裝配的基于粒子的晶格形狀匹配變形算法,對變形物體進行體素化,然后進行變形操作,通過實驗找到適合模擬金屬變形的晶格寬度值,在虛擬裝配系統(tǒng)中真實模擬剛體彈簧的變形效果。本方法包括載入三維模型;對已有的三維模型進行體素化;生成晶格區(qū)域和晶格列表;利用寬度優(yōu)先搜索設(shè)置粒子;建立晶格粒子之間的連接關(guān)系;計算每個粒子的初始位置;計算每個粒子下一時刻的速度;計算每個粒子下一時刻的位置;根據(jù)晶格區(qū)域的平均值計算每個粒子的終止位置;渲染背景和渲染模型;通過實驗找到適合模擬真實金屬硬度的晶格寬度值。本發(fā)明可以支持裝配過程中,直列四缸汽車發(fā)動機中氣門彈簧的變形操作。
文檔編號G06T17/00GK102521872SQ201110334638
公開日2012年6月27日 申請日期2011年10月28日 優(yōu)先權(quán)日2011年10月28日
發(fā)明者周天, 齊越 申請人:北京航空航天大學