陳一凡,朱民耀,朱曉強,宋海洋,陸小鋒
(上海大學 通信與信息工程學院,上海 200444)
虛擬現實(VR)技術是計算機軟硬件技術、傳感技術、機器人技術、人工智能及行為心理學等科學領域飛速發展的結晶。主要依賴于二維或者三維實時圖形顯示、三維定位跟蹤、觸覺及嗅覺傳感技術、人工智能技術、高速計算與并行計算技術以及人的行為學研究等多項關鍵技術的發展。受制于計算機硬件性能,VR技術一直以來概念大于應用,理論多于實踐。近年來,隨著計算機技術的迅速發展,計算機的性能得到了顯著提升,使得VR技術在各類工程中的實際應用成為了可能。基于其獨特而強大的沉浸性、交互性、構想性特質(即3L特性)[1],VR技術開始被廣泛應用于工程、教育、醫療、軍事和娛樂等多種領域,并取得了顯著成果。
本研究旨在將VR技術應用于工程施工安全培訓,通過應用VR技術,可有效增強培訓者體驗感,做到身臨其境;提升培訓過程趣味性,提升培訓對象積極性;提高培訓設施可復用性,降低工程培訓成本,提高培訓效率[2];消除培訓時人員密集情況,滿足防疫需求。為充分發揮VR技術的應用優勢,需盡可能提高培訓真實感,其中最重要的就是研究怎樣將自然界物質的物理規律盡可能逼真地在虛擬環境中用動畫仿真,從而給VR使用者最真實的體驗。
在物理動畫領域的研究中,計算機圖形學致力于尋找新方法用于模擬物理現象如剛體、可變形物體或流體的動力學。與計算科學主要關注精確度上相反,這里更主要關注的問題是穩定性、穩健性和運行速度,同時應該保持仿真結果在視覺上的合理性[3]。彈性軟繩的研究和仿真,是該領域中一個重要方向。本研究結合計算機圖形學和物理學相關領域技術進行研究和探討,逼真地模擬出彈性軟繩在拉伸時形變和斷裂的效果,并將該仿真結果應用到了實際VR培訓工程中,很大程度上增強了物理真實體驗感。
該研究靈感來源于實際的工程應用,在VR的安全演練培訓場景里需要用到安全繩索中的緩沖系帶,該結構是一種彈性繩索,具有一定彈性和伸長性,屬于軟體結構,在VR環境下對軟體結構的模擬屬于計算機圖形學的動畫仿真研究。Terzopoulos D,Platt J和Barr A等人[4]較早系統地提出了對彈性結構進行計算機圖形仿真的方法,目前調研發現,對于彈性材質物體的仿真方法有彈簧-質量模型[5]、有限元法、有限差分法[6]和基于位置的動力學(position based dynamics,PBD)方法[7]。
彈簧-質量模型的建立需要與彈性材料自身屬性具有固定關系,所需參數復雜,計算量大的同時,模型復用性卻不高,同時在模型運行中往往需要與力相關聯,常規的解決辦法是引入有限元技術和連續介質力學[8-9],但問題緊隨而來,有限元分析確實是產品設計過程中的一個常用手段,依據有限元分析結果,便可以驗證設計方案的合理性,但在產品的實際開發過程中,產品建模和有限元分析是分開進行的[10],這大大提高了工程開發應用的復雜性和難度系數,同時連續介質力學的迭代計算量十分龐大,對計算機性能要求很高,且很可能產生顯式積分下的超調和能量增益問題。而基于位置的動力學仿真由于能夠控制顯式積分,進而消除了典型的不穩定性問題;在模擬過程中,可以直接操縱頂點和部分對象的位置,可以處理一般性約束[3],正是由于其易于理解和實現的優勢,基于位置的動力學方法目前被廣泛應用于計算機圖形學中軟體的模擬并在被不斷優化和改進。
本方案綜合考慮上述因素,采用改進后的基于位置的動力學方法XPBD[7]構建彈性繩索的基礎,該方法通過一些近似處理,在基本不影響仿真效果的情況下,避免了迭代次數和時間步長對彈性物體剛度的影響,可把彈性物體的剛度定義為一個外部參量,成為彈性物體在動畫模擬時的固有屬性。值得注意的是,該方法仍然是基于位置的,對于二維布料和三維實物的模擬,能通過一般性約束從粒子間距離的變化反映出視覺可信的對應維度的形變。然而彈性繩索的仿真,一般由少量單序列粒子串模擬,粒子間引入距離和碰撞約束,首尾粒子的相對位置變化反映繩索長度的變化,也就說方法上繩索的概念被定義為一維結構,從而導致繩索在仿真過程中,只有縱向形變而沒有橫向形變,這在視覺上是明顯不合理的,違背了計算機圖形學的基本要求。本研究根據基于位置的動力學算法原理和彈性力學的廣義胡克定律設計實現了彈性繩索在彈性限度內拉伸發生縱向形變時對應發生橫向形變的效果,同時實現了彈性繩索過度拉伸時材質缺陷處發生頸縮型塑性形變[11]和超出拉伸極限發生斷裂[12]的特效。
最早的基于位置的動力學(PBD)由Müller M和 Heidelberger B等人[3]在2006年系統提出,不久Müller M[13]通過改進算法加快收斂速度,改善了軟體剛性屬性,為在少量迭代即計算量較小的情況下,用該算法模擬彈性繩索奠定基礎。該算法應用廣泛并不斷改進,但直到2016年Macklin M等人[7]才提出XPBD方法。PBD求解器的主要步驟是求解每個受約束的粒子組的相對位置Δx,求解公式如下所示:
Δx=kjsjM-1?Cj(xi)
(1)
式中,下標i表示迭代索引,j是約束條件,k∈[0,1]是簡單應用的約束剛度,k直接影響了視覺下的軟體硬度效果,根據公式易見k與迭代次數和時間步長都有關系。XPBD通過一些近似處理在基本不影響視覺效果的情況下,計算公式被重定義為:
Δx=M-1?C(xi)TΔλ
(2)
簡化后的公式(2)中,約束剛度被轉化成一個不受時間步長和迭代次數影響的參量,并可以在外部自定義大小,Macklin M等人通過和其他物理建模方法實驗對比,驗證了XPBD的可行性。對于彈性繩索的模擬,首先關注到其彈性,嘗試在提高剛性的情況下,把粒子盤繞成螺旋的排列形式,內部結構像是彈簧,外部渲染成一個整體,這樣僅依賴距離約束,彈簧結構在縱向變化時就能引起橫向變化。Kugelstadt T和Sch?mer E[14]確實成功優化了PBD方法的彈簧結構仿真,但該方法中大部分計算是在模擬彈簧內部的扭轉和彎曲上,且整體結構在表現出良好的彈性性能時,其柔性過高,視覺上與繩索具有很大差異,巨大計算代價下的低仿真效果明顯不滿足研究需求。同時發現,PBD方法下的任何仿真,都默認粒子屬性只有位置,速度和質量屬性,卻沒有大小,聯系到XPBD方法下,外部定義約束剛性大小(在下一節里將解釋定義剛性的原因)后,只需少量粒子在線性情況下的模擬,就能夠在迭代次數較小和時間步長合理的情況下,使粒子結構表現出良好的彈性物理性質,基于此,再考慮引入基本彈性力學概念,通過計算推導出彈性繩索縱橫形變規律,為線性結構的粒子組定義大小,仿真實現彈性繩索的真實感物理變化。
彈性繩索是彈性體的一種特殊情況,可以在彈性體變形研究的框架下對其形變規律進行計算和歸納。在不計熱效應的準靜態條件下,將彈性物體微分成無數個小單元進行力和能量的分析,對于彈性體來說,外力做功等于內力做功,由應變能密度是應變的單值函數,可得:
dW=σijdεij
(3)
式中,W表示功,σij表示ij方向的應力,εij表示ij方向的應變,根據公式(3)推導出:

