Jump to content


Photo

Better Corner Pin - Gui Prototype

fuse mockup

  • Please log in to reply
60 replies to this topic

#1 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 10 January 2012 - 05:35 PM

In my opinion, Fusion's corner pin is... well... less than adequate for some operations. Especially if the corner's you want to pin aren't the image corners. There's Krokodove's Positioner, which fixes some parts but has new drawbacks. And neither tool concatenates with other transforms. I think it's time for a better corner pin in Fusion - especially now that eyeon teamed up with Imagineer :-)

I've made a GUI prototype fuse to propose some ideas, some clearly inspired by Nuke's corner pin. The Fuse doesn't transform an image (currently I'm lacking the OpenCL skills to implement a speedy image transformation) but draws some rectangles instead so you can play around with it. Some things I'd like to see in a corner pin can't be done by Fuses. But it's just a semi-finished idea for a tool anyways.
  • The tool allows you to define source corners so you don't need to use the icky perspective positioner
  • Allows you to easily define a reference frame for a four-corner-track by copying from destination to source coordinates and vice versa
  • Fine-tuning offset sliders allow you to tweak the track or adjust it for the second eye in a stereo project. This is something Fusion's current corner positioner has already and I wouldn't want to miss it.
What are your thoughts? Is anyone still corner-pinning in this age of full CG and 3D matchmoving? :mf_prop:

There are two versions of this fuse now. Both have 5x subsampling in CPU and OpenCL.
v1.0 is for Fusion 6.31 and up. It fully supports DoD and RoI.
v0.95 has partial DoD support for earlier versions of Fusion (you need at least Fusion 6.2 build 897). The input DoD is kept/transformed, but the Fuse will always request the full upstream image and clip what's outside its borders.

Get them on VFXPedia!

Attached Files



#2 jirka

jirka

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 131 posts

Posted 11 January 2012 - 06:09 PM

Aaaaah, thanx.
Yes, Fusion corner pin is lacking all of this. It is slow, doesn't concatenate with other transforms and is not working well with tracker node. We need one button inverse (stab/destab). We need (reliable!) reference frame. And new on screen control, even Photoshop is much better. Some filtering options will be also really usefull.

Spline masking under corner pin is the main reason we still keep Silhouette licenses. Same with Mocha. Imagineer planar tracking is hard to beat, but Fusion roto is better, just doesn't work well with corner pin.

Sorry for the rant. This is part of Fusion I really hate... And it is needed daily.

Jirka

#3 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 12 January 2012 - 01:26 AM

I'm currently improving the code, next version will support 1,2 and 3 corners. Then I'll try to implement DoD and write the image transformation code in OpenCL which means it could actually perform at a usable speed. The destab button would be interesting. I think it would just swap source and destination, right?
But then I'll have reached the limits of what a Fuse can do. No on-screen-controls (for offsets or edges), no concatenation, no transformation of mask splines in the GUI...

#4 bfloch

bfloch

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 960 posts

Posted 12 January 2012 - 08:26 AM

You know what feature Id like: the ability to have a local or global offset, meaning that the offset either extends the direction of tne other sides or is independent like your current implementation. Both cases are relevant sometimes. Great work so far.

#5 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 12 January 2012 - 09:43 AM

thanks. you know sometimes I have the urge to just go after a problem like this, find out that it's not trivial, and just can't stop reading wikipedia articles about matrix math :-) you'd think a corner pin code would be all over the internet but it took a bit to find it...

#6 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 15 January 2012 - 08:54 AM

I have updated the Fuse in my first post. It can now do 1, 2, 3 or 4-corner transformations and it has an invert checkbox. It's still a non-functional GUI prototype though.

Funny story: The code for corner pinning matrices is already in Fusion's SDK in two places. But the first isn't available to Fuses and the second one is broken :mf_tongue:

Blazej, what do you mean by extending the direction of the other sides?

#7 bfloch

bfloch

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 960 posts

