林瑩瑩, 蔡睿凡, 朱雨真, 唐祥峻, 金小剛
(浙江大學CAD & CG國家重點實驗室,浙江 杭州 310058)
中國擁有長達萬年的陶瓷歷史,一直以來,陶瓷工藝都是中國文化和生活方式的重要載體。隨著人們對精神文化追求的逐步提高,陶瓷制作逐漸演變為大眾娛樂休閑的一種方式。然而,傳統的陶瓷工藝對制作環境和設備要求十分嚴格,普通的陶藝體驗館并無法將陶瓷制作工藝完好地展現出來。如拉坯步驟,需要對泥料進行陳腐、踩煉、揉泥等一系列操作,才能在轉盤上進行拉坯成型。更不用說,在燒制階段對高溫的要求和控制[1]。所以陶瓷制作工藝普及非常之難。因此,尋求一種便利且沉浸感良好的陶瓷制作體驗方法就變得十分必要。
在當今信息化的語境下,以信息方式對事物進行重新認知和互動,成為了新的主流方式[2]。越來越多的傳統行業為了更好地傳承發展,加入到信息化潮流之中,陶瓷行業也不例外。事實上,陶瓷產品設計早已不再是單一的手繪和人工拉坯成型,像3DMax,Maya等計算機輔助技術已經被廣泛運用其中[3],應用型的陶瓷體驗軟件也曾出不窮,但這些方法均不是沉浸式虛擬現實(virtual reality, VR)環境的。
近年來,VR技術逐步興起,從各方面展現出優秀的沉浸感,而動作捕捉技術的結合,加大了用戶體驗的參與感,這也為陶瓷制作工藝提供了新的解決方案。本文結合動作捕捉和 VR技術,利用Leap Motion和HTC Vive研發了一款沉浸式的虛擬陶藝體驗系統,使用戶擺脫陶瓷嚴苛的制作環境,沉浸到真實的虛擬制作場景中,利用自身的手部運動交互,實時修改陶瓷形狀,生成個性化陶瓷模型。為了實現這一個目標,在陶瓷的結構設計時不僅要滿足動態變化,還需保證形變的平滑性和流暢性。具體解決方法將在3.1和3.2節闡述。
VR是一種可以創建和體驗虛擬世界的計算機仿真系統,1987年,由VPL (Visual Programming Laboratory)實驗室的創立者Jaron Lanier正式提出。隨著計算機圖形學、廣角立體顯示等技術的蓬勃發展,VR相關應用逐漸普及。其中,與Leap Motion為代表的體感技術相結合,是VR領域研究的一個重要方向[4]。截至目前,“Leap Motion+VR”技術已經被運用到醫療、教育、文化、游戲等各個領域[5-7]。2017年,MA Seif團隊基于Leap Motion開發了一套醫療訓練系統,使用戶可以通過手勢對醫學三維物體進行控制,從而實現真實、有效的醫療訓練[8]。同年,DHARMAYASA等[9]利用Leap Motion開發了虛擬博物館系統,使用戶可以通過手部姿勢進行位置飛躍和漫游。HARIADI等[10]將印尼傳統樂器Sasando虛擬化,且構建了三維結構,利用 Leap Motion對琴弦進行撥動操控,實現對印尼文化的保護。CUI和SOURIN[11]開發了利用Leap Motion進行形狀建模的系統,用戶通過雙手動作,對場景中的物體進行自定義建模。
截止目前,已經有許多針對虛擬陶瓷建模的工作。HAN等[12]提出用圓柱體元作為陶瓷模型單位進行建模,隨后 LEE等[13]將圓柱體元進一步細化為循環扇形,但對細分精度要求很高,且無法避免分界線的出現。而 KUMAR等[14]采用數論方法對輸入輪廓數據點進行樣條插值從而得到陶瓷模型,避免了復雜的計算,但是背離了真實的制陶交互。文獻[15-17]利用廣義圓柱體表示陶瓷模型,提出了針對陶瓷建模的手勢自由幾何方法,并采用拉普拉斯平滑實現陶瓷的全局和局部的變形,本文陶瓷定義參考了其工作。
在產品方面,Vinayak團隊先后推出了“Shape-It-Up”和“zPot”制陶系統[16-17],兩者分別使用 Kinect相機和 Leap Motion對手部運動進行捕捉。2018年,GAO等[18]也利用Kinect相機實現了虛擬陶瓷交互系統,并加入特效和聯網分享。同年,CHIANG等[19]基于Leap Motion研發了虛擬陶瓷造型的訓練系統。這4個系統均實現了完整的陶瓷建模功能,但用戶仍只能從二維屏幕獲取視覺反饋,沉浸感不高。而本文系統采用了“Leap Motion+VR”的方式,在保證用戶參與感同時,增加了視覺反饋,提升了虛擬交互的沉浸感。
本系統是基于Unity 3D引擎開發,結合Leap Motion進行手部運動信息獲取,并通過HTC Vive提升交互沉浸感。整體開發流程包括4個步驟:
(1) 陶瓷結構設計,包含造型和形變特征;
(2) 變化判斷和平滑控制,對手部運動進行定義,并判斷操作內容,為形變過程添加約束函數,保證變化平滑;
(3) 數據動態保存和加載,將陶瓷網格數據動態保存為本地文件并支持動態加載;
(4) 虛擬場景構建和材質渲染,保證場景流暢性同時,構建真實感場景和陶瓷對象。
2.1.1 網格結構定義
根據幾何屬性,將陶瓷結構分為側面、頂部和底部結構。根據陶瓷網格的幾何特性,可以將側面結構描述為一組包含在高度[h1,h2](h1,h2∈?)處,半徑被連續閉區間[h1,h2]中的光滑函數(h):?→?定義的圓形界面的簡單均勻廣義圓柱。函數(h)可以被理解為陶瓷的輪廓曲線[15-16,20]。考慮到現實中陶瓷具有厚度,其側面結構可以看作由n個在一定高度區域間的空心圓環(外半徑為R,內半徑為r,每個圓環上有m個頂點)組合而成,即

