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.

84 lines
1.7 KiB

  1. Shader "Hidden/WeightedBlendNode"
  2. {
  3. Properties
  4. {
  5. _A ( "_Weights", 2D) = "white" {}
  6. _B ( "_Layer1", 2D) = "white" {}
  7. _C ( "_Layer2", 2D ) = "white" {}
  8. _D ( "_Layer3", 2D ) = "white" {}
  9. _E ( "_Layer4", 2D ) = "white" {}
  10. }
  11. SubShader
  12. {
  13. CGINCLUDE
  14. #include "UnityCG.cginc"
  15. #pragma vertex vert_img
  16. #pragma fragment frag
  17. sampler2D _A;
  18. sampler2D _B;
  19. ENDCG
  20. Pass
  21. {
  22. CGPROGRAM
  23. float4 frag(v2f_img i) : SV_Target
  24. {
  25. float4 Layer1 = tex2D( _B, i.uv );
  26. return Layer1;
  27. }
  28. ENDCG
  29. }
  30. Pass
  31. {
  32. CGPROGRAM
  33. sampler2D _C;
  34. float4 frag ( v2f_img i ) : SV_Target
  35. {
  36. float4 Weights = tex2D ( _A, i.uv );
  37. float4 Layer1 = tex2D ( _B, i.uv );
  38. float4 Layer2 = tex2D ( _C, i.uv );
  39. return ( Weights.x*Layer1 + Weights.y*Layer2 ) / ( Weights.x + Weights.y );
  40. }
  41. ENDCG
  42. }
  43. Pass
  44. {
  45. CGPROGRAM
  46. sampler2D _C;
  47. sampler2D _D;
  48. float4 frag ( v2f_img i ) : SV_Target
  49. {
  50. float4 Weights = tex2D( _A, i.uv );
  51. float4 Layer1 = tex2D( _B, i.uv );
  52. float4 Layer2 = tex2D( _C, i.uv );
  53. float4 Layer3 = tex2D( _D, i.uv );
  54. return ( Weights.x*Layer1 + Weights.y*Layer2 + Weights.z*Layer3 ) / ( Weights.x + Weights.y + Weights.z );
  55. }
  56. ENDCG
  57. }
  58. Pass
  59. {
  60. CGPROGRAM
  61. sampler2D _C;
  62. sampler2D _D;
  63. sampler2D _E;
  64. float4 frag ( v2f_img i ) : SV_Target
  65. {
  66. float4 Weights = tex2D ( _A, i.uv );
  67. float4 Layer1 = tex2D ( _B, i.uv );
  68. float4 Layer2 = tex2D ( _C, i.uv );
  69. float4 Layer3 = tex2D ( _D, i.uv );
  70. float4 Layer4 = tex2D ( _E, i.uv );
  71. return ( Weights.x*Layer1 + Weights.y*Layer2 + Weights.z*Layer3 + Weights.w*Layer4 ) / ( Weights.x + Weights.y + Weights.z + Weights.w );
  72. }
  73. ENDCG
  74. }
  75. }
  76. }