maya教程:2008分层渲染
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)。
地板及背景则为1或on。
(图21)地板的occlusion pass
mask pass
今次借用“specular”layer来copy layer。
然后把新增的layer改名为“mask”。
由于“specular” layer中有盏灯而在“mask” layer 用不着,所以我们选择这盏spot light,在“mask” layer上按滑鼠右键,选取remove selected objects,移除这盏灯。
(图22) r,g,b mask shaders
在hypershade建立3个surface shaders,out color分别设定为纯红(255,0,0)、纯绿(0,255,0)及纯蓝色(0,0,255)。
(图1.22)
(图23) mask pass
把3色surface shaders分别assign不同的物件。
(图23) shadow pass
(图24) 创建 "shadow" layer
在“master”layer内,拣选椅子、地板及用来投射阴影的主灯后,便按“create new layer & assign selected objects”(图1.24),这样便将所选择的物件,自动加入到新创建的layer中,改名为“shadow”。
打开attribute spread sheet,选择椅子。
在render tab中把primary visibility 全部关上。
(图25) use background shader。
在hypershade中,创建一个use background,然后把specular color、reflectivity、 reflection limit都改为0或黑色,只保留shadow mask为1。
(图25)接着将use background assign给地板,这样地板便会渲染出投影,而没有自身物料。
shadow pass不需要final gather来计算,又要用render setting override的方法来省略,请参考之前“occlusion”的设置。
(图26) shadow pass
shadow pass是以alpha channel来储存,所以在render view中要按display alpha channel(图26红框)才会见到。
(图27) background layer
最后渲染出地板及背景,便可以进入compositing(合成)的步骤了。
(图27) compositing (after effects)
(图28) 8个render passes及layers在ae的次序
(图29) reflection pass及mask pass的用途
reflection pass我只应用在皮革上,做出哑面的感觉。
我添加了fast blur filter,然后利用mask pass以set matte,应用在红色mask的皮革范围内。
(图30) 原本的reflection pass及哑面处理后的分别
(图31) 用curves filter来调色
由于shadow、occlusion都分开渲染出来,我可以在颜色控制上处理更容易,在这里我调教了少许偏蓝色。
到这里,整个教程就结束了。
最终完成图和没有分拆render passes的比对,可看到明显立体感的区别。
rendering in layers、rendering in passes两种功能各尽其能、物尽其用,才会有一个亮眼的效果,希望本教程对大家有所帮助。
/Prclassi.asp?page=3&ruanjian=38更多更好的maya 教程。