QTVR 1.0 : A Practical Guide

Maria Bonn
Drin Gyuk
Deborah Westmoreland


Table of Contents

Purpose of this guide

Photographic Elements of QTVR

Technical Specifications

Stitching Panoramas

Post-Processing Stitched Picts

Completing the Scene

Presentation Issues


Purpose of This Guide

Apple's QuickTime Virtual Reality application program is a powerful and intriguing tool for representing three dimensional spaces and for giving users the sensation of navigating and exploring those spaces. Completed QTVR files are relatively small and can be played on any QuickTime player. Unfortunately, the production process is still cumbersome and frustrating because of a number of factors: the hardware requirements, the limitations of the documentation currently available, and the limitations of the technical support currently available.

We are a group of students at the University of Michigan School of Information and Library Studies who, since the spring of 1995, working first with a beta version of the QTVR software and then with the first commercially released version, have produced three QTVR scenes. We first produced a small, two-node, test scene of the desert room at the nearby Matthei Botanical Gardens. This project allowed us to gain an initial familiarity with the software. Our largest project is more ambitious - a nine node tour of a house and courtyard designed by the architect Elial Saarinen located on the grounds of Cranbrook Institute in Bloomfield Hills, Michigan. With the cooperation of Cranbrook, our virtual reality tour of the Saarinen house will eventually serve as a front-end for a database of the many fine and decorative art objects collected and designed by the Saarinen family that are stored in the house.

In producing QTVR scenes we have spent many long and frustrating hours reading the documentation and troubleshooting the software. We would like to offer our experience and advice as a practical guide to producing low cost QTVR scenes. We do not intend this to replace the documentation, which, with all its limitations, is invaluable. You will probably notice, as we did, that the manual gets more frustrating the deeper you move into the QTVR process; we particularly hope to clear up some of the problems you will encounter when the manual "runs out." We would like to supplement the manual and provide some examples of the problems that arise in QTVR production in the context of real use -- and give you some suggestions about how to avoid or solve those problems.

Where Else Can You Get Help?

Obviously, we're not going to be able to provide the answers to all your questions within the scope of our guide. There are other places where you can get information. But be warned that they are fairly limited at this time. You can, of course, call the Apple hotline and try asking them. But we haven't had much luck with this. Besides the usual difficulties of getting through to Apple (long hours on hold!), the support staff for QTVR is very small (one report says two people, another four). Another possible sources for help is the QTVR home page provided by Apple. You can also move directly to the information for developers; the most valuable section currently is the FAQ. Apple itself suggests that you subscribe to the QuickTime developers mailing list to share your knowledge about QTVR and to ask questions of other developers.

What Can You Find In this Guide?

This guide has three main sections: First, we discuss shooting QTVR scenes under real conditions (as opposed to the ideal ones described in the QTVR documentation). This section includes advice on shooting with a 28 mm lens, adapting a tripod for shooting panoramas, what to look for in framing shots, and advice on shooting in natural light conditions. Second, we give some hints and tips on post-processing stitched picts -- and how to avoid having to do extensive post-processing. Finally, we provide some discussion on the nitty gritty details of getting QTVR to run, including troubleshooting path names and other aspects of the scripting process and advice on when it is particularly important to stick to the guidelines in the documentation.

How Many Grey Hairs Can You Expect To Gain in the QTVR Process?

If your experience is like ours, you will probably encounter a great deal of frustration in putting together a QTVR movie. The software requires powerful hardware to run well; your frustration will probably be in inverse proportion to the power of your hardware. But even with a good machine and properly installed software, you will find it difficult to interpret the documentation and learn the fine details of writing the worksheets. Despite all this, we still think the final product is just plain nifty and has great potential for a variety of applications: musuem tours, merchandising, real estate, to name a few. We hope that with perseverance and some help from this guide you too will be able to create an attractive and satisfying final product.


The Photographic Elements of QTVR

The Necessities Versus The Luxuries

