- Posts: 27
- Joined: Sat Mar 31, 2018 3:10 am
- Real Name: Rick Catizone
Here's an annotated sample tree. There's nothing in the Loaders, and most of the nodes are in their default state. It's just to show a good way to organize your tree so it's easier to manage.
- Code: Select all
{
Tools = ordered() {
BGMountain = Loader {
Clips = {
},
NameSet = true,
Inputs = {
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 275, -610.5 } },
},
LumaKeyer1 = LumaKeyer {
Inputs = {
Input = Input {
SourceOp = "ChangeDepth1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -445.5 } },
},
ChangeDepth1 = ChangeDepth {
Inputs = {
Depth = Input { Value = 3, },
Input = Input {
SourceOp = "BGMountain",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -544.5 } },
},
Note4 = Note {
Inputs = {
Comments = Input { Value = "Keys should usually happen before color correction, as you have done in your screenshot, in order to preserve as much detail as possibel from the original image. When working in float, it doesn't matter so much, but I can see that your comp is in 8-bit, so you'll lose data with each color correct.", }
},
ViewInfo = StickyNoteInfo {
Pos = { 55, -478.5 },
Flags = {
Expanded = true
},
Size = { 339, 115.3 }
},
},
Note5 = Note {
Inputs = {
Comments = Input { Value = "Working in floating point space gives you much greater flexibility in all areas of your composite.", }
},
ViewInfo = StickyNoteInfo {
Pos = { 239, -577.5 },
Flags = {
Expanded = true
},
Size = { 852, 76.3 }
},
},
ChangeDepth1_1 = ChangeDepth {
Inputs = {
Depth = Input { Value = 3, },
Input = Input {
SourceOp = "Midground",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 495, -544.5 } },
},
Midground = Loader {
Clips = {
},
NameSet = true,
Inputs = {
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 495, -610.5 } },
},
Note6 = Note {
Inputs = {
Comments = Input { Value = "Most operations in a composite will work best in linear color. The Luma Keyer is an exception. The Ranges tab in the Color Corrector also works best in sRGB, but if you're not using that feature, it's better to correct in lin.\n\nTo view the image properly, though, you 'll need to turn on the LUT button in your Viewers. Set it to Gamut View LUT, then use edit... to set it up with No Change in the Source Space and sRGB in the Output Space.", }
},
ViewInfo = StickyNoteInfo {
Pos = { 220, -313.5 },
Flags = {
Expanded = true
},
Size = { 897, 133.3 }
},
},
Gamut1_1 = GamutConvert {
CustomData = {
Settings = {
[1] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
Name = "Gamut1_1"
}
}
},
[2] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
}
}
},
}
},
Inputs = {
SourceSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
},
Gamut1_1_1 = GamutConvert {
CustomData = {
Settings = {
[1] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
Name = "Gamut1_1"
}
}
},
[2] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
}
}
},
}
},
Inputs = {
SourceSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "ChangeDepth1_1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 495, -247.5 } },
},
Gamut1_1_2 = GamutConvert {
CustomData = {
Settings = {
[1] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
Name = "Gamut1_1"
}
}
},
[2] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
}
}
},
}
},
Inputs = {
SourceSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "ChangeDepth1_2",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 770, -247.5 } },
},
ChangeDepth1_2 = ChangeDepth {
Inputs = {
Depth = Input { Value = 3, },
Input = Input {
SourceOp = "Rock",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 770, -544.5 } },
},
Rock = Loader {
Clips = {
},
NameSet = true,
Inputs = {
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 770, -610.5 } },
},
Gamut1_1_3 = GamutConvert {
CustomData = {
Settings = {
[1] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
Name = "Gamut1_1"
}
}
},
[2] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
}
}
},
}
},
Inputs = {
SourceSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "ChangeDepth1_3",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 990, -247.5 } },
},
ChangeDepth1_3 = ChangeDepth {
Inputs = {
Depth = Input { Value = 3, },
Input = Input {
SourceOp = "FG_dirt",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 990, -544.5 } },
},
FG_dirt = Loader {
Clips = {
},
NameSet = true,
Inputs = {
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 990, -610.5 } },
},
ColorCorrector2 = ColorCorrector {
Inputs = {
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 = "Gamut1_1_1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 495, -82.5 } },
},
ColorCorrector3 = ColorCorrector {
Inputs = {
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 = "Gamut1_1_2",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 770, -82.5 } },
},
ColorCorrector4 = ColorCorrector {
Inputs = {
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 = "Gamut1_1_3",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 990, -82.5 } },
},
ColorCorrector1 = ColorCorrector {
Inputs = {
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 = "Gamut1_1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -82.5 } },
},
Blur1 = Blur {
Inputs = {
Input = Input {
SourceOp = "ColorCorrector1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -49.5 } },
},
Note2 = Note {
Inputs = {
Comments = Input { Value = "Transforms operate in the coordinate space of their own inputs, but as long as there are no nodes that restrict the Domain of Definition, you can recover the pixels from outside their own frame if you Merge onto a background that is larger.", }
},
ViewInfo = StickyNoteInfo {
Pos = { 233, 16.5 },
Flags = {
Expanded = true
},
Size = { 924, 113.3 }
},
},
Note7 = Note {
Inputs = {
Comments = Input { Value = "Back to sRGB before rendering.", }
},
ViewInfo = StickyNoteInfo {
Pos = { 1265, 49.5 },
Flags = {
Expanded = true
},
Size = { 196, 179.3 }
},
},
Transform3 = Transform {
Inputs = {
Input = Input {
SourceOp = "ColorCorrector3",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 770, 82.5 } },
},
Transform2 = Transform {
Inputs = {
Input = Input {
SourceOp = "ColorCorrector2",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 495, 82.5 } },
},
Transform1 = Transform {
Inputs = {
Input = Input {
SourceOp = "Blur1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, 82.5 } },
},
Transform4 = Transform {
Inputs = {
Input = Input {
SourceOp = "ColorCorrector4",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 990, 82.5 } },
},
Merge4 = Merge {
CtrlWZoom = false,
Inputs = {
Background = Input {
SourceOp = "Merge3",
Source = "Output",
},
Foreground = Input {
SourceOp = "Transform4",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 990, 148.5 } },
},
Gamut1 = GamutConvert {
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "Merge4",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1320, 148.5 } },
},
Gamut1_1_4 = GamutConvert {
CustomData = {
Settings = {
[1] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
Name = "Gamut1_1"
}
}
},
[2] = {
Tools = ordered() {
Gamut1_1 = GamutConvert {
CtrlWZoom = false,
CustomData = {
},
Inputs = {
OutputSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "LumaKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 275, -247.5 } },
}
}
},
}
},
Inputs = {
SourceSpace = Input { Value = FuID { "sRGB" }, },
Input = Input {
SourceOp = "ChangeDepth2",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 110, 148.5 } },
},
ChangeDepth2 = ChangeDepth {
Inputs = {
Input = Input {
SourceOp = "TimeStretcher1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 0, 148.5 } },
},
Merge1 = Merge {
Inputs = {
Background = Input {
SourceOp = "Gamut1_1_4",
Source = "Output",
},
Foreground = Input {
SourceOp = "Transform1",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 275, 148.5 } },
},
TimeStretcher1 = TimeStretcher {
Inputs = {
SourceTime = Input {
SourceOp = "TimeStretcher1SourceTime",
Source = "Value",
},
Input = Input {
SourceOp = "Sky",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { -110, 148.5 } },
},
TimeStretcher1SourceTime = BezierSpline {
SplineColor = { Red = 233, Green = 217, Blue = 243 },
NameSet = true,
KeyFrames = {
[0] = { 0, Flags = { Linear = true } }
}
},
Sky = Loader {
Clips = {
},
NameSet = true,
Inputs = {
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { -220, 148.5 } },
},
Merge3 = Merge {
Inputs = {
Background = Input {
SourceOp = "Merge2",
Source = "Output",
},
Foreground = Input {
SourceOp = "Transform3",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 770, 148.5 } },
},
Merge2 = Merge {
Inputs = {
Background = Input {
SourceOp = "Merge1",
Source = "Output",
},
Foreground = Input {
SourceOp = "Transform2",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 495, 148.5 } },
},
Note3 = Note {
Inputs = {
Comments = Input { Value = "Transform operations, including those in the Merges, concatenate, which means that the aggregate Transform from several nodes is calculated before being applied so that filtering is only applied once. This preserves detail. Try not to do any color operations, blurs, or the like between Transforms, and it's best to put the Xf right above the Merge unless there's a reason not to.", }
},
ViewInfo = StickyNoteInfo {
Pos = { 275, 181.5 },
Flags = {
Expanded = true
},
Size = { 452, 179.3 }
},
},
Note1 = Note {
Inputs = {
Comments = Input { Value = "Canvas dimensions are established here, and this format goes down through each Background input. ", }
},
ViewInfo = StickyNoteInfo {
Pos = { -249, 181.5 },
Flags = {
Expanded = true
},
Size = { 141, 179.3 }
},
},
Saver1 = Saver {
Inputs = {
ProcessWhenBlendIs00 = Input { Value = 0, },
Clip = Input {
Value = Clip {
Length = 0,
Saving = true,
TrimIn = 0,
ExtendFirst = 0,
ExtendLast = 0,
Loop = 1,
AspectMode = 0,
Depth = 0,
GlobalStart = -2000000000,
GlobalEnd = 0
},
},
OutputFormat = Input { Value = FuID { "TargaFormat" }, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
Input = Input {
SourceOp = "Gamut1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 1595, 148.5 } },
}
}
}
Most Fusion users build from left to right. Nuke users tend to go top down.