Jump to: Board index » General » Fusion

Transform Node - Canvas or Merge Node?

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

Ryan Bloomer

  • Posts: 316
  • Joined: Tue Jul 09, 2013 6:58 pm

Transform Node - Canvas or Merge Node?

PostTue Dec 02, 2014 12:24 am

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
Offline

Eric Westphal

  • Posts: 121
  • Joined: Thu Nov 20, 2014 1:59 pm

Re: Transform Node - Canvas or Merge Node?

PostTue Dec 02, 2014 11:39 am

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.
Offline

Chad Capeland

  • Posts: 1759
  • Joined: Mon Nov 10, 2014 9:40 pm

Re: Transform Node - Canvas or Merge Node?

PostTue Dec 02, 2014 5:44 pm

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
Chad Capeland
Indicated, LLC
www.floweffects.com
Offline

Eric Westphal

  • Posts: 121
  • Joined: Thu Nov 20, 2014 1:59 pm

Re: Transform Node - Canvas or Merge Node?

PostWed Dec 03, 2014 10:14 am

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, },
},
},
},
}
Offline

Ryan Bloomer

  • Posts: 316
  • Joined: Tue Jul 09, 2013 6:58 pm

Re: Transform Node - Canvas or Merge Node?

PostThu Dec 04, 2014 12:18 am

Thanks Eric and Chad, yes I was using Primatte in my flow. and the SetCanvasColor did the trick. Thanks for the help.

Ryan
Offline

Chad Capeland

  • Posts: 1759
  • Joined: Mon Nov 10, 2014 9:40 pm

Re: Transform Node - Canvas or Merge Node?

PostSat Dec 06, 2014 1:06 am

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
Chad Capeland
Indicated, LLC
www.floweffects.com

Return to Fusion

Who is online

Users browsing this forum: No registered users and 2 guests