project onto 3d geometry

Hi,

i want to project a scene onto 3d geometry so that the virtual scene is viewed from a position where you cannot place the projector in real world.

This image should illustrate what i mean:

http://vvvv.org/show-image.php?id=6427

There is a nice explanation and some sample patches of how to project onto 3d geometry with vvvv on http://vvvv.org/tiki-index.php?page=How-…-D+Geometry.

They explain the process as follows:
You need 2 render-passes:

  • the first pass renders the scene from the desired perspective
  • the second pass renders the scene from the desired real world position of the projector WHILE the result of the first pass is being projected onto the 3d models surface from the perspective of the virtual camera.

Any ideas how to do this with openFrameworks? Any help / hints are very appreciated

Thank’s

Christian

  • the first pass renders the scene from the desired perspective
  • the second pass renders the scene from the desired real world position of the projector WHILE the result of the first pass is being projected onto the 3d models surface from the perspective of the virtual camera.

i haven’t done this before myself, but this is my interpretation. i’m going to use the European word ‘beamer’ in place of ‘video projector’ just to make things clearer…

  1. take some content, and render it to an FBO.

  2. build up a 3d world that represent the geometry of the parts of real world you will be beaming on to.

  3. using projective texture mapping (look it up), generate appropriate texture coordinates for mapping the FBO to the 3d objects. for the calculations, your eye position (projection source) in the 3d world is the position in the real world where you want to be standing to see the content properly undistorted.

then:
4. for each beamer in the real world, set the eye position+direction in the 3d world to the equivalent position+direction in the real world, and render the scene. beam this image with this beamer.

hth
d
(post videos when you get it working!)