谢佳翊,杨 猛,梁婉茹,崔亚婷,祁晓彬,杨 刚
基于质点-弹簧模型的冰雹打击树叶的模拟方法
谢佳翊,杨 猛,梁婉茹,崔亚婷,祁晓彬,杨 刚
(北京林业大学信息学院,北京 100083)
为了实现有别于布料破碎模拟的冰雹打击树叶过程的模拟,研究并提出了一种应用物理学原理的树叶和冰雹相互作用的真实感动态仿真技术,为后续进一步研究叶脉对叶片受力的影响提供了基础。树叶的破碎是源于冰雹受到地面重力的吸引,在下落时与树叶进行能量的传递,二者之间的交互作用可以利用一种高效的技术很好地模拟。该技术被专门设计用来模拟弹力较小的物体,例如树叶的撕裂。当冰雹与树叶进行交互时,由冰雹速度带来的作用力转换为树叶上的横向和纵向的弹簧力从而导致树叶破碎。实验结果表明,该技术能够高效、真实地仿真冰雹撞击树叶后的作用效果,并且在一定程度上还原冰雹自然灾害的情况。
树叶撕裂;仿真模拟;质点-弹簧模型;碰撞检测
物体撕裂破碎动画在虚拟现实中起着举足轻重的作用,其应用涉及到许多重要的领域,比如动画、广告、游戏、计算机辅助设计等。在物体撕裂破碎动画中,布料的撕裂是图形学中热点研究的课题之一,近年来,该领域的发展成果显著。而之前的研究多集中在不同材质布料因撕裂强度不同的体现和布料的动态滑动,而叶片的撕裂鲜见相关研究。关于物体的运动和碰撞的研究多与弹性或有黏性的非刚性物体相关,而冰雹作为一种严重的自然灾害,常发生于夏季,对于作物和树木是极具破坏性的,因此冰雹与植物的交互过程具有一定的研究价值。冰雹与树木的交互到目前还未见相关研究,究其原因:树木是由成千上万根树枝和无数片树叶组成的,枝叶本身细节繁多,其几何结构非常复杂,导致在其模拟计算的过程中计算量巨大且耗时多;与此同时,因为冰雹坚硬且弹性很小,是一类典型的刚性物体,而且在自然形成的过程中较为复杂,在宏观结构上表现为多层的特点,在建模和破碎的模拟过程中略有难度。因而,为了简化问题而不失一般性,本文仅限于模拟冰雹破坏单片树叶结构与冰雹自身在地面上交互的全过程,而不是模拟整片树林或者农作物。
树叶与冰雹直接的交互可以归结为3个过程:
(1) 冰雹的随机出现和下落。在自然界中冰雹的生成是随机的,由此冰雹的大小和重量也各不相同。
(2) 冰雹接触且造成树叶撕裂。当冰雹与树叶撞击后,带有速度及作用力的冰雹会继续向下运动穿破树叶,撕裂叶子原本的结构,力沿着叶脉分散,形成冰雹撞击后的裂口。
(3) 冰雹撞击地面。冰雹与树叶进行交互后自身速度减缓,落地时与凹凸不平的地面进行交互,造成反弹的现象。
为了便于模拟树叶的破碎和冰雹的动态,在树叶上采用三角网状结构双层模型来实现,在冰雹的模型上采用单层结构的球体进行模拟,并且制作了一款模拟软件,力求模拟效果的真实。本文的主要贡献为将质点-弹簧模型改进后应用于树叶撕裂上,为后续研究叶片上力的分散受叶脉影响提供了思路。
撕裂的动态过程模拟大多为布料或纸,树叶撕裂的过程模拟仍未出现,目前国内外可借鉴的文献主要为布料撕裂。图形中最早的撕裂研究可追溯到文献[1]提出的弹性变形模型,其方法主要是基于弹性力进行物理模拟,即布料内部相互之间产生的拉力、阻尼力和外力共同对布料形态的改变产生了作用。并在此基础上又引入了内力、自身质量和能量等物理属性,为布料模型建立了物理上的基础属性;文献[2]在此基础上完善了布料的物理模型,并加上了弯曲、拉伸、错切的属性;而对于物体撕裂内部的细节;文献[3]对麦迪逊对称环进行了研究。最近有些方法使用了Voronoi图[4]来生成撕裂平面,一些材料在破碎时会遵循Voronoi图的某些性质,但是对于大部分材料来说,其破损形状显得不真实;之后,文献[5]使用了余量传播方法将裂痕的动量传播出去;文献[6]在每个撕裂步骤之后进行了一次放松操作来模拟薄片内张力的变化,但未将撕裂动量和碰撞限制考虑在内;文献[7]提出了一种均匀网格上的拉伸和折弯的张力模型,但是由于模型使用的是均匀的网络,所以会带来一些不真实的情形;有关纸撕裂的研究蒋琦琦等[8]的自适应网格揉皱薄片的撕裂模拟,使用了一种在动态网格重划分的一种裂缝传播的算法;树叶模型的制作参考了周绍胜[9]的基于质点-弹簧模型的布料自动撕裂模拟研究,在研究叶脉可能受叶片破碎影响产生扭曲的方面参考了文献[10]的关于线条的扭曲和撕裂;为了以后的CPU加速研究还借鉴了文献[11]的布料快速撕裂。
丁建芳等[12]在研究冰雹形成过程中提出冰雹形成的物理机制,并采用三维弹性冰雹云模拟出了冰雹三维数值,其依据玻璃球和滑石块,使得破碎过程数值化。自然界中冰雹的形成,雹胚来源于冻滴,其前期主要收集过冷雨水,而后期收集过冷云水,随着体积逐渐增大形成冰雹。文献[13]讲述了关于冰雹破碎的过程,并将冰雹看做是大量光滑流体粒子聚集而成,当受到压力时,粒子群会形成裂缝,并向四周不同方向运动,导致冰雹的破碎。粒子系统在模拟自然天气中被广泛应用,本文在模拟大量冰雹下落的过程中,采用OpenGL粒子系统,自动随机生成粒子。康杰[14]在单体脆性颗粒的撞击破碎过程中,针对玻璃球和滑石块,使得破碎过程数值化,做出了三维数值模拟。而对于冰雹破碎时裂纹的细节则是参考了文献[15]有关图形建模的脆性骨折,即根据冰雹掉落到地面产生的不同碎裂状态。
已知的叶脉排序方式有网状、平行、分叉3种脉序。本文选用的撕裂对象为平行脉序的直出平行脉叶片。由于不常遇到天然冰雹天气,故使用自制冰块和圆滑石子模拟冰雹天气过程,造成树叶撕裂,结果如图1和图2所示。多次实验显示,直出平行脉撕裂裂口的位置与叶脉位置相符,走向与叶脉相同。经过调研,目前还缺少树叶和冰雹结合在一起作为研究对象的项目,本文通过粒子系统和树叶撕裂过程相结合来模拟树叶与冰雹碰撞的动态过程。
图1 树叶撕裂真实与模拟对比图
图2 直出平行脉树叶撕裂前后对比图
2.1.1 算法流程
本文的模拟算法部分的流程图如图3和图4所示。
图3 破碎模拟算法流程图
图4 冰雹撞击反弹算法流程图
2.1.2 叶脉生成
直出平行脉的叶脉相互之间是近似平行的且沿着叶脉的走向撕裂,利用该特点,对模型中叶脉路径进行预先生成。根据贴图中显示的叶脉位置,对树叶模型进行顶点复制,即对选中叶脉位置上的点进行复制,然后将复制点挪动一段非常小的距离,使得复制后的点与原顶点平行,相当于提前将裂口制作出来,但是由于有结构弹簧和固定点的支撑,裂口在受力之前不显示。如图5所示,叶脉部分的网格明显粗于普通网格,因为其是由两行网格重叠组成的。
处理后的模型对视觉未产生影响,但在算法中可以通过直接受力而形成切口,避免因计算划分三角形中钝角三角形易产生计算错误的问题。在算法中,默认距离小于1 μm的2个点为同一个点。在此需特别说明该参数的选定标准为:在不影响正常的视觉效果的情况下,远远小于模型正常顶点之间的距离(包括控制模型上顶点与顶点之间的距离和控制模型与显示模型之间的垂直距离)即可。
算法中的模型分为上、下两层,分别代表叶片正面与背面,且叶片有一定的厚度,为了符合自然界的规律。提取上表面除去叶柄部分和叶尖部分作为控制模型,如图5和图6所示,叶柄、叶尖在自然情况下很难被冰雹撕裂,所以暂不做处理。ApplyControlMesh函数完成了控制模型与显示位置的对应工作。树叶模型的厚度设置为1.5,所以只需寻找垂直距离为1.5的两个面片配对即可。本文使用的是三角面片的中心点而非顶点,因为一个顶点会涉及多个三角形,而中心点不涉及此问题。
图5 模型预处理方法详解图
图6 模型对应示意图
对应模型的算法如下:
输入:控制模型的顶点数组1,2,3。
输出:显示模型和控制模型的顶点配对数组。
步骤3. 遍历ControlTriangleCenter数组,寻找与当前三角面片中心距离为1.5的控制模型三角面片,如果找到,则将其配对并记录,否则认为该面片处于不需要处理的位置,直接跳过。
2.1.3 质点-弹簧模型
很早就已研发出的质点-弹簧模型大多应用于布料模拟上,将其改进后可用于树叶模拟。传统的质点弹簧模型中有结构、扭曲弹和拉伸3种弹簧。在算法中,由于模拟的对象为树叶,与布料相比弹性和柔韧性更低些,为了能够体现其差别,使用降低模型稳定性的方法,即去掉了原有质点弹簧模型中的扭曲弹簧。扭曲弹簧原本的作用为连接对角线上的相邻质点,去掉之后由于模型的稳定性降低,受到冰雹的撞击后呈现裂口的形状也能够更加的多变和不规则,从而更加接近真实的撕裂效果。另外,使用结构弹簧来保持树叶的形状,保证其不变形的同时使用拉伸性弹簧来计算受力,能够明显地表现出树叶模型的弹力较布料减小的状态,改进后的弹簧模型如图7所示。
图7 弹簧结构示意图
导入叶片模型时,需计算三角形面片3条边之间的长度relaxLength,作为结构弹簧的初始长度。固定点模型之间的结构弹簧的长度始终保持不变。弯曲弹簧的长度随质点位置改变而改变,并使用胡克定律来计算弹簧形变量,即
其中,为当前点受到撞击力的方向;L为形变长度;为树叶模型的弹性系数,考虑到树叶弹性较小的可能性,经过多个数值的试验后将该处的参数设计为2e4。根据此拉力,计算点受力后移动的长度,将移动看成是一段很短时间内的匀速运动,速度计算根据牛顿第二定律F=,v=0+得出。位置为上一位置加上当前速度乘上单位时间。由于叶片对冰雹有阻力,故设置一个能量损耗系数为0.1。此处的参数没有进行额外的科学实验,仅根据肉眼可接受的范围进行选定。
2.1.4 冰雹模型
冰雹在自然界中的形态十分复杂,其简化的形成过程:开始于小冰粒聚合在一起形成冰雹初始状态;接着在气流的影响下,在空中上下小冰粒翩腾并与低温区中的冰晶、雪花和过冷水滴粘并冻结成为大冰雹;最后当上升气流支撑不住冰雹时就落下形成雹灾。因此,针对冰雹的自然形态制作了5种模型。图8为程序中所使用的冰雹,其是利用3ds max中带有的各种建模方法制作的,旨在重现自然冰雹的外形,使得模拟软件中的交互过程更加真实,并进行更高效地计算,其运动路线主要是下落和撞击地面弹起,在未来更深入地研究中将会在冰雹的运动轨迹中加入破碎这一环节。
2.2.1 碰撞点确定
为实现快速有效地碰撞检测,小型物体一般采用包围盒的形式,大型的物体则采用一些特殊的数据结构。由于叶片一般较冰雹的尺寸大,故不采用包围盒的形式。而冰雹的形状稍有不规则且接近于球形,故采用包围盒的方式。
程序采用了控制模型带动显示模型联动的方式,所以需要进行碰撞检测的部分仅为控制模型。存储控制模型的数组以三角形为单位,即,1,2,3个定点为一个三角形。在控制模型中,将最外围的点称为anchoredPoint,并将顶点的坐标在读入模型时就保存在一个数组中,其有共同bool值anchoredPoint为true。在碰撞检测中,可忽略这些点,因为自然状态下的树叶是会随碰撞来回摆动的,但在之前的研究和实验中均固定了树叶的边缘,所以在模拟程序中采用固定边界的方法,如图9所示。
图8 冰雹形态示意图
图9 固定点模型
因为冰雹是垂直下落的,不涉及旋转等问题,故以冰雹下半部分最远点到冰雹中心的距离为包围球的半径建立冰雹碰撞检测的包围球,如图10所示。通过2轮筛选,确定是否为控制模型点或固定点,模型中需要进行碰撞检测的点仅为所显示点的三分之一,极大地降低了运算需要重复的次数。又因为受力的计算以点为单位,故采用遍历控制模型中非固定点的方法实现碰撞检测。即点与冰雹中心的距离等于冰雹半径时,即视为发生碰撞。
在地面模型上,由于地面模型凹凸不平,所以使用了包围球的形式判断冰雹是否与地面相撞时。在导入地面模型时,每导入一个面片就会为这个三角形添加新的属性,即三角形的法向量、包围球的球心和半径。与三角面片的碰撞就转化为与包围球的碰撞。
图10 包围球生成示意图
2.2.2 防止贯穿
当冰雹靠近树叶时有可能发生贯穿,即点与冰雹中心的距离小于冰雹半径,此时需要在下一帧立即调整树叶模型发生碰撞区域的位置,具体位置为冰雹当前位置加上冰雹半径乘以冰雹与现贯穿点位置连线的方向(以确定树叶模型调整方向),如图11所示。
图11 贯穿位移计算示意图
从开始下落到反弹结束的碰撞检测过程步骤如下:
步骤1.对于冰雹开始下落。
步骤2.计算中心与控制三角形的中心距离。
步骤3.若小于等于包围球半径则认为发生碰撞,执行撕裂程序并注意防止贯穿。
步骤4.计算中心与地面模型三角形中心的距离大于球半径,不相交。
步骤5.计算球心到三角形顶点的距离1,2,3,距离均小于半径说明三角形在球内且相交。
步骤6.计算球心在三角形所在面的投影坐标到三角形顶点的向量,两两进行向量叉乘,球心投影的3个叉乘向量方向相同,投影在三角形内且相交。
碰撞反弹发生于地面和冰雹之间。判断冰雹与地面发生碰撞后,进入碰撞反弹。取所有与冰雹相交的三角面片的法向量于一个数组中,求其平均法向量为碰撞反弹方向。地面模型包括土地和砖地2种,为了体现出两种地面的区别,取土地的碰撞能量损耗值为砖地的2倍。
将每个极短时间内的运动均看做匀速运动,初始速度为
其中,为能量损耗系数(土地为0.15,砖地为0.3);为上一个单位时间内的速度;为碰撞平面的法向量的平均值。
系统在Windows 10 操作系统运行,64位Intel i7处理器,8 G运行内存,使用Visual Studio 2015编程实现。
图12所示是直出平行脉树叶被冰雹击打导致撕裂的情况,用2 581个顶点和5 136个面片表示树叶;用482个顶点和960个面片表示冰雹,可以看到树叶的撕裂效果较为真实。FPS最高为61,最低为57。
图12 多处撕裂口模拟效果截图
图13是截取整个模拟动画的关键帧。其中,图13(a)为冰雹随机出现在叶片上空,为了与自然条件更加相似,其中冰雹会以5种不同的形态随机出现;图13(b)~(d)分别展示了冰雹击打叶片后裂口逐渐生成的过程。如图13(c)所示,冰雹的重力势能因为下落而转换为动力势能,在冰雹与叶片进行碰撞后,冰雹上的动力势能传递到叶片上导致预制的叶脉模型受力分开。在图13(d)中可见此时叶脉的动力势能已经消耗完毕并且停止运动,冰雹砸碎的裂口形态最终生成。
图14(a)~(d)是冰雹打击树叶同一位置的示意图,在经过冰雹的重复打击后,预制叶脉一次次地运动造成裂口并使其拉伸扩大,最后生成了具有真实质感的裂口和凹陷。从图14可以观察到整个模拟过程流畅自然,并且在冰雹击破叶片的重要交互部分取得了较好的效果。
图13 冰雹撞击叶子后裂口的形态示意图
图14 冰雹与叶片多次碰撞裂口示意图
本文通过动画仿真技术实现了冰雹击破叶片的过程,提出了一种改进后的质点-弹簧模型,并且结合碰撞检测算法和物理公式控制冰雹和叶片物体的运动。根据程序运行结果,算法可以高效、真实地模拟出冰雹撞击树叶并导致树叶破碎的过程,以及冰雹下落到地面与凹凸不平的地形进行碰撞弹起的过程。
在后续的工作中,将继续研究其他种类叶脉树叶的撕裂形式以及叶脉动态生成边界固定型网格的算法。如横出平行脉,其叶脉模式与现有模型相类似,只是在方向上有所不同。经过前期实验证明,叶脉类型为平行脉的树叶以及部分厚度适中的其他叶脉类型树叶,在理论上沿叶脉撕裂部分均可使用该方法进行模拟。但对于较薄的树叶,由于其撕裂会涉及树叶破碎而非单纯撕裂,该模拟方法不适用。图15分别为掌状叶脉和二叉状平行叶脉树叶破碎的横向对比。
本文使用的是模拟自然界中冰雹外形的模型,今后将会引入由粒子流建成的模拟冰雹内部结构的模型(图16),可使用改进后的SPH方法并通过求解质点组的动力学方程和跟踪每个质点的运动轨道来控制冰雹粒子模型的破碎过程。
图15 多种叶脉破碎对比图
图16 粒子流冰雹示意图
[1] TERZOPOULOS D, FLEISCHER K. Modeling inelastic deformation [J]. ACM SIGGRAPH Computer Graphics, 2008, 22(4): 269-278.
[2] HARA A, AOYAMA H, OYA T. Fabric model for clothing design by wrinkle simulation [J]. Journal of Mechanical Science and Technology, 2014, 28(7): 2453-2458.
[3] CARMODY D, PUESCHEL M J, TERRY P W. Microtearing simulations in the madison symmetric torus [EB/OL].[2018-06-05]. http://meetings.aps.org/ link/BAPS.2012.DPP.JP8.155.
[4] 孙继忠, 胡艳, 马永强. 基于Delaunay三角剖分生成Voronoi图算法[C]//中国西部网络信息技术及应用研讨会. 成都: 计算机应用, 2009: 75-77.
[5] NARAIN R, PFAFF T, O’BRIEN J F. Folding and crumpling adaptive sheets [J]. Acm Transactions on Graphics, 2013, 32(4): 1-8.
[6] BUSARYEV O, DEY T K, WANG H. Adaptive fracture simulation of multi-layered thin plates [J]. ACM Transactions on Graphics (TOG), 2013, 32(4): 1-6.
[7] GINGOLD Y, SECORD A, HAN J Y, et al. A Discrete model for inelastic deformation of thin shells [EB/OL]. [2018-06-02]. https://www.researchgate.net/publication/ 249914666_A_Discrete_Model_for_Inelastic_Deformation_of_Thin_Shells.
[8] 蒋琦琦, 周世哲, 施利强. 自适应网格揉皱薄片的撕裂模拟[J]. 中国科学技术大学学报, 2016, 46(11): 892-897.
[9] 周绍胜. 基于质点–弹簧模型的布料自动撕裂模拟研究[D]. 广州: 华南理工大学, 2012.
[10] RUNGJIRATANANON W, KANAMORI Y, METAAPHANON N, et al. Twisting, tearing and flicking effects in string animations [J]. Lecture Notes in Computer Science, 2011, 7060: 192-203.
[11] SOUZA M S, WANGENHEIM A V, COMUNELLO E. Fast simulation of cloth tearing [J]. SBC Journal on Interactive Systems, 2014, 5: 44-48.
[12] 丁建芳, 杜春丽, 鲍向东, 等. 一次冰雹云过程及其冰雹形成机制的模拟研究[J]. 气象与环境科学, 2014, 37(2): 49-57.
[13] TIPPMANN J D. Development of a strain rate sensitive ice material model for hail ice impact simulation [D]. San Diego: University of California, 2011.
[14] 康杰. 单颗粒脆性材料冲击破碎三维数值模拟[D]. 沈阳: 沈阳理工大学, 2010.
[15] O’BRIEN J F. BARGTEIL A W, HODGINS J K, et al. Graphical modeling and animation of brittle fracture [J]. ACM Transactions on Graphic, 1999, 135(3): 291-294.
Simulation of Hail Impact on Leaves Based on Mass-Spring Model
XIE Jia-yi, YANG Meng, LIANG Wan-ru, CUI Ya-ting, QI Xiao-bin, YANG Gang
(School of Information Science & Technology, Beijing Forestry University, Beijing 100083, Chian)
In order to realize the simulation of the process of hail against the leaves, which is different from the fabric crushing simulation, this paper presents a realistic dynamic simulation technology of the interaction between leaves and hail based on physical theory. It opens up a different area from the cloth tearing simulation and proposes the simulation algorithm of the leaf breaking, which provides the foundation for further research on the influence of leaf veins on leave’s force-bearing capability. The tearing of the leaves is due to the hail being attracted by the gravitation of the ground, transferring the energy of the hail to the leaves, and the interaction between the two can be well simulated by an efficient technique. The technology is specifically designed to simulate the tearing of objects with less elastic forces such as leaves. When hail interacts with the leaves, the forces due to the hail velocity are translated into lateral and longitudinal spring forces on the leaves, causing the leaves to break. Experimental results show that this technique can effectively and realistically simulate the effect of hail impact on leaves and restore the situation of hail disasters.
dynamic tearing of leaves; simulation; mass-spring model; collision detection
TP 391
10.11996/JG.j.2095-302X.2019010032
A
2095-302X(2019)01-0032-08
2018-07-02;
2018-07-20
北京市社会科学基金项目(17YTC030);中央高校基本科研业务费专项资金(2017JC10,2015ZCQ-XX);国家自然科学基金项目(61402038,61502109,61100132);中国国家留学基金委2017年国家公派高级研究学者、访问学者、博士后项目(201706515022);浙江大学CAD&CG国家重点实验室开放课题(A1707);北京林业大学国家级大学生科研创新训练项目(201710022051);CCF-腾讯犀牛鸟创意基金项目(IAGR20140113);广东自然科学基金项目(2016A030310342);北京林业大学教育教学研究项目(BJFU2018JY088)
谢佳翊(1997-),女,北京人,学士。主要研究方向为计算机图形学、虚拟现实、增强现实。E-mail:xjy_uni@bjfu.edu.cn
杨 猛(1982-),男,河北秦皇岛人,副教授,博士,硕士生导师。主要研究方向为计算机图形学、虚拟现实、增强现实。 E-mail:yangmeng@bjfu.edu.cn