Remove the Corner Pin from your thinking. That's not where the problem is. The problem is that your Color Correct has changed the black point of the Foreground image. Examine these nodes for an illustration:
- Code: Select all
{
Tools = ordered() {
ColorCorrector1_2 = ColorCorrector {
CtrlWZoom = false,
Inputs = {
MasterRGBBrightness = Input { Value = 0.06, },
ColorRanges = Input {
Value = ColorCurves {
Curves = {
{
Points = {
{ 0, 1 },
{ 0.4, 0.2 },
{ 0.6, 0 },
{ 1, 0 }
}
},
{
Points = {
{ 0, 0 },
{ 0.4, 0 },
{ 0.6, 0.2 },
{ 1, 1 }
}
}
}
},
},
HistogramIgnoreTransparent = Input { Value = 1, },
Input = Input {
SourceOp = "Transform1",
Source = "Output",
},
EffectMask = Input {
SourceOp = "Transform1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 825, 148.5 } },
},
Transform1 = Transform {
Inputs = {
Size = Input { Value = 0.496, },
Input = Input {
SourceOp = "Background1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 550, 214.5 } },
},
ColorCorrector1 = ColorCorrector {
Inputs = {
MasterRGBBrightness = Input { Value = 0.06, },
ColorRanges = Input {
Value = ColorCurves {
Curves = {
{
Points = {
{ 0, 1 },
{ 0.4, 0.2 },
{ 0.6, 0 },
{ 1, 0 }
}
},
{
Points = {
{ 0, 0 },
{ 0.4, 0 },
{ 0.6, 0.2 },
{ 1, 1 }
}
}
}
},
},
HistogramIgnoreTransparent = Input { Value = 1, },
Input = Input {
SourceOp = "Transform1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 825, 214.5 } },
},
Background1 = Background {
Inputs = {
GlobalIn = Input { Value = 1, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
TopLeftRed = Input { Value = 0.331, },
},
ViewInfo = OperatorInfo { Pos = { 440, 214.5 } },
},
AlphaDivide1 = AlphaDivide {
Inputs = {
Input = Input {
SourceOp = "Transform1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 715, 280.5 } },
},
ColorCorrector1_1 = ColorCorrector {
Inputs = {
MasterRGBBrightness = Input { Value = 0.06, },
ColorRanges = Input {
Value = ColorCurves {
Curves = {
{
Points = {
{ 0, 1 },
{ 0.4, 0.2 },
{ 0.6, 0 },
{ 1, 0 }
}
},
{
Points = {
{ 0, 0 },
{ 0.4, 0 },
{ 0.6, 0.2 },
{ 1, 1 }
}
}
}
},
},
HistogramIgnoreTransparent = Input { Value = 1, },
Input = Input {
SourceOp = "AlphaDivide1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 825, 280.5 } },
},
AlphaMultiply1 = AlphaMultiply {
Inputs = {
Input = Input {
SourceOp = "ColorCorrector1_1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 935, 280.5 } },
}
}
}
In the lower branch is the bracketed AlphaDivide/Multiply procedure JP describes. The upper branch is an alternative (but not recommended) approach, where the CC is masked with the alpha of the image. It's not recommended because it can create issues in antialiased edges, which might result in fringing.
The center shows the issue you're experiencing, where the CC is changing black, 0-alpha pixels to something other than black, but still 0 alpha.
This is not a failure or limitation of the software—it's a foundational concept of compositing.