本篇思路是基于后处理实现的。
获取光照结果:
由于diffuseColor*(光照计算)=最终颜色
又得益于ue4是延迟渲染,mrt可以存储许多缓冲信息,故在后处理获取diffuseColor很简单。
因此可以反推初光照计算结果。最终颜色/diffuseColor。
增加菲尼尔
在后处理获取法线图,即可进行菲尼尔计算。
ramp
光照结果和菲尼尔可以分别用张贴图进行映射,菲尼尔也可以使用step函数进行。
描边,外粗里细
外描边使用的是模版缓冲计算得来的描边,内描边则是常见的深度图边缘检测。为了使得仅个别物体有描边,故需要在材质图里获取缓冲值进行判断,而不能仅开启材质属性的模版检测,因为我们要保留的描边是外扩后的模版图。
其他
也可使用张贴图对光照结果和菲尼尔进行扰动,从而达到一定水彩效果。