(4)
公式(4)又可表示為:

(5)
公式(5)稱之為格林(Green)公式,表示了彈性材料的本構關系,將W在εij=0的地方泰勒展開,得到:

(6)

又有:

σij=Eijklεkl
(7)
橫觀各向同性彈性本構方程如下:
(8)
式中,Ev為垂直于各向同性平面的彈性模量,Eh為平行于各向同性平面的彈性模量,vvh為施加垂直應變引起水平應變的泊松比,vhh為各向同性平面內的泊松比,Gvh為垂直于各向同性平面的剪切模量,ε為應變增量,σ為正應力增量,γ為切應變增量,τ為切應力增量。
繩索多為絞線纏繞結構,可以認為是水平層理結構,如圖1所示。

圖1 水平層理結構
則有水平層理面兩個方向X和Y的應力和應變關系一致[15],統一表示應變為εh,應力為σh,Z方向的應變和應力εz表示為εv,σz表示為σv,則本構方程可以簡化為:

(9)
矩陣乘積得:

(10)

(11)
在自然世界里,彈性體的E和v是物質的固有屬性,E即楊氏彈性模量,是描述固體材料抵抗形變能力的物理量[16],v即泊松比,材料沿載荷方向產生伸長(或縮短)變形的同時,在垂直于載荷的方向會產生縮短(或伸長)變形,垂直方向上的應變εh與載荷方向上的應變εv之比的負值稱為材料的泊松比,在材料彈性變形階段內,v是一個常數,數學家泊松早在1829年發表的《彈性體平衡和運動研究報告》一文中就給出了理論推導。
把彈性材料的物理性質映射到動畫仿真中,動畫的變化規律應盡量符合其在真實世界的物理規律,以保證其視覺上的可信,達到具有物理真實感的動畫仿真效果。XPBD方法下構建的線性粒子組,粒子間的剛度約束不受時間步長和迭代次數影響,并且可以在外部自定義,這就意味著剛度成為線性粒子組的固有屬性,并在視覺上反映粒子組模擬的繩索彈性效果。
如圖2所示,用少量粒子,當給繩索添加載荷(實驗中設置mass為10 g),載荷進行視覺上可信的簡諧運動,當載荷停在平衡點時,繩索伸長率(繩索伸長量與繩索原長的比值)從左到右依次為0.0,0.3,0.6和0.9。顯而易見,該方法模擬的繩索抵抗形變的能力和剛度系數線性正比例相關,可驗證,該方法模擬的繩索在剛度參數預定義時,其抵抗形變的能力是始終不變的,映射到物理屬性中,印證了楊氏模量E是彈性物體的固有屬性,彈性物體在連接載荷時縱向形變規律滿足廣義胡克定律,其縱向形變是視覺上可信的,但繩索在懸掛載荷拉伸后,橫向也應該對應發生形變。

