jit.qt videoplane projection on a non-flat surface
What is the most efficient way to get a picture projected on a non-flat surface?
My idea was to display a grid and distort it until it fits.
For a videoplane I can use scale,rotate etc. but I found no way to individually "grab" points within the videoplane to get the desired result.I try to avoid nurbs gpu/cpu load-wise.
I somewhere saw an example with a displacement map for a jit.matrix but I think this could be more efficiently done in the OpenGl domain.
If this has to be figured out via jit.gl.sketch I will do and also will post my results here. But if anybody already was working on the subject I would be happy to get some hints.
I’m sure that there are many many ways this could be done, but the
most flexible solution that comes to mind first is to use a fragment
shader to manipulate texture coordinates on a surface. There’s a host
of shaders that warp texture coordinates in the jitter shader folder.
I’m sure you could coax one of them to get what you want.
Another solution would be to use jit.gl.mesh with a vertex array and a
corresponding texture coordinate array. This might be the easier of
the 2 to implement right away.
If it is a fixed installation, (ie trying to wrap video onto real
world surfaces) you can model the surface in a 3d app and import it
using jit.gl.model – this is a very reliable method. to assist in
building a model, you can photograph the surface from the exact
position of the projector and use it as ‘tracing paper’ in your
modeler (remember to take into account the camera’s field of view and
the virtual camera in the 3d modeler so they match) or you can
physically measure the dimensions and build your model this way.
if your goal is to make it ‘portable’ than you will need to build
your own ‘modeler’ in jitter… which i agree with wes, there are
possibly many different ways to go about it. nurbs actually comes to
mind first for me. they aren’t really too intensive if you don’t
have too many points and especially if they are not moving dynamically.
check out http://klip.tv/ they have put alot of effort into this
kind of thing (though i have no idea whether they use jitter or some
other dev tools.)