You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
973 B

  1. Shader "Hidden/ComponentMaskNode"
  2. {
  3. Properties
  4. {
  5. _A ("_A", 2D) = "white" {}
  6. }
  7. SubShader
  8. {
  9. Pass
  10. {
  11. CGPROGRAM
  12. #include "UnityCG.cginc"
  13. #pragma vertex vert_img
  14. #pragma fragment frag
  15. sampler2D _A;
  16. float _Singular;
  17. float4 _Order;
  18. float4 frag( v2f_img i ) : SV_Target
  19. {
  20. float4 a = tex2D( _A, i.uv );
  21. float4 r = 0;
  22. if(_Singular == 0)
  23. r = a.x;
  24. else if(_Singular == 1)
  25. r = a.y;
  26. else if(_Singular == 2)
  27. r = a.z;
  28. else if(_Singular == 3)
  29. r = a.w;
  30. if ( _Order.x == 0 )
  31. r.x = a.x;
  32. else if(_Order.y == 0)
  33. r.x = a.y;
  34. else if(_Order.z == 0)
  35. r.x = a.z;
  36. else if(_Order.w == 0)
  37. r.x = a.w;
  38. if(_Order.y == 1)
  39. r.y = a.y;
  40. else if(_Order.z == 1)
  41. r.y = a.z;
  42. else if(_Order.w == 1)
  43. r.y = a.w;
  44. if(_Order.z == 2)
  45. r.z = a.z;
  46. else if(_Order.w == 2)
  47. r.z = a.w;
  48. if(_Order.w == 3)
  49. r.w = a.w;
  50. return r;
  51. }
  52. ENDCG
  53. }
  54. }
  55. }