CGI 动画制作 Week1

动画制作是一项很有趣的技术,来了解一下吧。

相关课程: edX 上的 CSMM.104x【Animation and CGI Motion】

这门课第一周简单地介绍了一下运动学(Kinematics:)相关的知识:

形态(configuration):假设我们有个两个电梯,h1,h2分别表示它们当前离地面的高度,我们就可以用向量q=(h1,h2)来描述电梯的形态或者说位置。

轨迹(trajectory):我们的电梯系统在不同时刻的形态构成了轨迹,把 h1 作为横坐标,h2 作为纵坐标,轨迹空间就是一个正方形。

速度(velocity):电梯在每个时刻都有个速度,描述了运动的快慢,我们用向量 \(\dot{q}=(q_1, q_2)\) 来表示电梯系统的速度。

状态(state):我们用形态和速度来描述电梯系统的状态:\(y=\left(\begin{matrix} q\\ \dot{q} \end{matrix}\right)\)

质量(mass)和惯性(inertia):任何物体都有惯性,而质量大的惯性就比较大,惯性是保持原有的运动状态的能力。牛顿第一定律也叫惯性定律。

牛顿第一定律:物体保持原有运动状态,除非有外力施加于它。

Newton's first law of motion:An object at rest stays at rest and an object in motion stays in motion with the same speed and in the same direction unless acted upon by an unbalanced force.

动量(momentum):动量是矢量,有大小和方向。动量是被定义为质量乘以速度,用来表示物体的运动量。我们用一个2×2的矩阵来描述电梯系统的质量,对角线上为每个电梯的质量。这个矩阵乘上它们速度的向量就可以得到动量的向量。

\(p=M\dot{q}\)

动能(kinetic energy):运动的物体具有能量,也就是动能。动能等于质量乘以速度的平方的二分之一。对于我们的电梯系统的动量,需要这样计算:\(KE=\frac{1}{2} \dot{q}^TM\dot{q} =(q_1,q_2) \left( \begin{matrix} m_1 & 0\\ 0 & m_2 \end{matrix} \right) \left( \begin{matrix} q_1\\ q_2 \end{matrix} \right)\),它会是有个实数。把动量带入就是\(KE=\frac{1}{2} \dot{q}^T p\)

牛顿第二定律:我们想知道物体下一个时刻如何运动。上面我们说状态是位置和速度,现在用位置和动量来描述状态,\(y=\left(\begin{matrix} q\\ p \end{matrix}\right)\)

牛顿第二定律:作用在物体上的力等于物体质量乘以物体的加速度。

或者说动量的变化率等于作用在物体上的力。

Newton's second law of motion:The vector sum of the forces F on an object is equal to the mass m of that object multiplied by the acceleration a of the object: F = ma.

or:The rate of change of momentum = forces acting on the system

我们让\(\frac{d}{dt} y = \dot{y} = \left(\begin{matrix} \dot{q}\\ \dot{p} \end{matrix}\right) = \left(\begin{matrix} M^{-1}p\\ f(y,t) \end{matrix}\right) \),注意到对位置的求导等于速度,而速度\(p=M\dot{q}\),所以\(\dot{q}=M^{-1}p\)。牛顿第二定律告诉我们,动量的变化率就是作用在物体上的力。而力是关于位置或者时间的一个函数。

OK,接下来我们开始考虑一些计算。

我们要用到欧拉方法来将上面的微分方程从连续的函数转为离散的。

我们先将时间轴按 h 大小划分为1h,2h,3h等等。并且假设系统的位置按直线移动,1h 时刻位置是 q1,2h 时刻位置是 q2。那么位置关于时间的变化就是\(\frac{q_{n+1} - q_n}{h}=M^{-1}p_n\),于是\(q_{n+1} = q_n+hM^{-1}p_n\)。同理我们的动量关于时间的变化就是\(\frac{p_{n+1}-p_n}{h}=f(p_n, q_n, t_n)\),于是\(p_{n+1}=p_n+hf(p_n, q_n, t_n)\)

力和势能(Potential Gradients)的关系是\(F = - \nabla U\)

Blog Comments powered by Disqus.