当前位置: 首页 > 专利查询>燕山大学专利>正文

一种布料撕裂动态模拟系统技术方案

技术编号:14113530 阅读:67 留言:0更新日期:2016-12-07 10:42
本发明专利技术涉及一种布料撕裂动态模拟系统,所述系统利用质点弹簧模型建立布料模型,使布料分解为多个三角面片完成布料的撕裂。在建模同时加入Half‑edge数据结构,存储布料顶点的位置、边与顶点的关系及边的长度和面和顶点的关系及面的邻接关系的相关信息。创建一种基于欧氏距离的包围盒距离场,用来完成碰撞检测,提高布料撕裂模拟的效率。创建钢体模型并给刚体或布料附加重力加速度,使刚体与布料完成碰撞并产生撕裂。本发明专利技术可广泛应用于设计制造和影视娱乐中的布料动态仿真模拟。

【技术实现步骤摘要】

本专利技术涉及计算机布料仿真领域,具体涉及一种模拟不同材质布料与刚体发生碰撞的系统。
技术介绍
真实快速的布料模拟动画技术近年来都是计算机图形学领域的热点。布料动画模拟是计算机动画的重要组成部分,模拟布料产生的动画在设计制造、影视娱乐等方面具有重大的应用价值。在现实生活中布料经常受到各方向的力,从而产生不同状态的形变,同时与刚体的碰撞是不可避免的,布料是一种很容易产生撕裂的柔性物体,但由于布料类柔性织物的非线性变化的特性,使布料的仿真模拟成为了计算机图形学的一大研究热点与难点。时代在进步,人们对于布料的需求也在不断增加,一款新型的布料的产生包括研发、设计、制作、市场这四个方面,在漫长的研发过程中需要无数次测试实验研究成品,耗费大量的人力物力,但是通过布料仿真可以很快的在计算机中呈现出新布料的形态,利用布料与规则或不规则刚体碰撞产生撕裂的效果来测试布料的质量,使用虚拟系统大大的减少了在研发过程中对时间和原材料的浪费。早在1986年,AT&T贝尔实验室首次提出根据布料的柔软易弯曲特性,可以使用计算机来模拟布料的三维动画。随后,1997年,法国国家信息与自动化研究所Provot等人,在布料与物体的碰撞模拟中,提出基于三角形法向量相加原则的曲率曲面碰撞检测方法。2014年,Lu Jia、Zheng Chao提出一种基于NURBS的连续统一体建模方法来模拟布料,弥补了质点弹簧模型在准确重现织物材料的力学行为方面的缺点。布料发生撕裂过程是由于布料中的线被无限拉伸直至断裂,刚好质点弹簧模型中的弹簧可以近似模拟该性质。因此利用质点弹簧模型建布料模型可以使布料随意发生形态变化,更真实的实现布料撕裂效果的模拟。在目前的布料仿真系统中,并没有动态地展现多种材质的布料撕裂。因此,我们提出一种新的布料撕裂动态模拟系统
技术实现思路
本专利技术目的在于提供一种能实时动态展示布料与刚体碰撞时发生撕裂的过程并生成布料与刚体发生碰撞的仿真模拟动画的布料撕裂动态模拟系统为实现上述目的,采用了以下技术方案:本专利技术所述系统包含布料建模单元、信息采集单元、优化布料模型单元、碰撞检测单元、布料撕裂单元;布料建模单元用于建立包含质点弹簧模型三角网格的布料模型;信息采集单元是采集布料模型的顶点的位置、边与顶点的关系、边的长度与面和顶点的关系、面的邻接关系并存储起来,用这些信息建立Half-edge数据结构;优化布料模型单元用于给原始布料模型添加纹理贴图、改变光照参数、调节布料属性,完成特定材质的布料仿真;碰撞检测单元用于创建距离场并设定碰撞响应的距离条件,时刻检测布料与刚体的点与面的距离;布料撕裂单元用于控制刚体的运动或布料的运动,使布料与刚体碰撞并产生撕裂;所述系统的具体模拟过程如下:步骤1,利用质点弹簧模型建立布料模型,使布料分解为多个三角面片完成布料的撕裂;在建模的同时加入Half-edge数据结构,存储布料顶点的位置、边与顶点的关系、边的长度与面和顶点的关系、面的邻接关系的相关信息;并确定其网格大小、精细程度、纹理贴图;步骤2,调节布料模型属性,所述属性包括布料的Bending Stiffness即调节布料的柔软度、Streting Stiffness即调节布料的拉伸能力、Damping即控制布料的阻尼系数、Thickness即控制布料的表面厚度,通过调节上述属性的参数值使布料达到对某种材质布料的仿真,完成对布料材质的模拟;步骤3,如果是布料与规则刚体的碰撞即不给布料添加重力属性,并把布料固定悬垂或水平;如果是布料与不规则物体的碰撞即给布料添加重力属性水平放置;步骤4,创建刚体,若是规则刚体,则给刚体添加重力加速度;若是不规则刚体则固定到界面中;步骤5,调节刚体与布料的x,y,z三维坐标,使布料与刚体能够发生撕裂;步骤6,创建一种基于欧氏距离的包围盒距离场计算算法确定并规划碰撞范围,距离场对布料和刚体进行碰撞检测,达到碰撞条件时启动碰撞响应完成撕裂模拟。进一步的,步骤1所述的布料模型中,以三角网格作为布料的几何载体,网格顶点定义为质点,网格边定义为结构弹簧。进一步的,在步骤1的建模过程中,使用动量和角动量守恒的方法加入距离约束,约束布料的拉伸距离范围;使用求布料两个相邻顶点的角度方法加入碰撞约束,检测布料与物体的碰撞;采用高斯-赛德尔迭代方法求出布料顶点位置和速度,完成布料的模型的建立。进一步的,步骤1中,建模完成后进行优化模型,引用非线性弹簧解决超弹性现象,使用格林拉格朗日应变代替工程应变得到弹力F与弹簧伸长量ΔS之间的关系,如式(1)所示,F=k·(l+l0)2/l02·ΔS (1)其中,k是弹簧的弹性系数,l0、l分别为弹簧原长和形变后弹簧长度;将k·(l+l0)2/l02看做变化的弹性系数,随着伸长量的增加F与ΔS之间呈非线性关系,当ΔS增大时,F的增幅越大,避免超弾性现象。进一步的,所述规则刚体为四方体或圆柱体或胶囊体或球体;所述不规则刚体为钉子或尖刀。进一步的,布料模型是由网格构成的,当某块区域内的网格发生变化即网格边的长度超过规定的阈值时,则定义为布料产生撕裂。布料模型的网格某一点发生撕裂,在撕裂过程中当前边的长度变化超过阈值,则比较这条边的两个顶点的质量,进而选取质量较大的顶点作为分裂的顶点,删除当前边和当前顶点,加入新的顶点和边,并将新的顶点的质量变为原来的一半,将新生面加入布料的结构;在建立布料模型时给模型添加了Half-edge数据结构,可使布料在撕裂过程中快速找到顶、边和面之间的关联从而完成撕裂模拟。进一步的,步骤6中,布料与规则刚体碰撞时引入Half-edge数据结构计算,具体算法如下:步骤6-1-1,参数e表示为任意两点间边长,Threshold表示为提前设定好的阈值,即一旦边长超过阈值就会被检测出发生了撕裂;步骤6-1-2,v1,v2表示碰撞区域选取的两条边,点A表示这两条边中质量最大的一个点,点B表示这两条边中质量最小的一个点;步骤6-1-3,连接点A、B得到线段n;步骤6-1-4,以线段n为法线创建过点A的平面face0;步骤6-1-5,用于判定整块布料中所有的n个三角面片的中心点与整块布料的中心点位置,利用平面方程f(x)=0判定facecentre是否大于0,若facecentre>0则该小三角面片位于整个布料的右侧,若facecentre<0则该小三角面片位于整个布料的左侧;步骤6-1-6,由点A开始撕裂并删除点A和与之相关的边;步骤6-1-7,增加两个新的顶点v3,v4,并且顶点的质量仅为点A的一半,然后将顶点v3,v4的状态设为不可撕裂的状态;步骤6-1-8,由于从一点中开始撕裂然后生成新的三角形网格,因此需要增加新的两条边e1,r2;步骤6-1-9,布料模型自动重新添加其他相关结构和Half-edge数据结构,完成撕裂运算。进一步的,步骤6中,对于布料与不规则刚体的碰撞,采用构建距离场的方法进行检测,所述的基于欧氏距离的包围盒距离场计算算法如下:步骤6-2-1,首先利用布料模型中所有顶点及三角面片一定范围内的点构建AABB包围盒:求出布料的网格模型中,最大、最小顶点坐标值(xmax,ymax,zmax)和(xmin,ymin,zmin);以这两个顶点为对角顶点,构本文档来自技高网
...
一种布料撕裂动态模拟系统

