万字长文!UCLA蒋陈凡夫12年自我回顾,图形学的终极浪漫(6)
2023-04-29 来源:飞速影视
拓扑变化哪家强,levelset敢称王。要实现自然破裂,结合有限元和level set方法是一个非常巧妙的思路。Level set有非常强的灵活性,可以从各种自然的角度去分裂四面体,而且可以完全避免重新划分网格(remesh)。
Levelset方法的发明人Stan Osher在UCLA,给了我们一些宝贵的建议,很快,破裂的问题便迎刃而解了。
这篇文章,我更主要负责的是做摩擦碰撞。建模破裂之后,这顺其次成为最头疼的事情。levelset的marching tetrahedra切割法带来了无数形状“恶心”的果冻碎片:在裂面上,有的三角形瘦如一道闪电,有的扁如一张大饼。计算几何上,这些奇特的三角形被称作是“ill conditioning”,想要用普通几何方法去搞定它们的碰撞,不说碰撞算法本身的case难以穷举,光是浮点数精度带来的千变万化的误判就足以让人望洋兴叹。我花一年时间试了很多算法,皆以宣告失败。
最值得讲的一个算法,是一个非常大胆的idea。我把解算完的固体投射到一个规则的网格上,然后让网格假装看到的是不可压流体,求解一个泊松方程,把速度场变成无散的,再插值回到固体上。这竟给出了非常漂亮的不穿透解!但是缺点在于,物体的运动被变的太像流体一般轻盈灵动了,缺少了那份固体特有的执拗。我便去问我的导师Joseph,有没有类似于这个解流体方法的解固体的方法,我想拿来在碰撞上试一试。他回忆良久,说出了我一个我随后持续专注十年的名称:MPM。
MPM是1995年在美国的国家实验室发明的。它是一个混合拉格朗日粒子和欧拉网格的固体解算方法。往前追溯到1960年代的Particle-In-Cell(PIC法,最初用于求解等离子体物理的麦克斯韦方程)和1980年代的Fluid-Implicit-Particle-Method (FLIP法,用于流体结算,@张心欣的导师Robert Bridson,我的师叔,于2005年引入图形学)。它像流体一样,自动防止了材料间的穿透,又可以漂亮地求解固体的方程。把MPM拿过来做碰撞处理,在当时的我看来,再合适不过了:
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号