圖2 不同剛度系數下的彈性繩相同載荷平衡狀態
(載荷為10 g,從左到右的線剛度系數分別為0.000,0.001,0.002,0.003)
首先考慮在彈性限度內彈性物體拉伸時的形變規律,在楊氏模量確定,繩索縱向拉伸規律滿足物理真實感的前提下,根據公式(11)可以找到橫向形變和縱向形變的對應關系,但值得強調的是,該公式僅在彈性物體的微分單元上成立,假定模擬的繩索材質均勻,那么根據微分單元的體積和是繩索整體體積的基本原理,只需計算各微分單元的體積變化,求和得到繩索整體的體積變化,又有縱向形變已知,那么橫向變化易得。
當彈性物體的材質均勻并受到拉力時,其內部受力處均勻,那么意味著所有微分單元體(以下簡稱微元體)的形變規律是一致的,如圖3所示,可以求解微元體的體積變化量ΔV。

圖3 微分單元的形變
當微元體縱向Z受到拉力時,根據公式(10),應力引起應變,縱向伸長,根據公式(11)可知橫向形變與縱向形變存在固定比例關系,比例系數是彈性物體的固有屬性——泊松比v。
求解如下聯立方程組:
(12)
式中,V0是微元體的原始體積,V1是微元體形變后的體積,忽略高階小量,可以得到:
ΔV=XYΔZ+XZΔY+YZΔX
(13)
代入公式(12)有體積變化率:
(14)
微元體的全體集合是彈性體整體,彈性體在材質均勻的前提下,各微元體的變化是相同的,那么對其進行求和,推廣到一般情況,整體的體積變化將與微元體的變化是一致的,變化率也是K;彈性繩索的模型被定義為圓柱體,均勻拉伸后的繩索仍然是圓柱體,只是半徑會發生變化,那么有:
(15)
將公式(14)代入公式(15)可得:
(16)
式中,R和r分別為彈性繩索在載荷作用下發生形變前后的半徑,L和l分別為彈性繩索在載荷作用下發生形變前后的長度,v是繩索的固有屬性泊松比,物理學中取值為-1到0.5,小于零時,表明材料是具有負泊松比的特殊材料,材料受拉體積反而增大。
考慮繩索材質在某一位置存在缺陷的特殊情況,當載荷拉力導致繩索收縮,截面小于截面收縮極限時,繩索會從缺陷點開始發生頸縮,頸縮曲線一般來說符合雙曲線模型[17]。
繩索發生頸縮時,沿繩索橫向截面圓直徑的縱向切截面如圖4雙曲線所示。頸縮程度從繩索兩端到缺陷點逐漸增強,假定缺陷點在繩索中間,繩索兩端為最大半徑位置,且垂直投影在雙曲線焦點上,視覺上表現為兩端粗、中間細,兩端半徑為收縮極限截面半徑,則可等效為繩索在發生頸縮時,繩索縱向上任意位置的橫截面圓半徑是雙曲線到Y軸的距離,則有:

