Game Development Reference
In-Depth Information
this is equivalent to saying that we are concerning ourselves with only a
single coordinate space. What we call that coordinate space makes no
difference, since we have no way to reference any other coordinate space
without introducing basis vectors. When we do consider any alternative
basis, we have implicitly introduced another coordinate space: the space
used to measure the coordinates of the basis vectors!
The coordinates of basis vectors are measured in terms of a reference frame
that is different from the one for which they are a basis. Thus basis vectors
are intimately linked with coordinate space transformations.
We said earlier that p , q , and r could be chosen “poorly.” This begs the
question: what makes a good basis? We are accustomed to having basis
vectors that are mutually perpendicular. We are also used to them having
the same length: we expect the displacements 5 p and 5 q to be in different
directions, but we ordinarily would assume that they have the same length.
Finally, when multiple coordinate spaces are involved, we are also used to
them all having the same scale. That is, the vector v has the same numeric
magnitude, no matter what coordinate system we use to measure it. But
as we're about to see, that isn't necessarily the case. These properties are
certainly desirable; in fact, we might say that this is the “best basis” in
many cases. But they may not always be immediately available, they are
often not necessary, and there are some situations for which we purposefully
choose basis vectors without these properties.
We briefly mention here two examples, both from the world of graphics.
Imagine we want to animate a squishing or stretching motion of our robot
model. To do so, we would modify the coordinate space used to interpret
the coordinates of our vertices. We would animate the basis vectors of the
robot's object space, probably in ways that caused them to have different
lengths from one another or to cease to be perpendicular. As we squish
or stretch the object-space vectors, the object-space coordinates of the ver-
tices remain constant, but the resulting camera-space coordinates change,
producing the desired animation.
Another example arises with basis vectors for texture mapping. (We're
getting a bit ahead of ourselves, since we won't talk about texture mapping
until Section 10.5; however we are aware that our readers are not a tabula
rasa, and we suspect you have at least heard of these concepts. We are
also aware that many readers' first introduction to the term basis vector
is in the context of bump mapping; hopefully this example will help place
Search WWH ::




Custom Search