有限元模拟笔记1


毕业设计打算做有限元的模拟,准备实现论文Rig-Space Physics。


在计算机图形学中,有限元模拟主要用于模拟变形物体的行为,例如果冻的摔在地上的变形、胖子走路身上肥肉的运动等等。一般这类模拟最终的结果便是每个顶点的动画。但在图形学领域,对模拟的准确程度要求并不高,一般来说“看起来真实”就可以了;而在另一方面,要求制作人员能够方便地对模拟结果进行修改,以满足各种各样的制作要求。纯的物理模拟只追求结果的准确性,不能满足这些要求。


因此,近几年一部分模拟着眼于研究干预模拟结果的方法。例如在Real-time Control of Physically Based Simulations using Gentle Forces中,用一个已有的动画,结合控制论中的LQR控制去指导模拟;在Example-Based Elastic Materials中,通过预先给定物体的可能变形姿态来指定模拟。


至于我准备实现的这篇论文,则是试图通过物理模拟驱动一些已有变形方法的参数。例如,做了一个小球弹跳的动画,物理模拟在此基础上,通过驱动小球的缩放值,使得小球触地后变扁。又例如,做了个胖子走路的骨骼动画,同时设置肚子受到几条自由骨骼的控制,利用物理模拟,就可以算出这些自由骨骼的运动,从而实现走路的时候肚子的抖动。这个论文有个优势,就是它把这些已有的变形方法看成一个黑盒,因此各种受参数驱动的变形方法都可以整合到这个系统当中。


为了减少自己的工作量,我找了一个现成的有限元模拟平台Vega(http://run.usc.edu/vega/),这个平台是一个MIT教授Jernej Barbic写的,这个教授发表了很多关于有限元模拟的论文,他的主页在这里 http://www-bcf.usc.edu/~jbarbic/ 。这个平台功能非常完整,提供各种本构模型的计算,例如st. venant-kirchhoff、 corotational 、neohookean模型;还提供模拟所需的数值积分算法,例如隐式欧拉法、 Newmark法等。我现在利用它提供的本构模型来计算弹力和tangent stiffness matrix(相当于某一个瞬时的弹性系数),自己实现论文的基于参数空间的积分方法。


写这篇日志算是开个头,以后的工作进度就记录在这个博客了。

posted @ 2014-12-15 11:19  dydx  阅读(532)  评论(0编辑  收藏  举报