美术要求程序实现一个类似photo中“渐变映射”的效果。
记录一下用unity完成的shader。
放一张路易斯
那么渐变映射的原理是什么?以下是百度的结果:
在使用时,渐变映射首先会将照片去色变成黑白,然后从明度的角度分为:暗部、中间调和高光。在渐变映射中有一个颜色渐变条,这个颜色渐变条从左到右对应的就是照片暗部、中间调和高光区域。
也就是说如果我们把这个渐变条填充上两个颜色,越靠近左边的颜色将是照片暗部的颜色,越靠近右边的颜色将是照片高光的颜色,而中间过渡区域则是中间调的颜色。
简单来说就是
1.变灰
2.用rgb来对两个颜色进行线性插值。
代码也很简单
Properties
{
_MainTex ("Texture", 2D) = "white" {