12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
- Shader "Esfog/FilterBlack" {
- Properties{
- _MainTex("Base (RGB)", 2D) = "white" {}
- }
- SubShader
- {
- Tags { "RenderType" = "Opaque" }
- //LOD 200
- Cull Off
- ZWrite Off
- Blend SrcAlpha OneMinusSrcAlpha
- Pass
- {
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #include "UnityCG.cginc"
- uniform sampler2D _MainTex;
- struct VertexOutput
- {
- float4 pos:SV_POSITION;
- float4 uv:TEXCOORD0;
- };
- VertexOutput vert(float4 vertex:POSITION,float4 uv : TEXCOORD0)
- {
- VertexOutput o;
- o.pos = UnityObjectToClipPos(vertex);
- o.uv = uv;
- return o;
- }
- float4 frag(VertexOutput i) :COLOR
- {
- float4 col;
- col.rgba = tex2D(_MainTex,i.uv.xy);
- float r = col.r * 10;
- float g = col.g * 10;
- float b = col.b * 10;
- //col.a = 1;
- if (col.r <= 0.1&&col.g <= 0.1&&col.b <= 0.1 && (col.r + col.g + col.b) < 0.25)
- {
- col.a = (col.r + col.g + col.b);
- }
- else if (((r + g + b) < 3 && (col.r < 0.02 || col.g < 0.02 || col.b < 0.02)) && (((r - g) <= -0.15 || (r - g) >= 0.15) || ((r - b) >= 0.15 || (r - b) <= -0.15)))
- {
- col.a = (col.r + col.g + col.b);
- if (col.r * 10 > 0.1)
- {
- col.r = col.r * 3;
- }
- if (col.b * 10 > 0.1)
- {
- col.b = col.b * 3;
- }
- if (col.g * 10 > 0.1)
- {
- col.g = col.g * 3;
- }
- }
- return col;
- }
- ENDCG
- }
- }
- FallBack "Diffuse"
- }
|