风格化 + PBR
PBR 追求 物理正确,风格化 则天马行空,两个本来不搭边的东西结合在一起,也可以实现出相当有趣的效果。
下图是我的新欢,异界锁链 的女主小姐姐:
注意看女主的衣服:
-
漫反射部分,明暗过渡是比较典型的 卡通渲染 的方式,线条感很强。
-
高光部分,直接高光的拖尾疑似 GGX,间接高光也很明显,PBR的质感。
皮肤部分的明暗过渡比较平滑,暗部由红至黑的变化应该依靠 贴图映射 就可以模仿得出。
最后再搭配上 整体描边 以及左侧的 边缘光,既卡通又有光感的小姐姐就现身了。
当然,上述结论全凭肉眼,不一定准确。
本文介绍一款Unity插件 Toony Colors Pro,如果要模仿上图女主的渲染效果,这个插件可以给我们很多启示。
Stylized PBS的几个要素
上图是作者在他的主页对 风格化的PBS 做的一些总结,主要元素包括以下几点:
-
Ramp Shading
-
明暗偏色
-
风格化高光
-
风格化菲涅尔
-
描边
本文主要介绍前4点,至于 描边,作者的做法比较常规,有空再写。
Ramp Shading
考虑一下最简单的 Lambert 光照计算公式:
inline fixed4 UnityLambertLight (SurfaceOutput s, UnityLight light)
{
fixed diff = max (0, dot (s.Normal, light.dir));
fixed4 c;
c.rgb = s.Albedo * light.color * diff;
c.a = s.Alpha;
return c;
}
法线方向 和 灯光方向 的 点积 可以描述 漫反射 的强度,而 单位向量的点积 其实就是 向量夹角的cos值,考虑一下下图的 cos曲线: