How to create a cubic QTVR Panorama

This tutorial can be used by any Macintosh user of Strata StudioPro or Strata3D/pro. The only external tool required in this tutorial, which can be obtained from Apple's developer website, is MakeCubic. You can create hotspots in cubic panoramas using MakeCubic, but not multi-node scenes. To create cubic QTVR panoramas you will also need to install Quicktime 5. MakeCubic is not available in a Windows version as of this writing, but there are probably 3rd party PC applications which serve the same purpose.
Fig 1
Setting Up The Camera
Imagine that an invisible, virtual cube surrounds your camera (Fig 1). To make a cubic QTVR, you will need to take a square picture of each of the 6 faces of this cube. The resultant images (in any format readable by Quicktime), which represent the front, right, back, left, top and bottom faces are labelled numerically in that order (e.g. face01, face02, etc). Keep to this order. You can add a file name extension if you like, as long as the number is not part of it.

There are a couple of ways to go about generating the 6 images required.

You can insert a camera and then manually rotate it so that eventually you end up with the 6 cubic face images. Or you can insert 6 cameras in the same spot pointing in the requisite directions. You can also output the six images as a 6-frame quicktime movie by animating the camera (see below for details).

To set up the camera, do the following:

Select the Object tab of the Object Properties palette. Set the camera's (aspect) Ratio equal to 1.00:1 (Fig 2). If you open a camera window to resize it, you might want to keep its aspect ratio locked by clicking on the lock icon at the top of the camera window (Fig 3). This will prevent inadvertent changes to the window's proportions.

Set the camera Type to Normal, and the View angle to 90 degrees.

Aiming The Cameras
The easiest, and most accurate way to aim the camera is to set the tracking values of its Look-At point.

Open the Project window and expand the camera's Base Properties so that you can view its x, y and z Tracking values (Fig 4). Set the tracking values of the camera according to which cube face it will be aimed at; follow the values in Table 1 for the camera, or use your own for the non-zero values. It is assumed that the camera faces the front when it is pointing along the negative z axis (see Fig 1).

Fig 2
Fig 3
Table 1
Camera aimed at cube face:
Camera Tracking
x
y
z
Front
0
0
-1.0
Right
1.0
0
0
Back
0
0
1.0
Left
-1.0
0
0
Top
0
1.0
0
Bottom
0
-1.0
0
Fig 4

Change the shape window to isometric or any view that will allow you to see a camera's Up vector (the red line connecting the centre of the view to the top edge) more clearly. When you are pointing the camera at the front, right, back and left cube faces, make sure the camera's Up vector is pointing upwards.

Keep the camera's Constrain Roll checkbox checked when aiming the camera. You may need to leave the Constrain Roll option unchecked and correct the camera manually using the Roll Control found beside the Constrain Roll checkbox. Roll controlMake sure the horizon separating the white and gray hemispheres of the Roll Control is perfectly level. When the camera is pointing to the top and bottom faces of the cube, you will need to orient their Up vector so that it corresponds to that shown in Fig 5 and Fig 6 respectively.

Fig 6
You may want to group six cameras together in the same spot, each pointing to a particular face of the cube. The advantage of using a group of 6 cameras is that once inserted into a model as a shape, the group can be positioned and rotated freely using the Transform tab fields in the Object Properties palette. This is more convenient than trying to rotate a single camera 6 ways, especially if the camera is not located at world centre. You should keep the group level when rendering camera views (rotating the group around the x and z axes is highly adventurous).

To render each camera view, open the Project window and expand the group's Base Properties so as to reveal each component camera. Open an individual camera's window and render its view. Voilà! (Please read Tip no. 2 below for image sizes to render.)

You can also output the six cubic images as a 6-frame quicktime movie. This can be done by animating the camera 6-ways. Such an animated cubic camera can be obtained from: <http://www.vicnet.net.au/~sweeho/resources/6frcubic_camera.sit>.

To use this camera, make sure your scene setting has a total duration of 6 frames, at a frame rate of 1 frame per second. This will enable the camera to rotate as configured. Then render out all frames of the animated camera as an uncompressed quicktime movie. In the movie Compression Settings dialog, disable key frames and use the Animation codec at 100%.

Fig 7
Creating The Cubic QTVR Panorama
Although it is possible to just drag and drop your rendered output files onto the icon of Apple's MakeCubic application, for better control over the finished QTVR movie, it is better to launch the application itself.

