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