<1>效果圖:需要製作一下(那個lol選大區不是有個電流擴散的效果嗎)
思路:從圓心開始擴散,圓半徑隨時間遞增,uv座標大於半徑剔除,小於半徑alpha衰減
**:float2 uv = in.texcoord.xy;
fixed4 col = in.color;
//從圓心擴散
float radius = sin(_time.z / 2 % pi);//值域0-1-0
//float radius = _time.y/4%0.5;
float2 nor = float2(0.5, 0.5) - uv;
float len = length(nor);//計算向量模長
float dis = len - radius;
//擴散到uv座標外面時 越小alpha越小 [0,-0.5]
if (dis < 0)
col.a = 0.5+dis;
if (col.a > 0)
col.a += 0.2;
if (dis > 0)
col.a = 0;
clip(col.a - 0.01);
原始碼:shader "tang/uiflash"
_color("tint", color) = (1,1,1,1)
_stencilcomp("stencil comparison", float) = 8
_stencil("stencil id", float) = 0
_stencilop("stencil operation", float) = 0
_stencilwritemask("stencil write mask", float) = 255
_stencilreadmask("stencil read mask", float) = 255
_colormask("color mask", float) = 15
//my member
[toggle(unity_ui_alphaclip)] _useuialphaclip("use alpha clip", float) = 0
}subshader
stencil
cull off
lighting off
zwrite off
ztest[unity_guiztestmode]
blend srcalpha oneminussrcalpha
colormask[_colormask]
pass
;fixed4 _color;
fixed4 _texturesampleadd;
float4 _cliprect;
out.texcoord = in.texcoord;
out.color = in.color * _color;
return out;
}sampler2d _maintex;
fixed4 frag(v2f in) : sv_target
endcg}}
}---------------------------------分割線-----------------------------------
第乙個Shader程式
fx檔案 1 float4x4 matworld 2float time 1.0f 3 4struct vs output5 910vs output vs float4 pos position,float4 color color 1119 20float4 ps vs output vsout...
3乙個簡單的Shader
乙個簡單的unityshader看起來是這樣 cg 段 由cgprogram與endcg包圍起來 編譯指令這裡的用來告訴unity,什麼是頂點著色器,什麼是片元著色器 pragma vertex 頂點著色器函式名 pragma fragment 片元著色器的函式名 在呼叫drawcall的時候,me...
寫的第乙個Shader
第乙個茶壺是可以運動的紋理,用時間的正弦值和余弦值加在紋理座標上產生偏移實現的,可以考慮用來實現水面的各種效果 第二個茶壺是顏色和紋理的混合,多層紋理的混合應該也是同樣的道理,就是把顏色值相乘就可以了 anipass float4x4 matviewprojection float fsintime...