福特Flex论坛 >
【深入浅出 Nvidia FleX】(4) Cloth Simulation
回复

查看: 回复:1

【深入浅出 Nvidia FleX】(4) Cloth Simulation

\"收藏此主题\"

风里雪

 
 
注册:
2008-02-15
  • 0粉丝
  • 0精华
  • 474帖子
上一篇文章 【深入浅出 Nvidia FleX】(3) Shape Matching (上) 介绍了Nvidia FleX的刚体和软体模拟方法的理论基础 Shape Matching,本来应该写一下软体(弹性体),塑性体以及软关节的模拟。恰逢Siggraph 2019 刚结束,先介绍一下Nvidia Siggraph booth demo中的布料模拟,连续加班几天就是为了布料编辑和模拟一切OK。

先放几个Demo booth 现场布料模拟效果:
Blankets on the couchhttps://www.zhihu.com/video/1142941055954542592Blankets with attachmenthttps://www.zhihu.com/video/1142941445534076928https://www.zhihu.com/video/1142941542133121024
有兴趣的同学可以关注twitter链接:https://twitter.com/NVBackchannel

一、基于距离约束的布料模拟

FleX中布料模拟底层约束主要是距离约束,包括Stretch(拉伸)约束,Bending(弯曲)约束以及Long Range Attachments(LRA)约束[1]。下面介绍如何建立这些约束。TA首先会在DCC工具中建立一个mesh作为输入,这里有一点需要注意,FleX 布料模拟接受triangle mesh,而给定的render mesh可能不是triangle mesh,这个时候需要先进行triangulation。

我们以最简单的布料模型做介绍:

三角形网格表示:

每个网格顶点对应一个cloth particle:

下图中黑色点表示tether particle(对应最左侧一列11个粒子),对应质量倒数为0的点,可以实现attachment效果,比如绑定到游戏角色身上,跟随角色走动。而其他颜色对应权重值范围为(0,1],通常会采用白色表示权重为1的particle,也就是普通的cloth particle,其质量倒数非0,位置和速度的更新由solver计算:

图中可以看见,这块简单的布料有200个三角形,121个顶点(particle),距离约束(FleX Num Springs)一共710个。这里的距离约束包括了我们之前介绍过的拉伸约束,弯曲约束以及LRA约束[2]:

有一点需要注意,对于render mesh而言,很可能会存在重复的顶点(位置相同,法线或纹理坐标差异),那我们首先需要去掉重复的顶点,保证一个顶点位置对应一个Cloth Particle。FleX SDK extension API中提供了一个函数 NvFlexExtCreateWeldedMeshIndices 生成顶点位置唯一的索引数组。经过处理后,我们的simulation mesh粒子数目
 
回复本楼

太平洋汽车全新推出“太平洋车友会”;来太平洋车友会,结识志同道合的车友了解详情>>

lovehangang

 
 
注册:
2009-12-18
帮顶楼主的贴了
 
回复本楼
未登录用户

只可添加一张图片,多张图片请选高级模式

高级模式
温馨提示:回复超10字可获1金币,有独特见解超30字可获3金币,灌水用户将扣除金币并锁号处理。希望广大车友共同维护论坛的友好回复氛围。
常用表情
您可能感兴趣

支付宝扫码询价
领最高888元现金红包

关闭