Toon shader for charaters in mobile game

在下没有什么创新,只是对一部做得很极致的卡通渲染牛逼作品《罪恶工具 X》进行搬运和小小修改。
对于本卡通shader的核心观念可以参考这篇GDC视频https://www.youtube.com/watch?v=yhGjCzxJV3E&t=1031s
 
贴图
一共使用三张贴图,其中ramp24位,diffuse图和shadow_diffuse 32位,对应通道使用方法如下。
shader
 
使用ramp的红色通道作为映射,映射phong光照模型的渐变,我使用ramp的原因是因为ramp对过渡层级完全美术可控,可以做出比较多变的过渡效果。例如这个玻璃。
用ramp出来的光照模型差值diffse.rgb颜色和shadow_diffuse.rgb颜色,使用shadow_diffuse的好处时能够使暗部颜色丰富,类似赛璐璐风格的作品。
轮廓光使用ramp图中的G通道来映射,能够保证角色各个角度都有轮廓光,乘NdotL来剔除暗部的轮廓光。
AO通道作为控制暗部的阈值,ao叠加后可以使暗部的体积感增强,也可以手绘一些细节增加阴影。
高光使用传统的高光制作方式,配合乘以diffuse贴图的alpha通道作为mask
3dmax部分
使用MAX中这个DXshader, 能够实时的预览。然后加载这款DM79_toonShader
蹦出以下参数,按照对应的贴图填上即可。
其中Ao_test开关可用来开启Ao debug模式,方便制作人员检查。
softimage(XSI)部分
因为XSI中有一个非常厉害的编辑法线的插件,所以我在XSI中也做了一份这个shader。
可以球面化,放松,映射,复制等各种随意编辑。
XSI的法线编辑插件传送门https://github.com/Gotetz/UserNormalTranslator
在XSI中使用CGFXshader,
并且将viewport视口设置为OpenGl格式
将toonshader赋给模型
这样就可以编辑法线了~
法线编辑前后。
法线编辑后。
在Messiah中
Messiah中除了以上基础功能外,关联了场景中的平行光和环境光还有虚拟光。
Sun Color控制亮部颜色,关联高光和diffusecolor
Sun Ambient 控制暗部颜色关联暗部颜色
Virtual Lit Color 控制整体的色调 主要为不同颜色场景使用
shader参数
fresnel项,控制轮廓光颜色和强度
specular项,控制高光强度和范围
bloomScale,在LDR情况下控制Bloom阈值
CAlpha,当此shader勾选半透明情况下,可用做玻璃等效果,CAlpha可控制玻璃透明度
玻璃仅需要给一张这样的ramp就行了
end