+ All Categories
Home > Documents > C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 /...

C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 /...

Date post: 05-Jan-2016
Category:
Upload: hugh-williams
View: 213 times
Download: 0 times
Share this document with a friend
52
C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I
Transcript
Page 1: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 1 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 1 / 52

Computer Graphics

Three-Dimensional Graphics I

Page 2: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 2 / 52

Geometry

Page 3: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 3 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 3 / 52

Objectives

• Introduce the elements of geometry– Scalars– Vectors– Points

• Develop mathematical operations among them in a coordinate-free manner

• Define basic primitives– Line segments– Polygons

Page 4: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 4 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 4 / 52

Basic Elements

• Geometry is the study of the relationships among objects in an n-dimensional space

– In computer graphics, we are interested in objects that exist in three dimensions

• Want a minimum set of primitives from which we can build more sophisticated objects

• We will need three basic elements

– Scalars– Vectors– Points

Page 5: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 5 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 5 / 52

Coordinate-Free Geometry

• When we learned simple geometry, most of us started with a Cartesian 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

– Example Euclidean geometry: two triangles are identical if two corresponding sides and the angle between them are identical

Page 6: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 6 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 6 / 52

Scalars

• Need three basic elements in geometry

– Scalars, Vectors, Points• Scalars can be defined as members of sets

which can be combined by two operations (addition and multiplication) obeying some fundamental axioms (associativity, commutivity, inverses)

• Examples include the real and complex number systems under the ordinary rules with which we are familiar

• Scalars alone have no geometric properties

Page 7: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 7 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 7 / 52

Vectors

• Physical definition: a vector is a quantity with two attributes– Direction– Magnitude

• Examples include– Force– Velocity– Directed line segments

•Most important example for graphics•Can map to other types

v

Page 8: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 8 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 8 / 52

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

v -v vv

u

w

Page 9: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 9 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 9 / 52

Linear Vector Spaces

• Mathematical system for manipulating vectors

• Operations– Scalar-vector multiplication u=v– Vector-vector addition: w=u+v

• Expressions such as v=u+2w-3r

Make sense in a vector space

Page 10: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 10 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 10 / 52

Vectors Lack Position

• These vectors are identical– Same direction and magnitude

• Vectors spaces insufficient for geometry– Need points

Page 11: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 11 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 11 / 52

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

Page 12: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 12 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 12 / 52

Affine Spaces

• Point + a vector space• Operations

– Vector-vector addition– Scalar-vector multiplication– Point-vector addition– Scalar-scalar operations

• For any point define

– 1 • P = P– 0 • P = 0 (zero vector)

Page 13: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 13 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 13 / 52

Lines

• Consider all points of the form– P()=P0 + d

– Set of all points that pass through P0 in the direction of the vector d

Page 14: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 14 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 14 / 52

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() = x0 + (1-)x1

y() = y0 + (1-)y1

Page 15: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 15 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 15 / 52

Rays and Line Segments

• If >= 0, then P() is the ray leaving P0 in the direction d

If we use two points to define v, thenP( ) = Q + (R-Q)=Q+v

=R + (1-)Q

For 0<=<=1 we get all thepoints on the line segmentjoining R and Q

Page 16: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 16 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 16 / 52

OpenGL Primitives

GL_QUAD_STRIPGL_QUAD_STRIP

GL_POLYGONGL_POLYGON

GL_TRIANGLE_STRIPGL_TRIANGLE_STRIP GL_TRIANGLE_FANGL_TRIANGLE_FAN

GL_POINTSGL_POINTS

GL_LINESGL_LINES

GL_LINE_LOOPGL_LINE_LOOP

GL_LINE_STRIPGL_LINE_STRIP

GL_TRIANGLESGL_TRIANGLES

Page 17: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 17 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 17 / 52

Polygon Issues

• OpenGL will only display polygons correctly that are– Simple: edges cannot cross– Convex: All points on line segment between two

points in a polygon are also in the polygon– Flat: all vertices are in the same plane

• User program can check if above true– OpenGL will produce output if these conditions are

violated but it may not be what is desired

• Triangles satisfy all conditions

nonsimple polygon

nonconvex polygon

Page 18: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 18 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 18 / 52

Convexity

• An object is convex iff for any two points in the object all points on the line segment between these points are also in the object

P

Q Q

P

convex not convex

Page 19: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 19 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 19 / 52

Affine Sums

• Consider the “sum”P=1P1+2P2+…..+nPn

Can show by induction that this sum makes sense iff

1+2+…..n=1in which case we have the affine sum

of the points P1P2,…..Pn

• If, in addition, i>=0, we have the convex hull of P1P2,…..Pn