(17)
式中,rmin為截面收縮到極限時的繩索兩端橫截面圓半徑,l為繩索當前長度,聯立求解可得:

(18)
根據公式(18),在已知繩索長度時,可以求解任意位置的繩索半徑。

圖4 雙曲線
當繩索發生頸縮后,繩索依然能夠在持續增大的載荷拉力作用下繼續伸長,缺陷處的截面半徑隨著繩索的繼續拉長會持續變小,當缺陷處截面半徑小于一個極限值時,繩索會發生斷裂,此時的繩索長度為極限拉伸長度,繩索極限拉伸長度與自身材料屬性有關,是繩索的固有屬性[18]。因此可通過設置閾值的方式,當繩索伸長率大于該閾值時發生斷裂,進而考慮繩索斷裂時的特效渲染。
考慮到真實物理性質下,繩索為多股纖維材料編制而成,當發生斷裂時,編織結構被破壞,多股纖維也同時發生斷裂,那么斷裂口將呈現出不規則毛刺狀,不規則映射到計算機語言里就是隨機,毛刺狀可以通過倒三角貼圖渲染,可在建立繩索模型時,通過設置隨機數,隨機建模斷裂處的模型單元長度和方向,通過倒三角貼圖渲染的方式,達到視覺上類似的不規則毛刺狀斷裂口效果。
實驗在Unity平臺下進行,構建的是VR開發環境。實驗中通過設置幾組不同參數的對比實驗,展示設計的繩索在不同拉伸情況下的仿真效果。
首先在不考慮橫向變化的情況下,驗證彈性繩索的基本物理性質,設置一組對比實驗,如圖2所示,可驗證,當彈性繩索剛度系數確定時,其能夠在符合廣義胡克定律的情況下,真實地模擬出彈性繩索的物理伸長規律。
進而考慮橫向形變,根據公式(16),設置一組對比實驗,彈性繩索的剛度系數為0.001,泊松比左二開始向右分別為0.0,0.3和0.5。

