Jump to: Board index » General » Fusion

Corner Positioner

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

Kel Philm

  • Posts: 608
  • Joined: Sat Nov 19, 2016 6:21 am

Corner Positioner

PostThu Mar 23, 2017 11:44 pm

I am basically looking to use Corner Positioner to do the same thing Corner Pin does in Nuke, am I missing something here? I am using the offsets to mark the corner of the image and repositioning the corners back to there original place then manipulating them from there but its pretty clunky.

I have tried the CornerPin fuse which does exactly what I want to do but it keeps crashing and takes an age to render (Problems with OpenCL etc...).
Offline
User avatar

Andrew Hazelden

  • Posts: 536
  • Joined: Sat Dec 06, 2014 12:10 pm
  • Location: West Dover, Nova Scotia, Canada

Re: Corner Positioner

PostFri Mar 24, 2017 2:37 am

Hi Kel.

As an alternative way to do corner pinning in Fusion, you could also use a GridWarper node set to use a X Grid Size/Y Grid Size value of 1x1.

This approach allows you to edit the "Source" or "Destination" settings at the top of the node controls to either corner pin or un-distort your footage depending on the direction you are trying to go with the warping. :)

Code: Select all
{
   Tools = ordered() {
      GridWarp1 = GridWarp {
         SrcDrawMode = 1,
         DestDrawMode = 1,
         CtrlWZoom = false,
         CustomData = {
            Settings = {
               [1] = {
                  Tools = ordered() {
                     GridWarp1 = GridWarp {
                        SrcDrawMode = 1,
                        DestDrawMode = 1,
                        CtrlWZoom = false,
                        CustomData = {
                        },
                        Inputs = {
                           DstXGridSize = Input { Value = 1, },
                           DstYGridSize = Input { Value = 1, },
                           SrcXGridSize = Input { Value = 1, },
                           SrcYGridSize = Input { Value = 1, },
                           SrcGridChange = Input {
                              Value = Mesh {
                                 Count = 4,
                                 Col = 2,
                                 DeltaR = 1,
                                 DeltaC = 1,
                                 P1X = -0.5,
                                 P1Y = -0.5,
                                 Points = {
                                    { X = -0.5, Y = -0.5, L_CX = 0, T_CY = 0, },
                                    { X = 0.5, Y = -0.5, T_CY = 0, R_CX = 0, },
                                    { X = -0.5, Y = 0.5, L_CX = 0, B_CY = 0, },
                                    { X = 0.5, Y = 0.5, Z = 9.40091560893215e-05, R_CX = 0, B_CY = 0, }
                                 },
                                 SavePoints = {
                                 }
                              },
                           },
                           SrcPolyline = Input {
                              Value = Polyline {
                              },
                           },
                           DstGridChange = Input {
                              Value = Mesh {
                                 Count = 4,
                                 Col = 2,
                                 DeltaR = 1,
                                 DeltaC = 1,
                                 P1X = -0.5,
                                 P1Y = -0.5,
                                 Points = {
                                    { X = -0.191559777521872, Y = -0.0171326117372599, Z = 8.92513030927889e-05, U = -0.5, V = -0.5, L_CX = 0, T_CY = 0, R_CX = 0.13390431743429, R_CY = 0.0767926495021233, B_CX = -0.0414022465161841, B_CY = 0.156629989373964, },
                                    { X = 0.210153174781, Y = 0.213245336769109, Z = 9.13461155729461e-05, U = 0.5, V = -0.5, L_CX = -0.13390431743429, L_CY = -0.0767926495021233, T_CY = 0, R_CX = 0, B_CX = 0.00883542283754317, B_CY = 0.0774436029649457, },
                                    { X = -0.315766517070423, Y = 0.452757356384632, Z = 9.66966342374106e-05, U = -0.5, V = 0.5, L_CX = 0, T_CX = 0.0414022465161841, T_CY = -0.156629989373964, R_CX = 0.184141986788017, R_CY = -0.00239373690689515, B_CY = 0, },
                                    { X = 0.23665944329363, Y = 0.445576145663946, Z = 9.39207002798593e-05, U = 0.5, V = 0.5, L_CX = -0.184141986788017, L_CY = 0.00239373690689515, T_CX = -0.00883542283754317, T_CY = -0.0774436029649457, R_CX = 0, B_CY = 0, }
                                 },
                                 SavePoints = {
                                 }
                              },
                           },
                           DstPolyline = Input {
                              Value = Polyline {
                              },
                           },
                           Input = Input {
                              SourceOp = "ColorBackground",
                              Source = "Output",
                           },
                        },
                        ViewInfo = OperatorInfo { Pos = { 1045, 50 } },
                        Name = "GridWarp1"
                     }
                  }
               },
               [2] = {
                  Tools = ordered() {
                     GridWarp1 = GridWarp {
                        SrcDrawMode = 1,
                        DestDrawMode = 1,
                        CtrlWZoom = false,
                        CustomData = {
                        },
                        Inputs = {
                           DstXGridSize = Input { Value = 1, },
                           DstYGridSize = Input { Value = 1, },
                           SrcXGridSize = Input { Value = 1, },
                           SrcYGridSize = Input { Value = 1, },
                           SrcGridChange = Input {
                              Value = Mesh {
                                 Count = 4,
                                 Col = 2,
                                 DeltaR = 1,
                                 DeltaC = 1,
                                 P1X = -0.5,
                                 P1Y = -0.5,
                                 Points = {
                                    { X = -0.5, Y = -0.5, L_CX = 0, T_CY = 0, },
                                    { X = 0.5, Y = -0.5, T_CY = 0, R_CX = 0, },
                                    { X = -0.5, Y = 0.5, L_CX = 0, B_CY = 0, },
                                    { X = 0.5, Y = 0.5, Z = 9.40091560893215e-05, R_CX = 0, B_CY = 0, }
                                 },
                                 SavePoints = {
                                 }
                              },
                           },
                           SrcPolyline = Input {
                              Value = Polyline {
                              },
                           },
                           DstGridChange = Input {
                              Value = Mesh {
                                 Count = 4,
                                 Col = 2,
                                 DeltaR = 1,
                                 DeltaC = 1,
                                 P1X = -0.5,
                                 P1Y = -0.5,
                                 Points = {
                                    { X = -0.191559777521872, Y = -0.0171326117372599, Z = 8.92513030927889e-05, U = -0.5, V = -0.5, L_CX = 0, T_CY = 0, R_CX = 0.155614323704767, R_CY = -0.00654669911065214, B_CX = 0.0243807272569558, B_CY = 0.117473457366143, },
                                    { X = 0.27528319359243, Y = -0.0367727090692171, Z = 9.21335860120227e-05, U = 0.5, V = -0.5, L_CX = -0.155614323704767, L_CY = 0.00654669911065214, T_CY = 0, R_CX = 0, B_CX = 0.00228819444985293, B_CY = 0.130457395812149, },
                                    { X = -0.118417595751003, Y = 0.335287760361168, Z = 9.44455552028651e-05, U = -0.5, V = 0.5, L_CX = 0, T_CX = -0.0243807272569558, T_CY = -0.117473457366143, R_CX = 0.133521790897663, R_CY = 0.00643723933535431, B_CY = 0, },
                                    { X = 0.282147776941987, Y = 0.35459947836723, Z = 8.70776672697137e-05, U = 0.5, V = 0.5, L_CX = -0.133521790897663, L_CY = -0.00643723933535431, T_CX = -0.00228819444985293, T_CY = -0.130457395812149, R_CX = 0, B_CY = 0, }
                                 },
                                 SavePoints = {
                                 }
                              },
                           },
                           DstPolyline = Input {
                              Value = Polyline {
                              },
                           },
                           Input = Input {
                              SourceOp = "ColorBackground",
                              Source = "Output",
                           },
                        },
                        ViewInfo = OperatorInfo { Pos = { 1045, 50 } },
                     }
                  }
               },
            }
         },
         Inputs = {
            DstXGridSize = Input { Value = 1, },
            DstYGridSize = Input { Value = 1, },
            SrcXGridSize = Input { Value = 1, },
            SrcYGridSize = Input { Value = 1, },
            SrcGridChange = Input {
               Value = Mesh {
                  Count = 4,
                  Col = 2,
                  DeltaR = 1,
                  DeltaC = 1,
                  P1X = -0.5,
                  P1Y = -0.5,
                  Points = {
                     { X = -0.5, Y = -0.5, L_CX = 0, T_CY = 0, },
                     { X = 0.5, Y = -0.5, T_CY = 0, R_CX = 0, },
                     { X = -0.5, Y = 0.5, L_CX = 0, B_CY = 0, },
                     { X = 0.5, Y = 0.5, Z = 9.40091560893215e-05, R_CX = 0, B_CY = 0, }
                  },
                  SavePoints = {
                  }
               },
            },
            SrcPolyline = Input {
               Value = Polyline {
               },
            },
            DstGridChange = Input {
               Value = Mesh {
                  Count = 4,
                  Col = 2,
                  DeltaR = 1,
                  DeltaC = 1,
                  P1X = -0.5,
                  P1Y = -0.5,
                  Points = {
                     { X = -0.191559777521872, Y = -0.0171326117372599, Z = 8.92513030927889e-05, U = -0.5, V = -0.5, L_CX = 0, T_CY = 0, R_CX = 0.13390431743429, R_CY = 0.0767926495021233, B_CX = -0.0414022465161841, B_CY = 0.156629989373964, },
                     { X = 0.210153174781, Y = 0.213245336769109, Z = 9.13461155729461e-05, U = 0.5, V = -0.5, L_CX = -0.13390431743429, L_CY = -0.0767926495021233, T_CY = 0, R_CX = 0, B_CX = 0.00883542283754317, B_CY = 0.0774436029649457, },
                     { X = -0.315766517070423, Y = 0.452757356384632, Z = 9.66966342374106e-05, U = -0.5, V = 0.5, L_CX = 0, T_CX = 0.0414022465161841, T_CY = -0.156629989373964, R_CX = 0.184141986788017, R_CY = -0.00239373690689515, B_CY = 0, },
                     { X = 0.23665944329363, Y = 0.445576145663946, Z = 9.39207002798593e-05, U = 0.5, V = 0.5, L_CX = -0.184141986788017, L_CY = 0.00239373690689515, T_CX = -0.00883542283754317, T_CY = -0.0774436029649457, R_CX = 0, B_CY = 0, }
                  },
                  SavePoints = {
                  }
               },
            },
            DstPolyline = Input {
               Value = Polyline {
               },
            },
            Input = Input {
               SourceOp = "ColorBackground",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1045, 50 } },
      },
      ColorBackground = Background {
         NameSet = true,
         Inputs = {
            GlobalOut = Input { Value = 24, },
            Width = Input { Value = 1080, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Type = Input { Value = FuID { "Corner" }, },
            TopLeftRed = Input { Value = 1, },
            TopRightGreen = Input { Value = 1, },
            BottomLeftBlue = Input { Value = 1, },
            BottomRightGreen = Input { Value = 1, },
            BottomRightBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 935, 50 } },
      }
   }
}
Mac Studio M2 Ultra / Threadripper 3990X | Fusion Studio 18.6.4 | Kartaverse 6
Offline

Kel Philm

  • Posts: 608
  • Joined: Sat Nov 19, 2016 6:21 am

Re: Corner Positioner

PostFri Mar 24, 2017 6:24 am

I did actually think I could try the grid warp but just assumed that I was just using the Corner Positioner wrong.

Thanks Andrew,

Return to Fusion

Who is online

Users browsing this forum: No registered users and 28 guests