显式时间积分
显式欧拉时间积分
显式辛欧拉积分
隐式积分
什么是隐式积分?为什么用隐式积分?
- 什么是隐式积分:
- 用隐式积分很昂贵(代价很高),因为需要去解非线性优化
- 为什么要用隐式时间积分?
- 隐式时间积分可以实现大时间步长,大时间步长是跑一个实时应用的关键!
- 隐式时间积分可以实现大时间步长,大时间步长是跑一个实时应用的关键!
隐式积分的数值解法
方法一:Baraff-Witkin solution:
- SIGGRAPH 2001 COURSE NOTES Physically Based Modeling [link] 其中关于隐式积分的notes:[link]
- **经典论文:**The [Baraff and Witkin, 1998] style solution 《 Large Steps in Cloth Simulation 》 [link]
- 核心思想:只跑一步牛顿,不做 ,不做line-search
方法二:General descent method
- 梯度下降法
- 凸优化,最小化g(x)
- 选择一个方向
- 梯度下降法(Gradient descent)
- 牛顿法(Newton’s method)
- 选择一个步长
- 线-搜索法 (Back-tracking line-search)
- 推荐阅读
- 牛顿法(通常用这个)
- Hessian 矩阵
线性系统求解
直接法
- taichiAPI: sparse Matrix
间接法
- 共轭梯度法
Further Reading:
- Real Time Physics, Chapter 3,4 [SIGGRAPH 2008 Course] [Link]
- Finite Element Method, Part I [SIGGRAPH 2012 Course] [Link]
- Dynamic Deformables: Implementation and Production Practicalities [SIGGRAPH 2020 Course] [Link]
- Supporting collisions and contact (with friction) [Course]
- Playing with material models [Bending][Stable NeoHookean][Hair]
- Simulating linear FEM using implicit time integration [Course]