在上篇文章中,我做了下控制暗部的后处理效果。今天我会尝试着实现一下色差效果。
在后处理堆栈中添加Chromatic Abberation(色差),大家可以参考上一篇文章的内容,创建Chromatic.shader和Chromatic.cs。
![df0d489ade39d3ed45c0191cf51dcd06.png](https://i-blog.csdnimg.cn/blog_migrate/95b19d5773368e6ae5cd3dd4b33fb9a2.png)
在Shader中新建一个名为 RGBSplit 的属性变量。
![6c13582c5d2c49c22fa202776cd0da6c.png](https://i-blog.csdnimg.cn/blog_migrate/82130447855c4585bfde929969953e84.png)
大家记得在脚本中连接_RGBSplit,然后把它添加至之前我们做好的后处理效果中并使用。
![37599a21e15716036c45e1ad98717692.png](https://i-blog.csdnimg.cn/blog_migrate/68dc3a833774327aac78f6a9f84c3c6b.png)
准备就绪后,大家了解下shader的frag函数的计算。
![95501747ee5100e4eb9714cd44a30e49.png](https://i-blog.csdnimg.cn/blog_migrate/4e4c7cb4f4f1e5e3d4c07fca33d5eb33.png)
分通道对col采样一次,并在R通道和B通道中对UV进行偏移(offset)以实现图像微小的位移。虽然可以通过每个通道来控制偏移方向,但这样一来,我要控制的东西就太多了,会比较麻烦,所以我想先只固定从一个方向来试下。
通过乘以0.1,uv会稍稍偏移且又不会影响我们识别对象,嗯,这个数值不要设得太大。