【技术保护点】
一种布料撕裂动态模拟系统,其特征在于,所述系统包含布料建模单元、信息采集单元、优化布料模型单元、碰撞检测单元、布料撕裂单元;布料建模单元用于建立包含质点弹簧模型三角网格的布料模型;信息采集单元是采集布料模型的顶点的位置、边与顶点的关系、边的长度与面和顶点的关系、面的邻接关系并存储起来,用这些信息建立Half‑edge数据结构;优化布料模型单元用于给原始布料模型添加纹理贴图、改变光照参数、调节布料属性,完成对特定材质的布料仿真;碰撞检测单元用于创建距离场并设定碰撞响应的距离条件,时刻检测布料与刚体的点与面的距离;布料撕裂单元用于控制刚体的运动或布料的运动,使布料与刚体碰撞并产生撕裂;所述系统的具体模拟过程如下:步骤1,利用质点弹簧模型建立布料模型,使布料分解为多个三角面片完成布料的撕裂;在建模的同时加入Half‑edge数据结构,存储布料顶点的位置、边与顶点的关系、边的长度与面和顶点的关系、面的邻接关系的相关信息;并确定其网格大小、精细程度、纹理贴图;步骤2,调节布料模型属性,所述属性包括布料的Bending Stiffness即调节布料的柔软度、Streting Stiffness即调节布料的拉伸能力、Damping即控制布料的阻尼系数、Thickness即控制布料的表面厚度,通过调节上述属性的参数值使布料达到对某种材质布料的仿真,完成对布料材质的模拟;步骤3,如果是布料与规则刚体的碰撞即不给布料添加重力属性,并把布料固定悬垂或水平;如果是布料与不规则物体的碰撞即给布料添加重力属性水平放置;步骤4,创建刚体,若是规则刚体,则给刚体添加重力加速度;若是不规则刚体则固定到界面中;步骤5,调节刚体与布料的x,y,z三维坐标,使布料与刚体能够发生撕裂;步骤6,布料与规则刚体碰撞时引入Half‑edge数据结构计算并完成撕裂模拟;布料与不规则刚体碰撞时,创建一种基于欧氏距离的包围盒距离场计算算法确定并规划碰撞范围,距离场对布料和刚体进行碰撞检测,达到碰撞条件时启动碰撞响应完成撕裂模拟。...