頂部結構銜接了頂部圓環的內外環,具體的結構將在頂點計算中闡述。底面結構則直接由2個法向量相反的圓形截面組成。最終結構如圖 1所示(n=10,m=20)。

圖1 網絡結構圖
2.1.2 頂點計算
基于網格結構定義,本文對頂點、法向量、三角形序列等網格屬性進行了自定義。按照分布位置,頂點有3種情況:①內外側面頂點;②銜接處頂點;③內外底面頂點。其中,③類頂點如圖2所示,可由圓環結構通過①類頂點求得。以vi,j,w表示第i個圓環的第j個頂點,w∈ { 0,1}表示頂點屬于內環(w=1)還是外環(w=0),rw為環內外半徑,hi為環所處高度,則①類頂點為

②類頂點連接網格內外側面,需進行如圖3所示的扇形切片處理。設扇形切片角度為θ,vi,j,w為第i個圓環(i=n,頂層圓環)的第j個頂點的第k個切片頂點,voc為圓環的平均半徑向量,noc為voc的單位向量,n⊥為voc在y軸正方向上的單位垂直向量,則②類頂點為


圖2 網格底面

圖3 網格頂部
2.2.1 手勢定義
對于用戶的陶瓷變化意圖,本文利用 Leap Motion對每幀手的位置、速度等信息進行提取、計算。如圖 4所示,vh為每幀手的運動向量;vhx和vhy分別為水平和垂直分向量;voh為手相對陶瓷軸心o的位置向量,那么兩者之間的夾角β可以通過下式計算,即

設定閾值ε1>0,當 cosβ>ε1,陶瓷半徑變大;當cosβ<ε1,陶瓷半徑變小;否則半徑不變。另外,設定閾值ε2>0,將其與手部在y軸上的運動速度vhy進行比較,如果vhy>ε2,高度增加;如果vhy<-ε2,高度降低;否則高度不變。為了避免用戶手部無意識的運動引發陶瓷形變和不同手勢互相干擾,本文對vhx和vhy進行比例限制,并對用戶操作范圍進行區域限制。如圖5所示,用戶手勢的操作范圍均包含在虛線包圍的空間中。設Pxz為手到陶瓷軸心距離;Py為手所處高度;和分別為所處高度圓環的內外半徑;Hmin和Hmax為當前陶瓷高度邊界;和offy為非負偏移量,則縮小半徑和高度調整的手勢范圍為



