本文为《GAMES201:高级物理引擎实战指南2020》的学习笔记,文中图片及公式主要来自于课程视频及课件。GAMES201:高级物理引擎实战指南2020_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com
本人非相关专业,很多地方都只是自己的理解,如有错误,请各位大佬多多指正。
一、形变
凡物体受到外力而发生形状变化谓之“形变”。从微观上讲,则是材料微元的(相对)位置发生了变化,不在放松静止时的位置上。公式表述为:
其中,
为形变后的位置,
为从初始位置到形变位置的映射函数。在这种描述下,显然物体越大,则型变程度越大,因此,使用形变梯度
能更好描述形变程度:
这种描述则侧重物体变化的倍数,例如某物体沿某方向拉伸了多少倍,而与物体的尺寸无关。
另外,还有一个重要的描述因子
,它表示形变后的体积与未形变体积的比值,它等于F的行列式值。
(至于为什么等于还是看大佬的回答吧——行列式的本质是什么?)
二、弹性
弹性是指物体发生形变后,能恢复原来大小和形状的性质。较常用的一个弹性模拟模型为超弹性模型(Hyperelasticity)。在该模型中,使用一个应变能量密度函数
其中的
为之前讲的形变梯度。
从该公式出发,关于应力的描述为:
其中,
被称为PK1数(The First Piola-Kirchhoff stress tensor),表示截面微元上的应力张量(stress tensor)。由于在模拟时,各个位置的形变是分开计算的,各部分的受力、形变与实际情况差别很大,因此
只能在达到稳定(形变完成)的状态下计算,一般用多次迭代的方式,来逐步达到最终的稳定状态。
(个人理解):
这里类似于弹性势能与弹力,但有明显区别。对于理想状态下的弹簧,其弹性势能与长度的关系为: