CN112926252A - 液体与布料交互现象模拟方法 - Google Patents

液体与布料交互现象模拟方法 Download PDF

Info

Publication number
CN112926252A
CN112926252A CN202110179073.1A CN202110179073A CN112926252A CN 112926252 A CN112926252 A CN 112926252A CN 202110179073 A CN202110179073 A CN 202110179073A CN 112926252 A CN112926252 A CN 112926252A
Authority
CN
China
Prior art keywords
cloth
liquid
interaction
diffusion
simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110179073.1A
Other languages
English (en)
Other versions
CN112926252B (zh
Inventor
杜金莲
杨甜
金雪云
苏航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN202110179073.1A priority Critical patent/CN112926252B/zh
Publication of CN112926252A publication Critical patent/CN112926252A/zh
Application granted granted Critical
Publication of CN112926252B publication Critical patent/CN112926252B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/25Design optimisation, verification or simulation using particle-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/28Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/12Cloth
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/14Force analysis or force optimisation, e.g. static or dynamic forces

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Fluid Mechanics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了液体与布料交互现象模拟方法,通过分析目前针对液体与布料交互现象模拟方法的不足,提出了一种基于LBM的液体与布料交互现象的模拟方法,将整个交互过程简化为四个步骤:碰撞检测、吸收、扩散与滴落。利用LBM的D3Q27模型进行布料的邻居模型建模,能更快的获取到邻居顶点,且通过将液体向布料的邻居顶点扩散来真实的模拟出交互效果。该方法能模拟出液体与不同布料的交互效果,对于不同布料具有适用性,并且使用CUDA实现进一步提高了模拟效率,实现实时模拟,为计算机图形学领域的相关研究提供了仿真支持。

Description

液体与布料交互现象模拟方法
技术领域
本发明属于计算机图形学领域,涉及固液交互的仿真模拟,具体为液体与布料交互现象的模拟方法。
背景技术
固液交互是现实生活中经常发生的物理现象,对其进行仿真可以应用于计算机辅助设计领域之中,如进行水利工程设计、航天航空飞行器设计等等。具体到对液体与布料交互现象的模拟,它则不仅可以在游戏场景、动漫和电影中用于增强人物外观,提高人们的游戏体验或观影体验,还可以应用于布料印染制造时的印染模拟实验,以减少成本浪费,提高效率。因此,如何在保证液体与布料交互模拟足够真实的前提下提高交互速度,使其能达到实时渲染的效果,一直是计算机图形学领域的研究热点。
在液体与布料的交互模拟这一研究主题中,模拟方法主要分为两种:一种是液体与布料都采用拉氏方法模拟,由于该方法统一对固体顶点与液体粒子进行处理,因此无需单独进行边界处理,但是在碰撞检测时需要准确找到与布料网格发生碰撞的所有液体粒子,才能更好的模拟出真实的效果;另一种则是采用欧式方法模拟液体、拉氏方法模拟固体,再单独对边界条件进行处理,由于欧式方法将整个液体场景划分为网格,因此更容易进行碰撞检测。Harada T等人基于SPH方法来实现固液耦合的实时仿真,他们将空间划分为大小基本一致的液体网格与布料网格,用于快速的寻找与液体粒子邻近的布料网格,并利用液体粒子与布料的近似距离来计算相互作用力,避免了准确计算固液相互作用力所需的代价,并在gpu上进行仿真,提高了仿真效率,但是当布料网格变形较大时无法搜索到所有与布料网格碰撞的液体粒子,会导致误差增大,有损模拟的真实感。而Raymond等人虽然能非常真实的对交互效果进行模拟,但是由于需要十分精细的网格,因此在进行压力、速度等物理量的求解时需要消耗很多的计算资源,在对液体滴落在布料上的效果的模拟中,一个时间步内便需耗时18.73s,而Lenaerts等人在模拟浸湿的布料滴落液体的效果时每帧耗时更是高达1.5分钟。
为了提高液体与布料交互的模拟速度并能兼容不同布料的物理特性,有必要对液体与布料的交互现象进行探索与研究,并提高算法对于不同布料的适用性,增强扩散模拟的真实感。基于这一目标,本发明提出了一种基于LBM的液体与布料交互现象的模拟方法。
发明内容
本发明包含两个部分:
第一项发明内容是提出三维布料几何模型。将应用于薄面片的质点弹簧模型从二维扩展至三维以适应有厚度的布料模拟,并通过对弹性约束的扩展从而真实的模拟出具有厚度的布料的运动细节。
第二项发明内容是基于第一项发明内容提出基于LBM的液体在布料中扩散的算法。该算法将液体与布料的交互分为四个步骤,即碰撞检测、吸收、扩散与滴落。在碰撞检测阶段,使用连续碰撞检测技术来检测液体与布料之间的碰撞结果,并对液体与布料之间双向的相互作用力进行处理,即碰撞时布料会对流体粒子产生反作用力,反之亦然,因此可以防止液体粒子直接穿透布料。在扩散阶段,将饱和度的差异整合到液体在布料内部扩散的算法之中,这也与达西定律一致,即多孔介质中流体的扩散速度与孔隙压力梯度成正比,在提高扩散模拟的真实感的同时也提高了算法对于不同布料的适用性。此外,还利用了GPU强大的并行计算能力,大大提高了仿真的速度。在利用该算法实现液体与布料的交互模拟中,通过修改布料的物理参数可以得到同一种液体在不同布料中的不同扩散效果。
本发明针对液体与布料交互现象的模拟方法,其特征在于:主要包括三维布料几何模型和基于LBM的液体在布料中的扩散算法两个模块。三维布料几何模型是对布料的几何模型进行构建,可以适用于任意厚度布料的几何模型构建,并通过数值求解得到真实的布料运动状态。
基于LBM的液体在布料中的扩散算法则是本发明的核心内容,它是对整个交互流程的算法设计,根据现实生活中液体与布料的交互过程,将算法分为碰撞检测、吸收、扩散于滴落四个部分,并且符合达西定律中流体速度与孔隙压力梯度成正比的规律。该算法将布料的物理参数整合到扩散方程之中,从而可以对不同材质的布料的扩散效果进行模拟,提高了算法的适用性。整个交互流程最终都在Windows系统上使用OpenGL进行仿真模拟,能获得真实的交互效果,并且可以进行实时模拟。
本发明方法的具体流程如附图3所示,具体步骤如下:
步骤1:构建三维布料几何模型,初始化布料的物理参数并将布料顶点的受力应用到每一个时间步中来更新布料的运动状态,得到下一时刻布料顶点的位置信息数据。
步骤2:初始化液体粒子的相关物理信息,利用PBF方法更新液体粒子的位置、速度等信息,并使用CUDA进行并行处理提高计算效率,得到更新后的液体粒子的位置数据。
步骤3:将步骤1与步骤2的结果数据作为新的输入,利用连续碰撞检测算法判断液体粒子是否与布料顶点发生碰撞,若没有发生碰撞,则继续采用步骤2的方式对液体粒子进行下一时刻的模拟,若发生了碰撞则记录该液体粒子与布料顶点的数据。最后将所有发生了碰撞的液体粒子与其对应的布料顶点信息作为步骤4的输入。
步骤4:将步骤3的结果数据作为新的输入,计算液体对布料的冲击力,并将相互作用力分别应用到这两种介质中。布料顶点吸收该液体粒子,更新布料顶点的饱和度以及该液体粒子剩下的体积。将整个布料的饱和度信息作为步骤5的输入。
步骤5:将步骤4的结果数据作为新的输入,利用LBM的D3Q27邻居模型获取布料顶点的邻居,根据达西定律计算布料顶点在饱和度差异以及重力的双重作用下向其邻居顶点扩散出去的液体的体积分数,更新每个布料顶点扩散后的饱和度并将其作为步骤6的输入。
步骤6:将步骤5的结果数据作为新的输入,若扩散后的布料顶点饱和度大于设置的饱和度阈值,则该过饱和的布料顶点产生滴落效果,即将吸收的超过了阈值的液体体积全部滴落。利用OpenGL对整个场景进行渲染并重复步骤1至步骤6进行下一轮迭代。
本发明能模拟有厚度的布料,并对不同类型的布料具有适应性,可以对液体与不同布料的交互效果进行真实性模拟,且能达到实时性的要求,能为相关领域的仿真提供支持。
附图说明
图1是本发明的整体结构示意图。
图2是本发明应用了三维布料几何模型的布料模拟流程示意图。
图3是本发明液体与布料交互模拟的流程示意图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。
本发明的整体结构示意图如图1所示,包括:
根据用户自定义的布料物理属性来构建三维几何模型,利用扩展的质点弹簧模型来生成三种弹性约束,再使用连续碰撞检测防止液体粒子的泄漏,并用提出的基于LBM的扩散算法来模拟扩散过程,最后使用OpenGL进行仿真,从而对液体与布料的交互进行实时性模拟。
步骤1.确定布料的物理属性如厚度、刚性系数、最大饱和度等等,利用提出的三维布料几何模型完成对布料的几何建模。
步骤2.分别利用PBF方法与扩展的质点弹簧模型完成对液体与布料的迭代,并施加如重力等外力。
步骤3.提出与达西定律一致的基于LBM的液体在布料中扩散的算法,并通过该算法完成液体与布料的交互过程,整个交互过程与真实现象一致:碰撞检测、吸收、扩散与滴落,只有过饱和的顶点才会产生滴落现象。
步骤4.将上述步骤产生的数据利用OpenGL与GLSL进行绘制与渲染,在计算机上进行实时模拟。
本发明中布料模拟流程如图2所示,包括:
结构弹簧:水平与竖直方向相邻结点之间的约束,用来模拟布料之间横向与纵向的受力,防止布料在这两个方向过度拉伸。
剪切弹簧:对角线上添加的约束,用来模拟布料内倾斜方向的力,阻止布料斜方向的过度形变,模拟布料的延展性。
弯曲弹簧:横向与纵向相隔一个顶点的两个顶点之间的约束,用来模拟布料在被弯曲和折叠时,抵抗弯曲的力。
位置约束:防止布料顶点相对初始位置位移过大,从而产生要使布料顶点恢复到初始位置的应力,位置约束即是要减小形变的约束。
verlet数值积分:一种普遍使用的积分方法,用于求解下一时刻的位置与速度。由于考虑了上一时刻t-Δt的状态、当前时刻t的状态以及下一时刻t+Δt的状态,因此其精度较高,具有四阶精度O(Δt^4),且稳定性好。
本图是应用了三维布料几何模型的布料模拟流程的示意图。利用扩展的质点弹簧模型可以真实的模拟出具有厚度的布料的运动细节,使用verlet数值积分进行数值求解可以得到稳定的模拟效果,使整个布料模拟系统具有鲁棒性。
本发明液体与布料交互过程构建的流程示意图如图3所示,包括以下步骤:
步骤1.使用连续碰撞检测来判断液体与布料是否发生碰撞,并对液体与布料施加碰撞产生的相互作用力。其次,还需矫正液体与布料不合理的相对位置。若液体上一时刻在布料下方,当前时刻在布料上方,则证明液体粒子不合理的从下往上穿过了布料,需要对该现象进行处理。
步骤2.将步骤1中发生了碰撞的液体与布料信息作为输入,根据LBM的D3Q27模型获取邻居顶点。D3Q27模型考虑了当前层布料的上一层、当前层以及下一层邻居,因此可以模拟出液体从上往下渗透、平流渗透以及从下往上渗透的效果。更新吸收了液体的布料顶点的饱和度并作为步骤3的输入。
步骤3.根据达西定律,在饱和度差异以及重力的双重作用下将液体粒子往周围的布料顶点进行渗透,对于任一布料顶点i向其邻居顶点j扩散的饱和度为:min(ks×(sr[i]-sr[j])+kg×sr[i]×cosθ,0.0),计算每一个布料顶点饱和度的变化量。
步骤4.利用步骤2与步骤3的结果数据作为输入,计算出每个布料顶点扩散后的饱和度,若该布料顶点过饱和则滴落液体。最后渲染场景,并重复步骤1至步骤4,对整个交互过程进行迭代模拟。
应当理解,虽然本说明书根据实施方式加以描述,但是并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域的技术人员应当将说明书作为一个整体,各个实施方式中的技术方案也可以适当组合,按照本领域技术人员的理解来实施。
上文所列出的一系列详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用于限制本发明的保护范围,凡是未脱离发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

Claims (4)

1.根据权利要求1所述的液体与布料交互现象模拟方法,其特征在于:该方法包括如下步骤,步骤1:构建三维布料几何模型,初始化布料的物理参数并将布料顶点的受力应用到每一个时间步中来更新布料的运动状态,得到下一时刻布料顶点的位置信息数据;
步骤2:初始化液体粒子的相关物理信息,利用PBF方法更新液体粒子的位置、速度信息,并使用CUDA进行并行处理提高计算效率,得到更新后的液体粒子的位置数据;
步骤3:将步骤1与步骤2的结果数据作为新的输入,利用连续碰撞检测算法判断液体粒子是否与布料顶点发生碰撞,若没有发生碰撞,则继续采用步骤2的方式对液体粒子进行下一时刻的模拟,若发生了碰撞则记录该液体粒子与布料顶点的数据;最后将所有发生碰撞的液体粒子与其对应的布料顶点信息作为步骤4的输入;
步骤4:将步骤3的结果数据作为新的输入,计算液体对布料的冲击力,并将相互作用力分别应用到这两种介质中;布料顶点吸收该液体粒子,更新布料顶点的饱和度以及该液体粒子剩下的体积;将整个布料的饱和度信息作为步骤5的输入;
步骤5:将步骤4的结果数据作为新的输入,利用LBM的D3Q27邻居模型获取布料顶点的邻居,根据达西定律计算布料顶点在饱和度差异以及重力的双重作用下向其邻居顶点扩散出去的液体的体积分数,更新每个布料顶点扩散后的饱和度并将其作为步骤6的输入;
步骤6:将步骤5的结果数据作为新的输入,若扩散后的布料顶点饱和度大于设置的饱和度阈值,则过饱和的布料顶点产生滴落效果,即将吸收的超过了阈值的液体体积全部滴落;利用OpenGL对整个场景进行渲染并重复步骤1至步骤6进行下一轮迭代。
2.根据权利要求1所述的液体与布料交互现象的模拟方法,其特征在于:三维布料几何模型是对布料的几何模型进行构建,适用于任意厚度布料的几何模型构建,并通过数值求解得到真实的布料运动状态;
基于LBM的液体在布料中的扩散方法,是对整个交互流程的设计,根据现实生活中液体与布料的交互过程,分为碰撞检测、吸收、扩散与滴落四个部分,并且符合达西定律中流体速度与孔隙压力梯度成正比的规律;将布料的物理参数整合到扩散方程之中,从而对不同材质的布料的扩散效果进行模拟,提高适用性;整个交互流程最终都在Windows系统上使用OpenGL进行仿真模拟,能获得真实的交互效果,并且能实时模拟。
3.根据权利要求1所述的液体与布料交互现象模拟方法,其特征在于:考虑到布料具有厚度,抽象出三维布料几何模型,且使用自定义的布料物理属性来进行三维几何模型的构建,通过扩展质点弹簧模型使得能对有厚度的布料进行真实模拟,能模拟出褶皱等运动细节。
4.根据权利要求1所述的液体与布料交互现象模拟方法,其特征在于:利用LBM的D3Q27邻居模型来获取布料顶点的邻居粒子;利用CUDA进行并行处理;扩散方法与达西定律一致,符合液体在多孔介质中的扩散规律。
CN202110179073.1A 2021-02-09 2021-02-09 液体与布料交互现象模拟方法 Active CN112926252B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110179073.1A CN112926252B (zh) 2021-02-09 2021-02-09 液体与布料交互现象模拟方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110179073.1A CN112926252B (zh) 2021-02-09 2021-02-09 液体与布料交互现象模拟方法

Publications (2)

Publication Number Publication Date
CN112926252A true CN112926252A (zh) 2021-06-08
CN112926252B CN112926252B (zh) 2024-03-26

Family

ID=76171371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110179073.1A Active CN112926252B (zh) 2021-02-09 2021-02-09 液体与布料交互现象模拟方法

Country Status (1)

Country Link
CN (1) CN112926252B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113435098A (zh) * 2021-06-30 2021-09-24 西南交通大学 一种织物类薄层软体物质变形后形貌精确仿真方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105717111A (zh) * 2016-04-29 2016-06-29 中储粮成都粮食储藏科学研究所 一种基于机器视觉的检测溶液颜色变化的自动滴定装置及检测方法
CN109002571A (zh) * 2018-05-08 2018-12-14 杭州电子科技大学 基于等几何弹簧质点模型的布料动态仿真方法
US20200043230A1 (en) * 2017-09-13 2020-02-06 Tencent Technology (Shenzhen) Company Limited Liquid simulation method, liquid interaction method and apparatuses

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105717111A (zh) * 2016-04-29 2016-06-29 中储粮成都粮食储藏科学研究所 一种基于机器视觉的检测溶液颜色变化的自动滴定装置及检测方法
US20200043230A1 (en) * 2017-09-13 2020-02-06 Tencent Technology (Shenzhen) Company Limited Liquid simulation method, liquid interaction method and apparatuses
CN109002571A (zh) * 2018-05-08 2018-12-14 杭州电子科技大学 基于等几何弹簧质点模型的布料动态仿真方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113435098A (zh) * 2021-06-30 2021-09-24 西南交通大学 一种织物类薄层软体物质变形后形貌精确仿真方法
CN113435098B (zh) * 2021-06-30 2022-11-15 西南交通大学 一种织物类薄层软体物质变形后形貌精确仿真方法

Also Published As

Publication number Publication date
CN112926252B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
Shin et al. A solver for massively parallel direct numerical simulation of three-dimensional multiphase flows
CN102831275B (zh) 一种3d流体的仿真方法及系统
CN101944144A (zh) 一种基于无网格的布类仿真方法
Thürey et al. Interactive free surface fluids with the lattice Boltzmann method
Patkar et al. Wetting of porous solids
CN114117968A (zh) 水气两相流全耦合求解的飞行器水上起降载荷分析方法
CN112749518A (zh) 用于模拟物理过程的计算机系统
CN112926252B (zh) 液体与布料交互现象模拟方法
CN107273617B (zh) 一种利用浅水波方程获得表面流流体运动的实时模拟方法及系统
CN104850674A (zh) 一种基于多试验状态数据的模型修正系统
Chen et al. A heuristic approach to the simulation of water drops and flows on glass panes
CN102298794A (zh) 一种基于面网格的实时水滴仿真方法
CN104463934B (zh) 一种“质点‑弹簧”系统驱动的点集模型动画自动生成方法
Attar et al. Physics-based generative design
CN102867336B (zh) 一种基于热力学模型的固体燃烧过程模拟方法
CN104517299B (zh) 视频流体物理驱动模型恢复及重新仿真的方法
CN109726496A (zh) 一种基于iisph提高不可压缩水体模拟效率的实现方法
CN102819630B (zh) 八叉树粗糙网格投影的快速的烟模拟方法
CN115879390A (zh) 基于弱空气粒子及Lennard-Jones势的分层云流体模拟方法
CN108922627A (zh) 基于数据驱动的血流仿真方法
Yuan et al. An adaptive mesh refinement‐multiphase lattice Boltzmann flux solver for three‐dimensional simulation of droplet collision
KR100705417B1 (ko) 물체 표면의 젖음과 마름 표현 장치 및 방법
Miyaji et al. On Accuracy of Prediction of Flutter Boundaries on Unstructured Grids
Liu et al. Phusis cloth: A physics engine for real-time character cloth animation
Yang et al. Physically-based tree animation and leaf deformation using CUDA in real-time

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant