今天我们在maya中学习如何创建一个自定义材质,它可以让你的物体在有透明通道的情况下得到正确的ao,这是一个有挑战的工作,我们将用maya内置的paintfx创建一棵树来示例。
step 1
实际教程开始之前,我们先说一些小的理论知识,或者说为什么要研究本例的这个方法,那是因为为了节省多边形面数,一般树叶这种东西我们不是用模型完全做出来,而是采用一个面片,然后再去制作树叶形状的透明通道的方法,但是往往这样得到的ao是面片的ao,而不是树叶形状的ao。
因为我们要用mental ray的材质节点,所以先确保我们加载了它让我们开始本例吧。
step 2
打开材质编辑器,创建两个lambert,第一个球到时给没有透明通道的物体,第二个球给有透明通道的物体。
step 3
在mental ray材质拦下的sample compositing下创建>mib_transparency节点,在mentalray lights下创建mib_fg_occlusion节点,最后在maya默认材质下创建一个file节点。
step 4
双击file2节点,把filter type关闭,勾上alpha is luminance,并导入那张树叶的黑白图
step 5
选中所有的节点,点击下面的图标,使之排列整齐,并出现扩展节点。
step 6
鼠标中键将file节点拖到mib_transparency node节点上,并选择transp,这样就把文件的那张黑白图连到了mib_transparency 节点的透明属性上。
step 7
再把mib_transparency 节点拖到lambert3sg,选择other。
step 8
选择如下两个选项进行关联。这样就把mib_transparency的输出结果连接到了lambert 3。
step 9
用相同的链接方式将mib_fg_occlusion节点的输出结果连给lambert2。
step 10
现在lambert2材质已经包括ao信息了,他可以赋给场景中那些没有透明通道的物体,lambert3是没有的,所以你需要将mib_fg_occlusion节点拖给mib_transparency节点,选择input。
step 11
这样就创建好所有的ao节点了,下面我们来创建一个双面材质,在mental ray材质栏下创建两个mia_material_x_passes,一个是叶子的顶部,一个用于叶子的底部。
step 12
再创建一个condition条件节点,和一个samplerinfo信息采样节点。
step 13
把两个mia_material_x_passes1重命名为topmat和botmat
step 14
把topmat拖给条件节点,选择coloriftrue。
step 15
把coloriftrue和result关联起来。
step 16
同样的,把botmat拖给条件节点,选用相同的关联方式。
step 17
把samplerinfo节点拖给condition节点,把flippednormal和firstterm关联起来,这样条件节点会根据法线信息决定那种材质被用于topmat还是botmat。
[next]step 18
再创建一个mia_material_x_passes,并重命名为leafmat,这个材质球将被赋予给叶子,条件节点将决定是给topmat还是botmat,把条件节点拖给leafmat,选择other.
step 19
然后将条件节点下的outcolor和leafmat的diffuse关联起来。
step 20
创建一个file节点,然后复制四个,然后创建一个place2dtexture节点,并将其拖给五个file节点,选择default,然后将五个file节点如下重命名。
step 21
把五个file 节点给予相应的贴图,把filter设为0.1,这样就不会让你的贴图太模糊,把opacity这个file节点的filter type设为off。
step 22
双击topmat,出现它的属性栏,把topcolor拖给color,把topbump拖给standard bump,并把bump节点的bump depth设为0.2,同样的方法把botcolor 和 botbump拖给botmat的color和standard bump
step 23
双击leafmat展开它的属性栏,把opacity file 节点拖给leafmat属性栏的cutoutopacity
step 24
双击topmat,把反射相关的参数调节如下,同样调节一下botmat的反射参数,因为是叶子的下方,所以botmat的反射值要低一些,差不多0.1。
step 25
好的材质就设定完毕了,下面创建如下的模型作为背景。
step 26
再来就是创建树的模型,在rendering下选择paint effects的paint effects tool,然后选择get brush
step 27
打开visor对话框,选择如下的树种,然后在场景中拖出来。
step 28
选择刚才创建的树,ctrl+a打开它的属性栏,在keyakipark{也就是你选择的那个树种的名字}下,在creation下,调节参数如下,改变一下树的形态。
step 29
继续调节参数如下。
step 30
继续调节参数如下,改变一下树的形态,最重要的是要关掉leaf forward twist,否则所有的叶子都将面对摄像机。
step 31
差不多调成下面这样子。
step 32
创建一盏area light,把use ray trace shadows和use light shape打开,把high samples设为64.
step 33
再创建一盏area light,设置和之前的那盏基本相同,只是强度稍稍调低些,位置如下图左上角。
step 34
因为是使用mental ray进行渲染,现在的树是一个paintfx物体,所以要将paintfx物体转化为多边形,因为mental ray不支持paintfx,我们选择树,在modify下选择convert下的paint effects to polygons.
step 35
选择场景中所有物体,包括灯光什么的,在右边的通道栏下选择render,并新建一个渲染层,然后将刚才选择的所有东西加载进去,并把这层重命名为color。
[next]step 36
在这层中选择叶子,把leafmat这个材质球赋予它叶子。
step 37
打开渲染设置面板,设置如下,关键是max trace depth的值,这关系到ao的最终效果。
step 38
选择树和背景,新建一个渲染层,命名为occ,把lambert3赋予叶子,把lamber2给树干和背景,并点开如下图绿色方框内的图标,打开渲染设置面板。
step 39
在indirect lighting拦下,在final gathering下按住鼠标中间不放,然后选择create layer override.
step 40
这样final gathering会变成橙色,这意味着你关闭或是打开final gathering,它只影响这个渲染层,打开fg,便将参数调整如下。
step 41
打开摄像机属性面板。
step 42
在背景颜色上依然用鼠标中间按住不放,选择make layer override,并把背景色设为白色。
step 43
在options下,勾上如下选项。并点击render all layers后的小方框。打开扩展对话框。
step 44
选择keep layers,然后关闭掉这个窗口,点击渲染,你将得到两张图,一张是 color,一张是occlusion,然后再将两张图导入photoshop.进行合成。
step 45
在photoshop中,将两张图选择overlay的叠加方式,得到如下的最终效果。
评论