Unity Shader for a Scanlines Effect
Here’s a great shader I found for giving a material scanlines. It creates a very cool retro tv effect. Forgive me I don’t have a source link, I couldn’t find it again. So a special thanks to whoever did write it, if you’re out there, leave a comment or if anyone finds the original link, it was part of a Unity Answers thread, post a comment. Anyway, here’s the shader, use it, enjoy!
Shader "Custom/Scanlines" {
Properties {
_Color("Color", Color) = (0,0,0,1)
_LinesSize("LinesSize", Range(1,10)) = 1
}
SubShader {
Tags {"IgnoreProjector" = "True" "Queue" = "Overlay"}
Fog { Mode Off }
Pass {
ZTest Always
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
fixed4 _Color; half _LinesSize;
struct v2f {
half4 pos:POSITION;
fixed4 sPos:TEXCOORD;
};
v2f vert(appdata_base v) {
v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
o.sPos = ComputeScreenPos(o.pos);
return o;
}
fixed4 frag(v2f i) : COLOR {
fixed p = i.sPos.y / i.sPos.w;
if((int)(p*_ScreenParams.y/floor(_LinesSize))%2==0) discard;
return _Color;
}
ENDCG
}
}
}
@chrs944
Beautiful writeup!Thanks for sharing.
You're welcome, god you like it.