From the File menu select the Convert (Cmd-O) command to open the panorama settings window (Fig 7). The Main File... button will bring up a normal Open File dialog. The source files can be either 6 image files (hold down the Shift key to select them all), or a 6-frame quicktime movie.

The Compression Settings... button allow you to set the overall compression for the QTVR movie (Fig 8). The default codec is Photo-JPEG, which works well. You are free to experiment, of course.

If the QTVR movie is intended for the web, and you want to present a preview image while the movie is being loaded, check the Fast Start Preview checkbox. It's easier to just let MakeCubicPPC generate the preview image, so the Generate Preview radio button is selected by default. If you want the preview image to be grayscale, check the Gray checkbox. To blur the preview, check the Blur checkbox. For the resolution of the preview image, a value of between 0.5 and 2 pixels/degree is acceptable. Note that although there is a Compression settings button for the preview image of MakeCubic, try to stick to the default 25% Photo-JPEG compression.

If your cubic QTVR movie has hotspots, you can load the hotspot image files by clicking on the Hotspot File... button. (Read Apple's hotspot tutorial for details.)

Fig 8
For the Movie Settings, the Pan and Tilt input boxes determine what you see in the QTVR window. Use the default Min and Max settings. (The QTVR window is where you view and interact with the cubic panorama in Quicktime Player.) If you want a custom view for the QTVR window, enter your own values in the Default boxes. A pan of 0° is the direction your Strata camera is pointing in your model. Pan values run counterclockwise from 0 to 360 degrees (if you view the camera from the top). A positive Tilt value means the camera is pointing upwards, and vice versa.

Uncheck the Optimal FOV for Window checkbox so that you can enter your own values in the 3 FOV fields. The Default FOV is the viewing angle of the QTVR window when it opens initially. If you want to disable zooming in your cubic panorama, just enter the same value in all 3 FOV fields. I recommend using the settings in Fig 7 initially.

You can set a custom QTVR window by specifying a Width and Height value in the Window boxes, but keep these dimensions divisible by 4. The Tiling boxes allow you to specify how each rendered image is subdivided. A value of 1 means there is no subdivision. You might want to consider tiling if your rendered images are huge — less strain on your computer when playing the panorama. Apple suggests that you leave the Auto-Tile checkbox unchecked.

You should leave the Quality setting of the QTVR display when panning (Motion) and when not panning (Static) at their default values, as in Fig 7.

Click the OK button and you will be presented with a Save dialog. Choose a destination for the completed cubic QTVR movie. That's it!

Fig 9
Tips
1) When setting up your S3D scene, try not to have round objects in a direct line between the camera and the "edges" of the virtual cube. Distortions in the shape of these objects may become noticeable in the final cubic QTVR panorama. If you are using a background, use Spherical mapping for the background instead of Cubic mapping if you have problems with "seams" in the cubic panorama.

2) Before embarking on a cubic QTVR project, first determine the dimensions of the QTVR window and the viewing angle (fov) you wish to use. Then calculate what the ideal image size should be rendered from each cubic camera. The equation is as follows:

           Fig 10

H = edge dimension of rendered square image in pixels
w = width of QTVR window in pixels
h = height of QTVR window in pixels
fov = field-of-view (viewing angle) of QTVR window in degrees

In general, the fov for the cubic QTVR window should be between 40 to 46 degrees to avoid the warping distortion during panning which is typical of having too wide a viewing angle. The calculated edge dimension of the camera image should be rounded to the nearest number divisible by 4.

3) When using a group of 6 cameras, it is important to leave the Constrain Roll checkbox deselected when aligning the top and bottom cameras. I have found that if this is not done, then one or the other of these cameras will not rotate in synchrony with the group when the whole group is rotated.

4) You can open a cubic QTVR movie file in MakeCubic to make some changes to the movie's settings without any degradation in the quality of the QTVR panorama, as long as you don't change the tiling or compression of the source image files.

5) Read the MakeCubic_Readme file on how to create and name your own faststart preview images, as well as other very useful information on setting up preferences for MakeCubic. Also, if you are interested, read the hotspot tutorial on Apple's website on how to create hotspots in a cubic QTVR panorama.

Related Topic
Creating cylindrical QTVR source images from a camera of any focal length in StudioPro or Strata3D/pro
.


© Swee Oon
DreamReality