Graphics Reference
In-Depth Information
Figure 13.5. A visualization of the two tangent vectors, and the result of calculating their cross product.
away from the object, 1 the viewing vectors can be assumed to be parallel over the entire
region of the paraboloid that we are interested in. This scenario is depicted in Figure 13.4.
With this in mind, we would like to calculate the paraboloid surface normal vector
that is needed to reflect the view vector into the direction of the object being rendered. This
normal vector will provide information that uniquely identifies where on the paraboloid
the object will be visible. We will use it to specify where to place each vertex within the
paraboloid map, as well as to know where to look in the paraboloid map when sampling it.
We will use two different approaches to define our normal vector. The first approach will
find the normal vector on the paraboloid by finding two vectors that are perpendicular to
its surface, and then taking the cross product of these two vectors. This is done trivially by
taking the partial derivative with respect to x and j', respectively, to find our two vectors.
This process is shown in Equations (13.2)—(13.5), and is demonstrated in Figure 13.5:
P = (x,y,f(x,y));
(13.2)
1 This is an assumption that isn't necessarily physically correct, since a viewer at a single point would cast
non-parallel viewing rays onto the paraboloid, in much the same manner that we have seen with perspective
projections. However, this is a simple approximation that makes generating and sampling the paraboloid map
much less expensive to compute with minimal negative effects. The same effect can be found by assuming that
the paraboloid itself is physically infinitesimally small within the scene.
Search WWH ::




Custom Search