圖5 不同泊松比下的彈性繩索拉伸效果
對常見材料來說,縱向拉伸會導致橫向收縮,所以泊松比一般不會為負值,在圖5(a)中,當泊松比為0時,表示該種彈性繩索縱向拉伸不會導致橫向收縮,所以和左一繩索原來粗細始終保持一致,半徑收縮率為0;當泊松比為0.5時,表示該種彈性繩索在拉伸形變過程中保持體積不變;一般來說,彈性繩索的泊松比在0.3左右。通過對比實驗,外部調節泊松比參數,視覺上,該彈性繩索模型在載荷作用下拉伸過程中的形變基本符合物理真實感。
同時測試了負泊松比的情況,能夠模擬負泊松比材料在載荷作用下縱向拉伸時橫向也拉伸的形變效果,如圖5(b)。希望能夠為以后在計算機仿真中模擬負泊松比材料的形變規律做出貢獻。
根據公式(18),設置不同的彈性繩索的極限截面收縮半徑,模擬彈性繩索在載荷作用下拉伸到不同程度時發生頸縮的仿真效果。
在圖6中,從左到右依次為不發生頸縮,發生頸縮且極限收縮半徑rmin為0.80倍的原始半徑,0.75倍的原始半徑和0.70倍的原始半徑四種情況。動畫仿真過程中,當彈性繩索在載荷作用下拉伸時,橫向截面半徑對應縮小,在大于極限收縮半徑時,半徑均勻減小,當小于極限收縮半徑時,繩索無法繼續均勻橫向收縮,會從缺陷點處發生頸縮,頸縮曲線用雙曲線擬合,視覺上達到了基本可信的程度。

圖6 彈性繩索頸縮效果仿真
根據前一節結論,彈性繩索被過度拉伸時會發生斷裂,通過斷裂處分割式隨機數建模,用倒三角貼圖模擬出斷裂口不規則毛刺狀效果。

圖7 彈性繩索不規則毛刺狀斷裂口仿真
如圖7,繩索的圓柱體分割建模單元從左到右依次設置為8,16和32,可以看到模型的分割單元越多,模擬的毛刺狀效果就越好,但分割單元越多,計算機的功耗也就越大,因此需要在基本滿足視覺需求的同時,不過度追求精細。通過實驗對比,模型分割單元在16到32之間基本就可以滿足模擬繩索不規則毛刺狀斷裂口的仿真視覺效果。
實驗測試了彈性繩索在載荷作用下拉伸的完整形變過程。
如圖8所示,彈性繩索的拉伸過程,首先是彈性限度內,均勻拉長,材質均勻的情況下,橫向均勻收縮;當超過彈性限度時,即截面達到收縮極限,繩索發生塑性形變,從材質缺陷處開始發生頸縮;當繩索超過伸長極限時,會從中間發生斷裂,斷裂處呈現不規則毛刺狀。

圖8 彈性繩索拉伸形變完整過程
如圖9(a)所示,為了測試本研究彈性繩索的普遍適用性,為繩索表面添加碰撞檢測,當繩索拉伸過程中因碰撞而彎曲時,其縱橫變化規律依然表現出良好的視覺動畫效果。
如圖9(b)所示,在工程施工中,工人難免會到高空進行施工操作,正確佩戴安全保護裝置是保證施工安全的必要環節,在VR場景中對工人進行培訓,既提高了培訓效率,也降低了培訓風險和成本,但為了使培訓的效果顯著,其真實性要求很高。本研究設計的緩沖繩索能夠模擬工人失足墜落的動畫效果,同時彈性繩索的彈性特性,對墜落的緩沖動畫效果顯著,繩索的拉伸形變在視覺上基本滿足真實感的要求。

圖9 彈性繩索普適性及實用性仿真
通過對彈性繩索的研究和仿真,實現了其在彈性限度內拉伸時,符合縱橫物理變化規律的動畫仿真;超過彈性限度時,符合塑性形變物理規律,繩索材質缺陷處發生頸縮的動畫仿真以及超過伸長極限發生斷裂時的斷裂口效果仿真。并成功將其應用到VR工程中,用以模擬安全保護裝置的緩沖繩索,展現了良好的視覺效果。研究結果還可以應用于其他彈性繩索的模擬,如蹦極的彈力繩和健身彈力繩等,使得VR用戶能夠在虛擬環境中從視覺上獲得最符合物理真實感的體驗;研究中負泊松比的引入,也可以為其他特殊負泊松比彈性材料的拉伸仿真研究提供參考。對于材質不均勻的彈性繩索,正在考慮引入更多的模型參數,將繩索剛度系數擬合為與繩索粒子位置相關聯的函數,以求實現更復雜的形變動畫效果。