set cut_paste_input [stack 0]
version 8.0 v6
push $cut_paste_input
Group {
name VectorExtendEdge_Group
help "Push rgb pixels outwards using vectors  generated perpedicular to a control matte edge."
selected true
xpos 218
ypos 39
addUserKnob {20 User}
addUserKnob {4 premult l "input is" M {premultiplied unpremultiplied}}
addUserKnob {41 from0 l "control matte channel" T Copy4.from0}
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}
preblur 1
addUserKnob {26 ""}
addUserKnob {3 slices l "vector blur slices" t "The number of iterations of the vector blur operation, up to 10."}
slices 5
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}
preblur_vector 1
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}
vector_length 3
addUserKnob {26 ""}
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)" ""}}
}
Input {
inputs 0
name ctrl_matte
xpos 1122
ypos 457
number 1
}
Input {
inputs 0
name img
xpos 840
ypos 457
}
Dot {
name Dot2
xpos 874
ypos 570
}
set N2f6008d0 [stack 0]
Unpremult {
name Unpremult11
xpos 965
ypos 566
disable {{parent.premult i}}
}
Copy {
inputs 2
from0 rgba.alpha
to0 rgba.alpha
name Copy4
xpos 1122
ypos 559
disable {{"!\[exists parent.input1]" i}}
}
Blur {
channels alpha
size {{parent.preblur i}}
name Blur12
label "pre-blur alpha"
xpos 1122
ypos 648
}
set N2f601320 [stack 0]
push $N2f601320
push $N2f601320
push $N2f601320
Group {
inputs 2
name ExtendEdge
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.  "
xpos 1325
ypos 662
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.preblur_vector i}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N2f601690 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N2f602b30 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N2f602b30
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N2f602b30
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N2f602b30
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N11536be0 [stack 0]
push $N11536be0
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N2f601690
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{vector_length i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix11
xpos 1325
ypos 751
}
set N2f84aab0 [stack 0]
push $N2f84aab0
push $N2f84aab0
push $N2f84aab0
Group {
inputs 2
name ExtendEdge1
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.  "
xpos 1509
ypos 743
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.ExtendEdge.preblurVector i}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N2f84ae20 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N14809d50 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N14809d50
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N14809d50
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N14809d50
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N1480b1f0 [stack 0]
push $N1480b1f0
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N2f84ae20
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix12
xpos 1509
ypos 823
}
set N1480d0e0 [stack 0]
push $N1480d0e0
push $N1480d0e0
push $N1480d0e0
Group {
inputs 2
name ExtendEdge2
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.  "
xpos 1695
ypos 823
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.ExtendEdge.preblurVector}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N1480d450 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N1469e860 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N1469e860
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N1469e860
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N1469e860
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N1469fd00 [stack 0]
push $N1469fd00
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N1480d450
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix13
xpos 1695
ypos 895
}
set N11bf2b20 [stack 0]
push $N11bf2b20
push $N11bf2b20
push $N11bf2b20
Group {
inputs 2
name ExtendEdge3
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.  "
xpos 1891
ypos 895
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.ExtendEdge.preblurVector}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N11bf2e90 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N11bf4330 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N11bf4330
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N11bf4330
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N11bf4330
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N11bf57d0 [stack 0]
push $N11bf57d0
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N11bf2e90
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix14
xpos 1891
ypos 967
}
set N11c0f8e0 [stack 0]
push $N11c0f8e0
push $N11c0f8e0
push $N11c0f8e0
Group {
inputs 2
name ExtendEdge4
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.  "
xpos 2077
ypos 967
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.ExtendEdge.preblurVector}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N11c0fc50 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N11c110f0 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N11c110f0
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N11c110f0
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N11c110f0
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N11c3ea70 [stack 0]
push $N11c3ea70
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N11c0fc50
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix15
xpos 2077
ypos 1039
}
set N11c40960 [stack 0]
push $N11c40960
push $N11c40960
push $N11c40960
Group {
inputs 2
name ExtendEdge5
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.  "
xpos 2263
ypos 1039
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.ExtendEdge.preblurVector i}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N11c40cd0 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N11c42170 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N11c42170
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N11c42170
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N11c42170
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N11ce5570 [stack 0]
push $N11ce5570
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N11c40cd0
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix16
xpos 2263
ypos 1111
}
set N11ce7460 [stack 0]
push $N11ce7460
push $N11ce7460
push $N11ce7460
Group {
inputs 2
name ExtendEdge6
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.  "
xpos 2449
ypos 1111
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.ExtendEdge.preblurVector}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N11ce77d0 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N11d8b150 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N11d8b150
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N11d8b150
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N11d8b150
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N11d8c5f0 [stack 0]
push $N11d8c5f0
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N11ce77d0
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix17
xpos 2449
ypos 1183
}
set N11e149c0 [stack 0]
push $N11e149c0
push $N11e149c0
push $N11e149c0
Group {
inputs 2
name ExtendEdge7
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.  "
xpos 2635
ypos 1183
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.ExtendEdge.preblurVector}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N11e14d30 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N11e161d0 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N11e161d0
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N11e161d0
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N11e161d0
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N11e17670 [stack 0]
push $N11e17670
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N11e14d30
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix18
xpos 2635
ypos 1255
}
set N11f05780 [stack 0]
push $N11f05780
push $N11f05780
push $N11f05780
Group {
inputs 2
name ExtendEdge8
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.  "
xpos 2829
ypos 1255
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.ExtendEdge.preblurVector}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N11f05af0 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N11f06f90 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N11f06f90
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N11f06f90
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N11f06f90
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N11f08430 [stack 0]
push $N11f08430
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N11f05af0
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix19
xpos 2829
ypos 1327
}
set N11fcc800 [stack 0]
push $N11fcc800
push $N11fcc800
push $N11fcc800
Group {
inputs 2
name ExtendEdge9
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.  "
selected true
xpos 3023
ypos 1327
addUserKnob {20 Controls}
addUserKnob {7 preblurVector R 0 10}
preblurVector {{parent.ExtendEdge.preblurVector i}}
addUserKnob {41 scale l "vector length" T VectorBlur2.scale}
}
Input {
inputs 0
name Input
xpos 556
ypos -426
}
set N11fccb70 [stack 0]
Dot {
name Dot1
xpos 707
ypos -414
}
Dot {
name Dot2
xpos 707
ypos -121
}
Input {
inputs 0
name matte
xpos 440
ypos -424
number 1
}
Shuffle {
red alpha
green alpha
blue alpha
alpha black
name Shuffle3
xpos 440
ypos -346
}
Group {
name Edge2Vec2
xpos 440
ypos -322
}
Input {
inputs 0
name Input1
xpos -172
ypos -315
}
Clamp {
channels rgb
name Clamp1
xpos -172
ypos -250
}
set N11fce010 [stack 0]
Position {
translate {0 1}
name Position2
xpos -63
ypos -106
}
push $N11fce010
Merge2 {
inputs 2
operation minus
name Merge2
xpos -103
ypos -28
}
push $N11fce010
Position {
translate {1 0}
name Position1
xpos -285
ypos -98
}
push $N11fce010
Merge2 {
inputs 2
operation minus
name Merge1
xpos -253
ypos -29
}
Copy {
inputs 2
from0 rgba.green
to0 rgba.green
name Copy3
xpos -179
ypos 27
}
Grade {
channels {rgba.red rgba.green -rgba.blue none}
multiply {{Input1.height*Grade1.height i} {Input1.height*Grade1.height i} {curve i} {curve i}}
black_clamp false
name Grade1
xpos -179
ypos 196
addUserKnob {20 User}
addUserKnob {7 height l Height}
height 1
}
set N120c5d90 [stack 0]
push $N120c5d90
Expression {
channel0 rgb
expr0 sqrt((r*r)+(g*g)+(b*b))
name VectorLength
selected true
xpos -260
ypos 278
}
Merge2 {
inputs 2
operation divide
name Merge4
selected true
xpos -179
ypos 350
}
Output {
name Output1
xpos -179
ypos 494
}
end_group
Blur {
channels rgb
size {{parent.preblurVector i}}
name Blur5
label "pre blur vector"
xpos 440
ypos -296
}
push $N11fccb70
ShuffleCopy {
inputs 2
red red
green green
out forward
name ShuffleCopy1
label "rg to forward"
xpos 556
ypos -194
}
VectorBlur {
channels rgba
uv forward
scale {{parent.parent.ExtendEdge.VectorBlur2.scale i}}
offset 0
alpha -rgba.alpha
maskChannelMask -rgba.alpha
maskChannelInput -rgba.alpha
name VectorBlur2
xpos 556
ypos -139
}
CopyBBox {
inputs 2
name CopyBBox1
xpos 556
ypos -92
}
Output {
name Output1
xpos 556
ypos -8
}
end_group
Keymix {
inputs 3
channels rgb
name Keymix20
xpos 3023
ypos 1399
}
push $N11fcc800
push $N11f05780
push $N11e149c0
push $N11ce7460
push $N11c40960
push $N11c0f8e0
push $N11bf2b20
push $N1480d0e0
push $N2f84aab0
push $N2f6008d0
Switch {
inputs 11
which {{parent.slices}}
name Switch3
xpos 2018
ypos 2366
}
set N2f842ca0 [stack 0]
Shuffle {
in forward
blue black
alpha black
name Shuffle1
xpos 2116
ypos 2425
}
set N120c7ff0 [stack 0]
Expression {
expr0 (r+1)/2
expr1 (g+1)/2
name Expression1
xpos 2116
ypos 2476
}
push $N120c7ff0
push $N2f842ca0
Switch {
inputs 3
which {{parent.output}}
name Switch1
xpos 2018
ypos 2501
}
push $N2f6008d0
Dot {
name Dot22
xpos 898
ypos 2459
}
Copy {
inputs 2
from0 -rgba.alpha
to0 -rgba.alpha
channels rgb
name Copy1
xpos 2018
ypos 2544
}
Output {
name Output1
xpos 2018
ypos 2644
}
end_group
# Creation Time=Wed Nov 05 16:13:56 2014
# Creator=tmt
