先上一张原图,模型素材之类的可以在这里
下载
描边
使用最基本的dot(n,v)来计算边缘,根据需要给控制项,这里我使用了pow来使明暗对比更强烈,又除以一个值调整过渡。
half nv = max(saturate(dot(bump, viewDir)),0.0001);
//这里用除法调节起来比较好控制
fixed outline = pow(nv, _Pow)/_Range;
outline = outline > _Outline ? 1 : outline;
但是感觉晕染的效果丢失了,因此做了修改:
fixed outline = pow(nv, _Pow)/ _Range;
//边缘拿出来单独调节
fixed edge = outline > _Outline ? 1 : 0;
outline = outline * edge;
混合纹理
随便找张水墨的纹理图
只是单纯的输出采样贴图
float4 featuretex = tex2D(_FeatureTex,i.uv.xy).rgba;
和上面的描边结果混合