代振興,陳廣鋒,陳 革
(東華大學 機械工程學院,上海 201620)
織物外觀模擬對于織物的設計生產意義重大,近年來已成為計算機圖形學領域的研究熱點。簇絨地毯在生活中可用于懸掛、墊坐或地面覆蓋物等生活裝飾用品,應用廣闊,占據了地毯行業的主要市場份額[1]。但多圈高簇絨地毯絨圈空間結構復雜,高度不一,而且考慮到地毯美觀方面的要求,其花型組合方式多變,大大增加了多圈高簇絨地毯外觀仿真的難度。
國內有關地毯外觀仿真的研究主要集中在地毯輔助設計工具的開發上,如浙大經緯CAD、藍藝地毯集團的地毯CAD、China Dream等[2]。上述工具只能平面地模擬地毯花型設計圖案,不具備簇絨地毯的外觀結構模擬功能。另外,國內已對簇絨地毯外觀模擬開展了一系列研究,但一定程度上忽略了簇絨地毯空間結構上的細節問題,仿真效果較差;國外學者對織物仿真方面的研究主要集中在多股加捻紗線模型構建以及服裝面料真實感模擬等方面,如Zhao等提供了一種自適應構建多股纖維加捻及帶有毛羽效果的紗線模型的方法;Cirio等在建立編織物三維模型時將經緯紗抽象為彈性桿模型來處理接觸摩擦,但由于編織物與簇絨織物結構上的差異,該方法并不適合簇絨類織物的仿真[3-4]。國外有關簇絨地毯外觀整體三維仿真方面的研究少見發布。
基于上述問題,針對簇絨地毯絨圈位置分布不規律、結構復雜等特點,本文通過設計算法基本實現了簇絨地毯的外觀仿真。其中利用B樣條曲線擬合原理建立了絨圈幾何模型并真實地模擬了絨圈空間位置的偏轉變形,增強了簇絨地毯外觀仿真的真實感。
簇絨地毯是通過簇絨針的往復機械運動將紗線穿過底布從而形成具有絨頭的特殊織物;同時在簇絨過程中,通過改變喂紗量的大小來生成不同高度的絨圈,最終形成表面具有浮雕效果的多圈高簇絨地毯[5]。簇絨地毯基本結構如圖1所示。

圖1 簇絨地毯基本結構示意圖Fig.1 Schematic diagram of basic structure of tufted carpet
可以看出,簇絨地毯的絨圈栽植和依附在地毯底布之上,并非整齊規則排列,而是經過栽絨定型、后整理等工藝階段后受到相鄰絨圈的擠壓發生偏轉變形[6]。并且絨圈空間結構上的受力變形極其復雜,具有一定的隨機性。進一步發現,絨圈的變形主要有2種:絨圈自身在成圈過程中受到紗線張力的影響所產生的形變;絨圈整體受到其他絨圈的擠壓后在原有針腳位置基礎上發生了隨機偏轉。考慮到絨圈受力情況復雜,而且柔性紗線織物的受力研究起來比較困難,本文主要針對第2種偏轉變形對簇絨地毯外觀進行仿真模擬。
另外,簇絨地毯實際生產時絨圈是由多股單紗加捻后送入簇絨地毯織機織造而成的,為提高仿真效率,本文將絨圈看作由單股無加捻紗線織造而成。同時簇絨地毯結構只考慮底布的模擬,而膠黏層及背襯起到保護和固定絨圈的作用,文中簇絨地毯的外觀仿真不再考慮二者的模擬。目前簇絨地毯底布多數為聚丙烯編織底布和非織造布底布,文中將底布簡化為具有一定厚度的長方體模型,模擬時先生成底布,然后在底布上完成簇絨過程。
考慮到簇絨地毯空間結構的復雜性,本文利用Rhino軟件所支持的PythonScript模塊通過程序算法實現了簇絨地毯整體外觀的三維仿真。Rhino是一款適用于建立高精度的復雜三維非均勻有理B樣條(NURBUS)模型的建模軟件,結合PythonScript能夠實現通過算法生成幾何模型,并且可以自動執行大量重復的計算任務,提高了仿真效率。圖2示出基于Rhino-Python的簇絨地毯三維仿真流程圖。