Page 20: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 20 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 20 / 52

Convex Hull

• Smallest convex object containing P1P2,…..Pn

• Formed by “shrink wrapping” points

Page 21: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 21 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 21 / 52

Curves and Surfaces

• Curves are one parameter entities of the form P() where the function is nonlinear

• Surfaces are formed from two-parameter functions P(, )– Linear functions give planes and

polygons

P() P(, )

Page 22: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 22 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 22 / 52

Planes

• A plane can be defined by a point and two vectors or by three points

P(,)=R+u+v P(,)=R+(Q-R)+(P-Q)

u

v

R

P

R

Q

Page 23: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 23 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 23 / 52

Triangles

convex sum of P and Q

convex sum of S() and R

for 0<=,<=1, we get all points in triangle

Page 24: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 24 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 24 / 52

Normals

• Every plane has a vector n normal (perpendicular, orthogonal) to it

• From point-two vector form P(,)=P0+u+v, we know we can use the cross product to find n = u v and the equivalent form

(P-P0) n=0

u

v

P0

Page 25: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 25 / 52

Representation

Page 26: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 26 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 26 / 52

Objectives

• Introduce concepts such as dimension and basis

• Introduce coordinate systems for representing vectors spaces and frames for representing affine spaces

• Discuss change of frames and bases

• Introduce homogeneous coordinates

Page 27: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 27 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 27 / 52

Linear Independence

• A set of vectors v1, v2, …, vn is linearly independent if

1v1+2v2+.. nvn=0 iff 1=2=…=0

• If a set of vectors is linearly independent, we cannot represent one in terms of the others

• If a set of vectors is linearly dependent, as least one can be written in terms of the others

Page 28: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 28 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 28 / 52

Dimension

• In a vector space, the maximum number of linearly independent vectors is fixed and is called the dimension of the space

• In an n-dimensional space, any set of n linearly independent vectors form a basis for the space

• Given a basis v1, v2,…., vn, any vector v can be written as

v=1v1+ 2v2 +….+nvn

where the {i} are unique

Page 29: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 29 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 29 / 52

Representation

• Until now we have been able to work with geometric entities without using any frame of reference, such as a coordinate system

• Need a frame of reference to relate points and objects to our physical world. – For example, where is a point? Can’t answer

without a reference system– World coordinates– Camera coordinates

Page 30: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 30 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 30 / 52

Coordinate Systems

• Consider a basis v1, v2,…., vn

• A vector is written v=1v1+ 2v2 +….+nvn

• The list of scalars {1, 2, …. n}is the representation of v with respect to the given basis

• We can write the representation as a row or column array of scalars

a=[1 2 …. n]T=

n

2

1

.

Page 31: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 31 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 31 / 52

Example

• v=2v1+3v2-4v3

• a=[2 3 –4]T

• Note that this representation is with respect to a particular basis

• For example, in OpenGL we start by representing vectors using the object basis but later the system needs a representation in terms of the camera or eye basis

Page 32: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 32 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 32 / 52

Coordinate Systems

• Which is correct?

• Both are because vectors have no fixed location

v

v

Page 33: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 33 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 33 / 52

Frames

• A coordinate system is insufficient to represent 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

Page 34: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 34 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 34 / 52

Representation in a Frame

• Frame determined by (P0, v1, v2, v3)

• Within this frame, every vector can be written as

v=1v1+ 2v2 +….+nvn

• Every point can be written as P = P0 + 1v1+ 2v2 +….+nvn

Page 35: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 35 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 35 / 52

Confusing Points and Vectors

Consider the point and the vector

P = P0 + 1v1+ 2v2 +….+nvn

v=1v1+ 2v2 +….+nvn

They appear to have the similar representationsp=[1 2 3] v=[1 2 3]

which confuses the point with the vector

A vector has no positionv

pv

Vector can be placed anywhere

point: fixed

Page 36: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 36 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 36 / 52

• Translation, scaling and rotation are expressed as:

• Composition is difficult to express– translation is not expressed as a matrix

multiplication

translation:

scale:

rotation:

v’ = v + t

v’ = Sv

v’ = Rv

Page 37: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 37 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 37 / 52

A Single Representation

If we define 0•P = 0 and 1•P =P then we can write

v=1v1+ 2v2 +3v3 = [1 2 3 0 ] [v1 v2 v3 P0]

T

P = P0 + 1v1+ 2v2 +3v3= [1 2 3 1 ] [v1 v2 v3 P0]

T

Thus we obtain the four-dimensional homogeneous coordinate representation

v = [1 2 3 0 ] T

p = [1 2 3 1 ] T

