自学内容网 自学内容网

【GAMES101笔记速查——Lecture 22 Animation Cont】

目录

1 单粒子模拟

1.1 欧拉方法

1.2 不稳定性及其改进

1.2.1 误差(Errors)

1.2.2 不稳定性(Instability)

1.2.3 解决不稳定性(Combating Instability)

(1)中点法

(2)自适应改变步长

(3)隐式欧拉方法(Implicit Euler Method)

(4)龙格-库塔 系列方法

(5)非物理(Position-Based / Verlet Integration)

2 刚体模拟(Rigid Body Simulation)

3 流体仿真(Fluid Simulation)

3.1 质点法vs网格法

3.2 材质点方法(Material Point Method (MPM))


1 单粒子模拟

一个物体在t0的时候在某个位置,在t1时刻的时候在哪里?

假设粒子处在一个速度场中:只要知道粒子的位置,就可以知道它的速度。

在任何一个位置、任何一个时间都知道速度:定义为位移的导数

这个写法叫做常微分方程(单变量微分方程)。

起始点定义为x0,给出任意的时间t都能给出位置。

1.1 欧拉方法

欧拉方法:在时间上进行离散化,用上一个时刻的数值来算下一个时刻的数值

1.2 不稳定性及其改进

1.2.1 误差(Errors)

步长Δt越小,误差越小,就更精确。

1.2.2 不稳定性(Instability)

螺旋形出现的问题:无论取多大的步长,都不可能沿着螺旋形的轨迹走。

下面的图形,越模拟和实际的结果相距越远,直到无限远。

一切用数值解解微分方程都会遇到的问题:误差、不稳定性

不稳定性这个问题比较大,有可能会在实际中导致一些难以解释的问题,比如下面这个小轿车装上摩托车之后在空中进行的一些迷惑运动

1.2.3 解决不稳定性(Combating Instability)

(1)中点法

原本在速度场中,这个点应该往a方向走。但现在不使用指向a的速度方向,而使用起始点和a点连线的中点处的速度方向,也就是b。此时用b这个速度方向来更新当前点的位置,会发现更新后,当前点到达了c点。

实际上用了两次欧拉方法。

观察公式可知:中点法更加准确的原因在于它有个Δt的二次方项,能模拟出类似抛物线的形状,能比一次的线性模型更准确一点。

(2)自适应改变步长

有人想要结合a点和c点的信息。

先按照欧拉方法计算出一个xT

再把Δt分成两半,应用两次欧拉方法得到xT/2

如果xT 和xT/2 相差很大,那就说明xT/2更接近真实的情况,此时,继续细分Δt,逼近真实值。

如果xT 和xT/2 相差不大,那就说明目前计算出的下一个点的位置精确度已经足够,可以进行下一步计算。

(3)隐式欧拉方法(Implicit Euler Method)

也叫:后向欧拉方法

用下一个时刻的速度、加速度(未知量)来计算下一个时刻的位移和速度。

最后形式是一个方程组,需要解出来,用求根公式或者优化方法来解,这样会慢很多。但隐式欧拉方法的稳定性比较好。

如何定义一个方法的稳定性和稳定程度?

局部截断误差:每一步的误差

整体累积误差

人们认为研究这两个数值没意义,应该研究这两个误差的阶,也就是和误差如何随着Δt的减小而减少的。

直接给结论:隐式欧拉方法是一阶的。

一阶:如果把h减小一半,那么期望得到的误差也减小一半

二阶:h小一半,得到的误差减小1/4

···

(4)龙格-库塔 系列方法

RK4是一个4阶的方法,这个应用比较广泛。

相当于中点法的一个推广,里面的权重经过精心设计。

(5)非物理(Position-Based / Verlet Integration)

这种的方法直接改变粒子的位置

2 刚体模拟(Rigid Body Simulation)

刚体不会发生形变,会让其内部所有的点按照同一种情况运动,可以把刚体看作一个粒子。在刚体模拟中,在原本的位置和速度的基础上,会关注更多的量:

位置、朝向、速度、角速度······

3 流体仿真(Fluid Simulation)

主要思想:

水体是由许多、不可压缩的、刚体小球组成的

认为水在任何一个位置都不可以压缩

给任何一个时刻,小球分布的位置,如果任何一个地方的密度和原本水的密度不一样,那么就通过移动小球,修正这种密度。

我们需要知道:任何一个点的密度对任何小球位置的梯度。

然后进行梯度下降方法来修正。

3.1 质点法vs网格法

模拟大规模物质的两个思路:质点法(拉格朗日方法) vs网格法(欧拉方法)

网格法是盯着一个固定的空间,关注每个空间的密度变化等。

3.2 材质点方法(Material Point Method (MPM))

结合了质点法和网格法

首先认为不同的粒子具有一些属性:密度、质量,这些信息存在质点上

融化的过程在网格中完成。

然后将网格中的数据写回给粒子。


原文地址:https://blog.csdn.net/weixin_45972089/article/details/144406260

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!