diff options
| author | Alee <Alee14498@gmail.com> | 2019-06-09 13:18:33 -0400 |
|---|---|---|
| committer | Alee <Alee14498@gmail.com> | 2019-06-09 13:18:33 -0400 |
| commit | 9ef63b49ccc6636d8c1bb5f1e04a2f22587d5487 (patch) | |
| tree | 208a2e51d7723694fd2b411583fe858e511c3b1a /Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader | |
| parent | 902b1f4e758d85fe5c30a316acf0366ed6bcb297 (diff) | |
| download | Unicity-9ef63b49ccc6636d8c1bb5f1e04a2f22587d5487.tar.gz Unicity-9ef63b49ccc6636d8c1bb5f1e04a2f22587d5487.tar.bz2 Unicity-9ef63b49ccc6636d8c1bb5f1e04a2f22587d5487.zip | |
Added Graphy
Diffstat (limited to 'Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader')
| -rw-r--r-- | Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader b/Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader new file mode 100644 index 0000000..9a3779d --- /dev/null +++ b/Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader @@ -0,0 +1,184 @@ +Shader "Graphy/Graph Standard" +{ + Properties + { + [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {} + _Color("Tint", Color) = (1,1,1,1) + [MaterialToggle] PixelSnap("Pixel snap", Float) = 0 + + _GoodColor("Good Color", Color) = (1,1,1,1) + _CautionColor("Caution Color", Color) = (1,1,1,1) + _CriticalColor("Critical Color", Color) = (1,1,1,1) + + _GoodThreshold("Good Threshold", Float) = 0.5 + _CautionThreshold("Caution Threshold", Float) = 0.25 + } + + SubShader + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Cull Off + Lighting Off + ZWrite Off + ZTest Off + Blend One OneMinusSrcAlpha + + Pass + { + Name "Default" + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile _ PIXELSNAP_ON + + #include "UnityCG.cginc" + + struct appdata_t + { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + float2 texcoord : TEXCOORD0; + }; + + fixed4 _Color; + + v2f vert(appdata_t IN) + { + v2f OUT; + OUT.vertex = UnityObjectToClipPos(IN.vertex); + OUT.texcoord = IN.texcoord; + OUT.color = IN.color * _Color; + #ifdef PIXELSNAP_ON + OUT.vertex = UnityPixelSnap(OUT.vertex); + #endif + + return OUT; + } + + sampler2D _MainTex; + sampler2D _AlphaTex; + float _AlphaSplitEnabled; + + fixed4 SampleSpriteTexture(float2 uv) + { + fixed4 color = tex2D(_MainTex, uv); + + #if UNITY_TEXTURE_ALPHASPLIT_ALLOWED + if (_AlphaSplitEnabled) + color.a = tex2D(_AlphaTex, uv).r; + #endif //UNITY_TEXTURE_ALPHASPLIT_ALLOWED + + return color; + } + + fixed4 _GoodColor; + fixed4 _CautionColor; + fixed4 _CriticalColor; + + fixed _GoodThreshold; + fixed _CautionThreshold; + + uniform float Average; + + // NOTE: The size of this array can break compatibility with some older GPUs + // If you see a pink box or that the graphs are not working, try lowering this value + // or using the GraphMobile.shader + + uniform float GraphValues[512]; + + uniform float GraphValues_Length; + + fixed4 frag(v2f IN) : SV_Target + { + fixed4 color = IN.color; + + fixed xCoord = IN.texcoord.x; + fixed yCoord = IN.texcoord.y; + + float graphValue = GraphValues[floor(xCoord * GraphValues_Length)]; + + // Define the width of each element of the graph + float increment = 1.0f / (GraphValues_Length - 1); + + // Assign the corresponding color + if (graphValue > _GoodThreshold) + { + color *= _GoodColor; + } + else if (graphValue > _CautionThreshold) + { + color *= _CautionColor; + } + else + { + color *= _CriticalColor; + } + + // Point coloring + if (graphValue - yCoord > increment * 4) + { + //color.a = yCoord * graphValue * 0.3; + color.a *= yCoord * 0.3 / graphValue; + } + + // Set as transparent the part on top of the current point value + if (yCoord > graphValue) + { + color.a = 0; + } + + // Average white bar + if (yCoord < Average && yCoord > Average - 0.02) + { + color = fixed4(1, 1, 1, 1); + } + + // CautionColor bar + if (yCoord < _CautionThreshold && yCoord > _CautionThreshold - 0.02) + { + color = _CautionColor; + } + + // GoodColor bar + if (yCoord < _GoodThreshold && yCoord > _GoodThreshold - 0.02) + { + color = _GoodColor; + } + + // Fade the alpha of the sides of the graph + if (xCoord < 0.03) + { + color.a *= 1 - (0.03 - xCoord) / 0.03; + } + else if (xCoord > 0.97) + { + color.a *= (1 - xCoord) / 0.03; + } + + fixed4 c = SampleSpriteTexture(IN.texcoord) * color; + + c.rgb *= c.a; + + return c; + } + + ENDCG + } + } +}
\ No newline at end of file |
