ShapeOutline.shader 824 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. Shader "Hidden/FLOW/ShapeOutline"
  2. {
  3. Properties
  4. {
  5. }
  6. SubShader
  7. {
  8. Cull Off
  9. Pass
  10. {
  11. CGPROGRAM
  12. #pragma vertex Vert
  13. #pragma fragment Frag
  14. #include "UnityCG.cginc"
  15. struct appdata
  16. {
  17. float4 vertex : POSITION;
  18. float2 uv : TEXCOORD0;
  19. };
  20. struct v2f
  21. {
  22. float2 uv : TEXCOORD0;
  23. float4 vertex : SV_POSITION;
  24. };
  25. sampler2D _FlowShapeTex;
  26. float4 _FlowShapeChannel;
  27. void Vert (in appdata i, out v2f o)
  28. {
  29. o.vertex = UnityObjectToClipPos(i.vertex);
  30. o.uv = i.uv;
  31. }
  32. fixed4 Frag (v2f i) : SV_Target
  33. {
  34. float shape = dot(tex2D(_FlowShapeTex, i.uv), _FlowShapeChannel);
  35. float side = shape + abs(ddx(shape)) + abs(ddy(shape));
  36. if (shape >= 0.5f || side < 0.5f)
  37. {
  38. discard;
  39. }
  40. return 1.0f;
  41. }
  42. ENDCG
  43. }
  44. }
  45. }