签到

06月25日
尚未签到

共有回帖数 0

    霜晨守候

    等级:
    详解在后期软件中制作运动模糊效果(实例篇)

    首先我们讲讲如果使用mental ray的话,操作方法应该是怎么样的。Mental ray中有三个跟运动模糊有关的通道,分别是2D Motion Vector、3D Motion Vector、Normalized 2D Motion Vector。到底选择哪一种,要根据你使用的后期软件来决定。如果是使用AE,那么就要使用Normalized 2D Motion Vector;如果使用的是nuke,那么就要使用2D Motion Vector。而3D Motion Vector要在哪里用,我也是没有查到。
    我做了一个简单的场景来讲述如何使用这些通道。








    Motion Vecotr通道所代表的含义
    那么这些红红绿绿的motion vector通到底是什么意思呢?其实他们只是用图片来装载信息,图像本身并没有识别的意义,有点像法线贴图的意思。用Normalized 2D Motion Vector通道来说吧,首先蓝通道是不会使用的,所以蓝通道里装什么都没关系,默认情况下,蓝通道会填充满50%的灰,或者在某些软件里也会完全舍弃,变成0;红通道和绿通道的默认值也是0.5,当某个像素的红通道数值小于0.5的时候,软件会理解这个像素向左跑,数值越小跑的越快;当某个像素的红通道数值大于0.5的时候,软件会理解这个像素在往右跑,数值越大跑的越快。同理,绿通道是数值大于0.5向上跑,小于0.5向下跑。取值范围当然在0到1之间(或者用ps的理解是0-255)。
    上面是我在AE中的截图,AE将Normalized 2D Motion Vector的蓝通道舍弃,全部为0。于是,如果一个图片上没用东西动的话,颜色应该是(0.5,0.5,0)或者(128,128,0),即是你看到的大面积的黄色,有些地方又有些别的颜色,则表示在进行一些运动。
    对于Normalized 2D Motion Vector通道来说,我们还可以对图片进行一定程度的分析来理解它的含义。而2D Motion Vector通道则更难理解,因为它不像Normalized 2D Motion Vector通道一样,取值范围在0到1之间。2D Motion Vector没有取值范围,保存的是浮点数据,可以理解为,可以容纳无限大的数值,也可以容纳无限小的负数!是的,2D Motion Vector有些地方其实是负值,所以,正常人看图片是无法理解这张图的含义的,它只能拿给计算机去计算用。
    那么Normalized 2D Motion Vector通道和2D Motion Vector通道又有什么区别呢。所谓normalized,翻译过来叫做标准化,在计算机领域里,一般都是指把某一个范围的数值映射到0到1的范围之内。比如说,你的最小值为-500,最大值为500,normalized以后,最小值变为0,最大值变为1,原来的0变为0.5,原来的250变成0.75,原来的-250变成0.25了。所以,这两个通道承载的内容其实是没有本质区别的,只不过数值分布的空间不一样。而不同的后期软件有自己对数值的偏好而已。

    在AE中合成你的motion vector通道
    在AE中我们要使用一个叫做rsmb(real smart motion blur真的聪明运动模糊)的插件来实现运动模糊效果。这个插件可以识别我们渲染出来的motion vector通道。具体的操作是你对你的颜色层使用RSMB插件,在跳出来的属性面板里,使用的图层选择你的Normalized 2D Motion Vector通道,max displace(最大位移)的值跟maya中的数值要一致,一般默认为256,blur amt(blur amount模糊程度)的数值默认0.5,这个数值你可以理解为运动模糊效果的强度,越大越强。别的就不用考虑了。
    运动模糊本身的设置是只有这么简单,现在我们已经可以得到不错的结果,但是还是有很多的问题等待我们去修正。
    比如说,这个案例里,我做了一个小球跳动的动画,同时摄像机也用运动,但是在后期做运动模糊的时候,却只能看到小球模糊了,而别的东西都没有模糊。观察2D Motion Vector通道也会发现,只有球有运动信息,别的地方都没有。这种效果当然是不正确的。














    另外,在某些帧也会看到,快速运动的球体,边缘的模糊效果会有一种割裂感,明显看着不对劲。那么产生这个问题的原因又是什么呢?主要是我们现在的做法,直接对一个颜色层做运动模糊效果,球运动的速度和地面运动的速度差异非常大,后期软件在计算这种运动速度差别很大的物体叠在一起的情况的时候,处理的效果往往很糟糕。那么该怎么解决?解决这两个问题的方法是一致的:对场景中的物体进行分层;地面一层,快速运动的球体一层,透明的挡板又一层。然后分开做运动模糊效果。这样,每一个单独的物体都会得到自己正确的运动模糊效果,并不会相互影响而出现图中所示的拙劣的计算结果。最后再把它们合成成完好的结果。具体的操作步骤和之前说的一致,只不过要对分开的每一个图层进行单独的一次操作,操作数量可能有点多。而且如果你的场景同时还要做景深的效果的话,那么设置可能更加复杂一些。你要对每一个单独的层做景深和运动模糊,并且,要对你的z通道做运动模糊(不然颜色层运动模糊了,而z通道层还是清晰的,二者不一致,就会导致景深出问题,虽然很多时候并不一定观察得出来。)关于后期景深的做法,我在之前也出过教程详细地讲解过,没看过的同学这里有传送门:


    楼主 2015-09-02 20:45 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知