圖2 簇絨地毯三維仿真流程圖Fig.2 3-D simulation flow chart of tufted carpet
文中PythonScript開發環境下編寫的簇絨地毯三維模擬程序采用模塊化設計,主要包括地毯工藝參數讀取、模型繪制、紋理添加等部分。其中,模型繪制程序對地毯絨圈受到擠壓后所產生空間位置角度上的隨機變化進行了描述,反映出地毯織造完成后絨圈分布的不規則性。絨圈表面紋理及光照的添加使地毯外觀模擬獲得更加真實的效果。本文最終初步實現了簇絨地毯的整體外觀仿真,提供了一種可行的簇絨類織物三維仿真方案。
對簇絨地毯的外觀進行仿真,首先需要準確地建立絨圈的幾何模型。單個絨圈幾何模型的建立包括絨圈中心線的擬合以及絨圈截面形狀的確定,本文均采用B樣條曲線對二者進行擬合。文獻[7]中提出將服裝面料離散化成若干曲面后,在每個曲面上局部進行模擬計算[7]。同樣地,本文將絨圈中心線及截面形狀曲線離散分割成多段B樣條曲線,分別局部計算各段樣條曲線控制點值后再根據控制點坐標擬合出完整的絨圈中心線和截面形狀。
B樣條曲線是一種分段多項式曲線,能夠通過改變控制點坐標來改變曲線形狀,而且計算速度快,效率高,常用于各類織物的三維仿真[8]。B樣條曲線有均勻B樣條曲線、準均勻B樣條曲線和非均勻有理B樣條曲線(NURBS)幾種。理論上,NURBS可以表示任何曲線曲面,其他2種B樣條都是其特殊形式。目前,通用的B樣條曲線數學表達式為:
(1)
式中:P(t)代表B樣條曲線;Pi代表控制點;Ni,k(t)為均勻B樣條基函數;k用于控制曲線連續性的階次;n等于控制點數目減1[9]。
工程界常用二次和三次B樣條曲線(曲面),本文將絨圈中心線看成是由多段二次B樣條曲線段銜接而成,來準確地描述絨圈中心線的屈曲形態。根據式(1)經過變換,可以得到由P0、P1、P2這3點定義的二次B樣條曲線P(t)的表達式為:
(2)
再進一步,二次B樣條曲線各段數學表達式均可寫為關于t的拋物線式:
(3)


圖3 二次B樣條曲線擬合原理Fig.3 Principle of quadratic B-spline curve fitting
二次B樣條曲線總是與特征多邊形相切,根據二次B樣條曲線端點位置向量以及端點切向量的性質[10],可以得到如下方程組:
(4)
利用高斯消元法結合MatLab求解方程組(4),可以求出控制點P0、P1和P2;然后將控制點代入式(2) 中求得表示絨圈中心線的二次B樣條曲線;最后,利用坐標變換,結合絨圈中心線控制點值及切向量方程擬合出絨圈中心線。
本文將簇絨地毯絨圈中心線看成由多段二次B樣條曲線拼接而成,利用上述方法分段進行求解,然后擬合出絨圈中心線。圖4示出絨圈中心線的二次B樣條曲線擬合,將絨圈中心線分割成5段二次B樣條曲線(L1~L5),計算11個控制點值(P0~P10)來完成整個中心線的擬合。需要注意的是,每相鄰2段B樣條曲線銜接處會共用1個控制點(P2、P4、P6、P8),在計算過程中共用的控制點方程將作為隱含的條件輔助求解。
完成絨圈中心線的二次B樣條曲線分割擬合設計后,按照上述求解方法計算出各控制點值,如表1 所示。但多圈高簇絨地毯各絨圈高度不同導致各個絨圈中心線控制點坐標也不相同,因此表1列出的是圈高為9 mm時未經扭轉變形下的中心線控制點坐標,其他高度下控制點值計算方法相同。

圖4 絨圈中心線的二次B樣條擬合Fig.4 Quadratic B-spline fitting of center-line of the loop

表1 圈高為9 mm時絨圈中心線控制點坐標Tab.1 Coordinates of center-line control point of loop at loop height of 9 mm mm
將控制點值導入Rhino中,使用繪制控制點曲線命令便可以得到擬合出的二次B樣條絨圈中心線,如圖5所示。至此,完成了絨圈中心線的二次B樣條擬合,后續整塊地毯大量絨圈中心線的繪制遵循相同的擬合原理和求解方法,而且通過算法實現。