圖4 手部運動的矢量關系

圖5 手勢交互范圍
2.2.2 平滑控制
陶瓷的形變是平滑過渡的,手部運動針對陶瓷輪廓的某一個觸發點進行控制,以觸發點為基準的不同高度的空心圓環半徑會發生不同程度形變。圖6為本系統陶瓷輪廓形變的狀態曲線,呈現出“越接近中心取值越大,越遠離中心取值越小”的變化趨勢,這與高斯曲線非常相似。因此,本文采用高斯函數對陶瓷輪廓頂點形變進行平滑控制,即

其中,rmin和rmax分別為半徑的極值;為手部控制點所處位置圓環的半徑;k0為敏感系數。同時,為了保證基于觸發點上下相同高度的空心圓環半徑變化一致,參數μ應當始終為0。實驗中,參數δ基于經驗調整得到,取值為4.5。

圖6 平滑變化曲線
本文將陶瓷網格結構以 OBJ格式進行保存。見表1,在OBJ文件中,幾何實體占據一行,且必須以“v”,“vt”,“vn”或“f”開頭,依次對應到網格的頂點、UV坐標、法向量以及面。將陶瓷網格數據動態存儲到OBJ文件的過程,就是將網格的頂點、法向量、UV坐標以及三角形序列數據轉化為字符串,并對應到4個實體類型的過程。

表1 OBJ文件格式
在 Unity 3D中涉及多種資源位置,其中PersistentDataPath支持運行時寫入或讀取,與系統對動態保存和加載的需求契合。除了內容可讀寫,還有2個特點:一是無內容限制,可以寫入二進制文件;二是寫入的文件可以在電腦上查看和處理[21]。動態保存時,網格對象會被序列化,并轉換為字節流保存到 OBJ文件; 動態加載時,OBJ文件被反序列化,并加載到場景中。
VR場景構建需要考慮2點:①場景真實感和用戶沉浸感;②畫面流暢感。綜合這2點,本文采用“近景網格模型,遠景實拍照片”的方法進行虛擬場景構建,即在用戶周圍使用網格模型進行渲染,遠離用戶的場景采用實景照片進行合成。該方法減少了場景的面片數量,在保證畫面流暢感的同時,滿足了對場景真實感和用戶沉浸感的要求。
為了追求真實感,遠景圖片采用現場實拍合成的方法。首先,通過攝像機在選定拍攝點進行360°無縫連拍。為了保證拼接效果良好,相鄰圖片之間至少要有30%的重合,如圖7所示。通過合成軟件Image Composite Editor將照片拼接導入到 Unity 3D制作天空盒。圖8為拼接過程圖,圖9為制作成天空盒后的效果圖。其次,為了使陶瓷呈現出真實的黏土效果,本文增加了法向貼圖并進行了細節處理。

圖7 實拍照片

圖8 全景拼接

圖9 天空盒效果
本文系統的設計目標是:用戶通過VR頭盔沉浸到虛擬場景中,用手部運動控制陶器形變。當用戶的手以陶器中心為軸向外(內)拉伸,手所處高度的圓環半徑及鄰邊圓環半徑會以一定的規律平滑變大(小);當用戶的手沿其側壁上下移動,陶器的高度也隨之改變。另外,用戶還可以通過手勢 UI交互,進行保存或載入個性化網格、重新開始或退出游戲的操作。啟動場景如圖10所示。

圖10 啟動場景
圖 11為本文系統采用的 HTC Vive頭盔和Leap Motion動作捕捉設備。表2為系統開發和運行的相關配置。另本文系統運行場景的總頂點數為7.1 M,總面片數為6.7 M,平均幀率為47.1 fps。

