


三渲二这个概念一直很火热,网上,站内的教程也很多,我也跟着学了不少,这篇专栏就以我浅薄的知识来分享一下我目前所理解到的原理。Up水平有限,有错误的地方还请不吝赐教。
首先我们来看一下效果:
在相同光照条件的情况下右边是MMD模型导入到blender中的默认材质,左边是做了简单的卡通渲染。

效果对比
以头发的材质为例,主要节点一览:

头发节点一览
看起来有点复杂,但是大致可以分成以下几个部分:基础颜色,阴影颜色,高光,边缘光。
一部分一部分的看:
首先是基础颜色,由贴图给出:

模型自带的基础贴图
然后是阴影:
因为通常的MMD文件里只有一张基础色贴图,所以我在基础贴图上叠加了正片叠底运算让其变暗(即手动选择一个较暗的颜色来与基础色正片叠底);这样做还有一个好处是我可以通过调整输入RGB的明暗来让阴影更亮/更暗。

从基础贴图中制作阴影贴图
如果模型带有阴影贴图(大部分游戏提取的模型会有阴影贴图),把方框里的三个节点换成阴影贴图即可。
现在我们有了阴影的颜色和基础色:(先只关注头发的材质就好)

只有基础色的头发

只有阴影色的头发
就像画画一样,现在需要让迎光的一面是较亮的基础色;背光的一面是较暗的阴影色;那么如何让程序自动实现这样的效果呢?
答案是遮罩。有一定PS基础的朋友会知道,用一张黑白的图片作为遮罩的蒙版,黑的地方表示不透明,白地方表示透明。得益于强大的着色器节点我们可以利用EV渲染器提供的节点来非常简单的创建一个可以随着场景光照变化的遮罩:

典中典之blender卡通渲染三件套
漫射BSDF赋予了遮罩随光照变化的能力,颜色渐变是为了将漫射BSDF中各种颜色统一转换成黑白色,注意这里颜色渐变的模式要选择常值,这样做可以保证颜色只剩下黑白(为什么要这样做后面会解释);至于滑块多少黑,多少白这个根据不同模型凭感觉调整。

三件套直接输出的效果
可以看到头发被分成了黑色和白色,移动光源黑色和白色的范围也会跟着变化。这个黑白的范围就是什么地方显示阴影色,什么地方显示基础色的依据

将上述的三个部分用混合节点连起来
目前涉及到三个模块:基础色,阴影色,黑白遮罩,如图链接后输出已经可以得到一个80%完成度的效果了。

”80%效果“
看到效果后再来解释一下为什么之前颜色渐变要选择常值模式;选择常值之后遮罩就只有黑白两色,意味着在这个遮罩下的图像是“突变的”不是基础色就是阴影色,之间没有过渡,两种颜色的切换是跳跃的。这是带来2d感,平面感,卡通感(怎么说都好了,反正就是那种feel)重要的原因之一。

没有过渡的跳跃式变化
这一点从许多动漫,插画中可以看出这一特点,这种没有过渡的切换可以大大的消除立体感,让模型看起来像是一个平面。

冰海战记

风灵玉秀
下面再加一点别的效果:
1. 边缘光:
我利用菲涅尔节点来制作这个效果。
菲涅尔这个节点的左右是赋予材质菲涅尔效果(听起来像是废话),菲涅尔效果就是:
简单的讲,当视线垂直于表面时,反射较弱,而当视线非垂直表面时,夹角越小,反射越明显。. 这就是"菲涅尔效应"。. 如果站在湖边,低头看脚下的水,会发现水是透明的,反射不是特别强烈;如果看远处的湖面,会发现水并不是透明的,反射非常强烈,可以看到很多景物的倒影:. 图片来源于网络. 渲染中同理,当摄像机侧对物体表面时,会比摄像机正对表面反射更多的光线。. 开启Fresnel渲染结果会更接近现实物理世界,整体上感觉更真实。. 以下是一个Glossy Fresnel效果开启和关闭对比图:. 开启Glossy Fresnel后,整体的反射会稍微暗淡一些。. Glossy Fresnel在物理上更精确,所以这个结果更接近现实生活,整体上会感觉更真实.
虽然是一个更加模拟现实的节点,但是它的加入对模型更加2d也有一定帮助。

边缘光的制作所需节点
非常简单,折射率凭感觉调整;颜色渐变和之前的颜色渐变作用一样,是为了限制范围,这里限制的是菲涅尔效果的范围,因为我们不需要全部材质都有菲涅尔效果,只需要边缘部分有就好了,滑块调整黑白比例也是凭感觉,自己舒服为准。自发光节点的颜色就是边缘光的颜色,因为我以头发来举例,贝拉的头发是蓝紫色,边缘光我就使用了相近的颜色,这样不会太突兀。

箭头所指的都是边缘光的效果
动漫中也常见这样的表现形式

吹响吧!上低音号
所谓的“神明少女”也是借用了边缘光来凸显平面感使得画面变得“更像一幅画”

图片源自网络
2. 头发高光
这一部分效果是头发特有的。我基本上是按照站内大佬👉快照材质模拟头发高光👈的方法来制作的,头发高光的左右可以让头发更像是头发而不是一张纸片。具体操作方法我就不过多赘述了,其原理就是利用一张贴图来制作快照材质,再将其叠加到原有的头发材质上。比起纯节点高光这样做的优势就是所需的节点非常少,所占电脑资源也更小,但是在一些特殊场景下表现效果不如纯节点的高光。

头发高光的节点

头发高光效果
最后一步就是将头发高光混进“80%效果”里面

将高光混合进已有效果里
系数连头发高光节点。色彩1连“80%效果”节点,色彩2连头发高光高光颜色,一般是白色就好。
理解了原理再回过头来看所有节点就很简单了

再看一眼所有的节点
总结:这些节点非常简单,每一块的作用都很清晰,并且不依赖UV,额外绘制贴图,重新拓扑布线等,电脑资源占用也比较小(另一方面也说明要想效果更进一步就不得不涉及这些方面了);并且阴影颜色色调,边缘光颜色色调等高度可控,美中不足的是不受灯光颜色的影响(即不管灯光是红色还是蓝色模型的颜色都不会改变),不过可以通过手动调整来匹配场景光照,或者添加驱动器也都是可以的。