No Description
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.

VectorExtendEdge.gimmick 30KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013
  1. set cut_paste_input [stack 0]
  2. version 8.0 v6
  3. push $cut_paste_input
  4. Group {
  5. name VectorExtendEdge_Group
  6. help "Push rgb pixels outwards using vectors generated perpedicular to a control matte edge."
  7. selected true
  8. xpos 218
  9. ypos 39
  10. addUserKnob {20 User}
  11. addUserKnob {4 premult l "input is" M {premultiplied unpremultiplied}}
  12. addUserKnob {41 from0 l "control matte channel" T Copy4.from0}
  13. addUserKnob {7 preblur l "pre-blur control matte" t "Blurring the control matte by a moderate amount will increase the width of the extended edge border and help with blending together the slices." R 0 10}
  14. preblur 1
  15. addUserKnob {26 ""}
  16. addUserKnob {3 slices l "vector blur slices" t "The number of iterations of the vector blur operation, up to 10."}
  17. slices 5
  18. addUserKnob {7 preblur_vector l "preblur vector" t "Blur the vector a bit before it's used to extend the rgb pixels. Can help with blending and will also extend the edge further." R 0 10}
  19. preblur_vector 1
  20. addUserKnob {7 vector_length l "vector length" t "The length of the vector blur operation per slice. Best to avoid making this too high because it can slow things down when multiplied by the number of slices." R 1 10}
  21. vector_length 3
  22. addUserKnob {26 ""}
  23. addUserKnob {4 output t "The default output is the rgb. The vector output options are just for checking what's going on under the hood. The \"-1 to 1\" range is the \"native\" format while the \"0 to 1\" range compresses the vectors so that negative values can be visualised." M {"extended rgb" "vectors (-1 to 1 range)" "vectors (0 to 1 range)" ""}}
  24. }
  25. Input {
  26. inputs 0
  27. name ctrl_matte
  28. xpos 1122
  29. ypos 457
  30. number 1
  31. }
  32. Input {
  33. inputs 0
  34. name img
  35. xpos 840
  36. ypos 457
  37. }
  38. Dot {
  39. name Dot2
  40. xpos 874
  41. ypos 570
  42. }
  43. set N2f6008d0 [stack 0]
  44. Unpremult {
  45. name Unpremult11
  46. xpos 965
  47. ypos 566
  48. disable {{parent.premult i}}
  49. }
  50. Copy {
  51. inputs 2
  52. from0 rgba.alpha
  53. to0 rgba.alpha
  54. name Copy4
  55. xpos 1122
  56. ypos 559
  57. disable {{"!\[exists parent.input1]" i}}
  58. }
  59. Blur {
  60. channels alpha
  61. size {{parent.preblur i}}
  62. name Blur12
  63. label "pre-blur alpha"
  64. xpos 1122
  65. ypos 648
  66. }
  67. set N2f601320 [stack 0]
  68. push $N2f601320
  69. push $N2f601320
  70. push $N2f601320
  71. Group {
  72. inputs 2
  73. name ExtendEdge
  74. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  75. xpos 1325
  76. ypos 662
  77. addUserKnob {20 Controls}
  78. addUserKnob {7 preblurVector R 0 10}
  79. preblurVector {{parent.preblur_vector i}}
  80. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  81. }
  82. Input {
  83. inputs 0
  84. name Input
  85. xpos 556
  86. ypos -426
  87. }
  88. set N2f601690 [stack 0]
  89. Dot {
  90. name Dot1
  91. xpos 707
  92. ypos -414
  93. }
  94. Dot {
  95. name Dot2
  96. xpos 707
  97. ypos -121
  98. }
  99. Input {
  100. inputs 0
  101. name matte
  102. xpos 440
  103. ypos -424
  104. number 1
  105. }
  106. Shuffle {
  107. red alpha
  108. green alpha
  109. blue alpha
  110. alpha black
  111. name Shuffle3
  112. xpos 440
  113. ypos -346
  114. }
  115. Group {
  116. name Edge2Vec2
  117. xpos 440
  118. ypos -322
  119. }
  120. Input {
  121. inputs 0
  122. name Input1
  123. xpos -172
  124. ypos -315
  125. }
  126. Clamp {
  127. channels rgb
  128. name Clamp1
  129. xpos -172
  130. ypos -250
  131. }
  132. set N2f602b30 [stack 0]
  133. Position {
  134. translate {0 1}
  135. name Position2
  136. xpos -63
  137. ypos -106
  138. }
  139. push $N2f602b30
  140. Merge2 {
  141. inputs 2
  142. operation minus
  143. name Merge2
  144. xpos -103
  145. ypos -28
  146. }
  147. push $N2f602b30
  148. Position {
  149. translate {1 0}
  150. name Position1
  151. xpos -285
  152. ypos -98
  153. }
  154. push $N2f602b30
  155. Merge2 {
  156. inputs 2
  157. operation minus
  158. name Merge1
  159. xpos -253
  160. ypos -29
  161. }
  162. Copy {
  163. inputs 2
  164. from0 rgba.green
  165. to0 rgba.green
  166. name Copy3
  167. xpos -179
  168. ypos 27
  169. }
  170. Grade {
  171. channels {rgba.red rgba.green -rgba.blue none}
  172. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  173. black_clamp false
  174. name Grade1
  175. xpos -179
  176. ypos 196
  177. addUserKnob {20 User}
  178. addUserKnob {7 height l Height}
  179. height 1
  180. }
  181. set N11536be0 [stack 0]
  182. push $N11536be0
  183. Expression {
  184. channel0 rgb
  185. expr0 sqrt((r*r)+(g*g)+(b*b))
  186. name VectorLength
  187. selected true
  188. xpos -260
  189. ypos 278
  190. }
  191. Merge2 {
  192. inputs 2
  193. operation divide
  194. name Merge4
  195. selected true
  196. xpos -179
  197. ypos 350
  198. }
  199. Output {
  200. name Output1
  201. xpos -179
  202. ypos 494
  203. }
  204. end_group
  205. Blur {
  206. channels rgb
  207. size {{parent.preblurVector i}}
  208. name Blur5
  209. label "pre blur vector"
  210. xpos 440
  211. ypos -296
  212. }
  213. push $N2f601690
  214. ShuffleCopy {
  215. inputs 2
  216. red red
  217. green green
  218. out forward
  219. name ShuffleCopy1
  220. label "rg to forward"
  221. xpos 556
  222. ypos -194
  223. }
  224. VectorBlur {
  225. channels rgba
  226. uv forward
  227. scale {{vector_length i}}
  228. offset 0
  229. alpha -rgba.alpha
  230. maskChannelMask -rgba.alpha
  231. maskChannelInput -rgba.alpha
  232. name VectorBlur2
  233. xpos 556
  234. ypos -139
  235. }
  236. CopyBBox {
  237. inputs 2
  238. name CopyBBox1
  239. xpos 556
  240. ypos -92
  241. }
  242. Output {
  243. name Output1
  244. xpos 556
  245. ypos -8
  246. }
  247. end_group
  248. Keymix {
  249. inputs 3
  250. channels rgb
  251. name Keymix11
  252. xpos 1325
  253. ypos 751
  254. }
  255. set N2f84aab0 [stack 0]
  256. push $N2f84aab0
  257. push $N2f84aab0
  258. push $N2f84aab0
  259. Group {
  260. inputs 2
  261. name ExtendEdge1
  262. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  263. xpos 1509
  264. ypos 743
  265. addUserKnob {20 Controls}
  266. addUserKnob {7 preblurVector R 0 10}
  267. preblurVector {{parent.ExtendEdge.preblurVector i}}
  268. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  269. }
  270. Input {
  271. inputs 0
  272. name Input
  273. xpos 556
  274. ypos -426
  275. }
  276. set N2f84ae20 [stack 0]
  277. Dot {
  278. name Dot1
  279. xpos 707
  280. ypos -414
  281. }
  282. Dot {
  283. name Dot2
  284. xpos 707
  285. ypos -121
  286. }
  287. Input {
  288. inputs 0
  289. name matte
  290. xpos 440
  291. ypos -424
  292. number 1
  293. }
  294. Shuffle {
  295. red alpha
  296. green alpha
  297. blue alpha
  298. alpha black
  299. name Shuffle3
  300. xpos 440
  301. ypos -346
  302. }
  303. Group {
  304. name Edge2Vec2
  305. xpos 440
  306. ypos -322
  307. }
  308. Input {
  309. inputs 0
  310. name Input1
  311. xpos -172
  312. ypos -315
  313. }
  314. Clamp {
  315. channels rgb
  316. name Clamp1
  317. xpos -172
  318. ypos -250
  319. }
  320. set N14809d50 [stack 0]
  321. Position {
  322. translate {0 1}
  323. name Position2
  324. xpos -63
  325. ypos -106
  326. }
  327. push $N14809d50
  328. Merge2 {
  329. inputs 2
  330. operation minus
  331. name Merge2
  332. xpos -103
  333. ypos -28
  334. }
  335. push $N14809d50
  336. Position {
  337. translate {1 0}
  338. name Position1
  339. xpos -285
  340. ypos -98
  341. }
  342. push $N14809d50
  343. Merge2 {
  344. inputs 2
  345. operation minus
  346. name Merge1
  347. xpos -253
  348. ypos -29
  349. }
  350. Copy {
  351. inputs 2
  352. from0 rgba.green
  353. to0 rgba.green
  354. name Copy3
  355. xpos -179
  356. ypos 27
  357. }
  358. Grade {
  359. channels {rgba.red rgba.green -rgba.blue none}
  360. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  361. black_clamp false
  362. name Grade1
  363. xpos -179
  364. ypos 196
  365. addUserKnob {20 User}
  366. addUserKnob {7 height l Height}
  367. height 1
  368. }
  369. set N1480b1f0 [stack 0]
  370. push $N1480b1f0
  371. Expression {
  372. channel0 rgb
  373. expr0 sqrt((r*r)+(g*g)+(b*b))
  374. name VectorLength
  375. selected true
  376. xpos -260
  377. ypos 278
  378. }
  379. Merge2 {
  380. inputs 2
  381. operation divide
  382. name Merge4
  383. selected true
  384. xpos -179
  385. ypos 350
  386. }
  387. Output {
  388. name Output1
  389. xpos -179
  390. ypos 494
  391. }
  392. end_group
  393. Blur {
  394. channels rgb
  395. size {{parent.preblurVector i}}
  396. name Blur5
  397. label "pre blur vector"
  398. xpos 440
  399. ypos -296
  400. }
  401. push $N2f84ae20
  402. ShuffleCopy {
  403. inputs 2
  404. red red
  405. green green
  406. out forward
  407. name ShuffleCopy1
  408. label "rg to forward"
  409. xpos 556
  410. ypos -194
  411. }
  412. VectorBlur {
  413. channels rgba
  414. uv forward
  415. scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
  416. offset 0
  417. alpha -rgba.alpha
  418. maskChannelMask -rgba.alpha
  419. maskChannelInput -rgba.alpha
  420. name VectorBlur2
  421. xpos 556
  422. ypos -139
  423. }
  424. CopyBBox {
  425. inputs 2
  426. name CopyBBox1
  427. xpos 556
  428. ypos -92
  429. }
  430. Output {
  431. name Output1
  432. xpos 556
  433. ypos -8
  434. }
  435. end_group
  436. Keymix {
  437. inputs 3
  438. channels rgb
  439. name Keymix12
  440. xpos 1509
  441. ypos 823
  442. }
  443. set N1480d0e0 [stack 0]
  444. push $N1480d0e0
  445. push $N1480d0e0
  446. push $N1480d0e0
  447. Group {
  448. inputs 2
  449. name ExtendEdge2
  450. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  451. xpos 1695
  452. ypos 823
  453. addUserKnob {20 Controls}
  454. addUserKnob {7 preblurVector R 0 10}
  455. preblurVector {{parent.ExtendEdge.preblurVector}}
  456. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  457. }
  458. Input {
  459. inputs 0
  460. name Input
  461. xpos 556
  462. ypos -426
  463. }
  464. set N1480d450 [stack 0]
  465. Dot {
  466. name Dot1
  467. xpos 707
  468. ypos -414
  469. }
  470. Dot {
  471. name Dot2
  472. xpos 707
  473. ypos -121
  474. }
  475. Input {
  476. inputs 0
  477. name matte
  478. xpos 440
  479. ypos -424
  480. number 1
  481. }
  482. Shuffle {
  483. red alpha
  484. green alpha
  485. blue alpha
  486. alpha black
  487. name Shuffle3
  488. xpos 440
  489. ypos -346
  490. }
  491. Group {
  492. name Edge2Vec2
  493. xpos 440
  494. ypos -322
  495. }
  496. Input {
  497. inputs 0
  498. name Input1
  499. xpos -172
  500. ypos -315
  501. }
  502. Clamp {
  503. channels rgb
  504. name Clamp1
  505. xpos -172
  506. ypos -250
  507. }
  508. set N1469e860 [stack 0]
  509. Position {
  510. translate {0 1}
  511. name Position2
  512. xpos -63
  513. ypos -106
  514. }
  515. push $N1469e860
  516. Merge2 {
  517. inputs 2
  518. operation minus
  519. name Merge2
  520. xpos -103
  521. ypos -28
  522. }
  523. push $N1469e860
  524. Position {
  525. translate {1 0}
  526. name Position1
  527. xpos -285
  528. ypos -98
  529. }
  530. push $N1469e860
  531. Merge2 {
  532. inputs 2
  533. operation minus
  534. name Merge1
  535. xpos -253
  536. ypos -29
  537. }
  538. Copy {
  539. inputs 2
  540. from0 rgba.green
  541. to0 rgba.green
  542. name Copy3
  543. xpos -179
  544. ypos 27
  545. }
  546. Grade {
  547. channels {rgba.red rgba.green -rgba.blue none}
  548. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  549. black_clamp false
  550. name Grade1
  551. xpos -179
  552. ypos 196
  553. addUserKnob {20 User}
  554. addUserKnob {7 height l Height}
  555. height 1
  556. }
  557. set N1469fd00 [stack 0]
  558. push $N1469fd00
  559. Expression {
  560. channel0 rgb
  561. expr0 sqrt((r*r)+(g*g)+(b*b))
  562. name VectorLength
  563. selected true
  564. xpos -260
  565. ypos 278
  566. }
  567. Merge2 {
  568. inputs 2
  569. operation divide
  570. name Merge4
  571. selected true
  572. xpos -179
  573. ypos 350
  574. }
  575. Output {
  576. name Output1
  577. xpos -179
  578. ypos 494
  579. }
  580. end_group
  581. Blur {
  582. channels rgb
  583. size {{parent.preblurVector i}}
  584. name Blur5
  585. label "pre blur vector"
  586. xpos 440
  587. ypos -296
  588. }
  589. push $N1480d450
  590. ShuffleCopy {
  591. inputs 2
  592. red red
  593. green green
  594. out forward
  595. name ShuffleCopy1
  596. label "rg to forward"
  597. xpos 556
  598. ypos -194
  599. }
  600. VectorBlur {
  601. channels rgba
  602. uv forward
  603. scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
  604. offset 0
  605. alpha -rgba.alpha
  606. maskChannelMask -rgba.alpha
  607. maskChannelInput -rgba.alpha
  608. name VectorBlur2
  609. xpos 556
  610. ypos -139
  611. }
  612. CopyBBox {
  613. inputs 2
  614. name CopyBBox1
  615. xpos 556
  616. ypos -92
  617. }
  618. Output {
  619. name Output1
  620. xpos 556
  621. ypos -8
  622. }
  623. end_group
  624. Keymix {
  625. inputs 3
  626. channels rgb
  627. name Keymix13
  628. xpos 1695
  629. ypos 895
  630. }
  631. set N11bf2b20 [stack 0]
  632. push $N11bf2b20
  633. push $N11bf2b20
  634. push $N11bf2b20
  635. Group {
  636. inputs 2
  637. name ExtendEdge3
  638. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  639. xpos 1891
  640. ypos 895
  641. addUserKnob {20 Controls}
  642. addUserKnob {7 preblurVector R 0 10}
  643. preblurVector {{parent.ExtendEdge.preblurVector}}
  644. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  645. }
  646. Input {
  647. inputs 0
  648. name Input
  649. xpos 556
  650. ypos -426
  651. }
  652. set N11bf2e90 [stack 0]
  653. Dot {
  654. name Dot1
  655. xpos 707
  656. ypos -414
  657. }
  658. Dot {
  659. name Dot2
  660. xpos 707
  661. ypos -121
  662. }
  663. Input {
  664. inputs 0
  665. name matte
  666. xpos 440
  667. ypos -424
  668. number 1
  669. }
  670. Shuffle {
  671. red alpha
  672. green alpha
  673. blue alpha
  674. alpha black
  675. name Shuffle3
  676. xpos 440
  677. ypos -346
  678. }
  679. Group {
  680. name Edge2Vec2
  681. xpos 440
  682. ypos -322
  683. }
  684. Input {
  685. inputs 0
  686. name Input1
  687. xpos -172
  688. ypos -315
  689. }
  690. Clamp {
  691. channels rgb
  692. name Clamp1
  693. xpos -172
  694. ypos -250
  695. }
  696. set N11bf4330 [stack 0]
  697. Position {
  698. translate {0 1}
  699. name Position2
  700. xpos -63
  701. ypos -106
  702. }
  703. push $N11bf4330
  704. Merge2 {
  705. inputs 2
  706. operation minus
  707. name Merge2
  708. xpos -103
  709. ypos -28
  710. }
  711. push $N11bf4330
  712. Position {
  713. translate {1 0}
  714. name Position1
  715. xpos -285
  716. ypos -98
  717. }
  718. push $N11bf4330
  719. Merge2 {
  720. inputs 2
  721. operation minus
  722. name Merge1
  723. xpos -253
  724. ypos -29
  725. }
  726. Copy {
  727. inputs 2
  728. from0 rgba.green
  729. to0 rgba.green
  730. name Copy3
  731. xpos -179
  732. ypos 27
  733. }
  734. Grade {
  735. channels {rgba.red rgba.green -rgba.blue none}
  736. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  737. black_clamp false
  738. name Grade1
  739. xpos -179
  740. ypos 196
  741. addUserKnob {20 User}
  742. addUserKnob {7 height l Height}
  743. height 1
  744. }
  745. set N11bf57d0 [stack 0]
  746. push $N11bf57d0
  747. Expression {
  748. channel0 rgb
  749. expr0 sqrt((r*r)+(g*g)+(b*b))
  750. name VectorLength
  751. selected true
  752. xpos -260
  753. ypos 278
  754. }
  755. Merge2 {
  756. inputs 2
  757. operation divide
  758. name Merge4
  759. selected true
  760. xpos -179
  761. ypos 350
  762. }
  763. Output {
  764. name Output1
  765. xpos -179
  766. ypos 494
  767. }
  768. end_group
  769. Blur {
  770. channels rgb
  771. size {{parent.preblurVector i}}
  772. name Blur5
  773. label "pre blur vector"
  774. xpos 440
  775. ypos -296
  776. }
  777. push $N11bf2e90
  778. ShuffleCopy {
  779. inputs 2
  780. red red
  781. green green
  782. out forward
  783. name ShuffleCopy1
  784. label "rg to forward"
  785. xpos 556
  786. ypos -194
  787. }
  788. VectorBlur {
  789. channels rgba
  790. uv forward
  791. scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
  792. offset 0
  793. alpha -rgba.alpha
  794. maskChannelMask -rgba.alpha
  795. maskChannelInput -rgba.alpha
  796. name VectorBlur2
  797. xpos 556
  798. ypos -139
  799. }
  800. CopyBBox {
  801. inputs 2
  802. name CopyBBox1
  803. xpos 556
  804. ypos -92
  805. }
  806. Output {
  807. name Output1
  808. xpos 556
  809. ypos -8
  810. }
  811. end_group
  812. Keymix {
  813. inputs 3
  814. channels rgb
  815. name Keymix14
  816. xpos 1891
  817. ypos 967
  818. }
  819. set N11c0f8e0 [stack 0]
  820. push $N11c0f8e0
  821. push $N11c0f8e0
  822. push $N11c0f8e0
  823. Group {
  824. inputs 2
  825. name ExtendEdge4
  826. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  827. xpos 2077
  828. ypos 967
  829. addUserKnob {20 Controls}
  830. addUserKnob {7 preblurVector R 0 10}
  831. preblurVector {{parent.ExtendEdge.preblurVector}}
  832. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  833. }
  834. Input {
  835. inputs 0
  836. name Input
  837. xpos 556
  838. ypos -426
  839. }
  840. set N11c0fc50 [stack 0]
  841. Dot {
  842. name Dot1
  843. xpos 707
  844. ypos -414
  845. }
  846. Dot {
  847. name Dot2
  848. xpos 707
  849. ypos -121
  850. }
  851. Input {
  852. inputs 0
  853. name matte
  854. xpos 440
  855. ypos -424
  856. number 1
  857. }
  858. Shuffle {
  859. red alpha
  860. green alpha
  861. blue alpha
  862. alpha black
  863. name Shuffle3
  864. xpos 440
  865. ypos -346
  866. }
  867. Group {
  868. name Edge2Vec2
  869. xpos 440
  870. ypos -322
  871. }
  872. Input {
  873. inputs 0
  874. name Input1
  875. xpos -172
  876. ypos -315
  877. }
  878. Clamp {
  879. channels rgb
  880. name Clamp1
  881. xpos -172
  882. ypos -250
  883. }
  884. set N11c110f0 [stack 0]
  885. Position {
  886. translate {0 1}
  887. name Position2
  888. xpos -63
  889. ypos -106
  890. }
  891. push $N11c110f0
  892. Merge2 {
  893. inputs 2
  894. operation minus
  895. name Merge2
  896. xpos -103
  897. ypos -28
  898. }
  899. push $N11c110f0
  900. Position {
  901. translate {1 0}
  902. name Position1
  903. xpos -285
  904. ypos -98
  905. }
  906. push $N11c110f0
  907. Merge2 {
  908. inputs 2
  909. operation minus
  910. name Merge1
  911. xpos -253
  912. ypos -29
  913. }
  914. Copy {
  915. inputs 2
  916. from0 rgba.green
  917. to0 rgba.green
  918. name Copy3
  919. xpos -179
  920. ypos 27
  921. }
  922. Grade {
  923. channels {rgba.red rgba.green -rgba.blue none}
  924. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  925. black_clamp false
  926. name Grade1
  927. xpos -179
  928. ypos 196
  929. addUserKnob {20 User}
  930. addUserKnob {7 height l Height}
  931. height 1
  932. }
  933. set N11c3ea70 [stack 0]
  934. push $N11c3ea70
  935. Expression {
  936. channel0 rgb
  937. expr0 sqrt((r*r)+(g*g)+(b*b))
  938. name VectorLength
  939. selected true
  940. xpos -260
  941. ypos 278
  942. }
  943. Merge2 {
  944. inputs 2
  945. operation divide
  946. name Merge4
  947. selected true
  948. xpos -179
  949. ypos 350
  950. }
  951. Output {
  952. name Output1
  953. xpos -179
  954. ypos 494
  955. }
  956. end_group
  957. Blur {
  958. channels rgb
  959. size {{parent.preblurVector i}}
  960. name Blur5
  961. label "pre blur vector"
  962. xpos 440
  963. ypos -296
  964. }
  965. push $N11c0fc50
  966. ShuffleCopy {
  967. inputs 2
  968. red red
  969. green green
  970. out forward
  971. name ShuffleCopy1
  972. label "rg to forward"
  973. xpos 556
  974. ypos -194
  975. }
  976. VectorBlur {
  977. channels rgba
  978. uv forward
  979. scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
  980. offset 0
  981. alpha -rgba.alpha
  982. maskChannelMask -rgba.alpha
  983. maskChannelInput -rgba.alpha
  984. name VectorBlur2
  985. xpos 556
  986. ypos -139
  987. }
  988. CopyBBox {
  989. inputs 2
  990. name CopyBBox1
  991. xpos 556
  992. ypos -92
  993. }
  994. Output {
  995. name Output1
  996. xpos 556
  997. ypos -8
  998. }
  999. end_group
  1000. Keymix {
  1001. inputs 3
  1002. channels rgb
  1003. name Keymix15
  1004. xpos 2077
  1005. ypos 1039
  1006. }
  1007. set N11c40960 [stack 0]
  1008. push $N11c40960
  1009. push $N11c40960
  1010. push $N11c40960
  1011. Group {
  1012. inputs 2
  1013. name ExtendEdge5
  1014. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  1015. xpos 2263
  1016. ypos 1039
  1017. addUserKnob {20 Controls}
  1018. addUserKnob {7 preblurVector R 0 10}
  1019. preblurVector {{parent.ExtendEdge.preblurVector i}}
  1020. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  1021. }
  1022. Input {
  1023. inputs 0
  1024. name Input
  1025. xpos 556
  1026. ypos -426
  1027. }
  1028. set N11c40cd0 [stack 0]
  1029. Dot {
  1030. name Dot1
  1031. xpos 707
  1032. ypos -414
  1033. }
  1034. Dot {
  1035. name Dot2
  1036. xpos 707
  1037. ypos -121
  1038. }
  1039. Input {
  1040. inputs 0
  1041. name matte
  1042. xpos 440
  1043. ypos -424
  1044. number 1
  1045. }
  1046. Shuffle {
  1047. red alpha
  1048. green alpha
  1049. blue alpha
  1050. alpha black
  1051. name Shuffle3
  1052. xpos 440
  1053. ypos -346
  1054. }
  1055. Group {
  1056. name Edge2Vec2
  1057. xpos 440
  1058. ypos -322
  1059. }
  1060. Input {
  1061. inputs 0
  1062. name Input1
  1063. xpos -172
  1064. ypos -315
  1065. }
  1066. Clamp {
  1067. channels rgb
  1068. name Clamp1
  1069. xpos -172
  1070. ypos -250
  1071. }
  1072. set N11c42170 [stack 0]
  1073. Position {
  1074. translate {0 1}
  1075. name Position2
  1076. xpos -63
  1077. ypos -106
  1078. }
  1079. push $N11c42170
  1080. Merge2 {
  1081. inputs 2
  1082. operation minus
  1083. name Merge2
  1084. xpos -103
  1085. ypos -28
  1086. }
  1087. push $N11c42170
  1088. Position {
  1089. translate {1 0}
  1090. name Position1
  1091. xpos -285
  1092. ypos -98
  1093. }
  1094. push $N11c42170
  1095. Merge2 {
  1096. inputs 2
  1097. operation minus
  1098. name Merge1
  1099. xpos -253
  1100. ypos -29
  1101. }
  1102. Copy {
  1103. inputs 2
  1104. from0 rgba.green
  1105. to0 rgba.green
  1106. name Copy3
  1107. xpos -179
  1108. ypos 27
  1109. }
  1110. Grade {
  1111. channels {rgba.red rgba.green -rgba.blue none}
  1112. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  1113. black_clamp false
  1114. name Grade1
  1115. xpos -179
  1116. ypos 196
  1117. addUserKnob {20 User}
  1118. addUserKnob {7 height l Height}
  1119. height 1
  1120. }
  1121. set N11ce5570 [stack 0]
  1122. push $N11ce5570
  1123. Expression {
  1124. channel0 rgb
  1125. expr0 sqrt((r*r)+(g*g)+(b*b))
  1126. name VectorLength
  1127. selected true
  1128. xpos -260
  1129. ypos 278
  1130. }
  1131. Merge2 {
  1132. inputs 2
  1133. operation divide
  1134. name Merge4
  1135. selected true
  1136. xpos -179
  1137. ypos 350
  1138. }
  1139. Output {
  1140. name Output1
  1141. xpos -179
  1142. ypos 494
  1143. }
  1144. end_group
  1145. Blur {
  1146. channels rgb
  1147. size {{parent.preblurVector i}}
  1148. name Blur5
  1149. label "pre blur vector"
  1150. xpos 440
  1151. ypos -296
  1152. }
  1153. push $N11c40cd0
  1154. ShuffleCopy {
  1155. inputs 2
  1156. red red
  1157. green green
  1158. out forward
  1159. name ShuffleCopy1
  1160. label "rg to forward"
  1161. xpos 556
  1162. ypos -194
  1163. }
  1164. VectorBlur {
  1165. channels rgba
  1166. uv forward
  1167. scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
  1168. offset 0
  1169. alpha -rgba.alpha
  1170. maskChannelMask -rgba.alpha
  1171. maskChannelInput -rgba.alpha
  1172. name VectorBlur2
  1173. xpos 556
  1174. ypos -139
  1175. }
  1176. CopyBBox {
  1177. inputs 2
  1178. name CopyBBox1
  1179. xpos 556
  1180. ypos -92
  1181. }
  1182. Output {
  1183. name Output1
  1184. xpos 556
  1185. ypos -8
  1186. }
  1187. end_group
  1188. Keymix {
  1189. inputs 3
  1190. channels rgb
  1191. name Keymix16
  1192. xpos 2263
  1193. ypos 1111
  1194. }
  1195. set N11ce7460 [stack 0]
  1196. push $N11ce7460
  1197. push $N11ce7460
  1198. push $N11ce7460
  1199. Group {
  1200. inputs 2
  1201. name ExtendEdge6
  1202. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  1203. xpos 2449
  1204. ypos 1111
  1205. addUserKnob {20 Controls}
  1206. addUserKnob {7 preblurVector R 0 10}
  1207. preblurVector {{parent.ExtendEdge.preblurVector}}
  1208. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  1209. }
  1210. Input {
  1211. inputs 0
  1212. name Input
  1213. xpos 556
  1214. ypos -426
  1215. }
  1216. set N11ce77d0 [stack 0]
  1217. Dot {
  1218. name Dot1
  1219. xpos 707
  1220. ypos -414
  1221. }
  1222. Dot {
  1223. name Dot2
  1224. xpos 707
  1225. ypos -121
  1226. }
  1227. Input {
  1228. inputs 0
  1229. name matte
  1230. xpos 440
  1231. ypos -424
  1232. number 1
  1233. }
  1234. Shuffle {
  1235. red alpha
  1236. green alpha
  1237. blue alpha
  1238. alpha black
  1239. name Shuffle3
  1240. xpos 440
  1241. ypos -346
  1242. }
  1243. Group {
  1244. name Edge2Vec2
  1245. xpos 440
  1246. ypos -322
  1247. }
  1248. Input {
  1249. inputs 0
  1250. name Input1
  1251. xpos -172
  1252. ypos -315
  1253. }
  1254. Clamp {
  1255. channels rgb
  1256. name Clamp1
  1257. xpos -172
  1258. ypos -250
  1259. }
  1260. set N11d8b150 [stack 0]
  1261. Position {
  1262. translate {0 1}
  1263. name Position2
  1264. xpos -63
  1265. ypos -106
  1266. }
  1267. push $N11d8b150
  1268. Merge2 {
  1269. inputs 2
  1270. operation minus
  1271. name Merge2
  1272. xpos -103
  1273. ypos -28
  1274. }
  1275. push $N11d8b150
  1276. Position {
  1277. translate {1 0}
  1278. name Position1
  1279. xpos -285
  1280. ypos -98
  1281. }
  1282. push $N11d8b150
  1283. Merge2 {
  1284. inputs 2
  1285. operation minus
  1286. name Merge1
  1287. xpos -253
  1288. ypos -29
  1289. }
  1290. Copy {
  1291. inputs 2
  1292. from0 rgba.green
  1293. to0 rgba.green
  1294. name Copy3
  1295. xpos -179
  1296. ypos 27
  1297. }
  1298. Grade {
  1299. channels {rgba.red rgba.green -rgba.blue none}
  1300. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  1301. black_clamp false
  1302. name Grade1
  1303. xpos -179
  1304. ypos 196
  1305. addUserKnob {20 User}
  1306. addUserKnob {7 height l Height}
  1307. height 1
  1308. }
  1309. set N11d8c5f0 [stack 0]
  1310. push $N11d8c5f0
  1311. Expression {
  1312. channel0 rgb
  1313. expr0 sqrt((r*r)+(g*g)+(b*b))
  1314. name VectorLength
  1315. selected true
  1316. xpos -260
  1317. ypos 278
  1318. }
  1319. Merge2 {
  1320. inputs 2
  1321. operation divide
  1322. name Merge4
  1323. selected true
  1324. xpos -179
  1325. ypos 350
  1326. }
  1327. Output {
  1328. name Output1
  1329. xpos -179
  1330. ypos 494
  1331. }
  1332. end_group
  1333. Blur {
  1334. channels rgb
  1335. size {{parent.preblurVector i}}
  1336. name Blur5
  1337. label "pre blur vector"
  1338. xpos 440
  1339. ypos -296
  1340. }
  1341. push $N11ce77d0
  1342. ShuffleCopy {
  1343. inputs 2
  1344. red red
  1345. green green
  1346. out forward
  1347. name ShuffleCopy1
  1348. label "rg to forward"
  1349. xpos 556
  1350. ypos -194
  1351. }
  1352. VectorBlur {
  1353. channels rgba
  1354. uv forward
  1355. scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
  1356. offset 0
  1357. alpha -rgba.alpha
  1358. maskChannelMask -rgba.alpha
  1359. maskChannelInput -rgba.alpha
  1360. name VectorBlur2
  1361. xpos 556
  1362. ypos -139
  1363. }
  1364. CopyBBox {
  1365. inputs 2
  1366. name CopyBBox1
  1367. xpos 556
  1368. ypos -92
  1369. }
  1370. Output {
  1371. name Output1
  1372. xpos 556
  1373. ypos -8
  1374. }
  1375. end_group
  1376. Keymix {
  1377. inputs 3
  1378. channels rgb
  1379. name Keymix17
  1380. xpos 2449
  1381. ypos 1183
  1382. }
  1383. set N11e149c0 [stack 0]
  1384. push $N11e149c0
  1385. push $N11e149c0
  1386. push $N11e149c0
  1387. Group {
  1388. inputs 2
  1389. name ExtendEdge7
  1390. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  1391. xpos 2635
  1392. ypos 1183
  1393. addUserKnob {20 Controls}
  1394. addUserKnob {7 preblurVector R 0 10}
  1395. preblurVector {{parent.ExtendEdge.preblurVector}}
  1396. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  1397. }
  1398. Input {
  1399. inputs 0
  1400. name Input
  1401. xpos 556
  1402. ypos -426
  1403. }
  1404. set N11e14d30 [stack 0]
  1405. Dot {
  1406. name Dot1
  1407. xpos 707
  1408. ypos -414
  1409. }
  1410. Dot {
  1411. name Dot2
  1412. xpos 707
  1413. ypos -121
  1414. }
  1415. Input {
  1416. inputs 0
  1417. name matte
  1418. xpos 440
  1419. ypos -424
  1420. number 1
  1421. }
  1422. Shuffle {
  1423. red alpha
  1424. green alpha
  1425. blue alpha
  1426. alpha black
  1427. name Shuffle3
  1428. xpos 440
  1429. ypos -346
  1430. }
  1431. Group {
  1432. name Edge2Vec2
  1433. xpos 440
  1434. ypos -322
  1435. }
  1436. Input {
  1437. inputs 0
  1438. name Input1
  1439. xpos -172
  1440. ypos -315
  1441. }
  1442. Clamp {
  1443. channels rgb
  1444. name Clamp1
  1445. xpos -172
  1446. ypos -250
  1447. }
  1448. set N11e161d0 [stack 0]
  1449. Position {
  1450. translate {0 1}
  1451. name Position2
  1452. xpos -63
  1453. ypos -106
  1454. }
  1455. push $N11e161d0
  1456. Merge2 {
  1457. inputs 2
  1458. operation minus
  1459. name Merge2
  1460. xpos -103
  1461. ypos -28
  1462. }
  1463. push $N11e161d0
  1464. Position {
  1465. translate {1 0}
  1466. name Position1
  1467. xpos -285
  1468. ypos -98
  1469. }
  1470. push $N11e161d0
  1471. Merge2 {
  1472. inputs 2
  1473. operation minus
  1474. name Merge1
  1475. xpos -253
  1476. ypos -29
  1477. }
  1478. Copy {
  1479. inputs 2
  1480. from0 rgba.green
  1481. to0 rgba.green
  1482. name Copy3
  1483. xpos -179
  1484. ypos 27
  1485. }
  1486. Grade {
  1487. channels {rgba.red rgba.green -rgba.blue none}
  1488. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  1489. black_clamp false
  1490. name Grade1
  1491. xpos -179
  1492. ypos 196
  1493. addUserKnob {20 User}
  1494. addUserKnob {7 height l Height}
  1495. height 1
  1496. }
  1497. set N11e17670 [stack 0]
  1498. push $N11e17670
  1499. Expression {
  1500. channel0 rgb
  1501. expr0 sqrt((r*r)+(g*g)+(b*b))
  1502. name VectorLength
  1503. selected true
  1504. xpos -260
  1505. ypos 278
  1506. }
  1507. Merge2 {
  1508. inputs 2
  1509. operation divide
  1510. name Merge4
  1511. selected true
  1512. xpos -179
  1513. ypos 350
  1514. }
  1515. Output {
  1516. name Output1
  1517. xpos -179
  1518. ypos 494
  1519. }
  1520. end_group
  1521. Blur {
  1522. channels rgb
  1523. size {{parent.preblurVector i}}
  1524. name Blur5
  1525. label "pre blur vector"
  1526. xpos 440
  1527. ypos -296
  1528. }
  1529. push $N11e14d30
  1530. ShuffleCopy {
  1531. inputs 2
  1532. red red
  1533. green green
  1534. out forward
  1535. name ShuffleCopy1
  1536. label "rg to forward"
  1537. xpos 556
  1538. ypos -194
  1539. }
  1540. VectorBlur {
  1541. channels rgba
  1542. uv forward
  1543. scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
  1544. offset 0
  1545. alpha -rgba.alpha
  1546. maskChannelMask -rgba.alpha
  1547. maskChannelInput -rgba.alpha
  1548. name VectorBlur2
  1549. xpos 556
  1550. ypos -139
  1551. }
  1552. CopyBBox {
  1553. inputs 2
  1554. name CopyBBox1
  1555. xpos 556
  1556. ypos -92
  1557. }
  1558. Output {
  1559. name Output1
  1560. xpos 556
  1561. ypos -8
  1562. }
  1563. end_group
  1564. Keymix {
  1565. inputs 3
  1566. channels rgb
  1567. name Keymix18
  1568. xpos 2635
  1569. ypos 1255
  1570. }
  1571. set N11f05780 [stack 0]
  1572. push $N11f05780
  1573. push $N11f05780
  1574. push $N11f05780
  1575. Group {
  1576. inputs 2
  1577. name ExtendEdge8
  1578. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  1579. xpos 2829
  1580. ypos 1255
  1581. addUserKnob {20 Controls}
  1582. addUserKnob {7 preblurVector R 0 10}
  1583. preblurVector {{parent.ExtendEdge.preblurVector}}
  1584. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  1585. }
  1586. Input {
  1587. inputs 0
  1588. name Input
  1589. xpos 556
  1590. ypos -426
  1591. }
  1592. set N11f05af0 [stack 0]
  1593. Dot {
  1594. name Dot1
  1595. xpos 707
  1596. ypos -414
  1597. }
  1598. Dot {
  1599. name Dot2
  1600. xpos 707
  1601. ypos -121
  1602. }
  1603. Input {
  1604. inputs 0
  1605. name matte
  1606. xpos 440
  1607. ypos -424
  1608. number 1
  1609. }
  1610. Shuffle {
  1611. red alpha
  1612. green alpha
  1613. blue alpha
  1614. alpha black
  1615. name Shuffle3
  1616. xpos 440
  1617. ypos -346
  1618. }
  1619. Group {
  1620. name Edge2Vec2
  1621. xpos 440
  1622. ypos -322
  1623. }
  1624. Input {
  1625. inputs 0
  1626. name Input1
  1627. xpos -172
  1628. ypos -315
  1629. }
  1630. Clamp {
  1631. channels rgb
  1632. name Clamp1
  1633. xpos -172
  1634. ypos -250
  1635. }
  1636. set N11f06f90 [stack 0]
  1637. Position {
  1638. translate {0 1}
  1639. name Position2
  1640. xpos -63
  1641. ypos -106
  1642. }
  1643. push $N11f06f90
  1644. Merge2 {
  1645. inputs 2
  1646. operation minus
  1647. name Merge2
  1648. xpos -103
  1649. ypos -28
  1650. }
  1651. push $N11f06f90
  1652. Position {
  1653. translate {1 0}
  1654. name Position1
  1655. xpos -285
  1656. ypos -98
  1657. }
  1658. push $N11f06f90
  1659. Merge2 {
  1660. inputs 2
  1661. operation minus
  1662. name Merge1
  1663. xpos -253
  1664. ypos -29
  1665. }
  1666. Copy {
  1667. inputs 2
  1668. from0 rgba.green
  1669. to0 rgba.green
  1670. name Copy3
  1671. xpos -179
  1672. ypos 27
  1673. }
  1674. Grade {
  1675. channels {rgba.red rgba.green -rgba.blue none}
  1676. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  1677. black_clamp false
  1678. name Grade1
  1679. xpos -179
  1680. ypos 196
  1681. addUserKnob {20 User}
  1682. addUserKnob {7 height l Height}
  1683. height 1
  1684. }
  1685. set N11f08430 [stack 0]
  1686. push $N11f08430
  1687. Expression {
  1688. channel0 rgb
  1689. expr0 sqrt((r*r)+(g*g)+(b*b))
  1690. name VectorLength
  1691. selected true
  1692. xpos -260
  1693. ypos 278
  1694. }
  1695. Merge2 {
  1696. inputs 2
  1697. operation divide
  1698. name Merge4
  1699. selected true
  1700. xpos -179
  1701. ypos 350
  1702. }
  1703. Output {
  1704. name Output1
  1705. xpos -179
  1706. ypos 494
  1707. }
  1708. end_group
  1709. Blur {
  1710. channels rgb
  1711. size {{parent.preblurVector i}}
  1712. name Blur5
  1713. label "pre blur vector"
  1714. xpos 440
  1715. ypos -296
  1716. }
  1717. push $N11f05af0
  1718. ShuffleCopy {
  1719. inputs 2
  1720. red red
  1721. green green
  1722. out forward
  1723. name ShuffleCopy1
  1724. label "rg to forward"
  1725. xpos 556
  1726. ypos -194
  1727. }
  1728. VectorBlur {
  1729. channels rgba
  1730. uv forward
  1731. scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
  1732. offset 0
  1733. alpha -rgba.alpha
  1734. maskChannelMask -rgba.alpha
  1735. maskChannelInput -rgba.alpha
  1736. name VectorBlur2
  1737. xpos 556
  1738. ypos -139
  1739. }
  1740. CopyBBox {
  1741. inputs 2
  1742. name CopyBBox1
  1743. xpos 556
  1744. ypos -92
  1745. }
  1746. Output {
  1747. name Output1
  1748. xpos 556
  1749. ypos -8
  1750. }
  1751. end_group
  1752. Keymix {
  1753. inputs 3
  1754. channels rgb
  1755. name Keymix19
  1756. xpos 2829
  1757. ypos 1327
  1758. }
  1759. set N11fcc800 [stack 0]
  1760. push $N11fcc800
  1761. push $N11fcc800
  1762. push $N11fcc800
  1763. Group {
  1764. inputs 2
  1765. name ExtendEdge9
  1766. help "Very useful as a super unpremultiplier. The input matte is used as the source edge to extend the input colour channels beyond their existing alpha. It can also be used to do dilate/erode operations on an alpha. The effect can be extended by using multiple copies. The result should probably be re-comped with the original using an edge matte through a KeyMix so that only the desired areas are used. "
  1767. selected true
  1768. xpos 3023
  1769. ypos 1327
  1770. addUserKnob {20 Controls}
  1771. addUserKnob {7 preblurVector R 0 10}
  1772. preblurVector {{parent.ExtendEdge.preblurVector i}}
  1773. addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
  1774. }
  1775. Input {
  1776. inputs 0
  1777. name Input
  1778. xpos 556
  1779. ypos -426
  1780. }
  1781. set N11fccb70 [stack 0]
  1782. Dot {
  1783. name Dot1
  1784. xpos 707
  1785. ypos -414
  1786. }
  1787. Dot {
  1788. name Dot2
  1789. xpos 707
  1790. ypos -121
  1791. }
  1792. Input {
  1793. inputs 0
  1794. name matte
  1795. xpos 440
  1796. ypos -424
  1797. number 1
  1798. }
  1799. Shuffle {
  1800. red alpha
  1801. green alpha
  1802. blue alpha
  1803. alpha black
  1804. name Shuffle3
  1805. xpos 440
  1806. ypos -346
  1807. }
  1808. Group {
  1809. name Edge2Vec2
  1810. xpos 440
  1811. ypos -322
  1812. }
  1813. Input {
  1814. inputs 0
  1815. name Input1
  1816. xpos -172
  1817. ypos -315
  1818. }
  1819. Clamp {
  1820. channels rgb
  1821. name Clamp1
  1822. xpos -172
  1823. ypos -250
  1824. }
  1825. set N11fce010 [stack 0]
  1826. Position {
  1827. translate {0 1}
  1828. name Position2
  1829. xpos -63
  1830. ypos -106
  1831. }
  1832. push $N11fce010
  1833. Merge2 {
  1834. inputs 2
  1835. operation minus
  1836. name Merge2
  1837. xpos -103
  1838. ypos -28
  1839. }
  1840. push $N11fce010
  1841. Position {
  1842. translate {1 0}
  1843. name Position1
  1844. xpos -285
  1845. ypos -98
  1846. }
  1847. push $N11fce010
  1848. Merge2 {
  1849. inputs 2
  1850. operation minus
  1851. name Merge1
  1852. xpos -253
  1853. ypos -29
  1854. }
  1855. Copy {
  1856. inputs 2
  1857. from0 rgba.green
  1858. to0 rgba.green
  1859. name Copy3
  1860. xpos -179
  1861. ypos 27
  1862. }
  1863. Grade {
  1864. channels {rgba.red rgba.green -rgba.blue none}
  1865. multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
  1866. black_clamp false
  1867. name Grade1
  1868. xpos -179
  1869. ypos 196
  1870. addUserKnob {20 User}
  1871. addUserKnob {7 height l Height}
  1872. height 1
  1873. }
  1874. set N120c5d90 [stack 0]
  1875. push $N120c5d90
  1876. Expression {
  1877. channel0 rgb
  1878. expr0 sqrt((r*r)+(g*g)+(b*b))
  1879. name VectorLength
  1880. selected true
  1881. xpos -260
  1882. ypos 278
  1883. }
  1884. Merge2 {
  1885. inputs 2
  1886. operation divide
  1887. name Merge4
  1888. selected true
  1889. xpos -179
  1890. ypos 350
  1891. }
  1892. Output {
  1893. name Output1
  1894. xpos -179
  1895. ypos 494
  1896. }
  1897. end_group
  1898. Blur {
  1899. channels rgb
  1900. size {{parent.preblurVector i}}
  1901. name Blur5
  1902. label "pre blur vector"
  1903. xpos 440
  1904. ypos -296
  1905. }
  1906. push $N11fccb70
  1907. ShuffleCopy {
  1908. inputs 2
  1909. red red
  1910. green green
  1911. out forward
  1912. name ShuffleCopy1
  1913. label "rg to forward"
  1914. xpos 556
  1915. ypos -194
  1916. }
  1917. VectorBlur {
  1918. channels rgba
  1919. uv forward
  1920. scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
  1921. offset 0
  1922. alpha -rgba.alpha
  1923. maskChannelMask -rgba.alpha
  1924. maskChannelInput -rgba.alpha
  1925. name VectorBlur2
  1926. xpos 556
  1927. ypos -139
  1928. }
  1929. CopyBBox {
  1930. inputs 2
  1931. name CopyBBox1
  1932. xpos 556
  1933. ypos -92
  1934. }
  1935. Output {
  1936. name Output1
  1937. xpos 556
  1938. ypos -8
  1939. }
  1940. end_group
  1941. Keymix {
  1942. inputs 3
  1943. channels rgb
  1944. name Keymix20
  1945. xpos 3023
  1946. ypos 1399
  1947. }
  1948. push $N11fcc800
  1949. push $N11f05780
  1950. push $N11e149c0
  1951. push $N11ce7460
  1952. push $N11c40960
  1953. push $N11c0f8e0
  1954. push $N11bf2b20
  1955. push $N1480d0e0
  1956. push $N2f84aab0
  1957. push $N2f6008d0
  1958. Switch {
  1959. inputs 11
  1960. which {{parent.slices}}
  1961. name Switch3
  1962. xpos 2018
  1963. ypos 2366
  1964. }
  1965. set N2f842ca0 [stack 0]
  1966. Shuffle {
  1967. in forward
  1968. blue black
  1969. alpha black
  1970. name Shuffle1
  1971. xpos 2116
  1972. ypos 2425
  1973. }
  1974. set N120c7ff0 [stack 0]
  1975. Expression {
  1976. expr0 (r+1)/2
  1977. expr1 (g+1)/2
  1978. name Expression1
  1979. xpos 2116
  1980. ypos 2476
  1981. }
  1982. push $N120c7ff0
  1983. push $N2f842ca0
  1984. Switch {
  1985. inputs 3
  1986. which {{parent.output}}
  1987. name Switch1
  1988. xpos 2018
  1989. ypos 2501
  1990. }
  1991. push $N2f6008d0
  1992. Dot {
  1993. name Dot22
  1994. xpos 898
  1995. ypos 2459
  1996. }
  1997. Copy {
  1998. inputs 2
  1999. from0 -rgba.alpha
  2000. to0 -rgba.alpha
  2001. channels rgb
  2002. name Copy1
  2003. xpos 2018
  2004. ypos 2544
  2005. }
  2006. Output {
  2007. name Output1
  2008. xpos 2018
  2009. ypos 2644
  2010. }
  2011. end_group
  2012. # Creation Time=Wed Nov 05 16:13:56 2014
  2013. # Creator=tmt