Projection simulation for cylindrical displays

Paul Bourke
December 2006

The following discussion and screen captured images illustrate software written to facilitate the projection design for large multiprojector cylindrical displays. The process is entirely interactive, the viewing position and geometric variables are adjustable in real time and the results reflected in the display.

All aspects of the geometry are accounted for and can be adjusted, this includes the following:
  • Number of projectors

  • Projector throw, aspect ratio, and lens offset

  • Projector position and rotation angle (tilt only)

  • Cylinder radius and height

  • Floor and ceiling heights (with respect to cylinder base)

Sample annotated screen capture.

Any one of the projectors can be chosen. Various analysis options are possible, for example the ring on the floor shows the shadow free zone for the audience based upon a particular maximum observer height.

The projector frustums can be viewed one at a time or all turned on at once as in the following screen capture. The marks on the cylinder rim show the minimal coverage for a particular number of projectors, the projection of the frustums on the cylinder show the edge blend zones.

The user is free to view the model from any position. The floor and ceiling grid are 1m squares. The information panel top left and help panel bottom left can be turned on/off at will.

Right mouse pop-up menus provide various options such as the aspect ratio of the projector, the number of projectors, and so on. All the variables are saved to a text file for later recall or manual editing.

As well as the default test pattern (alignment grid) it is also possible to project existing panoramic images. The output mesh can be saved and used as the basis of a textured mesh based projection system.


Usage: cylmapper [options] tgaimage
           -h  this text
           -f  full screen
           -d  verbose/debug mode
         -i s  read image
         -r s  read existing geometry file
Mouse buttons
         left  rotate camera left/right/up/down
       middle  roll camera
        right  menus
            h  reset camer to home position
   arrow keys  rotate camera left/right/up/down
          <,>  move camera forward/backward
          +,-  camera zoom in/out
          [,]  camera roll clockwise/anticlockwise
    p,c,f,u,n  edit projector, cylinder, floor, ceiling
          z,Z  height of projector, cylinder, floor ceiling
          x,X  move projector closer/further
          a,A  decrease/increase projector angle
          r,R  decrease/increase cylinder radius
          t,T  decrease/increase projector throw
          o,O  decrease/increase projector lens offset
            w  window dump
        esc,q  quit
Update: November 2007 - Export mesh to warpplayer

This update allows a movie made up of cylindrical panoramic frames to be played along with real-time navigation onto a cylindrical screen. That is, it performs the geometry correction necessary for an undistorted image on the cylindrical display given the physical properties of the projection environment.