jit.qt videoplane projection on a non-flat surface

    Feb 25 2006 | 11:03 pm
    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.

    • Feb 26 2006 | 12:36 am
      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.
      good luck. wes
    • Feb 26 2006 | 3:56 pm
      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.)