Jump to: Board index » General » Fusion

How to invert steady transform in HQ?

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

Philipp Walz

  • Posts: 370
  • Joined: Fri Apr 25, 2014 12:41 pm
  • Location: Borkwalde - Germany

How to invert steady transform in HQ?

PostThu Mar 15, 2018 8:52 pm

Hi folks,

I have a problem. I have a very tiny shot, handheld in a wood and the camera operator walks a few steps.
We can see on the ground, there is garbage and I want to clean that out.
So I planar tracked the garbaged area, choosed STEADY from operation mode, connected that to a paint node and painted the image. From there I duplicated the planar node and choosed INVERT STEADY TRANSFORM instead. HQ is set to ON. Now the image is retransformed to it's original size and the garbage is gone BUT the image looks totally blurred!!! I know it's caused of the heavy transformation of the steady mode in the planar tracker but how should I do this kind of stuff instead???

Thank you
Pete
Offline

Sander de Regt

  • Posts: 3500
  • Joined: Thu Nov 13, 2014 10:09 pm

Re: How to invert steady transform in HQ?

PostThu Mar 15, 2018 9:20 pm

Can you show us the shot?
The method you describe is in itself a good approach, but maybe in your specific case it isn't.

Personally I do a lot either with the 4 point positioner so that only the part that I lay on top of the image is filtered or use a planar transform tool to drive patches that I then merge on top of the original footage.
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline
User avatar

Philipp Walz

  • Posts: 370
  • Joined: Fri Apr 25, 2014 12:41 pm
  • Location: Borkwalde - Germany

Re: How to invert steady transform in HQ?

PostFri Mar 16, 2018 10:38 am

Unfortunately I can't show you my current shot but I searched for a similar shot.
shot.jpg
This is how the shot behaves. First frame and last frame
shot.jpg (683.42 KiB) Viewed 11891 times

I want to paint on the ground (in this case) and used the Paint node with the clone stroke.
flow.jpg
This is my current flow
flow.jpg (994.79 KiB) Viewed 11891 times

Especially here you can see the blurriness in sections of the frame when merging everything together.
Is it better to mask out the affected area (where I cloned)? Or is it possible to use the strokes as a mask so that only the painted stuff is processed by the second planar instance?
Pete
Offline

Hendrik Proosa

  • Posts: 3015
  • Joined: Wed Aug 22, 2012 6:53 am
  • Location: Estonia

Re: How to invert steady transform in HQ?

PostFri Mar 16, 2018 12:33 pm

Generally it is better to avoid transforming if possible. It depends on the shot ofcourse, change in perspective and shape of surface make things more difficult.

The best way is to clone straight from the image with no transformation. This means using rounded pixel transforms to not introduce any blurring. Works great with grain. But it doesn't work that well when source and target change perspective relative to each other. For ground this might not be the case though, so I'd suggest cloning from nearby areas without any transforms except moving/scaling the clone source and target areas.

If previous solution doesn't work out, second option is to transform the plate so that you do cloning on stabilized plate. But in the end only re-transform the cloned area and merge over original background. You may need to sharpen the cloned patch and/or reintroduce grain. Never introduce transform filtering to whole plate if you only worked on part of it.

There is also a hybrid way where you generate patch on transformed source but patch does not contain image itself, instead you feed it with UV (or ST or however someone names them) coordinates from original image. After re-transforming the patch you use the modified UV-s for lookup into original image. This is a bit contorted approach, but might prevent degradating the image too much in some more elaborate cases.
I do stuff.
Offline
User avatar

Bryan Ray

  • Posts: 2478
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: How to invert steady transform in HQ?

PostFri Mar 16, 2018 3:14 pm

Philipp Schröppel wrote: Or is it possible to use the strokes as a mask so that only the painted stuff is processed by the second planar instance?


Certainly. Feed the Paint node a transparent black Background in its input. Put your transformed footage in the Source Tool field of the Paint (only shows up while in Clone mode). The Paint node will output only the cloned strokes with alpha.