The Apple manuals to QTVR are daunting, many times answering a relevant question only at the end of the chapter. An example of this frustrating situation is overly apparent with regard to the appropriate lens. On page 1-4 of the manual, the recommended lens reads a 35mm single-lens reflex, yet by page 6-2 (while reading the $15,000 wishlist) the recommended lens is a 15mm rectilinear lens. Budget productions would change drastically if a project was to secure all the listed equipment. On this same page, the 28mm lens is recommended for "environments with distant points of interest" or in other words, outdoor environments. Yet this team found that a 28mm single-lens reflex produces professional results inside as well.

Always remember that the manual is written based on the use of a 15mm rectilinear lens. All steps must be rearranged to agree with whatever lens you plan on using. Post-production problems do exist with a lens other than the recommended 15mm rectilinear. Full panoramas require 18 shots with a 28mm (instead of the 12 needed with the 15mm); all the shooting angles will have to be altered for workable nodes; and slight distortion issues will have to be worked out by using the software tools directly instead of using the shortcut scripts for the 15mm lens.

Our camera setup, costing around $3.00 and relying on trinkets from the nearest sewing basket, worked quite well. We used a velcro-ed level on top, a spool of thread, and L-brackets purchased from the hardware store. Sometimes imagination works almost as well as $15,000. One extremely important requirement for proper stitching is that the camera is perfectly centered within the node. While this is easy with the camera at landscape orientation, if the camera is placed on a standard tripod head for portrait orientation, the center changes a few degrees with each shot, thus causing either horrid stitching results or system crashes.

If you have a little more money, purchase a QuickPan QTVR Panoramic tripod head for easy and accurate portrait mounting. It fits onto any tripod and has 5 adjustable stop positions depending on the lens being used. This beneficial feature allows the photographer to just turn to the next click which will register the accurate degree movement without eyeing 30-50% overlap for clean stitching. Well worth the money and highly recommended for any QTVR projects. The nodes developed since using this tripod head have stitched cleaner than any previous nodes, thus cutting down on post-production time in Photoshop.

Field of View for 35mm Lenses

Lens

Diagonal FOV

FOV Range (Landscape)

FOV Range (Portrait)

Number of Shots for 360o Panorama

15mm

110o

52-65o

85-98o

12

 

28mm

75o

39-52o

61-74o

18

 

35mm

63o

33-46o

51-64o

20

 

Note, there may be slight differences based on the make of your camera. Use the figures above as guidelines.

Other Equipment Needs

Planning the Nodes

The manual extensively covers planning the node setup/scene. The best advice here is read the manual so you get a sense of how important spatial issues are for either a multi-node scene or a single node, then throw that manual right back to the bookcase. When you go to survey the environment, trust your eye and intuition of what the camera will capture. Think in 3D. (Finally you get to use that high-school geometry class, particularly on the philosophy of planes.)

Questions to ask yourself:

Film is relatively cheap (dirt cheap once you realize the time involved after the photo-shoot), so re-shoot if you feel a particular node might not have been photographed properly. Keep your canisters numbered so the images will be in order when scanned to Photo-CD. Get anal if you want, but really, the manual goes way too far on this topic.

Lighting Issues

We love natural lighting and found no problems with clarity and sharpness on the images. However, if you get prints made from some or all of your negatives, don't be alarmed when they come back looking lousy. Trust the negatives. Your photo developers are making prints based on their own judgement, and this may change from shot to shot.

Indoors

The manual's recommendations are straightforward and helpful. An additional issue to address is the movement of the sun and when this light source changes the room's brightness. Turn on all the lights in the room, then check for glare from them. We were fortunate to photograph a house in which the architect, Saarinen, designed the lighting for perfect diffusion and brightness. Consider lighting on your first visit to the environment and plan the order of photo capture for the shoot. Our light meter at the Saarinen House shoot read between 8.5-12. Allow 15-20 minutes per node, depending on how comfortable you are with the process.

Outdoors

Overcast days produce the best outdoor images. There are no clouds moving in the sky, the sun's glare won't affect parts of your photographs, and there is no need to move the camera setup to a shady area...but a beautiful blue sky speaks for itself when captured perfectly to a node. Well, we think so.

Photo Processing

