Spherical Panoramas Using VRML

H. Dersch

Technical University Furtwangen


6. February 1999

Full spherical VR-technologies are fascinating, yet there are only very limited resources available. The only high-quality viewer which is freely available is the one from LivePicture and it is under a constant thread to be banned due to legal reasons. The other main technology is the one marketed by IPIX, but this is prohibitively expensive, and also leaves a lot to desire in terms of image quality.

There is another free resource available, which is usually not used for this purpose: VRML. Its background node is perfectly suited for displaying spherical panoramas, and free viewers are available for almost any platform.

An Example

As a proof of concept, I created a panoramic image, which is viewable by almost any compatible VRML 2.0 browser. I have tested it on the Mac with the CosmoPlayer (it does not work properly with the RealVR-viewer which doesn't fully support VRML 2.0). The browser controls are somewhat different to the common panoramic viewers: 'Zoom' in VRML-land means 'move closer', and doesn't change field-of-view and hence has no effect on the panorama. A real zoom control has to be added in the accompanying script, which is included in this example. Also, don't use the control 'Pan' to pan, but rather 'tilt'. Other than that, you should get similar effects to the common panoramic VR-tecnologies.

Click here to view the Grand Canyon panorama (~200kB) as described above. Image quality suffers from heavy compression, but the CosmoViewer (still beta on the mac) seems to add a couple of additional artefacts at the cube edges.

I couldn't resist adding a toy version with the helicopter from the VRML-examples files. Click on it to start the rotor. This example is useful to see what the other browser controls are doing.

For a comparison: These are RealVR and QTVR-views of the same scene.

Creating the Images

The internal representation of the VRML-background node is made up of six quadratic images (jpeg or png format) which cover the faces of a cube.
This format is almost unsuitable for creation of a panorama, because the edges will never be exact. For this purpose, other formats are more suitable, and supported by many authoring systems (eg 'cylindrical panoramic' projection by Apple's QTVR, and 'cylindrical equirectangular' by LivePicture's 'Sphere' mode). You can generate Panoramas in both formats using my free plug-in 'Panorama Tools'.

After creation of the panoramic image (which is covered by your authoring system, and by other documents on this site, if you use 'Panorama Tools') you have to convert it to the six cubic faces. This can also be accomplished using 'Panorama Tools':


Finally, you have to create a viewer script  (a plain text file) which in its simplest form just contains the Background node description listing the six image files.

#VRML V2.0 utf8

Background {
 frontUrl  "GC_f.jpg"
 backUrl   "GC_b.jpg"
 leftUrl   "GC_l.jpg"
 rightUrl  "GC_r.jpg"
 topUrl    "GC_u.jpg"
 bottomUrl "GC_d.jpg"

Opening this Script with your browser should display the panorama.

Advanced Stuff

A 'zoom' control has to be provided in software. Please download the viewer script I am using to see how this works. A VRML-wizard can probably change this to zoom smoothly.

The creation of the six cubic images can be automated using a script-file. Please check the 'Panorama Tools' documentation (HowToStitch) about script-syntax. For the extraction this script file can be used.

Copyright 1999 © Helmut Dersch