maya

关注公众号 jb51net

关闭
媒体动画 > maya >

加速Maya Mental Ray渲染速度技巧分享

脚本之家

三维软件的渲染其实是一个很宽泛的概念,并不是单纯的所指,而是一个承上启下,承前启后的一个重要的环节不能脱离任何一个环节去单纯的谈论渲染,一个好的渲染作品或者说一个好的三维CG动画的渲染,首先离不开好的模型,好的贴图,还有好的后期,特效,动画(当然静幀除外,动画可以省略),甚至是好的分镜和前期的设定,这都是组成好的渲染的先决条件,缺一不可。

如果木有模型贴图等因素作支撑,只想用渲染去打造更好的视觉水平,那就是痴人说梦,那样的画,渲染只能起到一个拟补的作用,并不能达到一个真正意义上的画龙点睛的效应。如果单纯的针对渲染这个词来说,它也可以拆分很多,shader调节,灯光的架设,场景的摆放,贴图与模型的把握与渲染设置的调节都是需要一个渲染人需要了解的,至少shader调节,灯光的架设,渲染设置的调节是硬性要求,当然艺术理论方面也要掌握一些可惜呀,说了这么多,我是没有掌握几条,不过不妨碍我学习的热情。

mr(mental ray)3.12是maya2015集成的最新的OEM版本,这个版本和之前的版本在渲染机制与UI上差别很大PS:其实在maya2014里就已经更新成这个界面,只不过在2015里面更加的成熟与稳定了在渲染的几只上舍弃了之前的采样渲染方式,全新采用了最新的一种叫做统一采样(Unified Sampling )的技术据官方说明这种技术在渲染上会加速很多,据说VR已经采用了这项技术于自己的渲染中,具体的关于该技术的运行方式请参考官方的文档,网上也有不少关于该技术的视频教程,至于UI的变化请参见下图红框内

既然渲染采样已经采用了新的技术,那么之前的品质控制选项也得到了相应的优化,现在的品控基本优化为3项可以在渲染设置上方的Presets中打开,如下图

上一篇shader篇总结了关于反射的shader的优化,但是没有关于带有折射透明属性的优化调节,我想结合一下渲染设置面板来说一下关于折射透明物体的优化,在mr的渲染中,凡是带有折射透明的物体最好使用mr自身的mia_material_x_passes这样有几点好处1.mr自身的mia_material_x_passes在调节在调节透明折射属性的时候自身带有很多预设可以很轻松的创建,而不用像maya自身shader那样需要额外连接多余的节点

2.mia_material_x_passes自身有很多优化前选项,效率不输甚至更胜maya自身的shader3.mia_material_x_passes在mr新的统一采样的渲染机制下更为快速和易于控制mia_material_x_passes在max的mr当中被统一叫做建筑材质,在maya和max的界面中如下红色框内为maya,绿色框内为max

首先,渲染这种折射透明属性主要在渲染设置面板需要用到光线追踪的选项,主要在渲染模版需要调节的就在于这个选项下,如图

那么以上是成品品质的各个参数的数值,我们先看一下以现在的参数渲染的时间和效果

此场景在默认情况下的渲染时间为45秒(此场景已经开启fg),那我们来看一下,调节参数后的渲染时间

将参数调整完的渲染时间缩短了3秒,其实不要小看这3秒,只是调整了这一方面的参数缩短的3秒钟在渲染序列的时候会有很大的效率提升,虽然画面有稍许区别,但是在渲染时间和画面之中找到一个平衡点才是渲染的根本,而不是局限于只追求物理上的精确。 那么是不是在降低点参数就会更快呢,这是必然的,但是在降低参数换来的不但是物理上的不准确,而且在视觉上也不讨好下面就是再次降低参数换来的结果

可以看到虽然渲染时间快了,但是换来的画面质量和效率并木有取得一个很好的平衡点,这样的渲染显然不是一个渲染人所需要的PS:其实之前的渲染时间并不十分准确,就如上一篇文章提到过的一样,之前的测试我电脑开了很多程序,用了很长时间而当我重新启动电脑,并且只开启maya的时候渲染时间,比之前至少咬缩短5秒,但是上述测试时间并不影响相对的速度,也就是说,参数调整之后确实是要比没调整之前要快,只不过现在相对应的都减少了一些时间而已接下来说完渲染设置对透明折射shader的影响之后,就要结合shader自身的优化说一下,mr的mia_material_x_passes同样在透明折射方面也有自己的优化(和之前上一篇所讲的反射方面的优化一样,但是略有不同)下面我们看一下mia_material_x_passes在这方面的优化,在反射一栏的高级选项里有一项叫做跳过内部的反射,默认是勾选的也就是说当你使用透明折射属性后,默认是不计算内部的反射,只计算表面,虽然结果不是很物理精确,但是在不影响大局的情况下速度会显著提升,下面我们看看打开和关闭这个选项的渲染结果,如下图

