Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1
Jan-28-04 SMD159, Geometry and Representation 1 L
INSTITUTIONEN FÖRSYSTEMTEKNIK
LULEÅ TEKNISKA UNIVERSITET
Geometry and Representation
David Carr
Fundamentals of Computer Graphics
Spring 2004Based on Slides by E. Angel
Jan-28-04 SMD159, Geometry and Representation 2 L
Overview
• Geometry- Relationships among objects in an n-dimensional space
- In computer graphics, objects exist in 3 dimensions
- Minimum set of primitives for building more sophisticated objects
+ Scalars, Vectors, Points
• Representations- Dimension and basis
- Coordinate systems for representing vectors spaces
- Frames for representing affine spaces
- Change of frames and basis
- Homogeneous coordinates
Jan-28-04 SMD159, Geometry and Representation 3 L
INSTITUTIONEN FÖRSYSTEMTEKNIK
LULEÅ TEKNISKA UNIVERSITET
Geometry
2
Jan-28-04 SMD159, Geometry and Representation 4 L
Coordinate-Free Geometry
• When we learned simple geometry, most of us started with aCartesian approach
- Points were at locations in space p=(x,y,z)- We derived results by algebraic manipulations involving these coordinates
• This approach was nonphysical- Physically, points exist regardless of the location of an arbitrary coordinate
system- Most geometric results are independent of the coordinate system- Euclidean geometry: two triangles are identical if two corresponding sides
and the angle between them are identical
• For graphics, we need three basic elements from geometry- Scalars, Vectors, Points
Jan-28-04 SMD159, Geometry and Representation 5 L
Scalars
• Scalars can be defined as members of sets which:- Can be combined by two operations
+ addition and multiplication- Obey some fundamental axioms
+ associativity, commutivity, inverses
• Examples include the real and complex number underthe usual rules
• Scalars alone have no geometric properties
Jan-28-04 SMD159, Geometry and Representation 6 L
Vectors
• Physical definition: a vector is a quantity with twoattributes- Direction- Magnitude
• Examples include- Force- Velocity- Directed line segments
+ Most important example for graphics+ Can map to other types
v
3
Jan-28-04 SMD159, Geometry and Representation 7 Lv -v av
v
u
w
Vector Operations
• Every vector has an inverse- Same magnitude but points in opposite direction
• Every vector can be multiplied by a scalar
• There is a zero vector- Zero magnitude, undefined orientation
• The sum of any two vectors is a vector- Use head-to-tail axiom
Jan-28-04 SMD159, Geometry and Representation 8 L
Linear Vector Spaces
• Mathematical system for manipulating vectors
• Operations- Scalar-vector multiplication u = av
- Vector-vector addition: w = u + v
• Expressions such asv = u + 2w - 3r
make sense in a vector space
Jan-28-04 SMD159, Geometry and Representation 9 L
Vectors Lack Position
• These vectors are identical- Same length and magnitude
• Vectors spaces insufficient for geometry- Need points
4
Jan-28-04 SMD159, Geometry and Representation 10 L
Points
• Location in space
• Operations allowed between points and vectors- Point-point subtraction yields a vector
- Equivalent to point-vector addition
P = v + Q
v = P - Q
Q
Pv
Jan-28-04 SMD159, Geometry and Representation 11 L
Affine Spaces
• Point + a vector space
• Operations- Vector-vector addition Æ vector
- Scalar-vector multiplication Æ vector
- Point-vector addition Æ point
- Scalar-scalar operations Æ scalar
• For any point P and the scalars 0,1 define
- 1 • P = P
- 0 • P = 0 (zero vector)
Jan-28-04 SMD159, Geometry and Representation 12 L
Lines
• Consider all points of the form- P(a)=P0 + a d
- Set of all points that pass through P0 in the direction of thevector d
5
Jan-28-04 SMD159, Geometry and Representation 13 L
Parametric Form
• This form is known as the parametric form of the line- More robust and general than other forms
- Extends to curves and surfaces
• Two-dimensional forms- Explicit: y = mx +h
- Implicit: ax + by +c =0
- Parametric: x(a) = ax0 + (1-a)x1
y(a) = ay0 + (1-a)y1
Jan-28-04 SMD159, Geometry and Representation 14 L
Rays and Line Segments
• If a ≥ 0, then P(a) is the ray leaving P0 in direction v
• If we use 2 points to define v, thenP(a) = Q + av = Q + a(R-Q)
= aR + (1- a)Q
• For 0 £ a £ 1 we get all the points on the line segment joining R and Q
Jan-28-04 SMD159, Geometry and Representation 15 L
Convexity
• An object is convex if and only if for any two points inthe object all points on the line segment between thesepoints are also in the object
P
Q Q
P
6
Jan-28-04 SMD159, Geometry and Representation 16 L
Affine Sums
• Consider the “sum”P = a1P1 + a2P2 + … + anPn
• Can show by induction that this sum makes sense iffa1 + a2 + … + an = 1
• In which case we have the affine sum of the points
P1, P2, …, Pn
• If, in addition, ai ≥ 0, we have the convex hull of
P1, P2, …, Pn
Jan-28-04 SMD159, Geometry and Representation 17 L
Convex Hull
• Smallest convex object containing P1,P2,…, Pn
• Formed by “shrink wrapping” points
Jan-28-04 SMD159, Geometry and Representation 18 L
Curves and Surfaces
• Curves are one parameter entities of the form P(a)where the function is nonlinear
• Surfaces are formed from two-parameter functionsP(a, b)- Linear functions give planes and polygons
P(a) P(a, b)
7
Jan-28-04 SMD159, Geometry and Representation 19 LP(a,b)=R+au+bv P(a,b)=R+a(Q-R)+b(P-Q)
Planes
• A plane be determined by a point and two vectors or bythree points
Jan-28-04 SMD159, Geometry and Representation 20 L
Triangles
convex sum of P and Q
convex sum of S(a) and R
for 0 £ a,b £ 1, we get all points in triangle
Jan-28-04 SMD159, Geometry and Representation 21 L
Normals
• Every plane has a vector n normal (perpendicular,orthogonal) to it
• From point-two vector form P(a,b) = R + au + bv, weknow we can use the cross product to find n = u ¥ vand the equivalent form
(P(a)-P) ¥ n = 0
u
v
P
8
Jan-28-04 SMD159, Geometry and Representation 22 L
INSTITUTIONEN FÖRSYSTEMTEKNIK
LULEÅ TEKNISKA UNIVERSITET
Representations
Jan-28-04 SMD159, Geometry and Representation 23 L
Linear Independence
• A set of vectors v1, v2, …, vn is linearly independent if a1v1 + a2v2 + … anvn = 0 iff a1 = a2 = …= an = 0
• If a set of vectors is linearly independent, we cannotrepresent one in terms of the others
• If a set of vectors is linearly dependent, as least onecan be written in terms of the others
Jan-28-04 SMD159, Geometry and Representation 24 L
Dimension
• In a vector space, the maximum number of linearlyindependent vectors is fixed and is called the dimensionof the space
• In an n-dimensional space, any set of n linearlyindependent vectors form a basis for the space
• Given a basis v1, v2,…., vn, any vector v can be writtenas
v = a1v1+ a2v2 +….+anvn
where the {ai} are unique
9
Jan-28-04 SMD159, Geometry and Representation 25 L
Representation
• Until now we have been able to work with geometricentities without using any frame of reference, such acoordinate system
• Need a frame of reference to relate points and objectsto our physical world.- For example, where is a point? Can’t answer without a
reference system
- World coordinates
- Camera coordinates
Jan-28-04 SMD159, Geometry and Representation 26 L
Coordinate Systems
• Consider a basis v1, v2,…., vn
• A vector is written v = a1v1+ a2v2 +….+anvn
• The list of scalars {a1, a2, …. an}is therepresentation of v with respect to the given basis
• We can write the representation as a row or columnarray of scalars
a = [a1 a2 …. an]T=
˙˙˙˙˙
˚
˘
ÍÍÍÍÍ
Î
È
a
a
a
n
2
1
.
Jan-28-04 SMD159, Geometry and Representation 27 L
Example
• v = 2v1 + 3v2 - 4v3
• a = [2 3 -4]T
• Note that this representation is with respect to aparticular basis
• For example, in OpenGL- Start by representing vectors using the world basis
- Later the system needs a representation in terms of thecamera or eye basis
10
Jan-28-04 SMD159, Geometry and Representation 28 L
Coordinate Systems
• Which is correct?
• Both are because vectors have no fixed location
v
v
Jan-28-04 SMD159, Geometry and Representation 29 L
Frames
• Coordinate System is insufficient to present points
• If we work in an affine space we can add a single point,the origin, to the basis vectors to form a frame
P0
v1
v2
v3
Jan-28-04 SMD159, Geometry and Representation 30 L
Frames, …
• Frame determined by (P0, v1, v2, v3)
• Within this frame, every vector can be written as v = a1v1 + a2v2 + … + anvn
• Every point can be written as P = P0 + b1v1 + b2v2 + … + bnvn
11
Jan-28-04 SMD159, Geometry and Representation 31 L
Confusing Points and Vectors
Consider the point and the vector
P = P0 + b1v1 + b2v2 + … + bnvn
v = a1v1 + a2v2 + … + anvn
They appear to have the similar representationsp=[b1 b2 b3] v=[a1 a2 a3]
which confuse the point with the vector
A vector has no positionv
pv
can place anywherefixed
Jan-28-04 SMD159, Geometry and Representation 32 L
v
pv
can place anywhere fixed
Confusing Points and Vectors
• Consider the point and the vectorP = P0 + b1v1 + b2v2 + … + bnvn
v = a1v1 + a2v2 + … + anvn
• They appear to have the similar representationsp = [b1 b2 b3]T v = [a1 a2 a3]T
• Which confuse the point with the vector
• A vector has no position
Jan-28-04 SMD159, Geometry and Representation 33 L
A Single Representation
• If we define 0•P = 0 and 1•P = P then we can write v=a1v1+ a2v2 +a3v3 = [a1 a2 a3 0] [v1 v2 v3 P0]T
P = P0 + b1v1+ b2v2 +b3v3
= [b1 b2 b3 1] [v1 v2 v3 P0] T
• Thus we obtain the four-dimensional homogeneouscoordinate representation v = [a1 a2 a3 0] T
p = [b1 b2 b3 1] T
12
Jan-28-04 SMD159, Geometry and Representation 34 L
Homogeneous Coordinates
• The general form of 4 dimensional homogeneous coordinates is
p=[x y x w]T
• We return to a three dimensional point (for w ≠ 0) by
x¨x/w
y¨y/w
z¨z/w
• If w=0, the representation is that of a vector
• Note that homogeneous coordinates replaces points in threedimensions by lines through the origin in four dimensions
Jan-28-04 SMD159, Geometry and Representation 35 L
Homogeneous Coordinates and ComputerGraphics
• Homogeneous coordinates are key to all computergraphics systems- All standard transformations (rotation, translation, scaling)
can be implemented by matrix multiplications with 4 x 4matrices
- Hardware pipeline works with 4 dimensional representations
- For orthographic viewing, we can maintain w=0 for vectorsand w=1 for points
- For perspective, we need a perspective division
Jan-28-04 SMD159, Geometry and Representation 36 L
Change of Coordinate Systems
• Consider two representations of a the same vector withrespect to two different bases. The representations are
v = a1v1 + a2v2 + a3v3 = [a1 a2 a3] [v1 v2 v3]T
= b1u1 + b2u2 + b3u3 = [b1 b2 b3] [u1 u2 u3]T
a=[a1 a2 a3 ]b=[b1 b2 b3]
where
13
Jan-28-04 SMD159, Geometry and Representation 37 L
Representing second basis in terms of first
Each of the basis vectors, u1,u2, u3, are vectors that canbe represented in terms of the first basis
u1 = g11v1+g12v2+g13v3u2 = g21v1+g22v2+g23v3u3 = g31v1+g32v2+g33v3
v
Jan-28-04 SMD159, Geometry and Representation 38 L
a=MTb
˙˙˙
˚
˘
ÍÍÍ
Î
È
ggg
ggg
ggg
3231
232221
131211
33
M =
Matrix Form
• The coefficients define a 3 x 3 matrix
• and the basis can be related by
• see text for numerical examples
Jan-28-04 SMD159, Geometry and Representation 39 L
Change of Frames
• We can apply a similar process in homogeneouscoordinates to the representations of both points andvectors
• Consider two frames
• Any point or vector can be represented in each
(P0, v1, v2, v3)(Q0, u1, u2, u3)
P0 v1
v2
v3
Q0
u1u2
u3
14
Jan-28-04 SMD159, Geometry and Representation 40 L
Representing One Frame in Terms of the Other
u1 = g11v1+g12v2+g13v3u2 = g21v1+g22v2+g23v3u3 = g31v1+g32v2+g33v3Q0 = g41v1+g42v2+g43v3 +g44P0
Extending what we did with change of bases
defining a 4 x 4 matrix
˙˙˙˙
˚
˘
ÍÍÍÍ
Î
È
1ggg
0ggg
0ggg
0ggg
434241
333231
232221
131211
M =
Jan-28-04 SMD159, Geometry and Representation 41 L
Working with Representations
Within the two frames any point or vector has a representation ofthe same form
a=[a1 a2 a3 a4 ] in the first frameb=[b1 b2 b3 b4 ] in the second frame
where a4 = b4 = 1 for points and a4 = b4 = 0 for vectors and
The matrix M is 4 x 4 and specifies an affine transformation inhomogeneous coordinates
a=MTb
Jan-28-04 SMD159, Geometry and Representation 42 L
Affine Transformations
• Every linear transformation is equivalent to a change inframes
• Every affine transformation preserves lines
• However, an affine transformation has only 12 degreesof freedom because 4 of the elements in the matrix arefixed and are a subset of all possible 4 x 4 lineartransformations
15
Jan-28-04 SMD159, Geometry and Representation 43 L
The World and Camera Frames
• When we work with representations, we work with n-tuples or arrays of scalars
• Changes in frame are then defined by 4 x 4 matrices
• In OpenGL, the base frame that we start with is theworld frame
• Eventually we represent entities in the camera frame bychanging the world representation using the model-viewmatrix
• Initially these frames are the same (M=I)
Jan-28-04 SMD159, Geometry and Representation 44 L
Moving the Camera
If objects are on both sides of z=0, we must move cameraframe
˙˙˙˙
˚
˘
ÍÍÍÍ
Î
È
-
1000
d100
0010
0001
M =
Jan-28-04 SMD159, Geometry and Representation 45 L
Questions