[转载]提高vue动画渲染速度的方法

标签:
转载 |
分类: 资料收藏 |
原文地址:提高vue动画渲染速度的方法作者:无昵称
作者:Nicole Chen
***试验一:手动逐帧渲染***
因为在制作动画之前渲染了一张静帧,大小为4000*2600像素,渲染级别为Ultra,只不过50分钟而已,但渲染动画的时候仅仅是将渲染级别设置为Final,渲染大小为3000*1369就已经需要一个小时了,如果设为Ultra,则需要5个小时以上。
因为所渲染出的是图片序列文件,所以产生了手动逐帧渲染的想法,因为我考虑是否速度的减慢和资源的占用增大来源于VUE需要把全部动画信息载入到内存中引起的?也许不使用RenderAnimation,单纯使用Render当前帧会加快速度?
我将渲染大小设置为3000*1369,大气面板中灯光选项卡的quality
boost设置为1.5,分别以RenderAnimation和Render当前帧测试了渲染速度,见下表格:
渲染方式 | 渲染时间 | 内存占用 | 闪烁 | ||
RenderAnimation | 8小时17分 | 7.6G | 无(几乎不能察觉) | ||
Render单帧 | 5小时36分 | 5.3G | 无(几乎不能察觉) |
结论:看来逐帧渲染确实可以减少大约40%的渲染时间,并且不计算运动模糊可以避免更多的闪烁,运动模糊在后期添加即可。但是我们再算一笔帐,一张5小时,125张要多少钱?——————1000元,5秒的半成品渲染成本仍然有1000元。我在想有没有办法能将渲染时间缩得更短,成本变得更低。当然,不能降低质量。
***试验二:利用后期软件进行帧补偿***
因为诸如AE,FUSION等软件具有帧补偿功能,也就是根据前后两帧计算出中间帧,所以,我使用VUE利用手动渲染了63帧,在VUE中,帧序列分别为0,2,4,6,8,10,12……
现在,我将这些渲染好的序列导入AE或者FUSION中,帧速设置为25/秒,动画的长度应该是2.5秒,现在在AE或者FUSION中对其添加TIMEWARP或者TIMESPEED特效~将速度改为50%,并且开启融合帧选项,这样我就得到了一个长度为5秒的动画,软件会自动在两帧之间计算生成一个新的帧,比如在0和2之间计算出一个1,最后,将动画序列输出,完成!
结论:这次我们节约了多少时间? 又是50%!渲染时间从将近900小时变为500小时,现在,渲染时间降低到250小时!制作费用从1600缩减到了500!……………………但是仔细看刚才渲染出来的动画,补偿出的帧带有类似模糊的效果,除非你把图像缩小到四分之一,才能勉强不会发现这种模糊,难道我要渲染15K的序列?那还真不可能,也违背了我的初衷。所以,这还不够,并且我只想花5块钱就要把这5秒动画搞定~所以,接下来才是最让人激动的方法。
***最终解决方法***
需要的软件:VUE ,具备CameraMap功能的3D软件(MAX MAYA C4D LW XSI皆可),后期合成软件
以下以3DSMAX和FUSION为例,MAX从版本7开始,就支持了Camera Map per pixel 每像素摄相机贴图功能,这个功能是为了电影工业视觉需要而研发的,其最大好处是可以利用一张简单的图片,就可以制作出富有真实立体感的动画,虽然有些限制,但是依然很神奇。(其实VUE也具备这种功能,但因为VUE的渲染速度和闪烁问题,将不考虑在VUE中使用这个功能)
CameraMap的工作原理:利用一个摄像机向模型投射出贴图,使用另外一个摄像机制作摄像机动画,因为贴图是投射在真实的模型上,所以贴图具有了真实的透视变形效果,在一定的角度和限制内,可以骗过人的视觉,从而达到使图片立体起来的效果,这个方法是电影特效中常用的技术,经常配合MATTEPAINTING使用,你所知道所有大片,蜘蛛侠 ,超人归来,阿凡达等等,都运用了这种技术,这个技术可以节省90%以上的渲染时间。
以下是我的解决方法:
1.上面我说过,在VUE中我渲染一帧的速度是7小时,这对于一帧来说是个很长的时间,不过现在没关系了,我只渲染一帧而已,而且现在不用考虑闪烁的问题了,于是7小时后,我得到了两张4000*1826的TGA图片,一张是彩色图,一张是遮罩。如下图
http://bbs.cguse.com/templates/CGuse/images/attachimg.gif http://bbs.cguse.com/attachments/month_1008/10081100573f3ac06e1c1ee85a.jpg
2.利用VUE插件在3DSMAX中(或者其他支持VUE XSTREM的3D程序)打开刚才保存的VUE场景,如下图
http://bbs.cguse.com/templates/CGuse/images/attachimg.gif http://bbs.cguse.com/attachments/month_1008/100811005776c9a04fa7d00b2d.jpg
在MAX中,选择我刚才渲染时使用的摄像机,地形(因为我还要合成别的东西,所以也选择了灯光),然后将其导出为FBX格式,默认参数即可,如下图
http://bbs.cguse.com/templates/CGuse/images/attachimg.gif http://bbs.cguse.com/attachments/month_1008/1008110057b66f700afc1b326f.jpg
3.新建一个场景,导入刚才的FBX文件,然后我将帧速设置为25/秒
4.在地形后面,我建立了一个平板,如下图,这么做是为了防止低精度模型边缘出现的变形和扭曲,以及遮罩通道和高精度模型不一致,后面我还要渲染遮罩通道。
http://bbs.cguse.com/templates/CGuse/images/attachimg.gif http://bbs.cguse.com/attachments/month_1008/100811005765ab824f5619dce7.jpg
5.建立一个材质,自发光100%,并为表面色指定一个CameraMap贴图,在贴图对话框中,将camera指定为刚才渲染时用到的摄像机,这里我用的是camera001, 指定材质为刚才渲染出来的彩色图片,如下图所示:
http://bbs.cguse.com/templates/CGuse/images/attachimg.gif http://bbs.cguse.com/attachments/month_1008/10081100575fbb0293c6e58e5a.jpg
6.将调整好的材质赋予地形和平板。
7.原位复制一个摄像机(Camera001),现在有两个摄像机,分别是CAM01和CAM02
8.好了,现在渲染动画,一张图片就变成了具有真实立体感的动画!
9.用同样的办法渲染出125帧的遮罩~
结论:现在算下帐,本来这125帧的动画渲染时间是875小时,需要1600元,现在只需要8个小时左右即可完成,而且花费也不过几块钱~
我想在制作和练习中,深掘软件极限是好事,但要更注重实际应用和效率,单一软件的力量是有限的,只有发挥各个软件的优势,搭配互补,才会帮助你在创作中提高效率。
875小时=====》8小时
如果有疑问,请回帖提问或者Q我~
最终效果因为需要合成,我还想加点东西上去,所以过几天放上最终动画。