NewSurfaceShader.shader 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. Shader "Esfog/FilterBlack" {
  3. Properties{
  4. _MainTex("Base (RGB)", 2D) = "white" {}
  5. }
  6. SubShader
  7. {
  8. Tags { "RenderType" = "Opaque" }
  9. //LOD 200
  10. Cull Off
  11. ZWrite Off
  12. Blend SrcAlpha OneMinusSrcAlpha
  13. Pass
  14. {
  15. CGPROGRAM
  16. #pragma vertex vert
  17. #pragma fragment frag
  18. #include "UnityCG.cginc"
  19. uniform sampler2D _MainTex;
  20. struct VertexOutput
  21. {
  22. float4 pos:SV_POSITION;
  23. float4 uv:TEXCOORD0;
  24. };
  25. VertexOutput vert(float4 vertex:POSITION,float4 uv : TEXCOORD0)
  26. {
  27. VertexOutput o;
  28. o.pos = UnityObjectToClipPos(vertex);
  29. o.uv = uv;
  30. return o;
  31. }
  32. float4 frag(VertexOutput i) :COLOR
  33. {
  34. float4 col;
  35. col.rgba = tex2D(_MainTex,i.uv.xy);
  36. float r = col.r * 10;
  37. float g = col.g * 10;
  38. float b = col.b * 10;
  39. //col.a = 1;
  40. if (col.r <= 0.1&&col.g <= 0.1&&col.b <= 0.1 && (col.r + col.g + col.b) < 0.25)
  41. {
  42. col.a = (col.r + col.g + col.b);
  43. }
  44. 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)))
  45. {
  46. col.a = (col.r + col.g + col.b);
  47. if (col.r * 10 > 0.1)
  48. {
  49. col.r = col.r * 3;
  50. }
  51. if (col.b * 10 > 0.1)
  52. {
  53. col.b = col.b * 3;
  54. }
  55. if (col.g * 10 > 0.1)
  56. {
  57. col.g = col.g * 3;
  58. }
  59. }
  60. return col;
  61. }
  62. ENDCG
  63. }
  64. }
  65. FallBack "Diffuse"
  66. }