效果1:Edge+Bloom(边缘高光)
使用菲涅尔边缘效果,配置局部Bloom,实现边缘高光效果
效果2:outline+stencil+bloom(轮廓背光)
思路:
第一步获取边缘,使用的屏幕处理,使用Soble梯度算子,对生成的DepthNormalMap进行卷积处理。对于单个物体加高光可以使用单独Camera进行渲染物体(为了节省性能,可以使用最小透视矩阵)。
第二步对以上获取的轮廓线进行高光模糊处理,以实现光晕效果。使用普通的高斯模糊模板进行卷积计算就可以。
第三步使用Stencil过滤掉需要进行高光处理的对象,如下图只高光内边是截断的,这样再叠加了对象之后就显示为物体边缘背光的效果
3. Sketch(草图效果)
思路:难点是物理层次的提取,比如下面一个长方体,这种凸物体,从任何一个方向看分为两层,即从camera出发一条射线,与物体相交两次后穿过物体。对于一些繁杂的物体会有多个层。这个的原理比较繁杂,可以参考Nvidia Gem。
https://developer.nvidia.com/gpugems/GPUGems/gpugems_ch16.html
之后对每一层,使用效果2同样的方法提取出边缘,各自的层的边缘进行叠加之后就形成了如下效果。
4. stencil-blur(局部模糊/毛玻璃效果)
思想比较简单,对玻璃进行Stencil设置,然后在模糊后处理中,只进行Stencil部分的模糊处理。
5. Volumelight-with-cull(体积)
引入厚度值,原理与上面分层处理差不多。通过厚度值模拟体积,同时对于体积内部的物体也进行厚度的重新计算。
6. 溶解
这个就不多说,网上有很多的例子
直接上Shader Forge实现的截图,其中比较特别之处是溶解边缘的梯度变化通过UV 映射到一张1D的Texture,以实现边缘高光的处理。
7. 移动光
早期的一个效果,由于是面向移动端,效果不太好。其中有一个移动的高光效果来模拟神经元间的传导。
8.冰格子效果
WireFrame+世界平面投影UV Panner,后续会加上blur那效果应该会酷一些