Choosing between Photo-CD and hand scanning is not a real option, despite what the manual may say. The saved cost (assuming you have a good quality scanner) is not worth the extra time, effort and frustration. To avoid extra costs, have the processing business first mount your slides/negatives, then check them before placing them on Photo-CD. Again, check the negatives, not the photos themselves. Once negatives are processed the price escalates from around a dollar an image to two dollars. The Photo-CD's should be the most costly expense of these projects, excluding your time and energy (which by the way is worth several thousand dollars in the fast-paced world of multi-media). Shop around, as costs may be quite different for the same service.


Technical Specifications

Overview

Note, as mentioned earlier, this guide is for 28mm photography. Furthermore, all our scenes were done using images of 768x512 pixels. If other resolutions or photo sizes are used, numbers will vary. Good luck.

QTVR is script based. It does not have a friendly GUI. There are no pull down menus. You can not browse for file locations. You have to know what you are doing before you actually do it, or be prepared to learn from your mistakes again and again and again.

QTVR is also a set of tools rather than one solid program. To use it best you have to understand the Mac OS well, be familiar with HyperCard, and preferably know what ResEdit is. Not to mention Photoshop or some other photo manipulation software. There are 6 basic steps to developing a QTVR scene. Each one has it's own set of peculiarities and problems that a developer has to keep in mind.

Hardware

More power. More RAM, more Mhz, more disk space, more video RAM, more monitor. The main reason for this is because stitching takes so much time and resources. Apple lists basic QTVR requirements as

More realistic requirements are

We actually managed to successfully do stitching with a PowerMac 6100, no AV card, and 40 meg total RAM (10 of which was used by system software). However, this used virtual memory extensively (never a good idea) and caused innumerable system crashes. The frustration wasn't worth it and we eventually upgraded to a 7500 PowerMac with an AV card and 64 meg of RAM. The difference was dramatic. It really doesn't pay to be stingy with hardware costs for QTVR.

Folder Structure and File Naming

QTVR is tremendously unforgiving. If errors are made in identifying files and folders, QTVR won't work - and it probably won't identify just what you did wrong. The best defense is to do it right the first time. Sometimes a problem won't be apparent immediately. A filename which works with one script may fail a step later.

File Sizes

Knowing what to expect from QTVR helps in figuring out if you did it right. Some tools will execute apparently error-free, and be buggy. Others will give error reports, but still be usable. Again, all figures are based on 28mm, 768x512 images, and the final window size is presumed to be 320x200.


Stitching

Too Many Photographs

Unless you are using a high-priced tripod setup with the ability to shift angles precisely, it is likely that you will not have the ideal number of photographs for the size of panorama you are making. It is also likely that photographs will not be evenly spaced. Photographs positioned too closely can be weeded out, but there is no need to have exactly 18 images. The important thing is that there is some overlap, and that the amount of overlap is relatively standard.

Too Few Photographs

If you have fewer than the suggested number (18 for 28mm), this is no problem as long as they all overlap at least some. If 2 of your photos in a sequence fail to overlap at all, you are out of luck, unless you are a whiz with Photoshop and can whip up a picture perfect filler. You may be tempted to return to your photo site and take a photograph to fill the hole. This is inadvisable, unless you can guarantee identical lighting. Better to redo the node.

Imperfect Overlapping

There is also bound to be uneven levels of overlapping between photos - both vertically and horizontally. This is fine. Using large HpanRange and VpanRange will take care of this in most cases. If not, you can use the -i switch (see below). Note that large pan ranges take more system resources and increase the possibilities for a bad stitch, so the more care you take with photographing, the better.

Commands

(size of panorama in degrees)/360x4032/# of images
For a standard 360o panorama with 18 (28mm) images, this works out to be 224.


Postprocessing Stitched Picts