看上去似乎只有时间上的区别,并木有什么大的变化,这就是为什么mr会默认打开跳过内部反射的原因但是仔细看,你会发现如果计算内部反射会带来更丰富的反射效果,这只是简单的球体,如果是项目中很复杂的形体那么结果会更明显,也会更漂亮,但是随之而来的渲染时间会相应的增加,需要一些权衡和技术手段的调控,如下图红圈内标注

在渲染面板的fg选项里,还有一点会影响到折射透明属性的选项需要说明,就是fg射线也有穿过物体内部的选项,但是一般情况下保持默认足矣,这个提升画质的效果并不是特别明显,只是亮度上的增加和饱和度的变化而已,如下图

其实还有n多关于此类shader的优化方法,大家可以自行参考官方文档说明还有尽量去网上寻找更多的教程和资源来学习,-接下来简单说一下mr的主要利器fg(Final Gathering )其实现在大多数渲染器基本都具备这个功能,只不过每个渲染器的这个功能的名字不一样,其实大同小异关于fg,我不谈太多了,其实有些东西参数什么的我也没有完全掌握明白,大多数是靠平时工作的一些经验来设置数值真正用的好的,完全理解的,国内大神级别人物很多,我现在是肯定没有达到的,只能浅谈一下这个功能其他的参数不表,单独说说fg在相同参数下的噪点抑制的一个小小的技巧,fg的采样模式有4种,默认的采样是Automatic(自动方式),如下图

这种方式在默认的参数下早点控制是不好的,也就是说fg的采样如果很低,就算保持默认,那么以这种方式计算,会有很多噪点,尤其如果场景是半封闭的情况下,此情况更为严重,如下图

但是如果保持fg的采样参数相同的情况下,调整一下采样模式,那就会大大改善现有的情况,如下图

将采样模式改为为动画优化模式,早点大大减少,而且这种模式是为了减少动画闪烁而研发的,在渲染动画的时候选择这一项可以大大减少fg闪烁,而且在渲染序列帧的情况下会有加速效果,当然在避免fg闪烁的方面还要有其他措施相辅助,网上教程很多,这里就不一一阐述了,那么在这一个模式下不用太多的增加fg采样就可以达到比较光滑的效果,只要稍微增加一些,就可以收到不错的平滑效果了以下是配合mr的窗口入射光渲染的到的结果

更多关于mr窗口入射光的内容请参见官方帮助文档http://docs.autodesk.com/MENTALRAY/2015/CHS/mental-ray-help/另外需要说明的是场景中可以单独设置每个物体不同的fg采样,这样打来的好处就是场景中所有物体不用同样采样数,大场景,比如上图的室内就可以单独为它设置高采样,小物体,比如上面的球体可以单独维他设置第采样,这样极快的加速了渲染,同时也能保证精度如果想为物体单独设置采样,具体方法是在场景中选择物体,按键盘Ctrl+A调出物体属性,并且在mental ray下面找到Final Gather Override设置合理参数,如下图

更新内容:昨天写完感觉结束的太匆忙,还有些东西想写出来1.fg方面的优化,其实这方面的优化分2种一种是对于静幀图像,而另一种是对于动画渲染序列而言的2种的优化既有联系也有不同,其实我要讲的可能还没有深入到最底层,是浅尝辄止,简单说一下,也是平时工作的一些经验可能有一些误解,但是按照本人现在的认知来说也只能到这步,剩下的如何进阶就要靠我日后努力了先说一下关于静幀的fg优化,其实fg它是一种模拟光子的一种技术,并不是真正的GI(由于真正的GI速度和可控性上面很难拿捏,渲染效率上也比较慢,相对来说,在动画渲染上面还是采用fg的情况比较多其他大制作公司我不了解,所以不敢妄下结论,所以一下只讨论fg的部分,至于有兴趣了解GI的朋友们,网上有很多相关的教程请自行查找观看,或者在本日志最后我提供的网址自行寻找)先说说fg,我理解的意思就是一种以摄像机为发射点的采样射线,它具备像GI那样的反弹功能,但是这种反弹的功能只是一种模拟,而不是真正的像GI那样具有真实反弹的效果,在现实世界中,我们经常会看见这种现象,如下图

(图片来自于网络)世界上如果只有光线,而没有反弹,那么师姐上物体的暗部将一片死黑,正因为有了光线的反弹,才能有暗部的结构那么mr当中的fg如何优化呢,首先在静幀的情况,基本的选项都处于渲染设置的这里,如下图红框内