Code: Select all
{
   Tools = ordered() {
      Background1 = Background {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftAlpha = Input { Value = 0, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 453, 110 } },
      },
      Note2 = Note {
         Inputs = {
            Comments = Input { Value = "Output contains only the paint strokes with alpha.", }
         },
         ViewInfo = StickyNoteInfo {
            Pos = { 611.906, -1.45792 },
            Flags = {
               Expanded = true
            },
            Size = { 139.431, 88.0832 }
         },
      },
      Paint1 = Paint {
         CtrlWZoom = false,
         Inputs = {
            Input = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Paint = Input {
               SourceOp = "Multistroke1",
               Source = "Out",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 633, 111 } },
      },
      Multistroke1 = Multistroke {
         IsThreaded = true,
         Brushes = { "SoftBrush" },
         ApplyModes = {
            "PaintApplyColor",
            "PaintApplyRubThrough"
         },
         Inputs = {
            ["SoftBrush.Size"] = Input { Value = 0.0687815584134132, },
            ApplyMode = Input { Value = FuID { "PaintApplyRubThrough" }, },
            ["PaintApplyRubThrough.Offset"] = Input { Value = { 0.4265625, 0.337037037037037 }, },
            ["PaintApplyRubThrough.SourceTool"] = Input {
               SourceOp = "footage",
               Source = "Output",
            },
         },
         Strokes = {
            {
               Time = 0,
               Params = {
                  ["SoftBrush.Size"] = {
                     Value = 0.0687815584134132
                  },
                  ApplyMode = {
                     Value = FuID { "PaintApplyRubThrough" }
                  },
                  ["PaintApplyRubThrough.Offset"] = {
                     Value = { 0.4265625, 0.337037037037037 }
                  },
                  ["PaintApplyRubThrough.SourceTool"] = {
                     SourceOp = "footage",
                     Source = "Output",
                     Time = 0
                  },
               },
               { X = -0.078125, Y = -0.000925928, T = 0 },
               { X = -0.0776042, Y = -0.000925928, T = 63 },
               { X = -0.0770833, Y = -0.00185186, T = 117 },
               { X = -0.0765625, Y = -0.00185186, T = 126 },
               { X = -0.0755208, Y = -0.00370371, T = 146 },
               { X = -0.075, Y = -0.00370371, T = 151 },
               { X = -0.0744792, Y = -0.00462964, T = 154 },
               { X = -0.0739583, Y = -0.00555557, T = 161 },
               { X = -0.0729167, Y = -0.0074074, T = 171 },
               { X = -0.0723958, Y = -0.00833333, T = 177 },
               { X = -0.0708333, Y = -0.0111111, T = 193 },
               { X = -0.0703125, Y = -0.012963, T = 202 },
               { X = -0.0697917, Y = -0.012963, T = 206 },
               { X = -0.0697917, Y = -0.0138889, T = 208 },
               { X = -0.0697917, Y = -0.0148148, T = 213 },
               { X = -0.0692708, Y = -0.0148148, T = 215 },
               { X = -0.0692708, Y = -0.0157408, T = 219 },
               { X = -0.06875, Y = -0.0166667, T = 232 },
               { X = -0.06875, Y = -0.0175926, T = 236 },
               { X = -0.0682292, Y = -0.0185185, T = 241 },
               { X = -0.0682292, Y = -0.0194444, T = 247 },
               { X = -0.0682292, Y = -0.0203704, T = 258 },
               { X = -0.0677083, Y = -0.0212963, T = 260 },
               { X = -0.0677083, Y = -0.0222222, T = 265 },
               { X = -0.0677083, Y = -0.0231481, T = 271 },
               { X = -0.0677083, Y = -0.0240741, T = 275 },
               { X = -0.0671875, Y = -0.025, T = 284 },
               { X = -0.0671875, Y = -0.0259259, T = 287 },
               { X = -0.0671875, Y = -0.0268519, T = 293 },
               { X = -0.0671875, Y = -0.0277778, T = 293 },
               { X = -0.0671875, Y = -0.0287037, T = 297 },
               { X = -0.0666667, Y = -0.0287037, T = 299 },
               { X = -0.0666667, Y = -0.0296296, T = 301 },
               { X = -0.0661458, Y = -0.0324074, T = 316 },
               { X = -0.0661458, Y = -0.0333333, T = 319 },
               { X = -0.0661458, Y = -0.0342593, T = 324 },
               { X = -0.0661458, Y = -0.0351852, T = 327 },
               { X = -0.065625, Y = -0.0361111, T = 329 },
               { X = -0.065625, Y = -0.037037, T = 332 },
               { X = -0.0651042, Y = -0.0398148, T = 344 },
               { X = -0.0651042, Y = -0.0407407, T = 350 },
               { X = -0.0651042, Y = -0.0416667, T = 352 },
               { X = -0.0645833, Y = -0.0416667, T = 354 },
               { X = -0.0645833, Y = -0.0425926, T = 359 },
               { X = -0.0645833, Y = -0.0435185, T = 361 },
               { X = -0.0640625, Y = -0.0444444, T = 364 },
               { X = -0.0635417, Y = -0.0462963, T = 374 },
               { X = -0.0635417, Y = -0.0472222, T = 376 },
               { X = -0.0630208, Y = -0.0481482, T = 380 },
               { X = -0.0630208, Y = -0.0490741, T = 383 },
               { X = -0.0625, Y = -0.0490741, T = 385 },
               { X = -0.0625, Y = -0.05, T = 388 },
               { X = -0.0625, Y = -0.0509259, T = 392 },
               { X = -0.0619792, Y = -0.0518518, T = 395 },
               { X = -0.0609375, Y = -0.0546296, T = 404 },
               { X = -0.059375, Y = -0.0583333, T = 418 },
               { X = -0.0578125, Y = -0.0611111, T = 428 },
               { X = -0.0572917, Y = -0.0620371, T = 431 },
               { X = -0.0572917, Y = -0.0629629, T = 431 },
               { X = -0.05625, Y = -0.0648148, T = 440 },
               { X = -0.0557292, Y = -0.0657407, T = 442 },
               { X = -0.0552083, Y = -0.0666667, T = 444 },
               { X = -0.0546875, Y = -0.0675926, T = 448 },
               { X = -0.0541667, Y = -0.0685185, T = 450 },
               { X = -0.0453125, Y = -0.0814815, T = 501 },
               { X = -0.0354167, Y = -0.0925926, T = 538 },
               { X = -0.0338542, Y = -0.0935185, T = 543 },
               { X = -0.0328125, Y = -0.0944445, T = 546 },
               { X = -0.0322917, Y = -0.0944445, T = 548 },
               { X = -0.03125, Y = -0.0953704, T = 550 },
               { X = -0.0307292, Y = -0.0953704, T = 552 },
               { X = -0.0302083, Y = -0.0962963, T = 554 },
               { X = -0.0291667, Y = -0.0962963, T = 557 },
               { X = -0.0234375, Y = -0.0990741, T = 574 },
               { X = -0.0197917, Y = -0.1, T = 586 },
               { X = -0.015625, Y = -0.100926, T = 600 },
               { X = -0.0151042, Y = -0.100926, T = 602 },
               { X = -0.00937501, Y = -0.100926, T = 620 },
               { X = -0.00729167, Y = -0.100926, T = 627 },
               { X = -0.00677082, Y = -0.100926, T = 627 },
               { X = -0.00572917, Y = -0.1, T = 633 },
               { X = -0.00416666, Y = -0.1, T = 636 },
               { X = -0.00364584, Y = -0.1, T = 638 },
               { X = -0.00208333, Y = -0.1, T = 642 },
               { X = -0.00156251, Y = -0.1, T = 644 },
               { X = -0.000520825, Y = -0.0990741, T = 646 },
               { X = 0.00625002, Y = -0.0972222, T = 666 },
               { X = 0.00677085, Y = -0.0962963, T = 668 },
               { X = 0.00833333, Y = -0.0953704, T = 673 },
               { X = 0.00885415, Y = -0.0953704, T = 676 },
               { X = 0.00937498, Y = -0.0944445, T = 678 },
               { X = 0.0104167, Y = -0.0935185, T = 682 },
               { X = 0.0109375, Y = -0.0935185, T = 684 },
               { X = 0.0114583, Y = -0.0925926, T = 686 },
               { X = 0.0119792, Y = -0.0925926, T = 688 },
               { X = 0.0125, Y = -0.0916667, T = 691 },
               { X = 0.0135416, Y = -0.0907407, T = 693 },
               { X = 0.015625, Y = -0.087963, T = 708 },
               { X = 0.0166667, Y = -0.087037, T = 711 },
               { X = 0.0166667, Y = -0.0861111, T = 715 },
               { X = 0.0171875, Y = -0.0851852, T = 717 },
               { X = 0.0177084, Y = -0.0851852, T = 720 },
               { X = 0.0182292, Y = -0.0833333, T = 723 },
               { X = 0.0197917, Y = -0.0796296, T = 736 },
               { X = 0.0208333, Y = -0.0768518, T = 744 },
               { X = 0.0213541, Y = -0.0759259, T = 747 },
               { X = 0.021875, Y = -0.075, T = 749 },
               { X = 0.0276042, Y = -0.0620371, T = 786 },
               { X = 0.0328125, Y = -0.05, T = 819 },
               { X = 0.0348958, Y = -0.0462963, T = 835 },
               { X = 0.0354167, Y = -0.0444444, T = 840 },
               { X = 0.0359375, Y = -0.0444444, T = 842 },
               { X = 0.0359375, Y = -0.0435185, T = 845 },
               { X = 0.0364583, Y = -0.0425926, T = 847 },
               { X = 0.0380208, Y = -0.0407407, T = 863 },
               { X = 0.0385417, Y = -0.0398148, T = 867 },
               { X = 0.0390625, Y = -0.0388889, T = 873 },
               { X = 0.0421875, Y = -0.0361111, T = 902 },
               { X = 0.0447916, Y = -0.0361111, T = 919 },
               { X = 0.0458333, Y = -0.0361111, T = 925 },
               { X = 0.0541667, Y = -0.0398148, T = 968 },
               { X = 0.0614583, Y = -0.0453704, T = 996 },
               { X = 0.0640625, Y = -0.0481482, T = 1011 },
               { X = 0.0666667, Y = -0.0518518, T = 1049 },
               { X = 0.0682291, Y = -0.0564815, T = 1079 },
               { X = 0.06875, Y = -0.0574074, T = 1084 },
               { X = 0.0692708, Y = -0.0601852, T = 1099 },
               { X = 0.0692708, Y = -0.0611111, T = 1102 },
               { X = 0.0692708, Y = -0.0620371, T = 1106 },
               { X = 0.0692708, Y = -0.0629629, T = 1112 },
               { X = 0.0697917, Y = -0.0638889, T = 1115 },
               { X = 0.0697917, Y = -0.0666667, T = 1126 },
               { X = 0.0697917, Y = -0.0675926, T = 1128 },
               { X = 0.0697917, Y = -0.0685185, T = 1132 },
               { X = 0.0697917, Y = -0.0694444, T = 1135 },
               { X = 0.0697917, Y = -0.0703704, T = 1140 },
               { X = 0.0697917, Y = -0.0712963, T = 1142 },
               { X = 0.0692708, Y = -0.075, T = 1153 },
               { X = 0.0692708, Y = -0.0768518, T = 1156 },
               { X = 0.06875, Y = -0.0787037, T = 1161 },
               { X = 0.06875, Y = -0.0796296, T = 1163 },
               { X = 0.0682291, Y = -0.0824074, T = 1170 },
               { X = 0.0677083, Y = -0.087037, T = 1181 },
               { X = 0.0677083, Y = -0.087963, T = 1186 },
               { X = 0.0671875, Y = -0.0898148, T = 1189 },
               { X = 0.0666667, Y = -0.0935185, T = 1200 },
               { X = 0.0661458, Y = -0.0944445, T = 1202 },
               { X = 0.0651042, Y = -0.1, T = 1216 },
               { X = 0.0651042, Y = -0.100926, T = 1218 },
               { X = 0.0635417, Y = -0.107407, T = 1233 },
               { X = 0.0635417, Y = -0.108333, T = 1235 },
               { X = 0.0635417, Y = -0.109259, T = 1238 },
               { X = 0.0630208, Y = -0.110185, T = 1241 },
               { X = 0.0630208, Y = -0.111111, T = 1243 },
               { X = 0.0625, Y = -0.116667, T = 1254 },
               { X = 0.0619792, Y = -0.117593, T = 1259 },
               { X = 0.0619792, Y = -0.119444, T = 1261 },
               { X = 0.0619792, Y = -0.12037, T = 1263 },
               { X = 0.0619792, Y = -0.121296, T = 1267 },
               { X = 0.0619792, Y = -0.122222, T = 1269 },
               { X = 0.0619792, Y = -0.123148, T = 1271 },
               { X = 0.0619792, Y = -0.125, T = 1278 },
               { X = 0.0619792, Y = -0.125926, T = 1281 },
               { X = 0.0625, Y = -0.12963, T = 1291 },
               { X = 0.0625, Y = -0.130556, T = 1294 },
               { X = 0.0625, Y = -0.131481, T = 1298 },
               { X = 0.0630208, Y = -0.132407, T = 1300 },
               { X = 0.0630208, Y = -0.134259, T = 1304 },
               { X = 0.0630208, Y = -0.135185, T = 1307 },
               { X = 0.0635417, Y = -0.136111, T = 1310 },
               { X = 0.0640625, Y = -0.138889, T = 1320 },
               { X = 0.0645834, Y = -0.140741, T = 1328 },
               { X = 0.0651042, Y = -0.140741, T = 1330 },
               { X = 0.0661458, Y = -0.144444, T = 1344 },
               { X = 0.0666667, Y = -0.146296, T = 1352 },
               { X = 0.0671875, Y = -0.146296, T = 1354 },
               { X = 0.0671875, Y = -0.147222, T = 1357 },
               { X = 0.0697917, Y = -0.153704, T = 1379 },
               { X = 0.0703125, Y = -0.155556, T = 1383 },
               { X = 0.071875, Y = -0.160185, T = 1405 },
               { X = 0.0729167, Y = -0.163889, T = 1426 },
               { X = 0.0734375, Y = -0.165741, T = 1448 },
               { X = 0.0744792, Y = -0.166667, T = 1461 },
               { X = 0.0744792, Y = -0.167593, T = 1465 },
               { X = 0.075, Y = -0.167593, T = 1469 },
               { X = 0.0755208, Y = -0.168519, T = 1479 },
               { X = 0.0755208, Y = -0.169444, T = 1485 },
               { X = 0.0760416, Y = -0.169444, T = 1487 },
               { X = 0.0760416, Y = -0.17037, T = 1491 },
               { X = 0.0765625, Y = -0.17037, T = 1503 },
               { X = 0.0765625, Y = -0.171296, T = 1509 },
               { X = 0.0765625, Y = -0.172222, T = 1615 }
            }
         }
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "footage",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Paint1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 633, 192 } },
      },
      footage = BrightnessContrast {
         NameSet = true,
         Inputs = {
            ClipBlack = Input { Value = 1, },
            ClipWhite = Input { Value = 1, },
            Input = Input {
               SourceOp = "FastNoise1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 507.28, 193.612 } },
      },
      FastNoise1 = FastNoise {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Contrast = Input { Value = 5, },
            XScale = Input { Value = 8.34042553191489, },
            Color1Red = Input { Value = 0.676829268292683, },
            Color1Alpha = Input { Value = 1, },
            Color2Blue = Input { Value = 0.49390243902439, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 397.28, 193.612 } },
      },
      Note1 = Note {
         Inputs = {
            Comments = Input { Value = "View this Merge while cloning.", }
         },
         ViewInfo = StickyNoteInfo {
            Pos = { 589, 224 },
            Flags = {
               Expanded = true
            },
            Size = { 171.958, 118.489 }
         },
      }
   }
}
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline
User avatar

Philipp Walz

  • Posts: 370
  • Joined: Fri Apr 25, 2014 12:41 pm
  • Location: Borkwalde - Germany

Re: How to invert steady transform in HQ?

PostFri Mar 16, 2018 4:05 pm

Certainly. Feed the Paint node a transparent black Background in its input. Put your transformed footage in the Source Tool field of the Paint (only shows up while in Clone mode). The Paint node will output only the cloned strokes with alpha.


Lifesaver! Thank you very very much!!!
Pete

Return to Fusion

Who is online

Users browsing this forum: No registered users and 45 guests