【技术特征摘要】
1.一种布料撕裂动态模拟系统,其特征在于,所述系统包含布料建模单元、信息采集单元、优化布料模型单元、碰撞检测单元、布料撕裂单元;布料建模单元用于建立包含质点弹簧模型三角网格的布料模型;信息采集单元是采集布料模型的顶点的位置、边与顶点的关系、边的长度与面和顶点的关系、面的邻接关系并存储起来,用这些信息建立Half-edge数据结构;优化布料模型单元用于给原始布料模型添加纹理贴图、改变光照参数、调节布料属性,完成对特定材质的布料仿真;碰撞检测单元用于创建距离场并设定碰撞响应的距离条件,时刻检测布料与刚体的点与面的距离;布料撕裂单元用于控制刚体的运动或布料的运动,使布料与刚体碰撞并产生撕裂;所述系统的具体模拟过程如下:步骤1,利用质点弹簧模型建立布料模型,使布料分解为多个三角面片完成布料的撕裂;在建模的同时加入Half-edge数据结构,存储布料顶点的位置、边与顶点的关系、边的长度与面和顶点的关系、面的邻接关系的相关信息;并确定其网格大小、精细程度、纹理贴图;步骤2,调节布料模型属性,所述属性包括布料的Bending Stiffness即调节布料的柔软度、Streting Stiffness即调节布料的拉伸能力、Damping即控制布料的阻尼系数、Thickness即控制布料的表面厚度,通过调节上述属性的参数值使布料达到对某种材质布料的仿真,完成对布料材质的模拟;步骤3,如果是布料与规则刚体的碰撞即不给布料添加重力属性,并把布料固定悬垂或水平;如果是布料与不规则物体的碰撞即给布料添加重力属性水平放置;步骤4,创建刚体,若是规则刚体,则给刚体添加重力加速度;若是不规则刚体则固定到界面中;步骤5,调节刚体与布料的x,y,z三维坐标,使布料与刚体能够发生撕裂;步骤6,布料与规则刚体碰撞时引入Half-edge数据结构计算并完成撕裂模拟;布料与不规则刚体碰撞时,创建一种基于欧氏距离的包围盒距离场计算算法确定并规划碰撞范围,距离场对布料和刚体进行碰撞检测,达到碰撞条件时启动碰撞响应完成撕裂模拟。2.根据权利要求1所述的一种布料撕裂动态模拟系统,其特征在于:步骤1所述的布料模型中,以三角网格作为布料的几何载体,网格顶点定义为质点,网格边定义为结构弹簧。3.根据权利要求1所述的一种布料撕裂动态模拟系统,其特征在于:在步骤1的建模过程中,使用动量和角动量守恒的方法加入距离约束,约束布料的拉伸距离范围;使用求布料两个相邻顶点的角度方法加入碰撞约束,检测布料与物体的碰撞;采用高斯-赛德尔迭代方法求出布料顶点位置和速度,完成布料的模型的建立。4.根据权利要求1所述的一种布料撕裂动态模拟系统,其特征在于:步骤1中,建模完成后进行优化模型,引用非线性弹簧解决超弹性现象,使用格林拉格朗日应变代替工程应变得到弹力F与弹簧伸长量△S之间的关系,如式(1)所示,F=k·(l+l0)2/l02·ΔS (1)其中,k是弹簧的弹性系数,l0、l分别为弹簧原长和形变后弹簧长度;将k·(l+l0)2/l02看做变化的弹性系数,随着伸长量的增加F与△S之间呈非线性关系,当△S增大时,F的增幅越大,避免超弾性现象。5.根据权利要求1所述的一种布料撕裂动态模拟系统,其特征在于:所述规则刚体为四方体或圆柱体或胶囊体或球体;所述不规则刚体为钉子或尖刀。6.根据权利要求1所述的一种布料撕裂动态模拟系统,其特征在于:布料模型是由网格构成的,当某块区域内的网格发生变化即网格边的长度超过规定的阈值时,则定义为布料产生撕裂。布料模型的网格某一点发生撕裂,在撕裂过...

【专利技术属性】
技术研发人员:唐勇张豆刘宇涵安阳阳张金钟严凯丽李梦琪
申请(专利权)人:燕山大学
类型:发明
国别省市:河北;13

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1