圖5 Rhino中絨圈中心線繪制Fig.5 Establishing center line model of loop in Rhino
實際絨圈是由多股紗線經過加捻后形成的,其截面形狀沿中心線方向并非處處相同,整體看來,地毯絨圈屬于變截面實體[11]。本文為提高計算效率,將絨圈適當簡化為等截面實體,且截面形狀為圓形截面。將絨圈截面看作由4段90°圓弧連接而成,每段圓弧由3個控制點完成二次B樣條曲線擬合,整個圓形截面曲線共由8個控制點擬合。
按照同樣的計算方法,將求得的8個控制點坐標導入Rhino中,通過添加控制點曲線繪制出絨圈截面,如圖6所示。

圖6 Rhino中絨圈圓形截面表示Fig.6 Loop′s cross section in Rhino
完成絨圈中心線和截面形狀的擬合后,在Rhino中通過繪制實體命令的調用,將絨圈截面沿中心線進行掃掠后得到絨圈的幾何模型,圖7示出2種不同圈高的絨圈幾何模型。

圖7 圈高為8 mm(左)和10 mm(右)的絨圈幾何模型Fig.7 Geometric model with loop′height of 8 mm(left) and 10 mm(right)
通過分析利用B樣條曲線構建絨圈幾何模型的原理,同時研究如何求解出用于B樣條曲線的控制點值,然后結合Rhino環境初步建立了單個絨圈實體模型,為整塊地毯的仿真模擬作以鋪墊。
簇絨地毯在織造過程中經過簇絨、定型、覆膠及平整等工藝處理后,導致絨圈之間由于相互擠壓發生了偏轉變形[12],由前文簇絨地毯的外觀展示也可以看出該特點。如何準確地模擬絨圈位置的偏轉變形成為簇絨地毯外觀仿真需要解決的關鍵問題。
絨圈整體空間位置的偏轉變形是受到絨圈擠壓后隨機產生的,主要表現為絨圈以毯面法線方向為旋轉軸偏轉了一定的角度[13],圖8示出絨圈產生空間位置偏轉變形示意圖,未偏轉絨圈與偏轉絨圈之間形成了偏轉角β。經過觀察地毯實物測量統計得出,絨圈受到擠壓后在空間位置上的偏轉角度不超過±45°。因此,簇絨地毯外觀仿真的關鍵在于準確地表征偏轉角(允許范圍為±45°)。

圖8 絨圈空間位置偏轉變形示意Fig.8 Deflecting and deforming about spatial position of loop

圖9 絨圈偏轉變形模擬效果Fig.9 Effect of loops deflecting simulation

圖10 簇絨地毯外觀整體仿真程序框架Fig.10 Tufted carpet appearance overall simulation program framework
由于絨圈受力情況復雜,各個絨圈受力均不相同導致其發生偏轉變形并且呈現隨機性,因此本文對偏轉角β的隨機模擬借助Python中隨機數生成函數random()來完成。通過設計程序算法在每次完成絨圈幾何模型繪制后,調用以隨機數為主要參數的位置偏轉函數對絨圈空間位置進行偏轉,偏轉角度在允許范圍(±45°)的計算公式為:
β=(random(t)-0.5)×90
(5)
式中,random(t)為隨機數生成函數,在Python中該函數可以生成(0,1)內的任意實數,為保證偏轉角在±45°范圍內,添加權重為90。
那么對應到Python中偏轉角的計算和偏轉實體相應的程序代碼為:
xform=rs.XformRotation2((random.random()-0.5)×90, [0,0,1],center_point)
其中,xform在Python中表示絨圈偏轉后的實體對象。XformRotation2()為偏轉實體函數,該函數所需的3個參數分別為偏轉角度,偏轉中心軸向量以及偏轉軸起始點。
例如,在絨圈高度分別為3,4,5,…,9,10 mm時,根據程序運行結果,各絨圈高度下對應的絨圈偏轉角度為-5.181°,-24.466°,3.501°,…,-12.098°,-28.921°,每個絨圈所偏轉的角度均保證在允許范圍內。當然,每次程序運行后所生成偏轉角的值都是不一樣的,確保絨圈偏轉的隨機性。實際絨圈隨機偏轉的模擬效果(從左至右絨圈高度遞增)如圖9所示,完成了對絨圈空間位置偏轉的隨機模擬。
在完成單個絨圈幾何模型繪制及其隨機偏轉模擬的研究后,本文基于Rhino中的PythonScript開發環境設計了簇絨地毯整體外觀仿真算法,實現了對簇絨地毯外觀的整體仿真。程序主要由3大模塊組成,包括參數讀取保存模塊、幾何模型繪制模塊以及紋理材質設置模塊,程序整體框架組成如圖10所示。
其中,對于簇絨地毯工藝參數的設置包括絨圈高度、絨圈數量、地毯尺寸規模以及多種地毯花型、材質的設置,以獲得不同風格外觀的地毯。繪制絨圈幾何模型時按所設置的絨圈行、列數共2層循環完成所有絨圈的繪制,可以滿足任意大小的地毯尺寸要求。紋理貼圖及材質的設置通過將紗線的材料紋理映射到絨圈表面來增強仿真效果。
區別于前人有關簇絨地毯仿真模擬的研究,文中將簇絨地毯外觀仿真程序按照功能劃分為多個模塊,通過模塊間的相互協作實現簇絨地毯的外觀仿真。例如運行參數讀取子程序獲得當前仿真地毯工藝參數,包括紗線信息、排紗規律以及花型數據,將其傳遞給幾何模型繪制模塊完成地毯整體仿真模型構建,提高了程序的易讀性和可維護性,使得簇絨地毯的外觀仿真實現起來更加便捷。
將仿真結果與地毯實物樣品進行對比,如圖11所示。通過運行程序可以發現,絨圈偏轉變形的模擬達到了較為真實的效果,同時對比結果充分表明上述簇絨地毯三維仿真方案的可行性。

