新手必看:Maya模型线框的常用渲染方法当我们完成3D场景的作品后,由于一些特殊需要,如展示模型布线、模拟网格空间效果、卡通线框等,需要在渲染时让模型包含线框或者单纯显示线框。Maya至2009版本,一直没有类似3dsMax那样的材质线框渲染设定;而包含于Maya内置渲染器的模型线框渲染功能,通常也无预设。因此Maya线框渲染的方法是值得探究学习的。以下就讲解下常用的操作步骤。MayaHardware硬件渲染器用硬件渲染绝对是效率最高的渲染方式。不过提到使用硬件渲染器渲染线框,很多人都会误以为是批渲染设置面板下RenderUsing的MayaHardware渲染选项。其实应该是使用Window-RenderingEditors-HardwareRenderBuffer(硬件渲染缓冲)来完成。1.开启HardwareRenderBuffer窗口,进入Render菜单下的Attributes窗口。2.设置如下:3.DisplayOptions区块下可设置Maya场景中的特殊物体是否可渲染,如参考网格Grid,摄像机图标CameraIcons,灯光图标LightIcons等4.线框的颜色以图层的显示为参考,因此我们可以选择模型,加入到新建的显示层中;双击显示层右边的斜线方框,在弹出的面板中选择颜色。你可以对每个物体使用不同的线条颜色。5.执行Render-RenderSequence,生成的图片序列将保存到渲染设置面板的保存路径中。6.如果你需要隐藏背面混乱的线条,只显示模型前面部分,可以在模型的属性面板中设置如下:如果模型较多,可直接到Disply-Polygons-CustomPolygonDisplay窗口下开启BackfaceCulling为On。以上方法的最后,仍然不能较好的解决背面线框的遮挡问题,尤其是多个物体的情况下。因此我们需要加入遮挡背面的物体。我曾经参考网上一个使用“颜色覆写+复制物体遮挡+硬件渲染缓冲”的方法进行,但发现效果不是很理想。因为:1.此方法无法用于多个物体的场景――你需要复制场景的每个物体,然后将它们都认真的缩小至原物体内部……;2.很大程度依赖显卡的抗锯齿性能,因此渲染结果基本上都不够理想,尽管渲染速度很快;3.改变了模型的显示,影响后续的贴图操作。所以,在这里我还是不打算浪费时间来解释这个过程了。硬件渲染能满足我们快速的线框渲染要求,但背面线框遮挡的问题很难解决,除非你确实需要双面显示的效果。MayaVector矢量渲染器这是一个有趣的渲染器,能将Maya场景以Flash矢量风格进行渲染。不过因为它的渲染设置不多,且渲染速度很慢,因此始终不能成为卡通渲染的首选。这里只介绍使用MayaVector渲染线框的步骤。1.选择渲染器为MayaVector;*如果你的Maya渲染设置中看不到此选项,那么到插件管理器中勾选开启VectorRender.mll。2.将颜色填充的选项关闭(去掉勾选Fillobjects),然后启用线条(勾选Includeedges)。3.Vector对线条的渲染方式只有两种:Outlines轮廓线和EntireMesh全部网格。设置EntireMesh,最终渲染得到模型转换为三角网格的效果,这与我们的初衷大相径庭;唯一的方法只有Outlines轮廓线了。4.使用Outlines轮廓线的方式进行渲染,取决于模型的边线角度。硬边将被渲染,而软边会被忽略。为了展示整个模型布线,我们需要对模型执行一个硬边命令:5.渲染效果还不错,线条的颜色和粗细也有相应参数调节,只是渲染所用时间太长。如果是较为复杂的场景物体,Maya常会因此而停止响应。矢量渲染操作简单,效果理想,但不能应用于较为复杂的场景,否则除了漫长的渲染时间消耗就是Maya的崩溃。MayaSoftware软件渲染器这是Maya最常用的,也是兼容Maya所有内置特效(MentalRay材质除外)的稳定渲染器。但一直以来MayaSoftware渲染器没有实质性的功能改进,这点让人觉得遗憾。MayaSoftware渲染物体轮廓线有两种方法:通过SamplerInfo此类节点计算的材质轮廓线厚度;使用笔刷特效的pfxToon卡通线条绘制物体轮廓线。PfxToon卡通线条具有很多灵活的参数调节,可实现各类有趣的卡通线条效果。PfxToon线条可直接在场景中看到效果,其渲染速度也很快,不过MayaHardware和MentalRay不直接支持pfxToon线条的渲染,需要先将pfxToon转为多边形。选择场景中的物体,点击Toon工具架上的“+”按钮(或者进入Render模块下的Toon-AssignOutline-AddNewToonOutline)即可对模型添加卡通线条。隐藏物体时pfxToon仍然会存在,因此在对使用pfxToon卡通线条的场景进行分层渲染时,需要注意这一点。pfx线条是实体的存在,因此能完美的保证远近线条的粗细变化效果-不过如果物体与镜头太近,线条的透视显示就有点夸张了……。以下就介绍下MayaSoftware的线框渲染步骤。1.选择需要添加线框的模型,对其增加pfx线条。2.选择pfx线条,ctrl+a进入属性编辑面板,将DisplayInViewport去掉勾选,隐藏线条显示,因为场景显示太多线条会增加机器负荷。3.属性编辑器下的CommonToonAttributes区块是对所有线条的总的调节,因此设置LineWidth的数值可改变整个线条的粗细情况。4.以下设置很重要:将ProfileLineWidth数值设置为0,取消外轮廓线的显示;将CreaseLineWidth以外的参数数值调为0,只对褶皱线的宽度进行判断。同时,设置CreaseColor的线框颜色,并去掉HardCreasesOnly的勾选--如保持勾选,软边将不会被渲染,这与Vector矢量渲染器的设置差不多。5.测试渲染,速度还挺快的。不过默认会在模型上进行线框显示,如果你就是需要这样的效果,那么到此就OK了。6.如果直接Ctrl+h隐藏模型,将会得到如下效果。对于机械类的线条透视效果,这倒是很有趣的实现方法。7.为了只获取线框,我们需要给模型一个UseBackground材质。将UseBackgroundAttributes区块下的所有参数设置为0,也就是单纯的作为遮罩物体。8.渲染得到如下结果。9.不过当模型离镜头很近的时候,线条的透视效果有点夸张了,这不是我们想要的(或者你真想要……)。10.选择pfx线条,进入属性编辑面板下的ScreenspaceWidthControl区块下,勾选ScreenspaceWidth,修改MinPixelWidth和MaxPixelWidth的数值为1-10之间(数值根据个人需要而定)。再次渲染,就得到了我们需要的固定宽度的线条,但此时线条就不再具备有近大远小的效果了。*如果场景中选择pfx线条不方便,可以在Outliner中对pfxToon节点进行选择。Maya软件渲染器是的渲染质量和可控性都很不错,pfx笔刷线条能完成很多特效的制作,且Maya自带的笔刷库有丰富的范例,便于用户直接套用。因此,MS渲染线框属于优先选择(泛用型)。MentalRay智能光线渲染器MR渲染器是世界上几个强大的渲染器之一。Maya集成了MR渲染器,并且一直在强化其功能。虽然MR渲染器尚不能完全兼容Maya内部的一些材质节点,不过从发展状况来看,似乎有瓜分MayaSoftware动画渲染功能的势头。MentalRay特有的GI和FG,能模拟现实环境的全局光照,同时也会加大渲染成本。在通常情况下,未开启GI和FG的MentalRay渲染效果与MayaSoftware差不多,除了时间上稍慢。Maya有不少MR材质,除了3S次级反射材质、车漆以及光子这类超写实材质,MR还包含有专门的线条处理节点。以下就重点介绍MR渲染线框的强大功能。1.全选场景中的所有物体,右键添加一个新的larmbert材质。*如果你实在不想替换原物体材质,可以创建一个渲染层来赋予新材质。2.进入材质的SG光影组节点(可点击材质属性编辑器右上方的输出连接按钮进入),在mentalray区块下,勾选EnableContourRendering(启用线条渲染),设置线条颜色及粗细。*AbsoluteWidth(绝对宽度):以所设置的渲染图片尺寸的百分比为参照,线条粗细不会因为分辨率的改变而改变;RelativeWidth(相对宽度):以当前渲染图片尺寸的百分比为参照,线条粗细会随着分辨率的改变而改变。通常情况下,我们多使用相对宽度。因为当镜头移动,产生近大远小的透视效果时,使用绝对宽度,远处的线框会发生混淆(不过事实上,MR对线条深度的识别还是存在不少问题)。5.在同样效果的情况下,我们对比下Vector和MR渲染所用的时间。*如果你在用MR渲染线框时发现速度很慢,要先检查GI和FG是否已经关闭。从以上效果可以看到,如果只是渲染模型布线,MR是Maya内置渲染器中最为理想的;同时,Maya还自带了不少MR线框材质,我们可以使用这些材质实现更多线条效果。不过,双面线框和更复杂线条样式的渲染,则只有MayaHardware和MayaSoftware才可完成。