Posted 16 January 2012 - 11:08 AM

Blazej, what do you mean by extending the direction of the other sides?


Similar when you set the Tracker to "Perspective Positioning" then the offset is relative to the direction and not "independent". Being able to switch this modes on the offsets would be nice.

#8 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 17 January 2012 - 04:13 AM

I'll look into it.
By the way, the new version is public domain now. So if anybody wants to turn it into a C++ macro, feel free to do so :-)

#9 bfloch

bfloch

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 960 posts

Posted 17 January 2012 - 09:14 AM

Just a sidenote: Public domain has some legal issues in certain countries. Also it doesn't stop anyone from deleting you as original author. If you want to make code freely available to the public consider something like BSD. This as well is totally free to modification, changes and usage (also commercially).
Additionally to my opinion it was recommended by the attendees of the vfx open source panel at fmx last year ;)

#10 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 21 January 2012 - 04:35 PM

Just a sidenote: Public domain has some legal issues in certain countries. Also it doesn't stop anyone from deleting you as original author. If you want to make code freely available to the public consider something like BSD. This as well is totally free to modification, changes and usage (also commercially).
Additionally to my opinion it was recommended by the attendees of the vfx open source panel at fmx last year ;)


This one? http://www.opensourc...es/BSD-2-Clause
It sounds like it allows commercial use but not a closed-source plugin based on the Fuse. But that's what I would like to allow :-)

#11 bfloch

bfloch

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 960 posts

Posted 21 January 2012 - 10:20 PM

Where do you read this? Binary redistribution is allowed as long as the copyright notice is inside the doc or material.

The BSD License allows proprietary use, and for the software released under the license to be incorporated into proprietary products. Works based on the material may be released under a proprietary license or as closed source software.
It is possible for something to be distributed with the BSD License and some other license to apply as well.


I'd preferred the "New BSD" license so no-one can advertise a product based on your work with your name while still keeping the copyright:
http://en.wikipedia....D_License.22.29

#12 Gringo

Gringo

    Associate Administrator

  • Adv Members
  • PipPipPipPipPip
  • 1,455 posts

Posted 22 January 2012 - 08:23 AM

It's a great idea to improve the CornerPin!

In fact, currently I use only Krokodove Positioner and the GridWarp instead of it.

What is great about Krokodove, it allows you to position the corners in coordinates of the background plate which is useful almost all the time unless you are tracking an image for an HD TV set into an HD frame :)
What I like about the GridWarp is the possibility to select multiple corners at once and move them simultaneously.

Your interface version is really nice, it's clearer and more intuitive than the original. But I would inherit some things from the GridWarp to be consistent with Fusion toolset: The Source/Destination multibutton and "Copy Src To Dest" / "Copy Dest To Src" buttons.

Perhaps, it would be nice to have a global Center too. It's transformations would be added to the positions of the point.

#13 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 22 January 2012 - 09:24 AM

Good points, Gringo. I was also thinking about consistency issues with the order of corners! I think it makes sense to have them in either a clockwise or counter-clockwise order. However, the current corner pin has them top-left / top-right / bottom-left / bottom-right.

I have just tried out the Positioner's map input. It thought about it, but it surely makes sense to transform a differently sized foreground image with the background's coordinates. But I don't understand why it is merged instead of just distorted onto a black background.

#14 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 22 January 2012 - 10:10 AM

Where do you read this? Binary redistribution is allowed as long as the copyright notice is inside the doc or material.


I was confused by this clause:

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.


specifically by the term "this list of conditions".

#15 bfloch

bfloch

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 960 posts

Posted 22 January 2012 - 10:38 AM

Simply means you have to embed the conditions written there, one being the statement itself.
basically this term means copy all the terms in the source/with binary distribution. It's there so someone does not change the license/authorship on your particular code while he still is able to change, adapt and use it as needed.





Also tagged with one or more of these keywords: fuse, mockup

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users