计算机动画制作除人力因素外始终存在两大瓶颈:显示速度和渲染速度。屏幕显示方面,即便专业图形卡其性价比也并不尽如人意,复杂场景中你期待的自由流畅的屏幕拖动刷新始终没有出现。渲染方面,随着精细建模手段的丰富,材质灯光及环境表现从光线追踪到光能传递的进步,照片级的输出已经成为现实,但是渲染时间绝对是一个考验人耐性的过程。
从现实出发,普通PC配置的MAYA如何克服瓶颈提高制作效率呢?
场景设置上,人力的高效率仍然是主要的。要考虑建模精度与视觉容差的优化,将建模与镜头景别大小、材质互补关系、动作变形幅度和位置等等一同综合权衡。要考虑材质表现的多样性,同样的质感可能有更简洁有效的节点关系,同时切记质感还与环境、灯光有重大关系。要考虑动画设置的合理性,优化历史构架,充分利用动力学转换和缓存存盘等手段,将复杂动作简单化。场景设置的优化不是一个单纯的Optimize Scene Size菜单命令所能够全部解决的,需要有意识地累积经验,良好的习惯会让你事半功倍。
而在渲染方面,除了场景本身的有效设置,还有一个利器可以充分利用,那就是网络渲染—将局域网中所有PC集中起来对同一动画场景进行渲染。目前虽有一些针对MAYA的网络渲染插件如Netrender、Muster等,但一般用户略显烦琐,且分布式渲染方式(将同一帧的渲染同时分配到所有机器)对参与机器要求较高,稳定性难以预料。其实分布式渲染在静帧上优势明显,而对于影视序列图像渲染,用帧分配方式未尝不可。以前我们是纯手动设置,在不同的机器上渲染不同的帧数段。其缺点同样是烦琐,且各台机器因性能差异而进度不一,分配帧数难以平衡,有时别的机器已渲染完而落下一两台机器尚有许多帧数未完成,这时再来手动分配又是一个相当麻烦的事情。
笔者偶尔琢磨render命令参数中的-rep,其作用是在图像序列文件输出中跳过现有文件而渲染下一帧,其本意可能是用于重新渲染时的自动续存。好了,利用它来在局域中自动为各台机器分配帧数是个不错的主意。
前提:要有畅通的局域网,各台机器安装的MAYA软件版本要一致,场景项目输出文件是序列图像而非单帧图像或avi等单一文件格式,场景项目所在目录和渲染输出文件目录都设置共享(最好起英文名)。
具体方法如下:
(1)场景项目所在机器的dos渲染命令:render -proj 项目路径及目录名 -rd 输出文件路径及目录名 -rep 项目路径及目录名场景文件名。(2)任意参与渲染的机器的dos命令:render -proj \项目所在机器名项目目录名 -rd \项目所在机器名输出文件目录名 -rep \项目所在机器名项目目录名场景文件名。
举例说明。假定场景项目在“机器名”为p4的机器上,项目目录为d:work,场景文件为my.mb,输出文件目录为e:rec。首先将两个目录都设置共享,然后在p4这台机器上执行如下渲染命令:render -proj d:work -rd e:rec -rep d:workmy.mb。在其它机器上执行如下渲染命令:render -proj \p4work -rd \p4rec -rep \p4workmy.mb。怎么样,很简单吧?每台机器只需一行dos命令就解决问题了。
这里的三个参数都是必要的。-proj参数用于指定场景项目目录,它涉及渲染所需帖图文件、粒子缓存文件等等的确定。-rd参数用于指定渲染输出文件存放目录,所有机器指向同一目录,-rep参数才有意义。-rep参数让每个参与渲染的机器自动检测并排除已渲染的帧,而按顺序搜索尚未渲染的某一帧进行渲染。需要提醒的是,若中途哪个机器退出,它当时渲染的那一帧有可能没有结束、而其它机器又会跳过这一帧,因此,所有机器渲染完毕后需检查一下输出文件中有无此种“半成品帧”,再对它单独渲染一下。
除了上述三个必要参数,MAYA的dos命令渲染还有非常丰富的内容。在系统dos窗口下输入render -help可以看到所有参数。下面几个常用参数可以根据需要加入到上面的渲染命令中去。-s 设定渲染开始帧,-e设定渲染结束帧。这两个参数在临时指定渲染段落时很方便。-n 设定参加渲染的CPU的个数。0代表所有的,1代表一个,2代表两个,余类推。它用于多cpu的计算机。如果你还没有苦命到一边渲染一边又要开始新的项目,就设置参数 -n 0 吧。
render命令参数很多,最好是在场景的 renderGlobal 里将诸如文件名、分辨率、分层等等比较固定的参数设置好,免得敲命令符时罗里罗嗦。其实利用render命令一次自动渲染多个场景是又一个突出的优势,将它应用到网络渲染中更是相得益彰,只需将上述渲染命令行换成相应的批处理文件就行了。在记事本里编辑文本(参数依照模式自定):
render -proj d:work -rd e:rec -rep d:workmy1.mb
render -proj d:work -rd e:rec -rep d:workmy2.mb
render -proj d:work -rd e:rec -rep d:workmy3.mb
……
存盘为aaa.bat。所有机器都在dos窗口进入该文件位置执行它就行了。
这种网络渲染方式的优点是简单、实用、方便。第一,任何时候随时加入计算机参与或退出渲染,只是退出某台机器时注意一下它的当前帧是否完成。第二,各个机器之间没有相互牵制,而是轮流自动获取下一帧渲染任务,性能水平没有统一要求,稳定可靠。第三,本质上没有工作站与服务器之分,因此也就省却了分别安装两套渲染程序的麻烦,而项目机器与参与机器的唯一区别只是渲染命令中本地路径和网络路径的表述不同。第四,所有参与渲染的机器都不用打开MAYA界面,从而节约资源。
经过实际测试,该方法已在我台动画科局域网进入实际应用,大大简化了工作程序,提高了三维制作项目的渲染效率。需要说明的是这种网络渲染方法只支持MAYA自身渲染器,因为mentalray渲染器的dos命令渲染没有-rep这项参数。作者:朱志华 武汉电视台动画科
免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。