Feature request: quad distort / transform - before "Projector" actor

  • I'm working with live masks made using a camera feed and need the ability to quad distort / 4 corner transform the video stream before i send it to the "Projector" actor. I'm currently working with Matthew Habers Cornerpin mask but seeing to much latency from converting "image" to "video". (which i need to do)

    What i basically need is the X,Y corner functionality from 3D quad distort with a video out for further processing. 
    Any ideas?
  • Beta Tester

    To the best of my knowledge, such a thing is not possible. Would it be possible to keep your processing entirely in the core/image realm without it ever being video. That will help your performance alot.

  • Well, im not sure if i can stay in core, what i need to do is to run the live video through the FreeFrame plugin BackdropKey (or something similar, freeze frame and the through a difference actor) put that through a motion blur and then use that as a mask in a "Alpha Mask", then through a gaussian blur and finally into a 3d quad (could be a projector aswell) (Attaching a reference screenshot)

    If thats possible I'm game. But i haven't found a way to do that in core....


  • Can you run the mask and the background video separately into different projector actors? Run the mask to a projector actor with the add alpha channel actor to a projector with Mathew's cornerpin adjustment/3d quad distort and the background video to a normal projector actor. then use the layers and transparency modes on the projector actors to get the result you want, perhaps this might work for you?

  • I'm not sure exactly how you mean, but I don't think so. What I need is a way to compare the adjusted/transformed image to a reference image from the same live feed. The result is something i can then make an alpha mask from. But without the freeze+difference in Core, I can't go that route...


  • I don't have the right content set up right now, but i hope you can see what i mean... i can distort the mask and just show the video behind it... you can manipulate the mask separately from the background video. The mask image im using, i am subtracting the white so that it becomes transparent.. but the black/white can be anything.

    I did this for a live mask i was using from a camera that needed to be keystoned while the content wanted to stay static.



  • Im trying basically to map the live feed of the stage onto the stage. My problem is that since the camera can't be in the center of the projectors lens and is not the exact same focal lenght as the projectors lens i need to distort the live feed just a liitle bit to match reality. But i want to create a alpha mask instead of actually projecting the live image onto the stage. And then show color/content only in the mask.

    Thats why i need the distort Before the projector. Otherwise i am distorting the the projection itself and i lose sync with reality :)

  • One thing to keep in mind that any kind of blur will have huge performance hit. You ma be better off by eliminating blur actors than trying to use Cl.

  • Vanakaru, yes, i know, I'm trying not to (but from what I understand the performance of the blur actors are a lot better in core/image, so i just threw it in there hoping i could go core)

  • Quad does not have video out. It is more like a Projector. So I do not see how you can use it to distort the video that goes to the projector.

  • Yes, this thread is more like a feature request :)

  • Tech Staff

    OK, I haven't tested this at all.. but it should be possible in v f25 or newer.
    If you create a 3d plane with a video texturemap, you can place it in 3d space, getting some of the functionality of quad distort.
    With the new send to renderer you can do additional video processing on the video feed at that time.
    I don't know if you will have any control over wrapping/tiling of the video texture map though.

  • DusX: It's a nice workaround, but i won't get the X,Y cornerpin that i need...

    I will post this as a feature request.