当前位置:文档之家› maya教程:2008分层渲染

maya教程:2008分层渲染

maya教程:2008分层渲染日期 2011年10月24日星期一发布人爱和承诺来源朱峰社区maya 2008的render layer功能已经有显著改进,在这里,我加上maya内置的mental ray来示范一下它的新功能。

rendering in layers、passes这些方法在cg电影、电影制作上是很普遍的。

当然也有很多好处,例如一个复杂的场景,可以分开成不同的layers来渲染,也可以省下一些memory(记忆体);在后期里可以更容易控制不同的layers & passes,而不需要再回3d 渲染,也可以个别调教偏色、模化等等。

很多书籍都会提及rendering in layers、rendering in passes两种功能,但我曾看过有些书籍或教程把这两种不同的功能混为一谈,再加上名字差不多的maya render layer,以致不少人会把这些意思搞乱了。

render layer:maya控制渲染输出功能的名称。

以前我们分拆layers是需要另存档案的。

一个场景到了渲染时,便会像癌细胞扩散一样,一个变5至6个。

如果之后要改镜头或动作,我们便要把原文件交给同事修改,然后再重新分拆layers,当年这种情况的确是我们灯光师的噩梦。

现在的maya则可以在同一场景中,做到以前的分开储存档案的效果,而且一般来说也蛮稳定的。

rendering in layers:是把同一个场景中不同的物件分拆出来render(渲染)。

就拿这个教程作举例,椅子、地板和背景便是分开渲染。

它们的质感及深度不同,在后期中我可以很方便地个别做出调教。

在电影制作中,我们也会把前后景及人物分开渲染。

rendering in passes:在同一场景、物件当中,把不同的attribute(属性)分拆出来渲染,以下是一些例子。

pass types:color pass —又称为beauty pass。

这是一个最基本及主要的pass,包含了物件的颜色、颜色贴图和扩散光照,至于高光及反射则要看需要剔除与否。

注:有时候漫反射也会拆出来,所以diffuse pass可以独立为一个pass。

highlight pass —又称为specular pass。

highlight只渲染物件的高光。

注:本人喜欢用反射来模仿高光的,因为这样较接近真实环境及物理学上的现象。

reflection pass —把附近的物件及环境透过反射渲染出来,需要raytracing计算。

occlusion pass —特殊的pass,以物件之间的距离计算,视觉上来看就像越近就会越黑,用以模拟真实环境物件之间的光子衰减。

mask pass —应物件本身的不同材质需求,渲染mask(遮罩)以方便在合成中作出更多调教。

shadow pass —通常是把物件落在地上或背景的阴影独立渲染。

depth pass —又称为depth map or z-depth,里面每点也包含了场景中深度的数值,不过这需要用上特别的档案及插件才可运用。

effect passes —视乎情况的需要,分开渲染特别效果,一般指optical effect(光学特效)中的light fog、lens flare、particle effect(粒子特效)烟、尘等。

场景设定(图2)跟平常打灯的程序一样。

灯光、环境设置方式上用了mental ray及final gather渲染。

这时候椅子、地板及背景是一起调教的,我们称这为master layer。

而我的工作习惯是maya做了大致的质感后,光暗和颜色的微调都留在后期做。

建立render layers — color pass(图3 )选择render layer editor。

首先在右边的channel box & layer editor下方,把原来的display layer editor,转为render layer editor(图1.3红框中),之后把场景中会影响到渲染的物件选起来。

(图4) 建立新的render layer。

选好了物件后,便按“create new layer & assign selected objects”(图4红框中的按钮),这样就会把你所选择的物件,自动加入到新创建的layer中。

为了方便管理,将"layer1"这名字改为"color",用滑鼠双按layer1便可更改名字。

(图5) attribute spread sheet能够把大量物件一起更改属性。

在color pass中是不需要渲染出地板及背景的,但我们不是直接隐藏它们。

因为使用了raytracing及final gather原故,隐藏了就会影响反射和灯光,所以我们会用上一项功能叫primary visibility。

maya最上面的命令菜单里,找出window > general editors > attribute spread sheet,另外选择地板及背景等所有物件。

然后如图5所示,在 render tab中把primary visibility全部关上。

(maya中on等于1,off则等于0)(图6) 椅子的color pass设定好后,先渲染一幅图来看看有没有什幺遗漏。

specular pass跟着到specular pass,这次我用另一个方法来建立layer及移除没有需要的物件。

(图7) 使用copy layer来复制另一个pass确定我们仍然在“color”的layer中工作,创建render layer editor > layers > copy layer (图7),然后把新增的layer改名为specular。

(图8) 在layer中移除物件由于椅子的specular pass不需要反射其物件本身的颜色,因此可以把椅子以外的东西全部拿掉。

render layer editor > layers > remove selected objects rom selected layers (图1.8)。

(图9) specular pass用的灯光另外建立一盏spot light,把灯光属性中的emit specular勾选,emit diffuse留空便可,再调整适当的角度及效果。

这盏spot light是在"specular" layer中建立,所以默认就会加在目前工作的layer里。

(图9 inputsinputs一栏内可看到)(图10)透过render layer,可以在不同的layers中设置各自的render setting。

我说过specular pass不需要反射至物件本身的颜色,那么我们可以优化render setting,从而帮助渲染速度更有效率运行。

(注:这是身为lighting artist 的责任) 在render layer editor,每行layer也有4个图示,分别是:recycle previously rendered image (重用已渲染的图)、material override(物料取代)、member override (部分物件取代)、render setting override (渲染设定取代)。

render setting override设定(图10)(图11)现在只有“specular” layer关掉了raytracing,没有影响到“color”layer的default render setting。

(图12) specular pass。

reflection pass返回“color”layer,在render layer editor > layers > copy layer,然后把新增的layer 改名为reflection。

(图13)mirror shader跟着我们建立一个全reflection的shader,也称为mirror shader,用来在后期控制物件reflection的多少。

(图13)设置方法:除了specular color及reflectivity都是1外,其他attributes都设为0或者黑色。

(图14) reflection pass把这个mirror shader assign(指配)整个椅子,得出如(图14)的效果。

occlusion pass把正在工作的“reflection” layer,copy多一个layer (render layer editor > layers > copy layer),然后把新增的layer改名为occlusion。

(图15) mental ray中的occlusion shader把hypershade左面的create maya nodes,转为create mental ray nodes。

在textures menu 下,选择mib_amb_occlusion。

(图15)(图16)mib_amb_occlusion只是一个texture node,我们随便assign去场景中任何一个 object,maya 便会自动建立完整的shading network。

(图16)(图17) occlusion texture node设定(图18) occlusion material设定mib_amb_occlusion shading network的设定:(图19) 开启了material override(球形标示转为蓝色)返回hypershade,在mib_amb_occlusion1material按滑鼠右键弹出marking menu,拣选左面的assign material override for occlusion,这时render layer editor的球形标示转为蓝色。

(图19)注1: material override顾名思义就是把单一material assign在整个layer里。

注2: 了解这原理后,以后可以用presets > occlusion来代替以上步骤。

occlusion pass不需要final gather来计算,我们又可以用render setting override 来省略:(图20)椅子的occlusion pass很多工作中的lighting artist都只顾到物件自身的occlusion,而忽略了物件和地面的occlusion 关系。

把“occlusion” layer多复制一个,改名为“bg_occlusion”。

用attribute spread sheet,把椅子的primary visibility全部关上(0或off)。

相关主题