Morphing

<script src="http://widgets.amung.us/classic.js" type="text/javascript"></script> <script type="text/javascript"> </script>

Morphing

 

这篇文章给大家介绍一下morphing,它是一种变型动画,也是一种关键帧插值动画。在计算机动画中,变型动画用的很多,比如一个动画角色在说话的时候,我们要对它的嘴做一种动画效果,看起来就像是他在说话一样,或者是做一个角色的表情动画,比如笑的时候嘴角是向上的,伤心的时候嘴角是向下的,等等。

 

那么插值对morphing来说就是很重要的了,但要如何插值才能达到我们需要的效果呢?

下面来讨论一种最简单的情况,比如,我们要对一个角色的脸部做一个变型动画,让角色的表情由一般样子变成在笑的样子。我们把一般样子时,构成脸部的各个顶点坐标记为N,笑的时候脸部各个顶点坐标记为P。那么我们就得到了原始坐标N,和目标坐标P,现在要做的就是在N和P之间,找到一种过渡的状态,也就是插值M,这个状态M是随时间的变化而改变,或者说随参数t的变化而变化,一般来说,这个参数t的范围是0-1之间。当t为0的时候,M和原始状态相同,当t为1的时候M就是我们的目标效果。

 

看来这个morphing也就是顶点的变化,我们知道,空间中的一个点变换到另一个点我们可以用这个点加上一个向量来表示:

公式1

这里的v我们可以用目标顶点减去原始顶点来得到。那么我们可以得到:

 

公式2

上面的公式适用于只有一个目标动画的情况,现在来扩展到k个目标动画,P0到Pk-1的情况。

 

公式3

 

上面公式中,Pi就是第i个目标动画,如果我们的变型动画是从一个动画变到另一个,然后再变到另一个等等。ti可以考虑成每个插值状态的权重。通过上面这个公式,就可以很容易的进行变型动画了。

 

但是这个技术简单易用,但是有它的缺点,就是原始状态和目标状态的顶点个数必须相等,且顺序要对应。

 

 

*原创文章,转载请著名出处*

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张赐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值