Shader 製作乙個電流擴散效果

2022-08-01 11:45:10 字數 1661 閱讀 5795

<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...