If you are shooting panoramas with a 15 mm rectilinear lens, if you have the appropriate tripod, if you are extrememly careful in photographing your scene, and if you troubleshoot any potentially bad stitches by using the interactive stitching option, you will not have any need to touch up and repair the stitiched images you will use as the sources for your navigable scenes. In reality, you can minimize the amount of postprocessing you will have to do, but if you are meticulous about your scenes, you will probably need to clean up your images after stitching at least slightly.
For this part of the process of making our QTVR scenes, we used Adobe Photoshop 3.0 for the Macinstosh. This guide is in no way intended to be a tutorial in Photoshop. Instead, we'd like to suggest a few of the common problems you will encounter in stitiching, some ways to avoid them, and a few techniques for correcting them. We'd also like to suggest some guidelines for sizing up what needs to be fixed and what defects will be so small as to be unnoticeable in the final product.

Careful Planning

With some attention to the details of planning your panoramic photography, you can avoid some common problems in stiching. Objects with strong horizontal lines or clearly marked patterns may be difficult for the sticher to merge seamlessly. If possible, place such objects toward the center of a photograph and this may prevent them from being stitched through. Check frequently to make sure your camera is still level and has not slipped as this will minimize the difficulties of stitching horizontal lines.

Interactive vs. Automatic stitching

If you experience or expect problems in stitching your images cleanly, you will probably want to turn on the interactive stitching function. While this is a more time consuming process than automatic stitching, it allows you much more finely tuned control. With automatic stitching, you can leave the stitcher to do its work and return to a stitched panorama. But this is probably only worthwhile if you are working with relatively simple scenes. With more complex scenes it is worth taking the time to sit with the interactive stitcher and to nudge the images together as seamlessly as possible. This will save considerable clean up time if something should go wrong.

Cleaning up Stitched Picts

After you have gotten the cleanest possible stitch, you will probably want to open up your stitched panoramas in Photoshop and clean up any leftover stitching artifacts. Try to identify the stitch lines and look along them for errors. You may especially want to check objects with patterns or lines (i.e. windows, girders, bricks) to see if the lines meet cleanly and look at long horizontal lines to see if they run smoothly and continuously. Check and see if the stitcher has tried to merge two distinct but similarly shaped objects that are placed near each other (like two trees). Look and see if objects are accurately sized, or if the stitcher has stretched or smashed them.

Artifacts and Anomalies

By no means a complete list, these are some of the problems we encountered:
Smaller errors can usually be taken care of with a little judicious cutting and pasting or by drawing lines in a little more thickly. If a problem is large enough that it requires massive work in Photoshop (for example, those merged trees), it may be worth going back and restitching with an eye to the problem. Finally, it is probably worth maintaining some sense of proportion about how noticable the error really is. This of course depends in part on the audience for your project, but it may be that while a window that the stitcher has put together crookedly demands to be fixed, something that looks like a wrinkle in the carpet does not. Consider your audience and purpose and what size your finished product will probably be viewed at before fixating on minute details of your stitched panoramas.

Partial Panoramas

If you wish to make anything less than a full 360 degree panorama, there are a couple things to know.
    1. Remember not to use the -Wrap command.
    2. After successfully stitching, use a paint program such as Adobe Photoshop to increase the horizontal boundaries to the same size as used for full panoramas. Do not simply stretch the image, but create a new image and paste the stitched Pict in. It should be placed in the center.
    3. Make sure the unused space to right and left is pure white in color. The white space will be eliminated in a later step.
    4. Always make sure that the image is aligned properly (on its side) when you save it and that you save it as 24-bit.


Completing the Scene

Dicing

Stitched Pict dimensions are very important. Make sure that the width and height in pixels are divisible by 96 before dicing. This ensures that the final QTVR scene will be playable both on a mac and on a PC. When dicing, it will appear that everything is running sideways and backwards. This is fine. Run each diced MooV afterwards to make sure they executed properly. After Single-Node MooVs are made (see below) rename the diced MooVs with .01 .02 etc. to match node names.

Node-Making

If MPW crashes while making Single-Node MooVs, you may be fine anyway. Just check the file sizes. If the QTVR Player crashes while attempting to run a MooV, don't panic either. Try increasing the allocated RAM or running the MooV on a better machine (more RAM, vRAM and Mhz). It will likely work then. Rename all MooVs according to the conventions mentioned above.
Playing partial panorama SNMs will look bad because the white space is still there, and the player will wrap the MooV just like a full panorama. Trying to eliminate the white space by setting the HpanAngle will not work, but don't worry.


