1.动画是什么
动画最初的定义为Animation,就是把一些物体变成“活”的,也就是让它们能够动起来。动画和语言一样,一开始都是作为传达信息的工具,用来展示各种各样动起来的东西,其次需要一定的美观。
在图形学中动画可以理解为建模或者是几何的一种扩展,动画就是可以让这些建模和几何在不同的时间有不同的形状或其它属性,也就是加了一个时间的维度。
动画的形成过程就是一些列图片去按顺序播放的过程,一般来说达到每秒24张图,也就是24FPS,可以让人觉得是一个连贯的动画。对于一些正常的视频一般是30FPS,这样看起更流畅。而对于一些游戏,要求可能更高,比如144Hz的刷新率或者是165Hz的刷新率。同时对于VR来说,要想达到真实且不使人晕眩的效果,两个眼睛的帧数都要达到90FPS以上。
2.关键帧动画
关键帧动画(Keyframe Animation)就是一段动画中比较重要的几个位置对应的帧,我们将几个重要的帧找出来,然后它们之间的过渡过程来补出来。一开始这些关键帧都是需要大量的人力来补的,且补出来的帧风格大小都要看起来一致,这样才能达到不违和的效果。但是之后有一款软件叫Flash,它可以自动计算补出关键帧之间的帧。
关键帧中间补帧就是一个插值的过程,只不过它不一定是线性插值。
有时候人们可能会要求它有更好的连续性和过度,让它看起来不那么生硬,就和我们之前说的贝塞尔曲线C1,C2,C3,几阶连续类似,所以动画和样条这些几何有关联的。虽然如何过度我们不能直接确定,但是补出的帧一定在两个关键帧之间这是可以确定的。 如下图所示。
3.物理模拟
3.1 定义
最简单的物理,如牛顿的F=ma,它可以计算力和加速度的关系。
物理模拟(Physical Simulation)其实就是计算各种不同的物理公式,从而知道,在不同的时间,我们这些物体的位置,速度,这些属性。简单说就是使用数值模拟生成物体的运动。
如下图所示,抛物线就是一种物理模拟,而右边的衣服,虽然是一个网格,但是我们可以知道每个顶点所受的重力,以及它的质量,或者受其它顶点牵引的力等等,我们同样可以计算它的各种物理量和受力,从而模拟。
3.2 质点弹簧系统
3.2.1 质点弹簧系统计算模型
质点弹簧系统(Mass Spring System)是一系列相互连接的质点和弹簧。它可以模拟绳子,布料,头发等等,是最简单的一种模拟之一。它的最基础的单位是一根弹簧连着两个质点,如下图所示。其中的弹簧是理想弹簧,也就是说它没有长度,拉多长就产生多大的力,从 a 到 b 的作用力大小取决于两点的距离长度。如下图公式 fa→b=ks(b-a),其中Ks是劲度系数。】