Unity Shader学习:将mmd人物更新卡通材质

最近图形学看到了shader,虽然很早前就学过但是一直没实操过,最近自己正好也在看Unity Shaderlab这本书,顺手解决了一个小问题,记录一下。

 

mmd中人物材质接近PBR,这部分光照不太满意,就自己动手调了shader

1.下载RealToon 5.2.1(u2018.1.0)材质包

2.初始材质mmd的效果

材质光照反射比较强烈,部分高光显得不真实,但并不是说这样不好看,只是像换一种风格

Unity Shader学习:将mmd人物更新卡通材质_第1张图片

3.去掉卡通材质中的阴影

找到RealToon中命名为D_Default的shader,这是我们目标替换的shader

Unity Shader学习:将mmd人物更新卡通材质_第2张图片

4.编辑shader

首先要去除shadow黑边,将147行“Self Shadow”属性由1改成0

[Toggle(N_F_SS_ON)] _N_F_SS ("Self Shadow", Float ) = 0

5.替换shader

U_char_0中原来的材质,为MMD4中的材质

Unity Shader学习:将mmd人物更新卡通材质_第3张图片

将这部分shader替换成卡通shader

Unity Shader学习:将mmd人物更新卡通材质_第4张图片

Unity Shader学习:将mmd人物更新卡通材质_第5张图片

U_char_1中原来的材质

Unity Shader学习:将mmd人物更新卡通材质_第6张图片

替换后

Unity Shader学习:将mmd人物更新卡通材质_第7张图片

头发阴影显示为橙色有些不真实,这是由光照强度导致的,我们需要修改一下光照

Unity Shader学习:将mmd人物更新卡通材质_第8张图片

调节这部分环境光的光照强度至你认为合适的intensity,直至自然的黑色阴影

Unity Shader学习:将mmd人物更新卡通材质_第9张图片

Unity Shader学习:将mmd人物更新卡通材质_第10张图片

 

或者调节环境光颜色为白色,但是我想营造暖色色调,就只调了头发的局部光照

Unity Shader学习:将mmd人物更新卡通材质_第11张图片

面部细节其实可以不用调节

Unity Shader学习:将mmd人物更新卡通材质_第12张图片

调节前后对比

Unity Shader学习:将mmd人物更新卡通材质_第13张图片Unity Shader学习:将mmd人物更新卡通材质_第14张图片

更新:由于主光照照射方向,可以看到模型左部与底部虽然自然呈现了阴影,物理上表现更好,但是表现卡通风格时我们更希望画面明亮一些,于是再次调节shader,

61行更改:将Overall shadow(整体阴影),阴影颜色由灰色调成白色

_OverallShadowColor ("Overall Shadow Color", Color) = (255,255,255,1)

也可以不使用平行光阴影,这样上述头发中的阴影也会去除

Unity Shader学习:将mmd人物更新卡通材质_第15张图片

效果:

Unity Shader学习:将mmd人物更新卡通材质_第16张图片

再来一次处理前后对比

Unity Shader学习:将mmd人物更新卡通材质_第17张图片Unity Shader学习:将mmd人物更新卡通材质_第18张图片

你可能感兴趣的:(Unity Shader学习:将mmd人物更新卡通材质)