美术同事在做场景的时候经常会摆放一些好像阳光从树叶的缝隙中透下来的光照。
其实我以前做美术的时候这些东西一般使用粒子来做。这样动态能够更丰富。
但是新项目里我看他们都是用的一个模型面片。
既然这样,好吧~~
这个shader的主要作用是避免摄像机和模型面片的穿透效果
当摄像机离面片的距离变小的时候。特效面随着距离的远近做逐渐的透明变化。
最简单的GODRAY的shader如下:
v2f vert(appdata_full v)
{
v2f o;
float3 viewpos=mul(UNITY_MATRIX_MV, v.vertex);
float dist=length(viewpos);
float dis=staturate(dist-_near);
float pos=mul(UNITY_MATRIX_MVP,v.vertex);
o.uv=TRANSFORM_TEX(v.texcoord,_MainTex);
o.color=v.color;
o.color.a*=dis;
return o;
}
其中实现原理就是在绿色代码部分了。
不过现在这个shader就是简单实现 做项目能接受,也就够了。
实际上如果考虑效果的话还可以考虑加入衰减的曲线。