2D光照


一、制作步骤

1.1 使用一张 Mask 控制灯光形状

image-20210929163412446

1.2 通过对 mask offset 的控制,可以模拟灯光的照射方向

灯光模拟方向调整

1.3 通过与 UV进行计算,可实现从左上到右下的衰减,并通过 pow 加强变化

灯光模拟_衰减调整
half mask = tex2D(_MaskTex, maskTexUV).r;
mask = mask - maskTexUV.x * _AttenuationX - (1 - maskTexUV.y) * _AttenuationY;
mask = pow(saturate(mask), _Pow) / _Smooth * _MaskInstensity + _MaskBias;
mask = saturate(mask);

1.3 通过 mask 区分亮暗部,并通过不同颜色加以控制

灯光模拟_亮暗颜色控制

1.4 将颜色转换成灰度后,与 mask 做计算,实现照亮的部分对比加强增加立体感

灯光模拟_对比调整

1.5 为了更加可控,添加了旋转 UV 功能

旋转UV默认是在左下角旋转,如果想要居中旋转,需要 将坐标缩放到【-1,1】(UV远点在中间),旋转完成后在缩放到【0,1】

灯光模拟_灯光旋转

二、最终效果

image-20210929165725753 image-20210929165750007 image-20210929165909109 image-20210929165944902

文章作者: 血魂S
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 血魂S !
  目录