Unity Shader 实现PS图层混合效果

时间:2024-04-08 15:54:50

Unity Shader 实现PS图层混合效果
一直在研究Unity的shader一些效果,最近先研究在2D图片上的一些效果。
PS中的图层样式有很多种,无非是由滤色和正片叠底两种图层样式演变而来。

PS中的滤色
原理:首先把两层图像的像素值取互补数,然后将它们相乘,最后再去互补数。这和正片叠底得到的结果是相反的。它会得到一个更亮的图像。
算法:
Unity Shader 实现PS图层混合效果
效果:
原图:
Unity Shader 实现PS图层混合效果
滤色效果:
Unity Shader 实现PS图层混合效果
PS中的正片叠底
原理:就是把两层图像的像素相乘,最后会得到一个更暗的图像。这个模式是对称的,也就是说交换基色和混合色得到的结果是一样的。

算法:
Unity Shader 实现PS图层混合效果效果:
原图:
Unity Shader 实现PS图层混合效果
正片叠底效果:
Unity Shader 实现PS图层混合效果
PS中叠加
原理:结合了正片叠底和滤色两种混合模式。基色中亮色的部分会更加亮,而暗色的部分会更暗。
算法:
Unity Shader 实现PS图层混合效果原理:
Unity Shader 实现PS图层混合效果叠加效果:
Unity Shader 实现PS图层混合效果
外轮廓描边
原理:利用一些边缘检测算子对图像进行卷积操作,卷积的操作指的是使用一个卷积核对一张图像中的每个像素进行一系列的操作,对于图片要是一张背景透明的
原图:Unity Shader 实现PS图层混合效果
效果:
Unity Shader 实现PS图层混合效果