Graphics Programs Reference
In-Depth Information
4.2 Fisheye Projection
This type of projection is named after the fisheye camera lenses that many photography
enthusiasts like to use. The name “fisheye” reflects the shape of such a lens, which
resembles the protruding eye of a fish. Such lenses are also used in peepholes installed
in doors. The basic idea in this type of projection is to take the half-sphere of space
(with infinite radius) located in front of the viewer and project it
into a flat circle. The half-sphere is infinite, whereas the circle is
finite and may be quite small. Thus, the projected image must be
distorted. Just shrinking the image uniformly will make most of
its details too small to see. A better idea is to implement nonlinear
shrinking that should get more pronounced as we move from the
center toward the periphery of the image. Objects close to the
center of the image are more visible to a viewer and should therefore
be shrunk only a little. The shrinking should increase for objects located away from the
center. In principle, the scale factor should vary from 1 (no shrinking) at the center to
0 (shrinking all the way to zero) for image points on the periphery (i.e., at 180 to the
line of sight of the viewer).
He sat by Chrystal's side, red-complexioned, opulent, with protruding eyes that
glanced round whenever he spoke to make sure that all were listening.
—C.P.Snow, The Light and the Dark (1947)
Hemispherical Fisheye Projection
We start with a simple variant that can be called hemispherical fisheye . This variant is
easy to understand but requires the computations of both the tangent and arctangent
foreachpointbeingprojected. Theprojectionofpointsinthisvariantisderivedintwo
steps. In the first step, illustrated in Figure 4.2a, all the points in the hemisphere where
z is nonnegative are projected into an infinitely large circle on the xy plane, centered
on the origin. In the second step, all the points on this circle are moved closer to the
center and end up on the radius- k circle centered at the origin (Figure 4.2b).
The first step employs parallel projection to project points onto a plane. Figure 4.2a
shows how the parallel projection of a point simply amounts to clearing its z coordinate.
The three-dimensional point ( x, y, z ) is projected to ( x, y, 0) on the infinite circle on the
xy plane.
The second step compresses the infinite circle to a radius- k circle nonlinearly. The
user selects a positive value k and each point on the xy planeismovedtowardthe
origin by halving its angle of view θ as seen from the standard position (0 , 0 ,
k ). (See
page 88 for a definition of the standard position.) Figure 4.2b shows a point P on the
xy plane where the angle between the z axis and line VP is θ . The point is moved closer
to the origin along the segment PO and becomes P with a view angle of θ/ 2. Since
both P and P are on the xy plane, we can consider this transformation scaling in two
dimensions. The transformed point P equals s P , where the scale factor s is less than
one (i.e., shrinking). However, it is easy to see intuitively that points located away from
the origin will be scaled more than points closer to the origin. The scale factor s is
Search WWH ::




Custom Search