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.

272 lines
4.9 KiB

  1. Shader "Hidden/SimpleMultiplyOpNode"
  2. {
  3. Properties
  4. {
  5. _A ("_A", 2D) = "white" {}
  6. _B ("_B", 2D) = "white" {}
  7. _C ("_C", 2D) = "white" {}
  8. _D ("_D", 2D) = "white" {}
  9. _E ("_E", 2D) = "white" {}
  10. _F ("_F", 2D) = "white" {}
  11. _G ("_G", 2D) = "white" {}
  12. _H ("_H", 2D) = "white" {}
  13. _I ("_I", 2D) = "white" {}
  14. _J ("_J", 2D) = "white" {}
  15. _Count ("_Count", Int) = 0
  16. }
  17. SubShader
  18. {
  19. Pass //2
  20. {
  21. CGPROGRAM
  22. #include "UnityCG.cginc"
  23. #pragma vertex vert_img
  24. #pragma fragment frag
  25. sampler2D _A;
  26. sampler2D _B;
  27. float4 frag( v2f_img i ) : SV_Target
  28. {
  29. float4 a = tex2D( _A, i.uv );
  30. float4 b = tex2D( _B, i.uv );
  31. return a * b;
  32. }
  33. ENDCG
  34. }
  35. Pass //3
  36. {
  37. CGPROGRAM
  38. #include "UnityCG.cginc"
  39. #pragma vertex vert_img
  40. #pragma fragment frag
  41. sampler2D _A;
  42. sampler2D _B;
  43. sampler2D _C;
  44. float4 frag( v2f_img i ) : SV_Target
  45. {
  46. float4 a = tex2D( _A, i.uv );
  47. float4 b = tex2D( _B, i.uv );
  48. float4 c = tex2D( _C, i.uv );
  49. return a * b * c;
  50. }
  51. ENDCG
  52. }
  53. Pass //4
  54. {
  55. CGPROGRAM
  56. #include "UnityCG.cginc"
  57. #pragma vertex vert_img
  58. #pragma fragment frag
  59. sampler2D _A;
  60. sampler2D _B;
  61. sampler2D _C;
  62. sampler2D _D;
  63. float4 frag( v2f_img i ) : SV_Target
  64. {
  65. float4 a = tex2D( _A, i.uv );
  66. float4 b = tex2D( _B, i.uv );
  67. float4 c = tex2D( _C, i.uv );
  68. float4 d = tex2D( _D, i.uv );
  69. return a * b * c * d;
  70. }
  71. ENDCG
  72. }
  73. Pass //5
  74. {
  75. CGPROGRAM
  76. #include "UnityCG.cginc"
  77. #pragma vertex vert_img
  78. #pragma fragment frag
  79. sampler2D _A;
  80. sampler2D _B;
  81. sampler2D _C;
  82. sampler2D _D;
  83. sampler2D _E;
  84. float4 frag( v2f_img i ) : SV_Target
  85. {
  86. float4 a = tex2D( _A, i.uv );
  87. float4 b = tex2D( _B, i.uv );
  88. float4 c = tex2D( _C, i.uv );
  89. float4 d = tex2D( _D, i.uv );
  90. float4 e = tex2D( _E, i.uv );
  91. return a * b * c * d * e;
  92. }
  93. ENDCG
  94. }
  95. Pass //6
  96. {
  97. CGPROGRAM
  98. #include "UnityCG.cginc"
  99. #pragma vertex vert_img
  100. #pragma fragment frag
  101. sampler2D _A;
  102. sampler2D _B;
  103. sampler2D _C;
  104. sampler2D _D;
  105. sampler2D _E;
  106. sampler2D _F;
  107. float4 frag( v2f_img i ) : SV_Target
  108. {
  109. float4 a = tex2D( _A, i.uv );
  110. float4 b = tex2D( _B, i.uv );
  111. float4 c = tex2D( _C, i.uv );
  112. float4 d = tex2D( _D, i.uv );
  113. float4 e = tex2D( _E, i.uv );
  114. float4 f = tex2D( _F, i.uv );
  115. return a * b * c * d * e * f;
  116. }
  117. ENDCG
  118. }
  119. Pass //7
  120. {
  121. CGPROGRAM
  122. #include "UnityCG.cginc"
  123. #pragma vertex vert_img
  124. #pragma fragment frag
  125. sampler2D _A;
  126. sampler2D _B;
  127. sampler2D _C;
  128. sampler2D _D;
  129. sampler2D _E;
  130. sampler2D _F;
  131. sampler2D _G;
  132. float4 frag( v2f_img i ) : SV_Target
  133. {
  134. float4 a = tex2D( _A, i.uv );
  135. float4 b = tex2D( _B, i.uv );
  136. float4 c = tex2D( _C, i.uv );
  137. float4 d = tex2D( _D, i.uv );
  138. float4 e = tex2D( _E, i.uv );
  139. float4 f = tex2D( _F, i.uv );
  140. float4 g = tex2D( _G, i.uv );
  141. return a * b * c * d * e * f * g;
  142. }
  143. ENDCG
  144. }
  145. Pass //8
  146. {
  147. CGPROGRAM
  148. #include "UnityCG.cginc"
  149. #pragma vertex vert_img
  150. #pragma fragment frag
  151. sampler2D _A;
  152. sampler2D _B;
  153. sampler2D _C;
  154. sampler2D _D;
  155. sampler2D _E;
  156. sampler2D _F;
  157. sampler2D _G;
  158. sampler2D _H;
  159. float4 frag( v2f_img i ) : SV_Target
  160. {
  161. float4 a = tex2D( _A, i.uv );
  162. float4 b = tex2D( _B, i.uv );
  163. float4 c = tex2D( _C, i.uv );
  164. float4 d = tex2D( _D, i.uv );
  165. float4 e = tex2D( _E, i.uv );
  166. float4 f = tex2D( _F, i.uv );
  167. float4 g = tex2D( _G, i.uv );
  168. float4 h = tex2D( _H, i.uv );
  169. return a * b * c * d * e * f * g * h;
  170. }
  171. ENDCG
  172. }
  173. Pass //9
  174. {
  175. CGPROGRAM
  176. #include "UnityCG.cginc"
  177. #pragma vertex vert_img
  178. #pragma fragment frag
  179. sampler2D _A;
  180. sampler2D _B;
  181. sampler2D _C;
  182. sampler2D _D;
  183. sampler2D _E;
  184. sampler2D _F;
  185. sampler2D _G;
  186. sampler2D _H;
  187. sampler2D _I;
  188. float4 frag( v2f_img i ) : SV_Target
  189. {
  190. float4 a = tex2D( _A, i.uv );
  191. float4 b = tex2D( _B, i.uv );
  192. float4 c = tex2D( _C, i.uv );
  193. float4 d = tex2D( _D, i.uv );
  194. float4 e = tex2D( _E, i.uv );
  195. float4 f = tex2D( _F, i.uv );
  196. float4 g = tex2D( _G, i.uv );
  197. float4 h = tex2D( _H, i.uv );
  198. float4 is = tex2D( _I, i.uv );
  199. return a * b * c * d * e * f * g * h * is;
  200. }
  201. ENDCG
  202. }
  203. Pass //10
  204. {
  205. CGPROGRAM
  206. #include "UnityCG.cginc"
  207. #pragma vertex vert_img
  208. #pragma fragment frag
  209. sampler2D _A;
  210. sampler2D _B;
  211. sampler2D _C;
  212. sampler2D _D;
  213. sampler2D _E;
  214. sampler2D _F;
  215. sampler2D _G;
  216. sampler2D _H;
  217. sampler2D _I;
  218. sampler2D _J;
  219. float4 frag( v2f_img i ) : SV_Target
  220. {
  221. float4 a = tex2D( _A, i.uv );
  222. float4 b = tex2D( _B, i.uv );
  223. float4 c = tex2D( _C, i.uv );
  224. float4 d = tex2D( _D, i.uv );
  225. float4 e = tex2D( _E, i.uv );
  226. float4 f = tex2D( _F, i.uv );
  227. float4 g = tex2D( _G, i.uv );
  228. float4 h = tex2D( _H, i.uv );
  229. float4 is = tex2D( _I, i.uv );
  230. float4 j = tex2D( _J, i.uv );
  231. return a * b * c * d * e * f * g * h * is * j;
  232. }
  233. ENDCG
  234. }
  235. }
  236. }