纳金网

标题: maya mental ray打造卡通材质教程 [打印本页]

作者: 曲终人散    时间: 2013-9-12 16:39
标题: maya mental ray打造卡通材质教程
首先看一下效果图。
  12299280892389.jpg
效果图2。

   12299280904078.jpg
效果图3。

   12299280915310.jpg
效果图4。

   12299280926195.jpg
2.这是来自刘阔老师的模型,就是有名的法线纹理的测试模型。高人的东东被俺乱用调节好了,比fr的toon功能还强。当然fr的也很帅。据说maya有个外挂toomcat,卡通渲染效果一流,有时间去试试。现在发现卡通风格的东东还真有那么一点不一样的味道呢。做一段手描线风格的动画肯定很好看。

上面几张图用mr渲的,因为只要线框效果,所以color通道上只要上一个简单的材质就可以,最主要的问题来自于边线的产生,和模拟真实笔触的自然浓淡。然后考虑到材质的可调节性,再加上了一些备用的功能。也是看一些教程然后再想想才会的,这个是它的shader networking。

12299280935416.jpg
mr要渲染出卡通效果,有几点比较重要,一个是当前摄像机的输出中要指定卡通渲染输出,另外shader网络中也要给定一个mr的卡通材质,(mr的卡通材质有好多种,可以模拟出很多效果的),最后在全局渲染设定中也指定一些mr的相关shader。
首先,打开一个模型。现在开始调材质。

新建一个surfaceshader,说说为什么用这种shader, surfaceshader有个特性就是不受光照的影响。,而卡通效果基本上不用太多考虑光线,主要就是明暗的对比。当然如果要做出光照的效果用其它材质类型也可以。然后再新建一个ramp,这个用来控制最终材质的颜色。再来一个节点,clamp,这个节点的用途是把输入值强制切割在指定的范围内。和setrange节点有些类似,但不一样。再建一个phong,也可以用bline等其它类型。只是phong的高光更加锐利些,当然这个例子中是没有高光的,只有边线。

接下来开始连接,拖放clamp到ramp上,选择other,然后在连接窗口中做如下连接:clamp的outputr(或者g,连接到ramp上的u coord上,如图。

12299280941214.jpg

接着把phong的out color下的out r连接到clamp上的input r上,别连错了。maya的节点属性有一元属性,二元属性,三元属性,数列矩阵等等,不过不怕,不对应的属性类型是无法连接上的。这样就把phong的输出色和clamp的输入节点连起来了。

12299280955403.jpg

连接完成的节点网络如下图:

12299280965978.jpg

渲染,结果是黑黑一片,当然了,没设定clamp的属性么,把clamp属性窗口打开,设定如图。

12299280975331.jpg 它的意思比较简单,就是限定最小输出值为0,最大输出值为1。现在渲染看看,有些效果了吧。想起来了,忘了给ramp的参数。
设定ramp,类型先设定为smooth,它的类型影响最后效果,颜色也影响最终颜色,并且色带的位置影响着最后的高光(这个例子中没有,)解释一下参数的意思,第一条色带是控制高光区域和颜色的,在材质中可以同步看到。第二条色带是控制卡通材质的颜色(diffuse),这里全为白,最后的那条就是阴影效果。这里要慢慢调节才能有一个好效果。(颜色调节得好的话,可以做国画效果的)。

12299280981804.jpg
再渲染看看,有些效果了吧。但缺少卡通画常有的效果,边线!我们下一步要做的就是产生边线。打开surfaceshader的上下级连接,在surfaceshader1sg下的mr选项中设定卡通材质。

12299280997530.jpg

在随后弹出的mr材质界面中选择卡通材质类型中的一种,这里的类型很多,可以试试不同组合所带来的不同效果。这是用的是contour_shader_simple,mr的材质系统好复杂,头都大了。什么时候能无缝集成就好了,无比幸福。

12299281009603.jpg

在随后弹出的mr材质界面中选择卡通材质类型中的一种,这里的类型很多,可以试试不同组合所带来的不同效果。这是用的是contour_shader_simple,mr的材质系统好复杂,头都大了。什么时候能无缝集成就好了,无比幸福。

12299281013564.jpg

mr卡通线风格变化很多,可以根据距离确定线框的宽度,也能够响应灯光来确定宽度。

  12299281014008.jpg

图2
   12299281025972.jpg
现在所有工作都完成了。渲染时要注意,一定要是给定output shader的摄像机才可以渲染出卡通边线。另外,把aa设低一点效果更好。如果ramp设定色不为全白,高光区域可能会过大,这时有两办法。一个是更改phong材质的折射率为0,另一个是渲染时把反射与折射关闭掉。
12299281039095.jpg

渲染看一下,效果应该是这样的。
   12299281039492.jpg
边线已经产生,但是感觉很“硬”,现在打开contour_shader_simple节点,它下面的两个参数一看就懂,在color上 添加一个noise,参数做如下设定。

12299281043400.jpg

这时如果渲染,边线颜色一定不对,很淡。这时控制边线的颜色办法就是打开noise的color gain 。

12299281044751.jpg

这时如果渲染,边线颜色一定不对,很淡。这时控制边线的颜色办法就是打开noise的color gain 。

12299281057649.jpg

把color gain调低到近于全黑,现在再渲。效果就出现了。整个shader networking

12299281062822.jpg

这里参数比较简单,一个是边线的颜色,一个是宽度。多试自然就知道了,非科班出身的人就这点惨,俺们就知道一个个去试。

现在渲染,没有出现想要的效果吧?因为当前摄像机的输出设定中还没有相关设定。选择或者新建一个摄像机,调好位置,然后打开它的属性设置窗。在它下面的mr选择中打开output shader,给定一个contour_composite。参数默认。

12299281069476.jpg

设置如图。

12299281071759.jpg

打开全局渲染设置面板.指定当前渲染器为mental ray,然后找到custom shaders,给定两个卡通材质,类型看下图。

12299281073378.jpg

store shader用contour_store_function,这个节点可以提取到模型的点,法线信息,材质,物体,三角面数目,反射与折射。原文帮助文件中是这样的the contour_store_function shader returns the intersection point, normal, material tag, object label (tag), triangle index, color, and the refraction and reflection level。另一个同类型的节点只能提取到材质信息,然后传递给下一个节点,但是速度飞快。

设定contour_contrast_function_levels参数如下图,它当中参数有几个很重要,对最终效果影响很大。zdelta和ndelta的参数尤其明显。ndelta的参数越大,卡通边线越细,越小越粗。下面的那个diff_intex如果勾选的话,可以渲染出模型的线框,是三角面的。没有认真去调过。具体参数看看maya自身help中有关metal ray的章节,解释得很详细。可以看看不同参数下的渲染效果。

更多教程尽在maya论坛。





欢迎光临 纳金网 (http://wwww.narkii.com/club/) Powered by Discuz! X2.5