積雪效果是比較簡單的,只需要計算頂點法線方向和世界向上方向之間的點乘,將得到的值與預設的閥值比較,小於閥值為0,用這個值進行插值就ok了
**:
1 shader "view codemyshader/snowshader"//
紋理4 _snownum("
snow num
",range(-1,1))=0
//點乘閥值
5 _snowintensity("
snow intensity
",range(0,20))=1
//積雪強度
6 _snowcolor("
snow color
",color)=(1.0,1.0,1.0,1.0)//
積雪顏色7}
89subshader
12cgprogram
13#pragma vertex vert
14#pragma fragment frag
15 #include "
unitycg.cginc"16
17sampler2d _maintex;
18float4 _maintex_st;
19fixed
_snownum;
20fixed
_snowintensity;
21fixed4 _snowcolor;
2223
struct
a2v;
2829
struct
v2f;
3435
v2f vert(a2v v)
4243
fixed4 frag(v2f i):sv_target
53endcg54}
55}56 fallback "
diffuse
"57 }
效果圖:
調整這幾個值也可以做出其它效果,比如放置已久積滿灰塵的物體
UnityShader例項11 積雪材質
積雪材質是我自己給這個材質取的名字,既然是積雪,那顧名思義,雪是從天而降的,因此積雪都是在物體朝上的表面 不管你的模型怎麼擺放 雪都保證是積在物體朝上 在unity裡就是y軸正方向 的表面,如下圖所示 要保證向上的面有積雪,其實就是模型表面的法線方向與世界座標空間的y軸正方向保持一致積雪多,否則積雪...
UnityShader 螢幕空間全息掃瞄效果
前段時間剛玩 使命召喚11 的時候發現裡面新增了一種很高科技的掃瞄手榴彈,可以產生一圈類似全息效果的掃瞄圈,並顯示出牆後的敵人,類似這樣 最近打算實現乙個用在第三人稱中類似的效果,如下 實現方案 1.根據 cameradepthtexture計算螢幕空間畫素點的世界座標 2.將掃瞄發起位置的世界座標...
Unity shader實現頂點動畫波動效果
需要了解的背景知識 波動例項 y asin x 決定波形與x軸位置關係或橫向移動距離 左加右減 決定週期 最小正週期t 2 a 決定峰值 縱向拉伸壓縮的倍數 頂點著色器的主要計算 1.頂點位置 2.矩陣轉換 片段著色器 1.紋理定址 2.燈光作用 time表示時間週期 float4 t 20,t,t...