您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“OpenGL Shader如何實現等待標識效果”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“OpenGL Shader如何實現等待標識效果”這篇文章吧。
結果如下:
代碼:
Shader "stalendp/waitIcons" { CGINCLUDE #include "UnityCG.cginc" #pragma target 3.0 struct v2f { float4 pos:SV_POSITION; float2 uv : TEXCOORD0; }; v2f vert(appdata_base v) { v2f o; o.pos = mul (UNITY_MATRIX_MVP, v.vertex); o.uv = v.texcoord.xy; return o; } fixed calcDot(fixed a, fixed ca, fixed2 uv) { a /= 57.295779513; ca /= 57.295779513; fixed tt = 180/57.295779513; uv = (fixed2(cos(a), sin(a)) * 0.2+ uv)*10; fixed adit = tt*2*step(tt, a-ca); fixed r = 1-step(ca + adit, a); r *= lerp(0.2, -1, saturate((ca-a+adit)/25))*2; return smoothstep(r-0.2, r, length(uv.xy)); } fixed4 frag(v2f input) : COLOR0 { float2 uv = input.uv.xy - float2(0.5); float rx = fmod(uv.x, 0.4); float ry = fmod(uv.y, 0.4); float mx = step(0.4, abs(uv.x)); float my = step(0.4, abs(uv.y)); float alpha = 1- mx*my*step(0.1, length(half2(rx,ry))); alpha*=0.9; fixed4 foreColor = fixed4(1); fixed4 bgColor = fixed4(fixed3(0.4),alpha); fixed4 result = bgColor; fixed ca = fmod(_Time.y, 2)*180; bgColor = lerp(foreColor, bgColor, calcDot(0, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(30, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(60, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(90, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(120, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(150, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(180, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(210, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(240, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(270, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(300, ca, uv)); bgColor = lerp(foreColor, bgColor, calcDot(330, ca, uv)); return bgColor; } ENDCG SubShader { LOD 200 Tags {"Queue" = "Transparent"} ZWrite Off Blend SrcAlpha OneMinusSrcAlpha Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma fragmentoption ARB_precision_hint_fastest ENDCG } } FallBack Off }
以上是“OpenGL Shader如何實現等待標識效果”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。