圖11 頭顯及動作捕捉設備

表2 運行和開發配置
本系統在形變交互中主要是利用手部運動控制陶瓷半徑和高度平滑變化。圖12為裸手交互的陶瓷形變實現效果,其中,圖 12(a)為基準圖,顯示陶瓷初始形狀。

圖12 形變交互過程圖
3.2.1 半徑變化
圖12(b)為將雙手置于陶瓷兩邊,并在距離陶瓷一定范圍內同時向外伸展,手所處位置(觸發位置)的圓環半徑逐漸變大,鄰近的圓環半徑也隨之變大,增大數值隨著與觸發位置距離的增大而高斯減小。當陶器圓環半徑達到最大閾值,該位置的圓環半徑將停止增大。
圖12(c)為雙手置于陶器兩邊,雙手在距離陶瓷一定范圍內向內收縮,手所處位置的圓環半徑逐漸變小,鄰近的圓環半徑也隨之變小,減小數值隨著與觸發位置距離的增大而高斯減小。當陶瓷圓環半徑隨手內收達到最小閾值時,半徑停止減小。
3.2.2 高度變化
將手置于陶器兩邊,保證手掌貼近陶瓷側面,慢慢向下移動,陶瓷高度逐漸變小,如圖 12(d)所示。當陶瓷高度達到最小閾值,停止變小。
將手置于陶器兩邊,保證手掌稍微遠離陶瓷,慢慢向上移動,陶瓷高度逐漸變大,如圖 12(e)所示。當陶瓷高度隨著手部的上升,達到最大閾值,高度停止變大。
3.2.3 組合操作
經過一系列的如圖12(b)~(e)的隨機組合操作后,系統可以為用戶生成如圖12(f)所示的自定義陶瓷模型。
當用戶停止手部交互,系統會開始計時,一旦超出預設時間,場景中會自動跳出如圖13的交互主面板,出現保存、加載、退出及重做4個交互選項。通過左/右滑動的手勢進行功能選擇,通過上/下滑動的手勢進行確定/取消操作。

圖13 主面板
選中并確認主面板中的保存選項,系統將保存當前場景中的陶瓷模型數據保存到指定路徑,并以當前時間命名模型文件。若保存成功,會在指定目錄下生成OBJ文件,用View 3D查看,如圖14所示。選中并確認主面板中的加載選項,界面跳轉到加載面板如圖15所示。通過上/下滑動手勢進行模型選擇,左/右滑動手勢進行確定/取消操作。選中模型并確定,若加載成功,場景中的陶瓷會替換成選中加載的陶瓷模型,且其材質以燒制后的狀態呈現,如圖16所示。圖17是由系統生成的一系列陶瓷自定義模型,其造型各異,充滿了用戶的想象力和創造力。

圖14 保存成功

圖15 加載面板

圖16 加載成功

圖17 成果展示
本系統旨在為用戶提供更真實、更有趣的虛擬陶瓷體驗,讓用戶在發揮個人創意同時,感受陶瓷文化。為了驗證系統沉浸感和趣味性,本文進行了一組對比實驗和問卷調查。系統采用:“Leap Motion Only (LM)”模式和“Leap Motion+VR (LM+VR)”模式,邀請用戶依次通過這2種模式實現指定陶瓷模型。實驗結束,實驗者將會從沉浸感、完成度、操易度和趣味性4個方面分別對2種模式進行評估。
邀請實驗者20人,其中男性11人,女性9人,年齡為19~30歲。為了排除因為體驗順序不同造成的結果偏差,特將人員隨機分成 A組和 B組,A組按照“LM - LM+VR”的順序,B組反之。每次體驗前,實驗者均有2 min時間熟悉模式;體驗結束,系統會自動保存實驗者生成的模型和輪廓數據,并計算與目標模型的偏差值,計算方式為

