Microsoft KB Archive/171199

= Microsoft Knowledge Base =

INFO: Camera Projection Planes (Asymmetrical Viewing Frustum)
Last reviewed: July 11, 1997

Article ID: Q171199

The information in this article applies to:


 * Softimage 3D for IRIX, versions 3.51, 3.7
 * Softimage 3D for Windows NT, versions 3.51, 3.7

SUMMARY
This article is provided to offer an explanation for asymmetrical viewing frustum.

MORE INFORMATION
To match real-world camera viewing with the camera in SOFTIMAGE 3D, the metaphor of a projection plane located some distance away from the focal center of the camera is used. By changing a camera's projection plane parameters, you create an asymmetrical camera in SOFTIMAGE 3D. These projection plane parameters (such as the projection plane's distance, size, and offset) are only available in the Spreadsheet window.

A normal computer graphic (CG) camera's viewing frustum is symmetrical; that is, if the field of view is n degrees, the top of the frustum is angled n/2 degrees up and the bottom is n/2 degrees down from the viewing direction. The horizontal angles of the frustum also share symmetry and can be determined based on the vertical fields of view and the aspect ratio. An asymmetrical camera does not have these restrictions.

In SOFTIMAGE 3D, you can specify an asymmetrical camera through a projection plane representation. To do this, you specify the distance to an imaginary projection plane as well as its size in X and Y and its offset from the viewing direction in X and Y. Note that even when you offset it, the imaginary view plane always remains perpendicular to your viewing direction.

The following two examples are ways in which you would use an asymmetrical camera:

Example 1
If you need to model a real camera that has the following attributes:


 * The film (or the CCD, if it's a video camera) is not perfectly centered behind the lens. (This is sometimes the case when you try to match CG with real-world images.)
 * The camera is 35mm with a 50mm lens.
 * The film (projection plane) size is 24x36mm (its aspect ratio is 1.5).
 * The film is offset by 1mm horizontally and -0.5mm vertically from the true center of the projection of the lens.

Use the following modeling method:

 Open the spreadsheet and query to get the Camera Projection Plane parameters.  Set the following camera attributes: cmpdst (projection plane distance):        50 cmpszx (projection plane x size):          36 cmpszy (projection plane y size):          24 cmpofx (projection plane x offset):         1 cmpofy (projection plane y offset):        -0.5 cmpact (proj. plane representation active): TRUE  Set the aspect ratio (cmaspr) to 1.5 to match the projection plane's ratio. Note that you can also do interesting 2D squash-and-stretch effects by changing the projection plane's X and Y sizes relative to one another while keeping the viewport's aspect ratio value fixed.

Using this method to offset the projection plane's position is not equivalent to slightly rotating the camera to compensate. The view direction does not change only the shape of the frustum. If you activate Show Camera and activate Show Cone (unselected), you can see how the camera's viewing frustum changes when you modify the values. Another method to visualize asymmetrical projections is to think of it as sub-region rendering a larger image. Changing the X and Y offsets is equivalent to doing a 2D pan on the image (or moving the sub-region around), while changing the X and Y size is equivalent to doing a 2D zoom on the image.

Example 2
Asymmetrical viewing frustums are also necessary to obtain accurate stereo perspective projections. The often-used approximation method of rotating the camera a bit to the right for the left eye and a bit to the left for the right eye is a reasonable approximation, but producing correct stereo projection images requires the use of asymmetrical frustums.