I’ve been working a lot with projections in vvvv-beta. Even if the Keystone Warping, virtuals projector, Cropping and Softedge functionalities were not top notch, they were good enough for most occasions.
Now as far as I know almost all of this is missing in vvvv-gamma, and this is one of the main hinderances for me to build any projects involving visual output in gamma.
Does any one have ideas about this, knows about if and how this might be tackled, or if it not planned to be implemented in gamma and supposed to be “outsourced” by sending content eg. to Resolume or doing it hardware wise on the projectors? Does anyone else feel, this would be worth continuing and has some ideas or comments?
Anyways, I think there are some promising features that I played around with, but developing them further exceeds my understanding of VL (and my programming skills in general). Here’s a list of imagined features, and approaches I thougth about so far (tested with 2021.3.3). What I would love to have, is to have all this combined in one “package”, and to be working together smoothly
Keystone Warping (distortion of an image by grid points. Ideally with bezier curves, adding detail grade of the grid on the fly, mouse and cursor interaction)
- Following this forum thread by @jib and @motzi hint, I build a crude distortable grid. Linear-Keystone-Warping_02-roughly-working.vl (115.3 KB)
- So far moving the grid points only works by changing the values in the IO-box. One problem is, I have no idea how to change the number of “slices” in an IO box other than by hand (see the (A) in the patch)
- Of course, it would be great to select and move the points by mouse. Here I think the editing framework by @gregsn (?) with its “PointEditor” from beta could do wonders. It seems, it is implemented in VL somehow, but I can’t get it to work at all. Are there any plans for reactivation (or am I just plainly too stupid)? And of course, the “BezierEditor” would also be a great foundation for a bezier based Keystone Warping.
- Another way could be to build upon some Nuget, but I didn’t found anything so far…
Virtual Projector (Having a virtual representation of a projector including Throw-Ratio etc in the viewport, usable as camera to generate output for physical projector)
- I think the “Projector (DX11)” from beta was quite nice. Based on the “LookAtRectCamera” from recent Stride updates, I also created a roughly functioning Virtual Projector, but don’t think, this is the most elegant way…
Virtual-Projector_01-based-on-LookAtRectCamera.vl (46.5 KB)
Cropping (selecting parts of an image/texture and split it into multiple textures):
- I think, this could be quite easily done usage of the clipping functionality of Skia
Soft Edge (Blending two textures on the edges, to be shown as continiously projection)
- Also, I think this shouldnt be too hard with some gradients and blending…
Bonus: Reprojection on 3D Geometry (realtime reprojection to be used for projection Mappings with perspective illusions)
- The Stride “Projector Light” basically already does that, it only would have to be tweaked a bit.
Greetings and thanks in advance,