Linking Nodes

Mini-Picts

The actual image measurements don't matter - the specific reduced size for mini-Picts is just so they will fit in the Scene Editor windows. The mini-Picts for partial panoramas should include the white space and will look terrible. These Picts are only necessary if you intend to use the Scene Editor for making links. Making links without Scene Editor is non-intuitive for a beginner.

Scene Editor

Be very careful. It is easy to mess up when using the Scene Editor; probably because it looks like the most straight-forward part. Make sure at this point of where all files are stored and that the pathnames entered in Scene Editor are correct. Also, make sure you make a copy of the Scene Editor stack as HyperCard saves continuously and will write over the original. Scene Editor will not work properly with low resolution (640x480).
Give HyperCard plenty of memory or Scene Editor will display in a reduced window. This won't work. Even if you do use the right amount of memory, the very top of Scene Editor will be covered by the menu bar. Hit Command-Space. Also, make sure that you do not have the Hypercard Player installed on your Mac. Scene Editor will default to run with the Player rather than HyperCard proper.
This is where it becomes important that files were named consistently and according to the guidelines above. If Single-Node MooVs were not named correctly, they will not load. No MooVs, no linking. If you are sure that everything is named correctly and are still getting errors when trying to load, it is possible that HyperCard is the source. Remember that Scene Editor is not software so much as it is a template (HyperCard stack) for already existing software.

Hot Spot Link Picts

Scene Editor can only process nodes together if they all have the same pixel measurements. This is an insurmountable problem if you plan to link full and partial panoramas unless you have padded partial panoramas with white space on either side. The white space can be eliminated (actually, covered up) with Scene Editor by restricting the horizontal pan angles.

Ignoring Scene Editor

Do not do this unless you at least try to use Scene Editor first. It is best to have the exported files from a few QTVR Scenes to examine. It will give valuable insight into how everything is structured.

Finishing a QTVR Scene

The last steps involve going back to MPW and running the Build Worksheet scripts. I recommend running them one at a time until you are sure of what's going on. Before doing this, follow these steps:
    1. Move all your Hot Spot Picts from the hot spot link pict folder and put them in the composite hot spot folder.
    2. Change the file extensions from .linkPict to .hsPict .
    3. Double check that all diced MooVs have numeric extensions matching their single node MooVs.
Note - Steps 1 and 2 are different if you are including object hot spots in your Scene.
The Build Worksheet scripts should be doing three things: making diced MooVs from the composite hotspot Picts, finding the boundaries of the hotspots (fhsr), merging the hotspot diced MooVs with the panorama diced MooVs to form new single node MooVs, and making the merged MooVs into a single QTVR Scene (apm).
Remember that the created QTVR Scene is "unflattened". By saving it in flattened format, you will be including external resources into a single file. The size will increase dramatically.


Presentation Issues

Viewing on a Mac

The QTVR player will run on a very low-power Mac. However, if you want what others see to be indicative of the effort you expended, don't settle for built-in-video. The colors may look OK with 16-bit (thousands of colors), but everything will be slow and jerky. I recommend an AV card. You might also want to try something faster than 33mhz.
Keep in mind that your initial images were 768x512 pixels and use 24-bit color. That means that to display in a 320x200 window on your screen in 8 or 16-bit mode the details and colors get blurred considerably. Zooming in still reveals the hidden elements, but for a real "almost there" experience, a larger window size is better. As an alternative, you could simply play your scene with the double-size option, or for total clarity, full-screen. If you don't have control over viewing conditions, of course, they're on their own.

Viewing in Windows

QTVR is best suited for the Mac OS. However, to accommodate the widest possible audience, simply remember to make all panorama lengths evenly divisible by 96 for dicing. Video cards for PC's are also often less flexible. Users often go with the best resolution they can eke out of their card and settle for 256 colors all the time. Once in Windows, usually it is not easy to change the resolution to bit-depth ratio.