Preview_WeightedBlendNode.shader 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. #include "Preview.cginc"
  16. #pragma vertex vert_img
  17. #pragma fragment frag
  18. sampler2D _A;
  19. sampler2D _B;
  20. ENDCG
  21. Pass
  22. {
  23. CGPROGRAM
  24. float4 frag(v2f_img i) : SV_Target
  25. {
  26. float4 Layer1 = tex2D( _B, i.uv );
  27. return Layer1;
  28. }
  29. ENDCG
  30. }
  31. Pass
  32. {
  33. CGPROGRAM
  34. sampler2D _C;
  35. float4 frag ( v2f_img i ) : SV_Target
  36. {
  37. float4 Weights = tex2D ( _A, i.uv );
  38. float4 Layer1 = tex2D ( _B, i.uv );
  39. float4 Layer2 = tex2D ( _C, i.uv );
  40. return ( Weights.x*Layer1 + Weights.y*Layer2 ) / ( Weights.x + Weights.y );
  41. }
  42. ENDCG
  43. }
  44. Pass
  45. {
  46. CGPROGRAM
  47. sampler2D _C;
  48. sampler2D _D;
  49. float4 frag ( v2f_img i ) : SV_Target
  50. {
  51. float4 Weights = tex2D( _A, i.uv );
  52. float4 Layer1 = tex2D( _B, i.uv );
  53. float4 Layer2 = tex2D( _C, i.uv );
  54. float4 Layer3 = tex2D( _D, i.uv );
  55. return ( Weights.x*Layer1 + Weights.y*Layer2 + Weights.z*Layer3 ) / ( Weights.x + Weights.y + Weights.z );
  56. }
  57. ENDCG
  58. }
  59. Pass
  60. {
  61. CGPROGRAM
  62. sampler2D _C;
  63. sampler2D _D;
  64. sampler2D _E;
  65. float4 frag ( v2f_img i ) : SV_Target
  66. {
  67. float4 Weights = tex2D ( _A, i.uv );
  68. float4 Layer1 = tex2D ( _B, i.uv );
  69. float4 Layer2 = tex2D ( _C, i.uv );
  70. float4 Layer3 = tex2D ( _D, i.uv );
  71. float4 Layer4 = tex2D ( _E, i.uv );
  72. return ( Weights.x*Layer1 + Weights.y*Layer2 + Weights.z*Layer3 + Weights.w*Layer4 ) / ( Weights.x + Weights.y + Weights.z + Weights.w );
  73. }
  74. ENDCG
  75. }
  76. }
  77. }