这一选项分别控制fg射线的重新计算的可控,和存储fg射线图片的位置Rebuild分别为开启,关闭,冻结,这3项在实际的渲染中起到至关重要的作用,如下图

那么这几个选项在何种情况下使用呢,下面就来说一下第一种情况,当Rebuild为On,也就是打开的时候,fg是每次都会在场景中重新计算,可想而知,这样是非常费时的,但是在渲染初期我们还没有达到想要的效果的时候最好保持这种状态,以低质量的渲染品质渲染场景,一旦达到自己比较满意的结果之后就要用到下面的情况,也就是第二种。

第二种情况,一旦渲染效果已经很满意了,那就切换Rebuild为Freeze状态,然后渲染,这个时候会将你所渲染的FG冻结以便后续使用,然后在切换渲染品质到成品级别进行渲染,因为是静幀,此时的的状态也可以切换至off进行预渲染,因为fg射线是随着摄像机的变化儿改变,所以在摄像机在场景中没有变换移动的情况下,2种情况均可,如果想达到更为快速的情况,可以将此时的fg生成贴图,具体操作是将以下的选项激活,将勾勾上,就可以在你自己设置的项目工程目录的renderData\mentalray\finalgMap路径里生成一种叫做fgmap的贴图,然后再次渲染成品品质,此时的速度可以自己尝试对比,会提升很多,因为fg贴图已经计算,不再重复计算。

(关于具体的fg这方面的优化请在本日志最后的那些提供的网站里有相对应的教程,因为用文字图片的方式表达很麻烦,而且不一定能讲清楚,视频操作更为详细,所以请自行查找)关于fg在渲染动画序列方面的应用也请到如下网址自行查找,视频虽然大多数是英文的,但是看操作,一遍遍联系应该没有问题

下面主要再讲一下,关于场景中有透明贴图物体的优化问题很多项目都会用到有透明贴图的物体,那么很多时候这样的物体越多,比如树木上的树木,那么渲染的会越慢 在mr中也不例外,但是mr自身有节点可以对其的渲染速度进行大幅度的优化,如果不了解,会产生mr这个渲染器太落后了,太慢啦的误区,但是如果真正了解了mr,其实它的速度不比任何一款渲染器慢,大多数技术应用范围只取决于人而非渲染器那么来看一下一个简单的场景,这样的情况就是用到透明贴图的场景,如下图

那么默认的blinn连接节点方式所用到的渲染时间如下

(我将所有shader的反射高光归0,以保证不同shader在相对公平的情况下渲染,注意这只是测试,不是注重效果的渲染)

如果按照默认连接渲染时间为55秒(注意此场景已经采用IBL灯光辅助照射并且开启fg,而且渲染质量控制为成品品质)相对应的shader节点连接如图(节点连接最终的目的是要以最精简的方式去达到效果,而不是说谁连的节点越多越牛)

此为默认连接,我们可以了看见默认连接的弊端第一是渲染时间慢,第二我们看见透明贴图周边的通道并木有完全抠干净,如下图红框内

当然以maya自身的shader是可以做出很干净的通道的,稍后,莫急下面来看一下mr的自身shader,也是前面提过很多次的mia_material_x_passes,渲染时间如下图

时间缩短为34秒,这就是以shader为优化的结果,时间大幅度缩短,再看通道边缘超级干净,毫无瑕疵,而且节点连接也很简单如下图

之所以通道如此干净是因为mia_material_x_passes节点自身具有一种剪切技术,可以完全将透明部分剪切掉,如下图

那么之前说过maya自身的shader如何干净的扣掉alpha,mr自身提供了节点为其服务(可能还有别的方法,但是我用这种)先看一下这种连接的渲染时间

渲染时间虽然不如第二种,但是介于第一种和第二种之间,而且可以连接任意maya shader看一下节点连接

用第二种和第三种的方法制作的好处不光是透明通道剔除的很干净,而且fg影像在其他表明也会显示你alpha通道的形状,如下图我把shader改成红色自发光,并且隐藏面片,看看2者的区别

可以看见经过mr连接后fg更符合alpha通道的形状ok,补充的说完了,其实还有很多要写的,只是还有别的事情,以后多和大家分享交流。

写在最后,本来关于渲染优化方面的还有很多内容,鉴于网络的教程和官方的中文文档已经写的很清楚了,所以感觉没必要再浪费资源了,况且自认为在这方面我的文章只是沧海一粟而已,大家真的想研究这个方面就多看教程吧,后续我还会给大家分享一些提升MAYA渲染速度的技巧文章!