APP下载

基于Leap Motion的虚拟现实陶艺体验系统

2020-03-19林莹莹蔡睿凡朱雨真唐祥峻金小刚

图学学报 2020年1期
关键词:圆环顶点半径

林莹莹, 蔡睿凡, 朱雨真, 唐祥峻, 金小刚

(浙江大学CAD & CG国家重点实验室,浙江 杭州 310058)

中国拥有长达万年的陶瓷历史,一直以来,陶瓷工艺都是中国文化和生活方式的重要载体。随着人们对精神文化追求的逐步提高,陶瓷制作逐渐演变为大众娱乐休闲的一种方式。然而,传统的陶瓷工艺对制作环境和设备要求十分严格,普通的陶艺体验馆并无法将陶瓷制作工艺完好地展现出来。如拉坯步骤,需要对泥料进行陈腐、踩炼、揉泥等一系列操作,才能在转盘上进行拉坯成型。更不用说,在烧制阶段对高温的要求和控制[1]。所以陶瓷制作工艺普及非常之难。因此,寻求一种便利且沉浸感良好的陶瓷制作体验方法就变得十分必要。

在当今信息化的语境下,以信息方式对事物进行重新认知和互动,成为了新的主流方式[2]。越来越多的传统行业为了更好地传承发展,加入到信息化潮流之中,陶瓷行业也不例外。事实上,陶瓷产品设计早已不再是单一的手绘和人工拉坯成型,像3DMax,Maya等计算机辅助技术已经被广泛运用其中[3],应用型的陶瓷体验软件也曾出不穷,但这些方法均不是沉浸式虚拟现实(virtual reality, VR)环境的。

近年来,VR技术逐步兴起,从各方面展现出优秀的沉浸感,而动作捕捉技术的结合,加大了用户体验的参与感,这也为陶瓷制作工艺提供了新的解决方案。本文结合动作捕捉和 VR技术,利用Leap Motion和HTC Vive研发了一款沉浸式的虚拟陶艺体验系统,使用户摆脱陶瓷严苛的制作环境,沉浸到真实的虚拟制作场景中,利用自身的手部运动交互,实时修改陶瓷形状,生成个性化陶瓷模型。为了实现这一个目标,在陶瓷的结构设计时不仅要满足动态变化,还需保证形变的平滑性和流畅性。具体解决方法将在3.1和3.2节阐述。

1 相关工作

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”的方式,在保证用户参与感同时,增加了视觉反馈,提升了虚拟交互的沉浸感。

2 技术实现

本系统是基于Unity 3D引擎开发,结合Leap Motion进行手部运动信息获取,并通过HTC Vive提升交互沉浸感。整体开发流程包括4个步骤:

(1) 陶瓷结构设计,包含造型和形变特征;

(2) 变化判断和平滑控制,对手部运动进行定义,并判断操作内容,为形变过程添加约束函数,保证变化平滑;

(3) 数据动态保存和加载,将陶瓷网格数据动态保存为本地文件并支持动态加载;

(4) 虚拟场景构建和材质渲染,保证场景流畅性同时,构建真实感场景和陶瓷对象。

2.1 陶瓷结构设计

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 形变控制

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 平滑变化曲线

2.3 数据动态保存和加载

本文将陶瓷网格结构以 OBJ格式进行保存。见表1,在OBJ文件中,几何实体占据一行,且必须以“v”,“vt”,“vn”或“f”开头,依次对应到网格的顶点、UV坐标、法向量以及面。将陶瓷网格数据动态存储到OBJ文件的过程,就是将网格的顶点、法向量、UV坐标以及三角形序列数据转化为字符串,并对应到4个实体类型的过程。

表1 OBJ文件格式

在 Unity 3D中涉及多种资源位置,其中PersistentDataPath支持运行时写入或读取,与系统对动态保存和加载的需求契合。除了内容可读写,还有2个特点:一是无内容限制,可以写入二进制文件;二是写入的文件可以在电脑上查看和处理[21]。动态保存时,网格对象会被序列化,并转换为字节流保存到 OBJ文件; 动态加载时,OBJ文件被反序列化,并加载到场景中。

2.4 虚拟场景构建

VR场景构建需要考虑2点:①场景真实感和用户沉浸感;②画面流畅感。综合这2点,本文采用“近景网格模型,远景实拍照片”的方法进行虚拟场景构建,即在用户周围使用网格模型进行渲染,远离用户的场景采用实景照片进行合成。该方法减少了场景的面片数量,在保证画面流畅感的同时,满足了对场景真实感和用户沉浸感的要求。

为了追求真实感,远景图片采用现场实拍合成的方法。首先,通过摄像机在选定拍摄点进行360°无缝连拍。为了保证拼接效果良好,相邻图片之间至少要有30%的重合,如图7所示。通过合成软件Image Composite Editor将照片拼接导入到 Unity 3D制作天空盒。图8为拼接过程图,图9为制作成天空盒后的效果图。其次,为了使陶瓷呈现出真实的黏土效果,本文增加了法向贴图并进行了细节处理。

