World Wide Panorama mailing list archive

Mailinglist:wwp@yahoogroups.com
Sender:burrahobbitau
Date/Time:2005-Nov-11 14:54:00
Subject:Alternative web panorama tool

Thread:


wwp@yahoogroups.com: Alternative web panorama tool burrahobbitau 2005-Nov-11 14:54:00
Let's see if I get this message on my gmail account

PanoRez
For producing multiresolution panoramas in VRML and X3D usig the Rez
program.  All open source.
http://www.surak.com.au/~chris/vrml/doc/PanoRez.html.
Example multiresolution panoramas
You will need a VRML/X3D browser installed before going to the urls of
examples bellow.  Download and install BS contact 6.1,  blaxxun
contact 5.1,   Cortona, xj3d, FreeWrl, or CosmoPlayer. 

Examples.  Note it may take a little while for the initial files to
download and display.

The following are example 360 degree VRML panoramas of a Vireya
Rhododendron plant nursery:
Vireya Venue, Queensland
http://planet-earth.org/pano/pano360/pano/DisplayPano.wrl
http://planet-earth.org/pano/pano360-cpv/pano/DisplayPano.wrl

Some earth panoramas:
spherical pano, earth
http://planet-earth.org/pano/panoFlatQuadtree/pano/pano/Display.wrl
http://planet-earth.org/pano/spherePano/pano/pano/DisplaySpherePano.wrl

The code and data to generate these examples can be found on
http://sourceforge.net/projects/planet-earth under the latest file
resleases section: panoramas.  This package will look like this::

panoramas [show only this package]
	 
    Release Notes 360 panoramas [show only this release]	2005-11-10 19:07
    Download pano360-cpv.zip	8200272 	0	Any	.zip
    Download pano-360.zip	8108932 	0	Any	.zip
    Release Notes earth sphere panorama [show only this release]
2005-11-10 18:59
    Download spherePano.zip	6957671 	0	Any	.zip
    Release Notes image slice examples [show only this release]
2005-11-10 18:49
    Download imageSlicerExamples.zip	38012247 	0	Any	.zip
    Release Notes Flat panoramas [show only this release]	2005-11-10 02:02
    Download panoFlatQuadtree.zip	4506565 	0	Any	.zip
 
Steps for creating VRML panoramas
Note: the process of producing these panoramas use two forms of input:
images in an "images" directory and a source geometry grid (names
pano.wrl in the examples).  I refer to these in the following steps. 
An important thing to note is that you can rename the source geometry
grid anything but its name must match the name of the source image.

   1. Get a source image, e.g. by using PanoTools.
   2. Decide on what kind of panorama you need: spherical, 360
"cylindrical", flat.  Choose the appropriate example from the above as
a guide.
   3. Using the example, create your own copy of the entire directory
and modify as in the following steps:
   4. Firstly, modify the .bat file to generate the images you need. 
Note: the Flat example uses a quadtree, the others use a binary tree
for input.  The image examples show how to generate each.  You need to
modify the image file path in the image slice .bat file.
   5. Change the name of your image to the same name as the source
grid (e.g. "pano" for source grid pano.wrl).
   6. Slice the images.
   7. Copy the images directory to the directory of the panorama example.
   8. Modify the panorama example config.txt file.  You normally only
have to change name of the source grid - if you have renamed it from
pano.wrl.
   9. Run the .bat file to generate the panorama.  It generates output
to a "tiles" directory.  It also creates a Display.wrl file in the
"pano" subdirectory.  For the flat panoramas, you can load Display.wrl
into your web browser (with its pre-installed web3d browser) and you
are in business.  For the others there is a predefined Display file
that you should use (ignore the generated "Display.wrl" - something
will be done later to auto generate a proper one for the spherical panos).
  10. These files are then ready to be loaded onto a server and used
over the web.
  11. Have Fun :) !

Two of the parameters in the batch files (e.g. WebPano.bat) determine
the range of level of detail: the startLevel and endLevel.  These are
0 and 8 respectively in WebPano.bat.  A 50 x 25 grid, as used in the
examples, is not enough for higher levels of detail.  Larger example
grids are provided in the panoramas package for such use.

Note there are many parameters to Rez and the image slicer, these are
described in detail at
http://www.surak.com.au/~chris/vrml/RezIndex.html. Only some are
described here.
360 Panoramas
The 360 panoramas show how to generate panoramas that wrap around the
viewpoint 360 degrees, in a kind of curved cylinder,  that is not a
full sphere.  The -cpv version adds colour-per-vertext so that when
the level of detail changes the background does not change to white,
but a low resolution version of the image.

Note: the source image needs to be flipped horizontally.  I'll do
something to remove this requirement later.

The vertical and horizontal field of view (FOV) is set by 4 fields in
the source grid.  For example, for the given 360 degree examples,
pano.wrl has the fields:
       xDimension 50
       zDimension 25
       xSpacing 7.34861
       zSpacing 2.5
Here, xDimension x xSpacing gives the horizontal FOV and should be <=
equal 360.
zDimension x zSpacing gives the vertical FOV.

There are two offsets in WebPano.bat that affect the angles (to put it
simply).  Normally, for a sphere they are -180 -90,
but in this case I have adjusted it until the panorama starts in the
vertical position I want: so that is it centered vertically with
respect to the initial viewpoint.
Earth sphere panorama
An example of a fully spherical panorama. I used an image of the earth
for this one, because I had it lying around.
 
The vertical and horizontal field of views are set by 4 fields in the
source grid.  For sphere example, for the given examples, pano.wrl has
the fields:

      xDimension 50
       zDimension 25
       xSpacing 7.346938775
       zSpacing 7.5
Image slice examples
All panorama generation rely on images generated by the image slicer
(see the "image slice examples" release.  A source image is subdivided
into a multiresolution tree and these images are tiled onto the
surface of the wrap-around pano.  As you move toward part of the pano
it increases detail by replacing tiles with higher detail ones.
Optimisations
Optimisations fall into four categories:

   1. gzipping the geometry
   2. choosing a image size that suits the bandwidth you are targeting
(and maybe choosing to add colour per vertex or pixeltextures).
   3. Reducing the number of files to download for any one "tile". 
Basically, reducing the number of files per level of detail change
improves the internet performance as long as you don't increase the
size of files overmuch.  The optimal point seems to be binary trees
with two geometry+tree node files per LOD change, plus two texture
files.  There is the option of combining texture with geometry - a
total of two files per LOD change - but it runs the risk of increasing
the size of files  too much (with internal PixelTextures).
   4. You can also optimise the detail scaling: the distance at which
a tile changes to the next level of detail.





Next thread:

Previous thread:

back to search page