Graphics Programs Reference
In-Depth Information
Those who took the trouble to read Chapter 1 know how to compute the off-axis
fisheye projection. Figure out how to translate the viewer on the xy plane to the on-axis
position, and then use the translation vector ( a, b ) to translate each point with (
b ),
project it according to Equation (4.2), then translate the result back with ( a, b ). If the
last translation brings the point outside the radius- k circle, the point is ignored because
the off-axis viewer cannot see it.
Rectangular Fisheye Projection
The hemispherical fisheye projection projects the entire 180 space located in front of the
viewer, an infinitely large image, into a finite-sized circle, and it does this by distorting
the image, especially in areas away from its center. The rectangular fisheye projection
discussed here is a compromise on this technique. It creates less distortion but can
project only part of the space in front of the viewer. Those parts that are too high above
the viewer or too low are not included in this type of projection. Figure 4.13a shows the
principle. We imagine a rectangle of infinite width and a finite height h centered on the
xy plane. A three-dimensional point ( x, y, z ) is projected on the rectangle in parallel
into the point ( x, y, 0), but only if the y coordinate is in the interval [
a,
h/ 2 , + h/ 2]. (The
figure shows one point that's too high.) Points above or below the rectangle are not
included in the projection.
y
y
h
x
P *
θ
/2
P
h
θ
V
x
z
k
z
(a)
(b)
Figure 4.13: Rectangular Fisheye Projection.
Once a point has been projected on the rectangle, it is shifted in the x direction
tobringitintotherectangleofwidth k . This is done by halving its view angle θ ,as
in the hemispherical fisheye projection, but only in the x direction (Figure 4.13b). The
final projection is distorted only in the x direction; all the y dimensions are preserved.
The final result is that point ( x, y, z ) is projected into ( s·x, y, 0), where the scale factor
s is given by [compare with Equation (4.2)]
s = k tan (arctan[
/k ]) / 2
|
x
|
.
|
x
|
Search WWH ::




Custom Search