图7 实拍照片

图8 全景拼接

图9 天空盒效果

3 结果展示

本文系统的设计目标是:用户通过VR头盔沉浸到虚拟场景中,用手部运动控制陶器形变。当用户的手以陶器中心为轴向外(内)拉伸,手所处高度的圆环半径及邻边圆环半径会以一定的规律平滑变大(小);当用户的手沿其侧壁上下移动,陶器的高度也随之改变。另外,用户还可以通过手势 UI交互,进行保存或载入个性化网格、重新开始或退出游戏的操作。启动场景如图10所示。

图10 启动场景

3.1 配置和性能

图 11为本文系统采用的 HTC Vive头盔和Leap Motion动作捕捉设备。表2为系统开发和运行的相关配置。另本文系统运行场景的总顶点数为7.1 M,总面片数为6.7 M,平均帧率为47.1 fps。

图11 头显及动作捕捉设备

表2 运行和开发配置

3.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)所示的自定义陶瓷模型。

3.3 UI交互

当用户停止手部交互,系统会开始计时,一旦超出预设时间,场景中会自动跳出如图13的交互主面板,出现保存、加载、退出及重做4个交互选项。通过左/右滑动的手势进行功能选择,通过上/下滑动的手势进行确定/取消操作。

图13 主面板

选中并确认主面板中的保存选项,系统将保存当前场景中的陶瓷模型数据保存到指定路径,并以当前时间命名模型文件。若保存成功,会在指定目录下生成OBJ文件,用View 3D查看,如图14所示。选中并确认主面板中的加载选项,界面跳转到加载面板如图15所示。通过上/下滑动手势进行模型选择,左/右滑动手势进行确定/取消操作。选中模型并确定,若加载成功,场景中的陶瓷会替换成选中加载的陶瓷模型,且其材质以烧制后的状态呈现,如图16所示。图17是由系统生成的一系列陶瓷自定义模型,其造型各异,充满了用户的想象力和创造力。

图14 保存成功

图15 加载面板

图16 加载成功

图17 成果展示

4 用户调研

本系统旨在为用户提供更真实、更有趣的虚拟陶瓷体验,让用户在发挥个人创意同时,感受陶瓷文化。为了验证系统沉浸感和趣味性,本文进行了一组对比实验和问卷调查。系统采用:“Leap Motion Only (LM)”模式和“Leap Motion+VR (LM+VR)”模式,邀请用户依次通过这2种模式实现指定陶瓷模型。实验结束,实验者将会从沉浸感、完成度、操易度和趣味性4个方面分别对2种模式进行评估。

4.1 对比实验

邀请实验者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 平均偏差值对比

4.2 问卷调查

相较于对比实验中针对偏差值的客观分析,问卷调查主要体现用户的主观感受。图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所带来优秀的沉浸感,不仅为用户带来了更丰富的细节和趣味性,也产生了更大的操作空间。

5 结 束 语

本文结合HTC VIVE、Leap Motion研发了一个VR陶艺体验系统。用户可通过徒手交互的方式,在虚拟环境进行陶艺体验,系统具有良好的沉浸感和体验感,不仅比单纯屏幕显示有了更真实、丰富的细节,还提供了更大的操作空间。

目前,该系统仍存在如下局限性:

(1) 用户与陶器的交互是通过Leap Motion进行,手部属于悬空操作。虽然在视觉效果上,用户得到了实施有效的形变反馈,但是不能像现实中的陶瓷制作那样,为用户提供触觉上力的反馈。这在一定程度上,大大降低了用户虚拟陶瓷制作体验的沉浸感。在之后的拓展开发中,可以引入力反馈手套等装置,让用户在交互过程中能够得到包括形状、重量、温度、力量等真实的感官反馈,进一步提升真实感和沉浸感。

(2) 当前系统的陶瓷形变反馈是依据用户手的位置与运动速度,没有考虑到手体运动存在不同的姿势。这也在一定程度上,与真实制作过程中通过不同手势控制陶坯变化的情况相违背,降低了体验的真实感。在后续的开发中,可以加入真实制陶情景中的手势识别,使陶器根据不同手势会发生不同状态的形变。

(3) 虽然系统保留的陶器数据可以直接用于3D打印,但是与实际的陶瓷工艺要求有一定距离。这是因为用户在进行陶器创造时,缺少对陶器的半径、厚度等重要参数的有效约束。后期考虑增加参数约束,以满足自定义陶器实体化的需求。

猜你喜欢

圆环顶点半径
圆环填数
直击多面体的外接球的球心及半径
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
猪圆环病毒病的发生、诊断和防治
将相等线段转化为外接圆半径解题
巧剪圆环
转动戒指
四种方法确定圆心和半径
数学问答