Guest User

Untitled

a guest
Jan 31st, 2025
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.47 KB | None | 0 0
  1. Group {
  2. name iDilate
  3. knobChanged "n = nuke.thisNode()\nk = nuke.thisKnob()\n\n\nif k.name() in ('dilatefilter', 'showPanel'):\n dilatefilter = n\['dilatefilter'].value()\n if dilatefilter == 'round_fine':\n n\['useGPU'].setVisible(True)\n n\['vect'].setVisible(True)\n\n else:\n n\['useGPU'].setVisible(False)\n n\['vect'].setVisible(False)"
  4. tile_color 0xdb5638ff
  5. label "\[value val_gain] | \[value divTB] slices"
  6. note_font_color 0x20202ff
  7. addUserKnob {20 Controls}
  8. addUserKnob {6 useGPU l "use GPU if available" t "\n\nWhen enabled, rendering occurs on the Local GPU specified, if available, rather than the CPU. \nNote: Enabling this option with no local GPU allows the script to run on the GPU whenever the script is opened on a machine that does have a GPU available. \nYou should also select this if you wish to render from the command line with the --gpu option.\n" +HIDDEN +STARTLINE}
  9. useGPU true
  10. addUserKnob {6 vect l "vectorize on CPU" t "\n\nWhen enabled, use SIMD instructions on the CPU where possible. \nNote: This is currently an experimental feature and vectorization might fail for some valid Blink kernels.\n" -STARTLINE +HIDDEN}
  11. vect true
  12. addUserKnob {14 val_gain l dilate/erode t "Erodes or dilates the edges of the alpha before the feather takes place." R -30 30}
  13. val_gain 50
  14. addUserKnob {4 dilatefilter l filter t "Selects the filter used for dialte/erode operation.\n\nbox_fine works like the normal box at integer values but uses a different calculation with fractions.\nround_fine utilizes BlinkScript, Kernel provided by Martin Kenzel." -STARTLINE M {box box_fine round_fine "" "" "" ""}}
  15. addUserKnob {3 divTB l slices t "INFO: sometimes, lower and somewhat obscure values work better than (much) larger ones. Play around to see what works best for your matte.\n\nSet the number of slices for the transition between completely black and white areas. More slices will compute much slower; you can try to increase \"blur transition\" to counter this."}
  16. divTB 28
  17. addUserKnob {7 blurDiv l "blur transition" t "Applies a blur to the transitioning slices; helps to reduce the number of slices." -STARTLINE R 0 10}
  18. blurDiv 5
  19. addUserKnob {26 sep03 l " " T " "}
  20. addUserKnob {6 unpre l (un)premult t "Unpremults the input before, and premults it again after all operations." +STARTLINE}
  21. addUserKnob {6 inv_mask l "invert mask" t "Invert the mask" +STARTLINE}
  22. addUserKnob {26 credit l INVISIBLE t "lp_iDilate v1.0\n(c)2024 lucas pfaff\nAdapted BlinkScript Kernel from Martin Kenzel.\nTechnique to iterate steps adapted from a Tutorial by Chris Fryer https://vimeo.com/630449134" +INVISIBLE T "lp_iDilate v1.0\n(c)2024 lucas pfaff\nAdapted BlinkScript Kernel from Martin Kenzel.\nTechnique to iterate steps adapted from a Tutorial by Chris Fryer https://vimeo.com/630449134"}
  23. }
  24. BackdropNode {
  25. inputs 0
  26. name BackdropNode1
  27. tile_color 0xaa55ffff
  28. label "erode dilate"
  29. note_font_size 42
  30. xpos 1486
  31. ypos -1176
  32. bdwidth 501
  33. bdheight 627
  34. }
  35. BackdropNode {
  36. inputs 0
  37. name BackdropNode2
  38. tile_color 0x4f2e1aff
  39. label "erode dilate"
  40. note_font_size 42
  41. xpos 373
  42. ypos -1171
  43. bdwidth 501
  44. bdheight 627
  45. }
  46. BackdropNode {
  47. inputs 0
  48. name BackdropNode3
  49. tile_color 0xb4aaffff
  50. label "round fine"
  51. note_font_size 42
  52. xpos 2037
  53. ypos -1174
  54. bdwidth 331
  55. bdheight 642
  56. }
  57. BackdropNode {
  58. inputs 0
  59. name BackdropNode6
  60. tile_color 0xaaaaff
  61. label "round fine"
  62. note_font_size 42
  63. xpos 924
  64. ypos -1169
  65. bdwidth 331
  66. bdheight 642
  67. }
  68. Input {
  69. inputs 0
  70. name mask
  71. xpos 1826
  72. ypos -421
  73. number 1
  74. }
  75. Invert {
  76. name Invert1
  77. xpos 1826
  78. ypos -367
  79. disable {{parent.inv_mask-1}}
  80. }
  81. Switch {
  82. which {{"\[exists parent.input1]?0:1"}}
  83. name Switch3
  84. xpos 1826
  85. ypos -298
  86. }
  87. Dot {
  88. name Dot1
  89. xpos 1860
  90. ypos -248
  91. }
  92. set N9626c400 [stack 0]
  93. Dot {
  94. name Dot36
  95. xpos 1860
  96. ypos 115
  97. }
  98. Input {
  99. inputs 0
  100. name img
  101. xpos 304
  102. ypos -1466
  103. }
  104. Dot {
  105. name Dot17
  106. xpos 338
  107. ypos -1372
  108. }
  109. set N91770800 [stack 0]
  110. Dot {
  111. name Dot18
  112. xpos 108
  113. ypos -1374
  114. }
  115. Dot {
  116. name Dot4
  117. xpos 108
  118. ypos 115
  119. }
  120. push $N9626c400
  121. Dot {
  122. name Dot25
  123. xpos 917
  124. ypos -248
  125. }
  126. Expression {
  127. channel0 {-rgba.red -rgba.green -rgba.blue none}
  128. channel1 {-rgba.red -rgba.green -rgba.blue none}
  129. channel2 {-rgba.red -rgba.green -rgba.blue none}
  130. expr3 "ceil(a*divTB)/divTB == ceil((frame%1)*divTB)/divTB"
  131. name Expression
  132. xpos 883
  133. ypos -208
  134. addUserKnob {20 controls}
  135. addUserKnob {3 divTB l divisions}
  136. divTB {{TimeBlur.divisions-1}}
  137. }
  138. Blur {
  139. channels alpha
  140. size {{blurDiv}}
  141. name Blur1
  142. label "\[value size]"
  143. xpos 883
  144. ypos -175
  145. }
  146. Dot {
  147. name Dot24
  148. xpos 917
  149. ypos -100
  150. }
  151. push $N91770800
  152. Dot {
  153. name Dot9
  154. xpos 338
  155. ypos -1309
  156. }
  157. set N91771000 [stack 0]
  158. Dot {
  159. name Dot52
  160. xpos 463
  161. ypos -1309
  162. }
  163. AddChannels {
  164. name AddChannels1
  165. xpos 429
  166. ypos -1284
  167. }
  168. Dot {
  169. name Dot22
  170. xpos 463
  171. ypos -1223
  172. }
  173. set N76fb3000 [stack 0]
  174. Dot {
  175. name Dot34
  176. xpos 463
  177. ypos -1089
  178. }
  179. set N91771c00 [stack 0]
  180. Dot {
  181. name Dot67
  182. xpos 968
  183. ypos -1089
  184. }
  185. Dot {
  186. name Dot32
  187. xpos 968
  188. ypos -1044
  189. }
  190. set Nbf1ca800 [stack 0]
  191. BlinkScript {
  192. recompileCount 1
  193. ProgramGroup 1
  194. KernelDescription "2 \"Erode\" iterate pixelWise f707855ab2dd5103d93d0d05019916ba452970f14fc65728d4e5f80ec9fe0092 2 \"src\" Read Random \"dst\" Write Point 2 \"size\" Int 1 AwAAAA== \"mix\" Float 1 AACAPw== 2 \"size\" 1 1 \"mix\" 1 1 0"
  195. kernelSource "float lengthSq(float2 vec)\n\{\n return dot(vec, vec);\n\}\n\nkernel Erode : public ImageComputationKernel<ePixelWise>\n\{\n Image<eRead, eAccessRandom, eEdgeClamped> src;\n Image<eWrite, eAccessPoint> dst;\n\n param:\n int size;\n float mix;\n\n void define() \n \{\n defineParam(size, \"size\", int(3));\n defineParam(mix, \"mix\", float(1.0f));\n \}\n\n void process(int2 pos) \n \{\n int s = abs(size);\n float4 c_max;\n float4 c_min;\n float4 c = src(pos.x, pos.y);\n\n for(int j = -s; j <= s; ++j)\n for(int i = -s; i <= s; ++i)\n \{\n float2 p_i = float2(i, j);\n float4 c_i = src(ceil(pos.x+p_i.x), ceil(pos.y+p_i.y));\n\n if(lengthSq(p_i) <= float(s*s)+1.0f)\n \{\n c_max = max(c, c_i);\n c_min = min(c, c_i); \n if(size >= 0)\n \{\n c = c_max;\n \}\n else\n \{\n c = c_min;\n \}\n \n \}\n \}\n dst() = c*mix + src(pos.x, pos.y)*(1-mix);\n \}\n\};"
  196. useGPUIfAvailable {{useGPU}}
  197. vectorize {{vect}}
  198. rebuild ""
  199. Erode_size {{"floor(dilatefilter > 0 ? floor((val_gain*-1) * TimeBlur.decimalFrameStepped) : (val_gain*-1) * TimeBlur.decimalFrameStepped)"}}
  200. rebuild_finalise ""
  201. name BlinkScript_mk
  202. xpos 934
  203. ypos -976
  204. }
  205. Dot {
  206. name Dot8
  207. xpos 968
  208. ypos -920
  209. }
  210. set Nbf1cb000 [stack 0]
  211. Dot {
  212. name Dot10
  213. xpos 1074
  214. ypos -920
  215. }
  216. set Nbf1cb400 [stack 0]
  217. push $Nbf1ca800
  218. Dot {
  219. name Dot33
  220. xpos 1180
  221. ypos -1044
  222. }
  223. BlinkScript {
  224. recompileCount 1
  225. ProgramGroup 1
  226. KernelDescription "2 \"Erode\" iterate pixelWise f707855ab2dd5103d93d0d05019916ba452970f14fc65728d4e5f80ec9fe0092 2 \"src\" Read Random \"dst\" Write Point 2 \"size\" Int 1 AwAAAA== \"mix\" Float 1 AACAPw== 2 \"size\" 1 1 \"mix\" 1 1 0"
  227. kernelSource "float lengthSq(float2 vec)\n\{\n return dot(vec, vec);\n\}\n\nkernel Erode : public ImageComputationKernel<ePixelWise>\n\{\n Image<eRead, eAccessRandom, eEdgeClamped> src;\n Image<eWrite, eAccessPoint> dst;\n\n param:\n int size;\n float mix;\n\n void define() \n \{\n defineParam(size, \"size\", int(3));\n defineParam(mix, \"mix\", float(1.0f));\n \}\n\n void process(int2 pos) \n \{\n int s = abs(size);\n float4 c_max;\n float4 c_min;\n float4 c = src(pos.x, pos.y);\n\n for(int j = -s; j <= s; ++j)\n for(int i = -s; i <= s; ++i)\n \{\n float2 p_i = float2(i, j);\n float4 c_i = src(ceil(pos.x+p_i.x), ceil(pos.y+p_i.y));\n\n if(lengthSq(p_i) <= float(s*s)+1.0f)\n \{\n c_max = max(c, c_i);\n c_min = min(c, c_i); \n if(size >= 0)\n \{\n c = c_max;\n \}\n else\n \{\n c = c_min;\n \}\n \n \}\n \}\n dst() = c*mix + src(pos.x, pos.y)*(1-mix);\n \}\n\};"
  228. useGPUIfAvailable {{BlinkScript_mk.useGPUIfAvailable}}
  229. vectorize {{BlinkScript_mk.vectorize}}
  230. rebuild ""
  231. Erode_size {{BlinkScript_mk.Erode_size+1}}
  232. rebuild_finalise ""
  233. name BlinkScript_mk1
  234. xpos 1146
  235. ypos -1000
  236. }
  237. Merge2 {
  238. inputs 2
  239. operation from
  240. name Merge3
  241. xpos 1146
  242. ypos -923
  243. }
  244. Dot {
  245. name Dot31
  246. xpos 1180
  247. ypos -865
  248. }
  249. push $Nbf1cb400
  250. Merge2 {
  251. inputs 2
  252. operation plus
  253. mix {{val_gain-floor(val_gain)}}
  254. name Merge6
  255. xpos 1040
  256. ypos -868
  257. }
  258. push $Nbf1cb000
  259. Switch {
  260. inputs 2
  261. which {{"(val_gain-floor(val_gain)) > 0 ? 1 : 0"}}
  262. name Switch7
  263. xpos 934
  264. ypos -868
  265. }
  266. Dot {
  267. name Dot68
  268. xpos 968
  269. ypos -577
  270. }
  271. push $N91771c00
  272. Dot {
  273. name Dot26
  274. xpos 463
  275. ypos -1015
  276. }
  277. set N88457c00 [stack 0]
  278. FilterErode {
  279. channels {-rgba.red -rgba.green -rgba.blue rgba.alpha}
  280. size {{"dilatefilter > 0 ? floor((val_gain*-1) * TimeBlur.decimalFrameStepped) : (val_gain*-1) * TimeBlur.decimalFrameStepped"} {"dilatefilter > 0 ? floor((val_gain*-1) * TimeBlur.decimalFrameStepped) : (val_gain*-1) * TimeBlur.decimalFrameStepped"}}
  281. name box
  282. knobChanged "channels = nuke.thisNode()\['channels'].toScript()\nnuke.toNode('Merge4')\['output'].setEnabled(False)\nnuke.toNode('Merge4')\['output'].setValue(channels)"
  283. xpos 429
  284. ypos -983
  285. }
  286. Dot {
  287. name Dot35
  288. xpos 463
  289. ypos -918
  290. }
  291. set N85556400 [stack 0]
  292. Dot {
  293. name Dot27
  294. xpos 514
  295. ypos -918
  296. }
  297. set N85556800 [stack 0]
  298. Dot {
  299. name Dot28
  300. xpos 620
  301. ypos -918
  302. }
  303. set N85556c00 [stack 0]
  304. push $N88457c00
  305. Dot {
  306. name Dot29
  307. xpos 726
  308. ypos -1015
  309. }
  310. FilterErode {
  311. channels {{{box.channels}}}
  312. size {{box.size-1} {box.size-1}}
  313. name box2
  314. xpos 692
  315. ypos -971
  316. }
  317. Merge2 {
  318. inputs 2
  319. operation from
  320. name Merge2
  321. xpos 692
  322. ypos -921
  323. }
  324. Dot {
  325. name Dot30
  326. xpos 726
  327. ypos -862
  328. }
  329. push $N85556c00
  330. Merge2 {
  331. inputs 2
  332. operation plus
  333. mix {{val_gain-floor(val_gain)}}
  334. name Merge5
  335. xpos 586
  336. ypos -865
  337. }
  338. push $N85556800
  339. Switch {
  340. inputs 2
  341. which {{"(val_gain-floor(val_gain)) > 0 ? 1 : 0"}}
  342. name Switch6
  343. xpos 480
  344. ypos -870
  345. }
  346. push $N85556400
  347. Switch {
  348. inputs 3
  349. which {{dilatefilter}}
  350. name Switch1
  351. xpos 429
  352. ypos -580
  353. }
  354. Merge2 {
  355. inputs 2
  356. operation mask
  357. name Merge1
  358. xpos 429
  359. ypos -103
  360. }
  361. TimeBlur {
  362. divisions {{divTB+1}}
  363. shutter 1
  364. shutteroffset start
  365. shuttercustomoffset 0
  366. name TimeBlur
  367. xpos 429
  368. ypos -73
  369. addUserKnob {20 controls}
  370. addUserKnob {7 decimalFrameStepped}
  371. decimalFrameStepped {{ceil((frame%1)*divisions)/divisions}}
  372. }
  373. Multiply {
  374. channels rgba
  375. value {{TimeBlur.divisions}}
  376. name Multiply1
  377. xpos 429
  378. ypos -37
  379. }
  380. Grade {
  381. channels alpha
  382. white_clamp true
  383. name Grade1
  384. label clamp
  385. xpos 429
  386. ypos -5
  387. }
  388. Dot {
  389. name Dot38
  390. xpos 463
  391. ypos 58
  392. }
  393. push $N76fb3000
  394. Dot {
  395. name Dot23
  396. xpos 1576
  397. ypos -1223
  398. }
  399. Dot {
  400. name Dot2
  401. xpos 1576
  402. ypos -1094
  403. }
  404. set Nd9cbb400 [stack 0]
  405. Dot {
  406. name Dot3
  407. xpos 2081
  408. ypos -1094
  409. }
  410. Dot {
  411. name Dot5
  412. xpos 2081
  413. ypos -1049
  414. }
  415. set Nd9cbac00 [stack 0]
  416. BlinkScript {
  417. recompileCount 1
  418. ProgramGroup 1
  419. KernelDescription "2 \"Erode\" iterate pixelWise f707855ab2dd5103d93d0d05019916ba452970f14fc65728d4e5f80ec9fe0092 2 \"src\" Read Random \"dst\" Write Point 2 \"size\" Int 1 AwAAAA== \"mix\" Float 1 AACAPw== 2 \"size\" 1 1 \"mix\" 1 1 0"
  420. kernelSource "float lengthSq(float2 vec)\n\{\n return dot(vec, vec);\n\}\n\nkernel Erode : public ImageComputationKernel<ePixelWise>\n\{\n Image<eRead, eAccessRandom, eEdgeClamped> src;\n Image<eWrite, eAccessPoint> dst;\n\n param:\n int size;\n float mix;\n\n void define() \n \{\n defineParam(size, \"size\", int(3));\n defineParam(mix, \"mix\", float(1.0f));\n \}\n\n void process(int2 pos) \n \{\n int s = abs(size);\n float4 c_max;\n float4 c_min;\n float4 c = src(pos.x, pos.y);\n\n for(int j = -s; j <= s; ++j)\n for(int i = -s; i <= s; ++i)\n \{\n float2 p_i = float2(i, j);\n float4 c_i = src(ceil(pos.x+p_i.x), ceil(pos.y+p_i.y));\n\n if(lengthSq(p_i) <= float(s*s)+1.0f)\n \{\n c_max = max(c, c_i);\n c_min = min(c, c_i); \n if(size >= 0)\n \{\n c = c_max;\n \}\n else\n \{\n c = c_min;\n \}\n \n \}\n \}\n dst() = c*mix + src(pos.x, pos.y)*(1-mix);\n \}\n\};"
  421. useGPUIfAvailable {{useGPU}}
  422. vectorize {{vect}}
  423. rebuild ""
  424. Erode_size {{"floor(dilatefilter > 0 ? floor((val_gain*-1) * TimeBlur.decimalFrameStepped) : (val_gain*-1) * TimeBlur.decimalFrameStepped)"}}
  425. rebuild_finalise ""
  426. name BlinkScript_mk2
  427. xpos 2047
  428. ypos -981
  429. }
  430. Dot {
  431. name Dot6
  432. xpos 2081
  433. ypos -925
  434. }
  435. set Nd9cba400 [stack 0]
  436. Dot {
  437. name Dot7
  438. xpos 2187
  439. ypos -925
  440. }
  441. set Ncdef6000 [stack 0]
  442. push $Nd9cbac00
  443. Dot {
  444. name Dot11
  445. xpos 2293
  446. ypos -1049
  447. }
  448. BlinkScript {
  449. recompileCount 1
  450. ProgramGroup 1
  451. KernelDescription "2 \"Erode\" iterate pixelWise f707855ab2dd5103d93d0d05019916ba452970f14fc65728d4e5f80ec9fe0092 2 \"src\" Read Random \"dst\" Write Point 2 \"size\" Int 1 AwAAAA== \"mix\" Float 1 AACAPw== 2 \"size\" 1 1 \"mix\" 1 1 0"
  452. kernelSource "float lengthSq(float2 vec)\n\{\n return dot(vec, vec);\n\}\n\nkernel Erode : public ImageComputationKernel<ePixelWise>\n\{\n Image<eRead, eAccessRandom, eEdgeClamped> src;\n Image<eWrite, eAccessPoint> dst;\n\n param:\n int size;\n float mix;\n\n void define() \n \{\n defineParam(size, \"size\", int(3));\n defineParam(mix, \"mix\", float(1.0f));\n \}\n\n void process(int2 pos) \n \{\n int s = abs(size);\n float4 c_max;\n float4 c_min;\n float4 c = src(pos.x, pos.y);\n\n for(int j = -s; j <= s; ++j)\n for(int i = -s; i <= s; ++i)\n \{\n float2 p_i = float2(i, j);\n float4 c_i = src(ceil(pos.x+p_i.x), ceil(pos.y+p_i.y));\n\n if(lengthSq(p_i) <= float(s*s)+1.0f)\n \{\n c_max = max(c, c_i);\n c_min = min(c, c_i); \n if(size >= 0)\n \{\n c = c_max;\n \}\n else\n \{\n c = c_min;\n \}\n \n \}\n \}\n dst() = c*mix + src(pos.x, pos.y)*(1-mix);\n \}\n\};"
  453. useGPUIfAvailable {{BlinkScript_mk2.useGPUIfAvailable}}
  454. vectorize {{BlinkScript_mk2.vectorize}}
  455. rebuild ""
  456. Erode_size {{BlinkScript_mk2.Erode_size+1}}
  457. rebuild_finalise ""
  458. name BlinkScript_mk3
  459. xpos 2259
  460. ypos -1005
  461. }
  462. Merge2 {
  463. inputs 2
  464. operation from
  465. output {-rgba.red -rgba.green -rgba.blue rgba.alpha}
  466. name Merge4
  467. xpos 2259
  468. ypos -928
  469. }
  470. Dot {
  471. name Dot12
  472. xpos 2293
  473. ypos -870
  474. }
  475. push $Ncdef6000
  476. Merge2 {
  477. inputs 2
  478. operation plus
  479. mix {{val_gain-floor(val_gain)}}
  480. name Merge7
  481. xpos 2153
  482. ypos -873
  483. }
  484. push $Nd9cba400
  485. Switch {
  486. inputs 2
  487. which {{"(val_gain-floor(val_gain)) > 0 ? 1 : 0"}}
  488. name Switch2
  489. xpos 2047
  490. ypos -873
  491. }
  492. Dot {
  493. name Dot13
  494. xpos 2081
  495. ypos -582
  496. }
  497. push $Nd9cbb400
  498. Dot {
  499. name Dot14
  500. xpos 1576
  501. ypos -1020
  502. }
  503. set Nb2d20000 [stack 0]
  504. FilterErode {
  505. channels {-rgba.red -rgba.green -rgba.blue rgba.alpha}
  506. size {{"dilatefilter > 0 ? floor((val_gain*-1) * TimeBlur.decimalFrameStepped) : (val_gain*-1) * TimeBlur.decimalFrameStepped"} {"dilatefilter > 0 ? floor((val_gain*-1) * TimeBlur.decimalFrameStepped) : (val_gain*-1) * TimeBlur.decimalFrameStepped"}}
  507. name box1
  508. knobChanged "channels = nuke.thisNode()\['channels'].toScript()\nnuke.toNode('Merge4')\['output'].setEnabled(False)\nnuke.toNode('Merge4')\['output'].setValue(channels)"
  509. xpos 1542
  510. ypos -988
  511. }
  512. Dot {
  513. name Dot15
  514. xpos 1576
  515. ypos -923
  516. }
  517. set Nb2d20800 [stack 0]
  518. Dot {
  519. name Dot16
  520. xpos 1627
  521. ypos -923
  522. }
  523. set Nb2d20c00 [stack 0]
  524. Dot {
  525. name Dot19
  526. xpos 1733
  527. ypos -923
  528. }
  529. set Nb2d21000 [stack 0]
  530. push $Nb2d20000
  531. Dot {
  532. name Dot20
  533. xpos 1839
  534. ypos -1020
  535. }
  536. FilterErode {
  537. channels {{{box.channels}}}
  538. size {{box1.size-1} {box1.size-1}}
  539. name box3
  540. xpos 1805
  541. ypos -976
  542. }
  543. Merge2 {
  544. inputs 2
  545. operation from
  546. name Merge8
  547. xpos 1805
  548. ypos -926
  549. }
  550. Dot {
  551. name Dot21
  552. xpos 1839
  553. ypos -867
  554. }
  555. push $Nb2d21000
  556. Merge2 {
  557. inputs 2
  558. operation plus
  559. mix {{val_gain-floor(val_gain)}}
  560. name Merge9
  561. xpos 1699
  562. ypos -870
  563. }
  564. push $Nb2d20c00
  565. Switch {
  566. inputs 2
  567. which {{"(val_gain-floor(val_gain)) > 0 ? 1 : 0"}}
  568. name Switch4
  569. xpos 1593
  570. ypos -875
  571. }
  572. push $Nb2d20800
  573. Switch {
  574. inputs 3
  575. which {{dilatefilter}}
  576. name Switch5
  577. xpos 1542
  578. ypos -585
  579. }
  580. Dot {
  581. name Dot37
  582. xpos 1576
  583. ypos -478
  584. }
  585. push $N91771000
  586. Copy {
  587. inputs 2
  588. from0 rgba.alpha
  589. to0 rgba.alpha
  590. name Copy1
  591. xpos 304
  592. ypos -487
  593. disable {{"divTB == 0 ? 0 : 1"}}
  594. }
  595. Copy {
  596. inputs 2
  597. from0 rgba.alpha
  598. to0 rgba.alpha
  599. name Copy4
  600. xpos 304
  601. ypos 49
  602. disable {{"divTB > 0 ? 0 : 1"}}
  603. }
  604. Keymix {
  605. inputs 3
  606. name Keymix1
  607. xpos 304
  608. ypos 106
  609. disable {{"divTB == 0 ? 0 : 1"}}
  610. }
  611. Output {
  612. name Output1
  613. xpos 304
  614. ypos 402
  615. }
  616. end_group
  617.  
Advertisement
Add Comment
Please, Sign In to add comment