Page 1 of 1

Transform Node - Canvas or Merge Node?

PostPosted: Tue Dec 02, 2014 12:24 am
by Ryan Bloomer
Is there a way to scale using the transform node and not have the resulting image crop to the canvas resolution? If I "wrap, duplicate, or mirror" I get what i'm after except for the duplicated pixels. I'm trying to scale a green screen shot smaller so it fits the dimensions of the background plate, included is my flow, with a simpler flow below that is working as expected.

The split to the two matte controls is to deal with the key above and below the ground floor. Any other solutions is appreciated, but try to understand why i'm getting the black borders is what i'm after.

https://drive.google.com/open?id=0B4gg3 ... authuser=0

thanks,
Ryan

Re: Transform Node - Canvas or Merge Node?

PostPosted: Tue Dec 02, 2014 11:39 am
by Eric Westphal
Hi Ryan.

Unfortunately I can't access that GDrive content,
but when you apply a keyer, Fusion does not set the CanvasColor automatically.
The Canvas by default extends to 'infinity' (well...almost...:-))

Add a SetCanvasColor after your keyer, and you should be fine.

Cheers.

Eric.

Re: Transform Node - Canvas or Merge Node?

PostPosted: Tue Dec 02, 2014 5:44 pm
by Chad Capeland
Eric,

Not sure which keyer is in question, but ChromaKeyer and UltraKeyer do affect the canvas color. So if you have footage on greenscreen, setting your canvas color to green would cause that to act normally.

Primatte does not affect canvas color, and I would consider that a defect.

- Chad

Re: Transform Node - Canvas or Merge Node?

PostPosted: Wed Dec 03, 2014 10:14 am
by Eric Westphal
Hi Chad.

This should explain it...:-)

Cheers.

Eric.

