美術同僚在做場景的時候經常會擺放一些好像陽光從樹葉的縫隙中透下來的光照。
其實我以前做美術的時候這些東西一般使用粒子來做。這樣動态能夠更豐富。
但是新項目裡我看他們都是用的一個模型面片。
既然這樣,好吧~~
這個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就是簡單實作 做項目能接受,也就夠了。
實際上如果考慮效果的話還可以考慮加入衰減的曲線。