maya

关注公众号 jb51net

关闭
媒体动画 > maya >

Maya卡通材质高级教程 Maya卡通着色技术

脚本之家

Maya 真不愧是三头六臂,面对这些挑战,我收集了针对Maya 材质质感部分具有代表性,权威性的Maya 材质教程。

尽管这些教程不是那么振奋人心,但他们可以工作并可为进一步考究和改进的基础,通过这些练习的学习来探讨 Maya 各种节点的工作原理,是力图帮助我们能攀登到 Maya 贴图技术的顶峰,从而构造出一套有条不紊体系结构。随着经验的增长,不久我们就会发现自己已经变成专家了。

由于本文涉及有关 Maya 材质的高级运用,是一种更适合有经验的用户的形式来编写的。加上我的翻译水平有限,文中所译难免有不妥之处,恳请诸位看官海涵。 在这一课里,完全地展示了如何创建卡通材质(Cartoon shader)的实际工作步骤,我们使用RAMP节点,以及其他的几种工具节点,对Blinn材质进行重新分布(Remapping),最终,即能达到类似卡通效果的着色方式(Shader)。

此外,本课的内容能加深对连接编辑器(Connection Editor)和工具节点(Utility nodes)、创建自制的着色网络(Custom Shading Networks)的深层理解。

第一步: 在 Hypershade 窗口里,选择 Create->Create Render Node.. 分别创建下列节点: Material nodes: Blinn (no Shading Group) (无着色系) Surface Shader (with Shading Group) (有着色系) Texture nodes: Ramp (no Texture Placement, Normal) (无贴图坐标) Utility nodes: Sampler Info Clamp Condition 在 Hypershade 中应该如图: Blinn 材质节点用于描绘物体上的高光。因为Ramp 可以将灰阶值重新分布成连续的色彩,会使灰阶 blinn 变成卡通效果。Sampler info 节点获取物体边界的信息。

Maya 卡通材质高级教程 卡通着色技术 脚本之家 MAYA材质灯光

02第二步: 在 Hypershade 窗口里,鼠标中键拖动Blinn1节点至Clamp1 节点上释放,选 Other… ,弹出连接编辑器 (Connection Editor)窗口,将左边 Blinn1 节点的 Outcolor 与 Clamp1 节点的 Input 相连。

Maya 卡通材质高级教程 卡通着色技术 脚本之家 MAYA材质灯光

03接下来,让Clamp1 节点降低灰阶值,使这些值小于等于1(<=1),同时会切断所有灰阶大于1(>1)的高光。(superwhite)。 开启 Clamp1 节点的属性编辑器(Attribute Editor),将 Max 左边的输入框设为1。这个输入框代表红色通道(中间=绿色,右边=蓝色),由于灰色是R,B,G各相等值混合而成的,所以,在此只需要一个通道就可以了。 Min 应设为0。

Maya 卡通材质高级教程 卡通着色技术 脚本之家 MAYA材质灯光

04第三步: 以上述方法,用连接编辑器,将 Clamp1 节点的 Output R 与 Ramp1 节点的 V coord 相连。

Maya 卡通材质高级教程 卡通着色技术 脚本之家 MAYA材质灯光

05请确保 ramp1 节点的 type 为 v ramp。现在ramp1 的 color output实际上等于 input 的灰阶值(0<= clamp1 color r output <=1)。这种方法称为重绘(remapping)。

Maya 卡通材质高级教程 卡通着色技术 脚本之家 MAYA材质灯光

06

第四步: 将 ramp1 节点的 out color 与 condition1 节点的 color if true (color1) 相连。 将 sample info1 节点的 facing radio 与 condition1 节点的 first term 相连。 facing ratio 是表面上点面向摄影机的角度,如果这个点距离摄影机90度,facing ratio =0,如果表面法线和摄影机射线之间角度是0,facing ratio=1。具体请查阅 maya在线手册

Maya 卡通材质高级教程 卡通着色技术 脚本之家 MAYA材质灯光

第五步: 开启 surface shader1 的属性编辑器。选 add->add attributes… 添加下列属性(float,scalar): linethickness: min 0, max 1, default .2 liner lineg lineb linethickness和颜色都属于用户可定(user-definable)的。07第六步: 将 suerface shader1 节点的 linethickness 与 condition1 的 second term 相连。 suerface shader1 节点的 line r 与 condition1 的 color if false (color2 r) 相连。 suerface shader1 节点的 line g 与 condition1 的 color if false (color2 g) 相连。 suerface shader1 节点的 line b 与 condition1 的 color if false (color2 相连。 将 condition 的operation 设为 greater than。

Maya 卡通材质高级教程 卡通着色技术 脚本之家 MAYA材质灯光

08如果 facing ratio (condition1的第一个条件)小于 linethickness (第二条件),condition1 的output = color2 (surface shader1里设置的linerg,否则 output = color1 (来自ramp1-blinn1 的颜色)。 将 condition1 节点的 out color 与 surface shader1 节点的 out color相连。下图是 hypershade 中的节点关系:

Maya 卡通材质高级教程 卡通着色技术 脚本之家 MAYA材质灯光

09 第七步: 可以把 ramp1 调成你喜欢的色彩。卡通材质通常把 ramp 颜色之间的 interpolation 设为 none,这样能产生较为均匀的边线。下图为 ramp1最终的外观。

Maya 卡通材质高级教程 卡通着色技术 脚本之家 MAYA材质灯光

此外,也可以做一些额外的修改:

1.在surface shader1 属性编辑器里调整line thickness 和 colorrgb,这两个值分别控制边线的粗细和颜色。

2.调节 blinn1 参数能产生不同的高光。

3.甚至可以给 blinn1 添加一个凹凸贴图,这种方法一般用于运动的小虫。

4.也可用其他的材质代替 blinn1 ,产生各式各样高光。

总结: 本课阐述了如何创建卡通材质,通过这一课的学习,掌握了创建卡通着色技术,同时也对各种节点之间工作原理及建立复杂的着色网络有了更加清楚地认识。