赞
踩
上一篇中我们已经实现了卡通渲染最基本的色阶分离的效果,并且与原生UE渲染效果进行了比较。虽然整体效果是有了但是细节上还是缺少打磨,所以接下来我们看看该如何修改我们的效果
当我们拉近观察人物的脸部的时候,发现由于我们计算的是脸部的法线与灯光的点乘,所以在一些角度下脸部的阴影显得有些凌乱,不符合卡通渲染的大范围阴影的形式。
我们要做的是简化脸部的阴影,例如下图的显示,脸部的阴影简化以后,看上去就会清爽很多,并且更符合卡通渲染的效果。
而且我们还得加上一些专门的特征区域,例如在鼻尖附件画上高光或者阴影,如下图所示,这样才更符合卡通渲染的效果。
基于法线的修改,一种是比较简单的包裹体法线,主要是将球包裹体的法线传递到面部模型上,能让脸部法线的方向能呈现一个均匀分布的效果
也可以考虑面部膨胀这种方式来改变任务脸部的法线,《火影忍者-究极风暴》中就是这么实现的,如下图所示膨胀过后的脸部以及头发的阴影看上去就干净多了。
还有一种做法就是距离场阴影,具体来说就是使用SDF来制作的一张Mask图。下面这张mask图就是作者自己用PS画的,毕竟不是专业美术,大体上过的去就行了,毕竟我们也只是用来学习一些做法。
可以看出这张Mask图上就将鼻尖的阴影和高光都画出来了,还有就是眼睛下部分的高光,接下来就是阴影的过度。有了这张Mask图。接下来就是去到UE中实现具体的效果了。
首先新建一个母材质,然后运用上我们第一篇写的ShadingModel
首先先用灯光与人物X轴的方向进行点乘来判断灯光此时在人物的左侧还是右侧。为什么要有这一步?可以看到我们上方的mask图是默认灯光在右侧时的表现,如果灯光在左侧我们得镜像采样,才能得到正确效果。
然后这一步,我们不再以脸部的法线来点乘了,而是使用人物前向与灯光方向来进行点乘,具体的阴影分布效果是根据mask来决定的。完成这一步后就可以来看看我们实际运行后的效果了。
可以看到,整体脸部的阴影看上去干净很多,鼻尖部分的阴影或者高光都有了,虽然人物眼睛下的高光区域感觉位置不太对,不过应该无伤大雅,那可能是mask的问题,调整一下位置就可以了。至此我们的人物的脸部阴影已经完成了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。