圖11 簇絨地毯外觀仿真效果與實物對比Fig.11 Comparison between tufted carpet appearance simulation and product. (a)Simulation; (b)Finished product

圖12 不同花型簇絨地毯整體外觀仿真效果Fig.12 Overall appearance simulation of tufted carpets with different patterns. (a) Pattern of "DHU"; (b) Pattern of wave; (c) Pattern of hound′s-tooth; (d) Pattern of Twill
另外,不同的花型設置可通過改變絨圈高度及絨圈排列方式任意組合獲得,以下列舉出了多種花型圖案的多圈高簇絨地毯仿真結果,如圖12所示。相比于傳統的二維模擬,三維仿真技術使得地毯外觀看起來更加真實。其中,圖12(a)模擬的是帶有字體花型圖案的簇絨地毯,通過控制字體突出位置的絨圈高度高于其他位置的絨圈,使字體圖案凸顯出來,形成高低絨圈遮擋效果。實際簇絨地毯織造過程中是通過控制簇絨針排中的某根單針系統的傳動比改變其喂紗量以及將多個針排模塊并聯組合后再進行織造,從而在相應字體位置形成高絨圈而其他位置仍保持同一高度。圖12(b)~(d)中通過相同的方法模擬出高低絨圈組合出的不同花型的簇絨地毯。
另外,與之前國內有關學者開展的簇絨地毯外觀仿真方面的研究相比,本文模擬了簇絨地毯絨圈在經歷復雜的工藝過程(栽絨、定型、后整理等)后發生不規則形變的狀態,設定絨圈高度相同的條件下,每個絨圈由于受到擠壓產生變形導致其高度、大小、偏轉角度及方向各不相同。如圖12所示,達到的整體仿真效果相較于已有的研究更加真實。從圖中還可以看出,文中提出的簇絨地毯外觀仿真方法對結構復雜的簇絨地毯取得了較好的仿真效果。理論上,該方法適用于多種圈高組合的任意花型簇絨地毯外觀三維仿真,但對于由多股單紗加捻后編織的簇絨地毯以及割絨地毯的仿真仍需進一步研究。
本文基于二次B樣條曲線建模理論,利用Rhino軟件中的PythonScript對簇絨地毯進行三維仿真,達到了更加真實的效果。在絨圈幾何模型建立過程中,分析了利用B樣條曲線控制點擬合絨圈中心線及截面輪廓的方法,完成了絨圈幾何模型的繪制。考慮到實際絨圈之間因相互擠壓作用會產生形變,對絨圈的隨機偏轉變形進行了模擬。最終,將控制點求解過程及絨圈空間位置偏轉算法寫入到簇絨地毯外觀仿真算法程序中,實現了簇絨地毯整體外觀的基本仿真,并且模擬出了多種花型圖案、絨圈高度變化的簇絨地毯。通過比較模擬圖與實際地毯樣品,仿真結果具有一定的可靠性。