动画形成的视觉原理所谓动画,就是指通过以每秒若干帧的速度顺序地播放静止图像帧以产生运动错觉的艺术。利用人的视觉残留,上个画面的残留还未消失,下一个画面又进入视觉,这样循环往复,在人的眼中形成动态的画面。
传统动画应用于三维计算机动画的基本原则(Jogn Lasseter)·Squash and Stretch 挤压和伸展通过物体的形变来表现物体的刚度和质量。通常使变形的物体保持体积不变。影响运动的因素包括质量外力材料属性表面接触的位置等。·Timing 掌握时序通过时序来表现物体的大小重量和个性。·Anticipation 预期性·Staging 布局以一种容易理解的方式展示动作或对象。(考虑观众)·Follow-Through and Overlapping Action 跟随动作与重叠动作”动者恒动“·Straight-Ahead Action and Pose-to-Pose Action 连贯动作法与关键动作法前者根据连续的动作依序制作每一帧画面,后者先定义关键的主要动作,而后再制作关键动作间的画面(关键帧方法)。·Slow In and Slow Out 慢入和慢出指动作的加速和减速。·Arcs 弧形动作运动轨迹为比较自然的曲线。·Exaggeration 夸张要注意明确动作或者序列的表现目标。·Secondary Action 附属运动角色主要动作,附属于角色的部分附属动作·Appeal 吸引力任何观众愿意观看的东西,以表现出角色的个性。·(Solid drawing)
·Depth of Field(衍生) 景深
焦点附近的物体很清晰,离焦点远的景物变模糊。
·Balance & Weight(衍生) 平衡及重量感
了解运动物体的重心所在。
2DShape Blending涉及哪两个子问题?顶点的对应关系问题与顶点的插值问题。
基于内在形状插值的多边形渐变方法的基本思想。对关键帧多边形的变长和顶点角进行插值。数学原理为乌龟几何与拉格朗日乘数法优化。(使用乌龟几何对多边形进行定义,通过插值得到中间多边形的边长和顶点角,由于通常不封闭,所以保持插值的顶点角不变,使用拉格朗日乘数法来适当调整插值得到的边长。)
Edge Tweaking的思想保持插值的顶点角不变,适当调整插值的得到的边长。
图像morphing的原理图像自然渐变是指把一幅数字图像以一种自然流畅的、戏剧性的、超现实主义的方式变换到另一幅数字图像,避免复杂的三维造型过程。首先用简单的几何元建立图像特征之间的对应关系,然后由这些特征对应关系计算出morphing所需的几何变换,几何变换定义了两幅图像上点之间的几何对应关系。满射C0把第一幅图像的几何形状映射为第二幅图像的集合形状,满射C1则反过来。需要两个映射的原因是图像点与点之间的对应关系不一定是一一对应。图像变形对齐后再对颜色进行插值,得到中间帧图像。
基于网格的图象morphing原理在源图象与目标图象中放置曲面网格Ms与Md,Md指定了Ms在目标图象的对应点。曲面Ms和Md拓扑关系相同,用来定义把源图像的所有点映射到目标图象的空间变换,通过线性插值与扭曲变形得到中间帧图像。
基于线对的图象morphing方法用线对对morphing进行直观的控制。先对单幅图像进行逆向warping映射,逐个扫描目标图象的像素,根据其位置采样源图像,然后用一或多对直线(直线段定义了一个从一幅图象到另一幅图象的映射)来指定两幅图像之间的变换。最后进行两幅图象之间的morphing,在两幅图象中定义控制变形的对应直线对,通过插值得到中间图象的直线。对交溶参数作动画,对图像进行交溶处理。
二、三维形状渐变(morphing)各有什么优缺点?二维:是一种达到特殊视觉效果的有效方法,让人产生神奇的三维形状改变的错觉,可以避免复杂的三维造型过程,但二维图象对应的物体没有三维几何信息,不能像其他三维物体一样进行几何变换,同时可能生成一些意料之外的图像(线对特征法)。三维:得到的中间帧是物体的模型而不是图象,morphing结果与视点和光照参数无关,并能够生成精确的光照和阴影效果。一旦得到中间帧物体序列,就可以用不同的摄象机角度和光照条件来对它们进行重新绘制,也可以把它们与其它的三维场景相结合进行绘制。但三维morphing要比二维图像morphing复杂的多,物体之间的对应关系很难建立,而且该方法对物体的几何表示也较苛刻。
基于星形物体的多面体morphing方法通过合并一堆三维多面体物体模型的拓扑结构,使得它们具有相同的顶点/边/面网络结构,然后对相应的顶点进行插值,即分为两步,建立源物体表面上的点和目标物体上的点对应关系(对应问题)和插值对应的点(插值问题)。由于对于多面体物体只需指定顶点的对应关系,使用欧拉有效、亏格为0的多面体之间的形状渐变方法。插值相应的点点通常采用线性插值或者Hermite插值。
基于体表示的三维morphing方法给定源体S和目标体T,首先根据指定的对应特征生成一空间变换,该变换使给定的两个体扭曲变形(warp)成S’和T’,达到几何对齐的目的;然后对得到的两个扭曲变形体S’和T’进行混合(对两个体素的颜色和不透明度进行交溶处理,然后对混合后的体素进行绘制)。这种方法与物体的几何拓扑结构无关,且具有一般性,但走样现象严重。
粒子系统的基本原理粒子系统即模拟不规则自然景物生成和动画的系统,使造型和动画巧妙地连成一体。景物被定义为由成千上万个不规则的,随机分布的粒子所组成,而每个粒子均有一定的生命周期,它们不断改变形状,不断运动。粒子系统的假设有:粒子一般与其他粒子不碰撞;除非出于聚集状态,粒子不向其他粒子投射阴影;粒子只向其他环境投射阴影;粒子不反射光;粒子通常有有限的生命周期。粒子系统的基本思想是将许多简单形状的微小粒子作为基本元素聚集起来形成一个不规则的模糊物体,每个粒子均经历出生、成长、衰老和死亡的过程,与粒子有关的每一参数均将受到一个随机过程的控制。生成粒子系统某一帧画面的基本步骤是:生成新的粒子并加入系统中;赋予每一新粒子以一定的属性;删除那些已经超过其生命周期的粒子;根据粒子的动态属性对粒子进行移动和变换;绘制并显示由有生命的粒子组成的图形。
Boids模型的三条原则,每条原则的含义Boids是一个模拟的类似于鸟一样的物体。
优先级递减的群体模拟三大原则:避免碰撞原则(避免与相邻的群体成员相碰);速度匹配原则(尽量保持与周围邻居群体成员的速度匹配);群体合群原则(群体成员尽量靠近)。
Reynolds导航方法中的追逐和躲避模型、障碍避免模型、路径跟随、流场跟随行为模型、领导模型追逐和躲避:追逐一个移动的角色。
假设猎物在预测区间T内不会转向。
猎物在将来的位置可通过把它的当前速度乘以T,并把该偏移量与当前位置相加来得到。障碍避免:返回避免最有威胁障碍物的导航值;如果没有碰撞是迫在眉睫的,返回一个特殊值(空值,或零向量),表示在这一时刻不需要纠正量。路径跟随:沿着一条路径移动角色,并同时保持在脊柱线的指定半径内。
投影距离小于路径半径时,不需要进行导航校正;否则,把预测的位置投影到路径上,把该点作为目标点,并进行寻找(Seeking)行为。流场跟随行为:假设运动区域已经有一个速度流场
估算角色将来的位置并计算在这点的流场
得到的速度(F)即为我们期望的速度,导航方向(S)为期望速度和当前速度的差跟随领导:如果一个跟随成员发现自己处于领导前面的一个矩形区域,它会横向远离领导者的路径;否则,到达(arrival)目标为领导后面的一个偏移点。
跟随成员采用分离行为来避免相互拥挤。
Helbing基于社会力模型的群体行为模拟方法的基本原理个体的实际行为受主观意识、其他个体及障碍物三方面因素的影响,均可等效为力在个体上的作用。社会力模型以牛顿动力学为基础,由各个力的表达式来体现行人不同的动机和影响,进而进行建模和模拟。在社会力模型中,由于对影响个体的因素考虑得比较全面,对个体行为的建模比较合理,该模型可以逼真地模拟人群的疏散过程。
相互速度障碍物(RVO)原理假设个体以匀速前进;每个个体在保持与周围个体相对运动的同时,在速度域中计算出可能导致碰撞的速度集合,并对自身速度进行必要的调整(选择当前速度和一个位于速度障碍物外部的速度的平均)。在调整过程中,碰撞避免的任务同时分配给相关的个体,使它们相互协调完成碰撞避免任务。
运动捕获系统(MOCAP)流水线标定->捕获->三维位置重建->拟合到骨架->后处理
正向运动学、逆向运动学原理(IK),逆向雅克比方法求解IK的原理正向运动学:动画师通过直接指定关节处的关节运动参数来控制物体的运动;从关节空间映射到笛卡尔空间;计算整棵树(深度优先遍历)。逆向运动学:动画师指定目标位置,系统求解满足要求的关节角;从笛卡尔空间映射到关节空间;给定初始姿态向量和目标姿态向量,计算关节向量的值,使得物体满足所需的姿势,对角色的初始姿势和最终姿势的关节向量值进行插值,从而得到角色的动画。逆向雅克比:通过把雅克比矩阵求逆,把该问题在当前位置局部线性化;把笛卡尔空间的速度映射到关节空间的速度;给定初始姿势和所需要的姿势,迭代变化关节角,使得末端影响器朝目标位置和方向前进。
基于运动捕获的关节动画制作的优缺点?优点:只要能被捕获,可以记录人体运动的所有细节,运动真实
缺点:不容易进行编辑和控制,较昂贵
骨架与角色模型的绑定原理,顶点混合(Vertex Blending)的原理角色的表面随着骨架的运动而运动;在骨架绑定中,皮肤的运动定义为对应控制骨架的函数;很多骨架绑定系统采用一个称为中性姿势或静止姿势(Rest pose)的几何信息采用一个物体模拟手臂,前臂和后臂仍单独设置动画,但关节处用一柔性的“skin”来连接。柔性部分的一部分顶点由前臂的矩阵来变换,另一部分由后臂的矩阵来变换。即:一个三角形的顶点可以由不同的矩阵来变换,而不是一个矩阵。可进一步推广为一个顶点可以由几个不同的矩阵进行加权变换,通过在物体上放置关节骨架,每个骨架按用户给定的权因子影响顶点来实现。
基于Blend Shapes表情动画的原理对人脸表情进行三维扫描,构建Blend Shapes模型(把每个扫描模型映射到手工建立的主网格上,找到主网格每个顶点和扫描表情某个点的对应关系,处理模型的缺陷和不一致的覆盖,对所有顶点建立稠密对应关系),根据插值这些Blend Shapes来得到任意的表情。
Deformation与Morphing的区别。与物体表示无关的变形的原理。变形(Deformation)是指将几何对象的形状作某种扭曲、形变,在这种变化中,几何对象的拓扑关系保持不变。与Morphing不同,空间变形更具某种随意性,所以空间变形也常称为自由变形。与物体表示无关的变形。既可作用于多边形表示的物体,又可作用于参数曲面表示的物体。用少量的点去有效控制更多的点。在传统CSG造型方法的基础上,进行非线性整体变形(变换是物体顶点位置的函数)和局部変形(改变物体的切向量空间,积分得到物体变形后的整体位置)。
扩展的FFD方法EFFD的原理。FFD只适合平行六面体的lattice形状,扩展的FFD方法允许非平行六面体的lattice形状,从而能实现更任意的变形。EFFD型lattice允许FFD型lattice作为它结构的一部分,许多个FFD型lattice可合并构成EFFD的lattice。通过把多个基本EFFD块融合,得到更复杂的复合EFFD块。使用迭代求解采用EFFD块对物体进行变形。
基于Cage的变形原理构建模型的Cage(一个包裹高分辨率模型的低分辨率控制网格);计算模型的Cage坐标;编辑Cage模型;把Cage的变形通过预先计算的Cage坐标光滑传播到其包裹的模型。
布料动画的核心问题,布料的物理机械性能主要包括哪几种力?核心问题:造型困难、绘制困难、布料动画(建立物理模型和求解,还有碰撞检测和响应)、材料问题(不同织法会导致织物的不同结构)拉伸力 压缩力 剪切力 弯曲力
Provot的衣服模型的原理Provot提出了一种可以看作是从Breen的粒子系统(把布料模型表示成为一套相互作用的粒子系统)简化而来的弹簧-质点模型,并在此基础上发展了一套非常简单有效的算法。Provot采用了简单高效的显式Euler法求解微分方程组,效率与显示效果均不错。
布料动画中大步长隐式方法的原理在布料模拟的积分计算部分设法取较大的时间步长可以有效的提高算法效率。使用隐式方法来积分,在不降低刚度的条件下可以取得较大的时间步长。
隐式曲面表示的优缺点。优点:很容易判断一个点是否在曲面上;很容易计算曲面的交/并/差;很容易处理拓扑变化。
缺点:曲面通过间接指定;很难描述尖锐特征;很难对曲面上的点进行枚举;绘制慢。
隐式曲面中核函数的选择。核函数选择低通滤波函数。(例如高斯函数)
碰撞检测中如何选择包围体?有很多选择,每种选择都是某种折中;更好的包裹是更好的选择;物体的形状越简单,效果越好;具有旋转不变性的包围体更好。
碰撞检测中的分离轴定理对于任意两个互相分离的凸多面体A和B来说,存在一条分离轴,其中这两个多面体在这条轴上具有一定间隔而且在轴上的投影也是互相分开的。这条轴正交于下列其一(也就是由一个平面分开,该平面平行于下列其中一个平面):A的一个面/B的一个面/多面体的一条边。