Page 38: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 38 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 38 / 52

Homogeneous Coordinates

The homogeneous coordinates form for a three dimensional point [x y z] is given as

p =[x’ y’ z’ w] T =[wx wy wz w] T

We return to a three dimensional point (for w0) byxx’/wyy’/wzz’/wIf w=0, the representation is that of a vectorNote that homogeneous coordinates replaces points in

three dimensions by lines through the origin in four dimensions

For w=1, the representation of a point is [x y z 1]

Page 39: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 39 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 39 / 52

• Translation

• Scaling

(right-handed coordinate system)

1000

100

010

001

dz

dy

dx

1000

000

000

000

z

y

x

s

s

s

x

y

z

Page 40: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 40 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 40 / 52

• Rotation about X-axis

1000

0cossin0

0sincos0

0001

1000

0cos0sin

0010

0sin0cos

1000

0100

00cossin

00sincos

• Rotation about Y-axis

• Rotation about Z-axis

Page 41: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 41 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 41 / 52

Homogeneous Coordinates and Computer Graphics

• Homogeneous coordinates are key to all computer graphics systems– All standard transformations (rotation,

translation, scaling) can be implemented with matrix multiplications using 4 x 4 matrices

– Hardware pipeline works with 4 dimensional representations

– For orthographic viewing, we can maintain w=0 for vectors and w=1 for points

– For perspective we need a perspective division

Page 42: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 42 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 42 / 52

Change of Coordinate Systems

• Consider two representations of the same vector with respect to two different bases. The representations are

v=1v1+ 2v2 +3v3 = [1 2 3] [v1 v2 v3]

T

=1u1+ 2u2 +3u3 = [1 2 3] [u1 u2 u3]

T

a=[1 2 3 ]b=[1 2 3]

where

Page 43: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 43 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 43 / 52

Representing second basis in terms of first

Each of the basis vectors, u1,u2, u3, are vectors that can be represented in terms of the first basis

u1 = 11v1+12v2+13v3

u2 = 21v1+22v2+23v3

u3 = 31v1+32v2+33v3

v

Page 44: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 44 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 44 / 52

Matrix Form

The coefficients define a 3 x 3 matrix

and the bases can be related by

a=MTb

33

M =

Page 45: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 45 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 45 / 52

Change of Frames

• We can apply a similar process in homogeneous coordinates to the representations of both points and vectors

• Any point or vector can be represented in either frame

• We can represent Q0, u1, u2, u3 in terms of P0, v1, v2, v3

Consider two frames:(P0, v1, v2, v3)(Q0, u1, u2, u3) P0 v1

v2

v3

Q0

u1u2

u3

Page 46: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 46 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 46 / 52

Representing One Frame in Terms of the Other

u1 = 11v1+12v2+13v3

u2 = 21v1+22v2+23v3

u3 = 31v1+32v2+33v3

Q0 = 41v1+42v2+43v3 +44P0

Extending what we did with change of bases

defining a 4 x 4 matrix

M =

Page 47: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 47 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 47 / 52

Working with Representations

Within the two frames any point or vector has a representation of the same form

a=[1 2 3 4 ] T in the first frameb=[1 2 3 4 ] T in the second frame

where 4 4 for points and 4 4 for vectors and

The matrix M is 4 x 4 and specifies an affine transformation in homogeneous coordinates

a=MTb

Page 48: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 48 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 48 / 52

Affine Transformations

• Every linear transformation is equivalent to a change in frames

• Every affine transformation preserves lines

• However, an affine transformation has only 12 degrees of freedom because 4 of the elements in the matrix are fixed and are a subset of all possible 4 x 4 linear transformations

Page 49: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 49 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 49 / 52

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 the world frame

• Eventually we represent entities in the camera frame by changing the world representation using the model-view matrix

• Initially these frames are the same (M=I)

Page 50: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 50 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 50 / 52

Moving the Camera

If objects are on both sides of z=0, we must move camera frame

1000

d100

0010

0001

M =

Page 51: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 51 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 51 / 52

Next lecture: Transformations

• Introduce standard transformations– Rotation– Translation– Scaling– Shear

• Derive homogeneous coordinate transformation matrices

• Learn to build arbitrary transformation matrices from simple transformations

Page 52: C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 52 Computer Graphics Three-Dimensional Graphics I.

C O M P U T E R G R A P H I C S

Guoying Zhao 52 / 52

C O M P U T E R G R A P H I C S

Guoying Zhao 52 / 52

Next lecture: OpenGL Transformations

• Learn how to carry out transformations in OpenGL– Rotation– Translation – Scaling

• Introduce OpenGL matrix modes– Model-view– Projection


Recommended