其中,Hs和Ht分別為用戶模型和目標模型高度;ris和分別為2個模型的第i層圓環半徑。通過統計,得到圖18所示的偏差分布圖和圖19所示的平均偏差值對比圖。由圖可知,“LM”和“LM+VR”模式的偏差分別集中在[8,16),和[0,8),并且無論是A組還是B組,“LM”模式的偏差平均值始終要大于“LM+VR”模式。由此可知,“LM+VR”模式比“LM”模式對陶瓷形變的可控性更強,具有更好的沉浸感。也就是說,VR裝置確實為本文系統帶來體驗的提升和交互的增進。

圖18 偏差分布

圖19 平均偏差值對比
相較于對比實驗中針對偏差值的客觀分析,問卷調查主要體現用戶的主觀感受。圖20~23分別為實驗用戶對系統完成度、沉浸感、操易度、趣味性4個方面的評價。每種評價分數范圍為[0,10],其中,完成度為最終完成模型與目標模型的相似度,分數越高表示相似度越高;沉浸感為用戶體驗真實感,分數越高越真實;操易度為用戶交互容易程度,分數越高表示越容易;趣味性為用戶主觀體驗是否有趣,分數越高越有趣。

圖20 完成度

圖21 沉浸感

圖22 操易度

圖23 趣味性
由圖 21和圖 23可知,“LM+VR”模式的沉浸感和趣味性均明顯優于“LM”模式。一個實驗者在采訪中說,“帶上 VR頭盔的體驗完全不同于單純從屏幕獲得視覺效果,更有意思,而且更真實。”另一個實驗者則表示,“不帶虛擬頭盔無法知道自己的手到底在操控哪里!”值得注意的是,在圖 20和圖22中B組實驗者表示,“LM”模式的完成度和操易度要比“LM+VR”模式的要好。然而,參考圖18和圖19的偏差分布,可以發現實際上B組的完成度還是“LM+VR”模式更高(偏差值更低)。由于實驗者 2次目標模型是相同的,成員在“LM+VR”模式時對手勢交互及目標模型熟悉程度都沒有“LM”模式時高,導致對操易度產生影響。同時,又因為“LM+VR”模式更好的沉浸感為用戶提供了更多的陶瓷細節,使用戶在完成陶器時看到了更多偏差,導致主觀上的完成度比“LM”模式低。
可以看到,無論從對比實驗中的偏差值分布,還是主觀的問卷評估,都顯示了配備VR裝置系統的沉浸感和趣味性均要明顯優于只有“LM”的模式。VR所帶來優秀的沉浸感,不僅為用戶帶來了更豐富的細節和趣味性,也產生了更大的操作空間。
本文結合HTC VIVE、Leap Motion研發了一個VR陶藝體驗系統。用戶可通過徒手交互的方式,在虛擬環境進行陶藝體驗,系統具有良好的沉浸感和體驗感,不僅比單純屏幕顯示有了更真實、豐富的細節,還提供了更大的操作空間。
目前,該系統仍存在如下局限性:
(1) 用戶與陶器的交互是通過Leap Motion進行,手部屬于懸空操作。雖然在視覺效果上,用戶得到了實施有效的形變反饋,但是不能像現實中的陶瓷制作那樣,為用戶提供觸覺上力的反饋。這在一定程度上,大大降低了用戶虛擬陶瓷制作體驗的沉浸感。在之后的拓展開發中,可以引入力反饋手套等裝置,讓用戶在交互過程中能夠得到包括形狀、重量、溫度、力量等真實的感官反饋,進一步提升真實感和沉浸感。
(2) 當前系統的陶瓷形變反饋是依據用戶手的位置與運動速度,沒有考慮到手體運動存在不同的姿勢。這也在一定程度上,與真實制作過程中通過不同手勢控制陶坯變化的情況相違背,降低了體驗的真實感。在后續的開發中,可以加入真實制陶情景中的手勢識別,使陶器根據不同手勢會發生不同狀態的形變。
(3) 雖然系統保留的陶器數據可以直接用于3D打印,但是與實際的陶瓷工藝要求有一定距離。這是因為用戶在進行陶器創造時,缺少對陶器的半徑、厚度等重要參數的有效約束。后期考慮增加參數約束,以滿足自定義陶器實體化的需求。