目录
2.1 质点弹簧系统(Mass Spring System)
2.3.1正向运动学(Forward Kinematics)
1.关键帧动画(Keyframe Animation)
在关键的位置上制作一帧画面,而中间的过程采用自动生成的方式形成动画;自动生成可以用线性插值的方式,但是很生硬;用splines来平滑过度或者有必要的突变则会有更好的动画效果;
2.物理模拟(Physical Simulation)
物理仿真/模拟背后的核心思想就是构建物理模型,分析受力,从而算出某时刻的加速度、速度、位置等信息;
2.1 质点弹簧系统(Mass Spring System)
一系列相互连接的质点和弹簧
简单、理想化的弹簧
没有长度;弹簧拉多长就产生多大的力,只有将质点向内拉的力,ks 为弹性系数;
正常的有长度的弹簧
弹簧被拉长会产生向内收缩的力,被压短则产生外推力,受力大小依然形变大小成正比
存在的问题:永远震荡不会停止,动能与势能不停转变;
解决方法:不能简单的引入阻尼,这种无法表示弹簧内部能量损耗,要引入弹簧内部阻尼;
左边是单位向量ab,右边是b点相对于a的速度向量,点乘表示把速度投影到ab方向上;投影是为了防止两端相对静止,一个球绕另一个球做圆周运动而出现的阻尼。
弹簧结构: 不同弹簧的组合,会有不同的性质,可以模拟不同的物品;
模拟布料的弹簧结构
不能模拟布料,因为它不具备布的特性,不能抵抗切力和对折力,布料不能无限对折的;
虽然能抵抗图示对角线的切力,但是存在各向异性。依然不能抵抗折叠;
可以抵抗切力,有各向同性,但不能抵抗横竖对折;
红色skip connection,红线的力比较小。可以比较好的模拟布料;
2.2粒子系统(Particle Systems)
建模一堆微小粒子,定义每个粒子会受到的力;
对动画每一帧创建新的粒子,计算每个粒子的受力,更新每个粒子的位置和速度,结束某些粒子生命,最后渲染;
2.3运动学(Kinematics)
2.3.1正向运动学(Forward Kinematics)
骨骼系统:拓扑结构;关节相互的几何联系;树状结构;
关节类型:
Pin(滑车关节):平面内旋转;
Ball(球窝关节):一部分空间内旋转;
Prismatic joint(导轨关节):允许平移;
2.3.2逆运动学(Inverse Kinematics)
正向运动学:通过骨骼旋转角度计算尖端位置;
逆向运动学:通过控制尖端位置,反算出应该旋转多少;
逆运动学存在的问题
(1)解不唯一,两种不同的角度组合方式都能让p处于目标位置;
(2)并不是一定有解,即会有无解的情况
2.4动画绑定(Rigging)
是一种对角色更高层次的控制,允许更快速且直观的调整姿势、表情等;
在角色身体、脸部等位置创造一系列控制点,通过调整控制点的位置,带动脸部其他从点移动,从而实现表情变化,动作变化等;
Blend Shapes:直接在两个不同关键帧之间做插值,对其表面的控制点做插值;
2.5动作捕捉(Motion capture)
在真人身上放置许多控制点,在不同时刻对人进行拍照,记录控制点的位置,同步到对应的虚拟人物上;
光学动捕设备最常用,但遮挡问题严重;
2.6动画电影生产线(pipeline)
非常复杂