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.
    • 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.)