{
Tools = ordered() {
SetCanvasColor1 = SetCanvasColor {
PassThrough = true,
CtrlWZoom = false,
Inputs = {
Input = Input {
SourceOp = "UltraKeyer1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 495, -49.5, }, },
},
UltraKeyer1 = UltraKeyer {
Inputs = {
ColorBackground = Input { Value = 1, },
MatteSeparation = Input { Value = 0.2714286, },
Input = Input {
SourceOp = "Loader2",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 330, 16.5, }, },
},
Loader2 = Loader {
Clips = {
Clip {
ID = "Clip1",
Filename = "Comp:\\Green.jpg",
FormatID = "JpegFormat",
StartFrame = -1,
LengthSetManually = true,
TrimIn = 0,
TrimOut = 0,
ExtendFirst = 0,
ExtendLast = 0,
Loop = 0,
AspectMode = 0,
Depth = 0,
TimeCode = 0,
GlobalStart = 0,
GlobalEnd = 0,
},
},
Inputs = {
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
},
ViewInfo = OperatorInfo { Pos = { 220, 16.5, }, },
},
Transform1 = Transform {
Inputs = {
Size = Input { Value = 0.690821256038647, },
Input = Input {
SourceOp = "SetCanvasColor1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 660, 16.5, }, },
},
Note1 = Note {
Inputs = {
Comments = Input { Value = "View the transform with and without SetCanvasColor enabled", },
},
ViewInfo = StickyNoteInfo {
Pos = { 660, -49.5, },
Flags = {
Expanded = true,
},
Size = { 177.564, 56.1159, },
},
},
},
}

Re: Transform Node - Canvas or Merge Node?

PostPosted: Thu Dec 04, 2014 12:18 am
by Ryan Bloomer
Thanks Eric and Chad, yes I was using Primatte in my flow. and the SetCanvasColor did the trick. Thanks for the help.

Ryan

Re: Transform Node - Canvas or Merge Node?

PostPosted: Sat Dec 06, 2014 1:06 am
by Chad Capeland
I just meant that it should really be like this....

Code: Select all
{
   Tools = ordered() {
      Note1 = Note {
         Inputs = {
            Comments = Input { Value = "View the transform with and without SetCanvasColor enabled", },
         },
         ViewInfo = StickyNoteInfo {
            Pos = { 213, 142, },
            Flags = {
               Expanded = true,
            },
            Size = { 177.564, 56.1159, },
         },
      },
      Transform1 = Transform {
         Inputs = {
            Size = Input { Value = 0.690821256038647, },
            Input = Input {
               SourceOp = "UltraKeyer1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 716, 289, }, },
      },
      SetCanvasColor1_1 = SetCanvasColor {
         CtrlWZoom = false,
         Inputs = {
            Green = Input { Value = 1, },
            Alpha = Input { Value = 1, },
            Input = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 253, 218, }, },
      },
      UltraKeyer1 = UltraKeyer {
         Inputs = {
            ColorBackground = Input { Value = 1, },
            MatteSeparation = Input { Value = 0.2714286, },
            Input = Input {
               SourceOp = "SetCanvasColor1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 391, 288, }, },
      },
      Instance_Transform1 = Transform {
         SourceOp = "Transform1",
         Inputs = {
            ReferenceSize = Input { },
            Input = Input {
               SourceOp = "Primatte1",
               Source = "Output",
            },
            StartEndRenderScripts = Input { },
            EffectMask = Input { },
         },
         ViewInfo = OperatorInfo { Pos = { 716, 332, }, },
      },
      Primatte1 = Photron.Primatte4 {
         Inputs = {
            FineTuneRed = Input { Disabled = true, },
            FineTuneGreen = Input { Disabled = true, },
            FineTuneBlue = Input { Disabled = true, },
            PrimatteData = Input {
               Value = Primatte4Data {
                  Value = HexData [[
                     78 DA 63 60 00 82 FF F5 EE 20 4A 80 81 11 44 31
                     B0 32 0C 1F 90 E0 56 D1 07 A2 7F B3 CF 4B 40 16
                     7F C8 89 CA 87 81 09 16 52 45 C8 FC 19 55 77 15
                     41 A1 52 F0 78 B3 34 88 36 D8 10 9D 08 12 2F 9E
                     FC 35 69 28 85 43 F6 A3 A3 19 20 5A C6 98 59 87
                     11 8F BA 80 4F 37 04 20 49 02 04 41 AC 06 FB 51
                     0C C2 FF DD 91 F1 B2 FC 5A 77 74 31 74 7C DD 64
                     B3 FB C6 EB 1B E1 7C 43 95 35 04 F5 10 83 0B 1B
                     82 B0 8A 3F 3B 5B 4C 15 F3 D1 B1 C4 F5 7E 77 EB
                     FF 2E EE 16 2B 5B DC 47 C3 01 16 0E C8 79 03 19
                     E0 4A 3F A4 A9 FF 8F 03 D8 3B F1 33 80 30 BA F8
                     BD E6 AD EB 40 18 00 4D CA 39 1C ]],
                  EdgeData = HexData [[
                     78 DA 63 60 00 82 FF F5 EE 0C 48 80 95 81 76 40
                     B2 6E 49 39 59 1A 2F FC FD FF 9F 9D 81 81 09 CA
                     85 D1 02 B5 30 F3 84 C1 E4 7F 20 00 D1 29 06 68
                     DA AB F0 DB CB 84 EE 3E A8 7D 0C 0F 50 ED 4D 78
                     2D 04 A6 2B A0 F4 CC 6A 88 FA 3F FF 21 80 11 6E
                     22 C4 3D 11 50 75 21 50 9A 19 CD 5E 89 37 10 F1
                     09 E2 C2 28 E2 30 75 0E 50 F9 2D 2C 10 FE B7 0E
                     54 7F A0 9B 0F 53 5F 00 E5 97 40 69 46 0C 1F 0B
                     83 CD 44 B7 17 13 34 D8 8F 62 10 FE EF 8E 8C 97
                     E5 D7 BA A3 8B A1 E3 EB 26 9B DD 37 5E DF 08 E7
                     1B AA AC 21 A8 87 18 5C D8 10 84 55 FC D9 D9 62
                     AA 98 8F 8E 25 AE F7 BB 5B FF 77 71 B7 58 D9 E2
                     3E 1A 0E B0 70 40 CE 1B C4 E4 17 D2 D4 FF C7 01
                     EC 9D F8 19 40 18 5D 1C 00 7C 0D 50 D1 ]],
                  BodyData = HexData [[
                     78 DA 63 60 00 82 FF F5 EE 0C 48 80 15 44 BC 17
                     02 B3 15 A0 62 0A 0C C4 81 AB 1A CB CA 41 B4 71
                     D5 C2 72 88 C8 C5 FF FF D8 19 18 38 3E 0B A1 A8
                     DB F0 09 95 8F 2E BF 62 D2 92 72 62 EC DB F1 01
                     A2 6F C3 07 21 A2 DC 77 02 5D 1D 23 84 3A 7C 12
                     EA 5E 28 9F E1 13 7E F7 3E AB 80 AA 47 73 B7 14
                     8C 01 15 5F 01 B5 6F 21 94 5E 80 E1 4E 88 85 0A
                     6B 95 B0 BB 0F 0A 24 A0 0A 15 3E 42 E4 1F A0 B9
                     27 E0 33 79 EE F3 67 08 60 70 65 F0 63 70 67 F0
                     61 30 66 30 62 D0 63 70 01 B2 7C 90 74 34 D8 8F
                     62 10 FE EF 8E 8C 97 E5 D7 BA A3 8B A1 E3 EB 26
                     9B DD 37 5E DF 08 E7 1B AA AC 21 A8 87 18 5C D8
                     10 84 55 FC D9 D9 62 AA 98 8F 8E 25 AE F7 BB 5B
                     FF 77 71 B7 58 D9 E2 3E 1A 0E B0 70 40 CE 1B 0C
                     44 E4 17 D2 D4 FF C7 01 EC 9D F8 19 40 18 5D 1C
                     00 EB 68 4C 04 ]],
                  RtData = HexData [[
                     78 DA 3B 7B C6 C7 F6 15 6B A0 3D 08 9F 05 B2 5F
                     03 E9 D7 54 64 03 00 F2 5D 29 0F ]],
                  EdgeRtData = HexData [[
                     78 DA 3B 7B C6 C7 F6 35 6B A0 3D 08 9F A5 01 1B
                     00 F3 11 29 11 ]],
                  BodyRtData = HexData [[
                     78 DA 3B 7B C6 C7 F6 35 6B A0 3D 08 9F A5 01 1B
                     00 F3 11 29 11 ]],
               },
            },
            Foreground = Input {
               SourceOp = "SetCanvasColor1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 388, 329, }, },
      },
      Text1 = TextPlus {
         Inputs = {
            Width = Input { Value = 4096, },
            Height = Input { Value = 2160, },
            Center = Input { Value = { 0.5, 0.477777777777778, }, },
            Size = Input { Value = 0.1858639, },
            Font = Input { Value = "Arial", },
            StyledText = Input { Value = "I'm an actor!", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = "",
               },
            },
            SelectElement = Input { Value = 1, },
            Select = Input { Value = 1, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1, },
                     [1] = { 1, 1, 1, 1, },
                  },
               },
            },
            Name2 = Input { Value = "Green outline", },
            Enabled2 = Input { Value = 1, },
            RenderToDPTFile = Input { Disabled = true, },
            DPTType = Input { Disabled = true, },
            DPTResolution = Input { Disabled = true, },
            ElementShape2 = Input { Value = 2, },
            ExtendHorizontal2 = Input { Value = 90, },
            ExtendVertical2 = Input { Value = 90, },
            Red2 = Input { Value = 0, },
            Green2 = Input { Value = 1, },
            ShadingGradient2 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1, },
                     [1] = { 1, 1, 1, 1, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 124, 290, }, },
      },
   },
}


Unfortunately, Primatte doesn't work on canvas color, which is inconsistent with how Fusion handles canvas color for other keyers.

- Chad