积雪方向和法线进行点积,如果大于积雪厚度值则改变该片元的输出颜色为雪的颜色
在Properties中添加:
_SnowColor(“snow color”,Color) = (1,1,1,1)
_Snow(“snow level”,Range(0,1)) = 0.5
_SnowDir(“snow dir”,Vector) = (0,1,0)
定义:
float4 _SnowColor;
float4 _SnowDir;
float _Snow;
在片元着色器输出颜色之前进行判断:
if (dot(worldNormal, _SnowDir.xyz) > lerp(1, -1, _Snow))
{
color.rgb = _SnowColor.rgb;
}
return color;
就可以完成简单积雪效果了。通过控制_SnowDir的值从而控制积雪方向,即哪个方向上需要积雪。
Unity小林 发布了22 篇原创文章 · 获赞 0 · 访问量 373 私信 关注