54
Math 1 Hofstra University 1 Math Foundations of CG

Math 1Hofstra University1 Math Foundations of CG

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 1

Math Foundations of CG

Page 2: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 2

Outline Abstract spaces: objects and operations

Field of real numbers R Vector space over R Euclidean spaces Affine spaces

Affine combinations Convex combinations Frames Affine maps Euclidean spaces

Read: angel, Appendices B and C, Ch 4.1-4.3

Page 3: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 3

Geometric ADTs

Scalars, Points and Vectors are members of mathematical abstract sets

Abstract spaces for representing and manipulating these sets of objects

Field -- scalars Linear Vector Space – vectors Euclidean Space – add concept of

distance Affine Space – adds the point

Page 4: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 4

Field Set, S, of scalars, with two

operations Addition, +, Multiplication, .,

satisfying the following Axioms

Unique additive and multiplicative units, 0 (zero) and 1(one), s.t.,

Every scalar has an additive inverse , s.t.,

Every non-zero scalar, , has a multiplicative inverse , s.t.,

...}

1

1 1

Page 5: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 5

Field (cont) Axioms (cont.)

Addition and multiplication are commutative operations

Addition and multiplication are associative

Multiplication is distributive over addition

Examples: The field of the rational numbers, Q The field of the real numbers, R

ADTs rational number and real number Implementation: classes rational and double

(

Page 6: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 6

Linear Vector Spaces (defined over a field)

S is a field of scalars The set V of objects called vectors , is a (linear) vector space defined over S if

there are two operations Vector-vector addition, Scalar-vector multiplication,

satisfying the following Axioms

Unique additive unit, the zero vector,

Every vector has additive inverse

,...},,{ wvu

VVVvu :,VVSfu :,

uuu 00u u

0 uuuu )()(

0

Page 7: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 7

Vector Spaces (cont.) Axioms (cont.)

Vector-vector addition is commutative and associative Scalar-vector multiplication is distributive

Examples Geometric vectors over R , i.e., directed line

segments in 3D

uuu

vuvu

)(

B = 2A

A

C = -A

B

A

C = A + B

Page 8: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 8

Vector Spaces (cont.) Examples

n-tuples of real numbers A vector is identified with an n-tuple

),...,,(

),...,,(

),...,,(

21

2211

21

n

nn

n

uuuu

vuvuvuvu

vvvv

Page 9: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 9

Vector Spaces (cont.) is a linear vector space over a field

is a linear combination of ,, if

The non-zero vectors are linearly independent, if

,,,...,1 Vuuu k u

V S

kuu ,...,1

0......

..,,...,,

212211

21

kkk

k

uuu

tsS

0

kuu ,...,1

kk

k

uuuu

tsS

...

..,,...,,

2211

21

Page 10: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 10

Vector Spaces (cont.) is a linear vector space over a field

The vectors are linearly dependent, if they are not linearly independent

In which case one of them can be expressed as a non-trivial linear combination of the rest. (non-trivial means that not all coefficients are 0)

Any set of vectors that includes the zero vector is linearly dependent.

Basis : a maximal linear independent set of vectors, i.e., if one more vector is added to the set it becomes linearly dependent.

Any vector in the space is represented as unique linear combination of the basis vectors

Dimension: number of vectors in the basis

V S

kuu ,...,1

Page 11: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 11

Vector Spaces (cont.) is a n-dimensional vector space over a field

, and is a basis: Every vector is represented uniquely as a linear

combination of the basis, i.e., there exist unique scalars

representation (coordinates) of in the basis

Once a basis is selected, vectors are represented as n-toulpes of coordinates

V S

u

nii 1 u B

},...,{ 1 nuuB

nn

n

uuuu

tsS

...

..,,...,,

2211

21

Page 12: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 12

We are concerned with 3D vector space

Represent w as linear combination of three linearly

independent vectors, v1, v2, v3

v = 1v1 + 2v2 + 3v3 components

basis

3

2

1

a

3

2

1

v

v

v

v Ta

33v

Page 13: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 13

Vector Spaces: Changes of Basis

How do we represent a vector if we change the basis?

Suppose the {v1,v2,v3} and {u1,u2,u3} are two bases.

Basis vector in second set can be represented in terms of the first basis

Given the representation of a vector in one basis, we can change to a representation of the same vector in the other basis by a linear transformation (i.e., matrix multiplication)

Page 14: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 14

Vector Spaces: Change of Basis

3332321313

3232221212

3132121111

vvvu

vvvu

vvvu

Change of basis is a linear operation.

3

2

1

u

u

u

u

3

2

1

v

v

v

v

333231

232221

131211

MuMv

Mvu

1

Vector Spaces:

Page 15: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 15

Vector Spaces: Change of Basis

Let in basis v the vector w is represented by a componentcolumn matrix a, and in u basis, by a component matrix b

3

2

1

aubw

vaw

3

2

1

u

u

u

u

3

2

1

v

v

v

v

333231

232221

131211

M

What is the relation between the two representations a and b?

3

2

1

b

aMb 1

uMv

Mvu

1

Notation: for a matrix,’ T,' aa denote the transpose.

Page 16: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 16

Vector Spaces: Change of Basis Example

3213

212

11

vvvu

vvu

vu

3

2

1

u

u

u

u

3

2

1

v

v

v

v

111

011

001

MuMv

Mvu

1

Given a basis v, we want to change to a new basis u

Let w has representation a in the old basis, v,

3

2

1

a

Then the representation b of w in the new basis u is

3

1

1

3

2

1

100

110

011

3

2

1

111

011

0011

b

aMb 1

old new

new old

in old

in new

Page 17: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 17

Vector Spaces

ADT n-D vector ADT vector implementation: class vector

Internally work with n-tuples of real numbers Use matrix algebra in the implementation of

methods

Page 18: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 18

Euclidean Space

We add the notion of a distance and angle to a vector space by means of inner (dot) product.

is an Euclidean space, if it is vector space with dot (scalar,inner) product ,

i.e., for vectors u and u v is a real number, such that

Axioms

E

0

,0

)()(

00

0uuu

wvwuwvu

uvvu

R EEvu :,

Page 19: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 19

Euclidean Space (cont.) The length of a vector

The norm of a vector

Two non-zero vectors u and v are orthogonal if u v = 0

The angle between two vectors is given by

Unit vector: a vector of length 1 Normalizing a vector:

vuvucos

uuu ||

|| u

u

uuuu 2||||||

Page 20: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 20

Euclidean Space (cont.)

Orthonormal basis: a basis consisting of unit vectors which are mutually orthogonal

Projections:

If v is unit vector, the projection of u on v is u.v

|u|cos = u v/|v| is the orthogonal projection of u onto v

u

|u | cosv

Page 21: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 21

Euclidean Space (cont.)

Cross Product(in 3D) of two vectors u and v is a vector n = u v,

n is orthogonal to v and u, the triple (u,v,n) is right-handed, The length )sin(|||||| vuvu

VVV :

Page 22: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 22

Euclidean Spaces (cont) Example: orthonormal basis, and Dot product:

Cross product:

3R 3Rba ,

321 baba

3

2

1

b

3

2

1

332211

321

321

1221

3113

2332

kji

ba

},,{ kji

3

2

1

a

Page 23: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 23

Euclidean Space (cont.)

We can construct orthonormal basis in 3D by using the dot and cross product

Given vector u,

Set

Calculate s.t.

Calculate

The basis is orthonormal

||1 u

ue

2e 1||,0 221 eee

213 eee

),,( 321 eee

Page 24: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 24

Affine Spaces

Given a vector space A, an affine space A over the vector space has two types of objects:

points, P,Q,… and vectors, u,v,…

and is defined by the following axioms All axioms of the vector space Operations relating points and vectors

Point-point subtraction gives unique vector, Point-vector addition gives unique point, PvQ

vQP

Page 25: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 25

Affine Spaces (cont)

Operations relating points and vectors Subtraction of two points yields a vector:

v = P – Q Point-vector addition yields a point:

P = v + Q All operations: point-point subtraction, point-vector addition, vector-vector addition, scalar-vector multiplication

Page 26: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 26

Affine Spaces (cont)

Axioms: 1. Two points define unique vector,2. Point and vector define unique point,3. 4. head-to-tail axiom: given points P,R, for any

other point Q,

5. If O is an arbitrary point,

PvQ vQP

)( QPPQ

)()( QPRQRP

uOPAPAu :!,

Page 27: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 27

Line: parametric equation

A line, defied by a point P0 and a vector d consists of all points P obtained by

P () = P0 + d where varies over all scalars.

P () is a point for any value of The equation is called the parametric

form of the line For non-negative values, we get

a ray emanating from P0 in the direction of d

d

P 0

P (a )

Page 28: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 28

Plane: parametric equation

A plane defined by a point P0 and two non collinear vectors (I.e. two linearly independent vectors) u and v, consists of all points T(,):

T(,) = P0 + u + v

P0

u v

T(,)

v

u

Page 29: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 29

Affine Spaces (cont)

All operations: point-point subtraction, point-vector addition, vector-vector addition, scalar-vector multiplication

Point-point addition is not defined, but addition-like combinations of points are well-defined.

Page 30: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 30

Affine Combinations of Two Points Given two points Q and R, and two scalars where the affine combination of Q and R with coefficients is a point P denoted by

All affine combinations of two points generate the line through that points.

v

Q

P ()R

2,1

2,1

1

)(221 QRQRQP

RQP 21

2121 11

Page 31: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 31

Affine Combinations of Three Points Given three points P, Q, and R, and three

scalars where the affine combination of the three points with

coefficients is a point T, denoted

The point T is defined by

All affine combinations of three non collinear points generate the plane through that points.

13

32 ,

),()(

PRPQPT

RQPT 321

32,1 ,

32,1 ,

P Q

R

)( PQ

)( PR

T

Page 32: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 32

Affine Combinations of n Points Given an affine space A, a point P is an

affine combination of , iff, there exist scalars

The affine combination is denoted by

If the vectors are coplanar, what is the set of all affine combinations of the n points?

nPPP ,,, 21

1,1

21

n

iin such that

P = 1P1 + 2P2 + … + nPn

)()( 11221 PPPPPP nn

,,,1,1 niPPi

Page 33: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 33

Convexity Convex set– a set in which a line segment

connecting any two pints of the set is entirely in the set.

For 0 the affine combinations of points Q and R is the line segment connecting Q and R

This line segment is convex The midpoint, =0.5 Give the affine combinationrepresenting a point dividing the lineSegment in ratio m:n, starting from Q

Q

P ()

RRQP )1()(

Page 34: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 34

Convex (affine) combinations Convex combinations: affine combinations

with positive coefficients, P = 1P1 + 2P2 + … + nPn

1 + 2 +…+ n = 1 i 0, i = 1,2,…,n

Convex hull of a set of points is the set of all convex combination of this points.

In particular, for any two points of the set, the line segment connecting the points is in the convex hull, thus the convex hull is a convex set.

In fact, the convex hull it is the smallest convex set that contains the original points.

Page 35: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 35

Geometric ADTs: Convexity

The convex hull could be thought of as the set of points that we form by stretching a tight-fitting surface over the given set of points – shrink wrapping the points.

It is the smallest convex object that includes the set of points

Page 36: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 36

Convex Polygons

A convex polygon is completely specified by the set of its vertices

A convex polygon: the convex hull of the vertices

Given equilateral triangle give the representation of the center of the mass

Page 37: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 37

A normal to a plane Normal n to a plane : unit vector orthogonal

to the plane If we are given the parametric equation of the

plane T(,) = P0 + u + v,

n = u v /| u v| Given a polygon, write the outward normal Given a point P0 and a vector n , there is

unique plane that goes through P0 and has normal n: it consists of all points P satisfying the normal equation of the plane

0 nPP )( 0

Page 38: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 38

Affine Spaces: Frames

Frame: a basis at fixed origin Select a point O (origin) and a basis

(coordinate vectors) Any vector u can be represented as uniquely as a

linear combination of the basis vectors

Any point P can be represented uniquely as

Thus, we have affine coordinates for points and for vectors

Given a frame, points and vectors can be represented uniquely by their affine coordinates

},...,{ 1 nuuB

nnuuuu ...2211

nnuuuOP ...2211

Page 39: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 39

Affine Speces: Frames (cont)

If we change frames the coordinates change. The change of basis in a vector space is a linear

transformation (represented as matrix multiplication)

The change of frame in an affine space is NOT linear transformation

We extend the affine coordiantes, by adding one more dimension. The new coordinates are called homogeneous coordinates.

The change of frame in homogeneous coordinates is a linear transformation (i.e represented as matrix multiplication)

Page 40: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 40

Affine coordinates in 3D

Given a frame (P0, v1, v2, v3), a vector w and a point P can be represented uniquely by:

The affine coordinates (representations) of the vector and point are

3322110 vvvPP

332211 vvvw

3

2

1

3

2

1

0

wP

Page 41: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 41

Homogeneous Coordinates

Use four dimensional column matrices to represent both points and vectors in homogeneous coordinates

The first three components are the affine coordinates

To maintain a distinction between points and vectors we use the fourth component: for a vector it is 0 and for a point it is 1

Page 42: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 42

From affine to Homogeneous Coordinates

Affine coordinate equations and representations:

We agree that

The homogeneous-coordinate equations and representations:

homogeneous-coordinate representation of the point and the vector

013

2

1

3

2

1

wP

vectorzero,.0

.1

0

00

0

P

PP

3

2

1

3

2

1

wP

332211 vvvw

0332211 PvvvP

affine-coordinate representations

0332211 .1 PvvvP 0332211 .0 Pvvvw

Page 43: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 43

Homogeneous Coordinates

We carry out operations on points and vectors using their homogeneous-coordinate representation and ordinary matrix algebra

13

2

1

p

03

2

1

a

Point Vector

0

3

2

1

321 1

P

v

v

v

P

Frame

3210 ,,, vvvP

We can write the coordinate equations in matrix form.For example,

0332211 .1 PvvvP

Page 44: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 44

Homogeneous Coordinates Change of Frame

0

3

2

1

0

3

2

1

P

v

v

v

Q

u

u

u

M

1

0

0

0

434241

333231

232221

131211

M

bMa T

Change of frames is a linear transformation in homogeneouscoordinates. All affine transformations can be represented asmatrix multiplications in homogeneous coordinates.

two frames change of framesmatrix

aMAab T 1)(

Page 45: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 45

Taking a Picture

Page 46: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 46

Frames In OpenGL

Page 47: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 47

OpenGL: Initial Camera Position

• Primitives are subject to transformation according to model-view matrix.

• Objects are modeled independently from the location of the camera.

• OpenGL places the camera at the origin of the world frame pointing in the negative z direction.

• The model-view matrix is the identity iff the camera frame and world frame are the same.

Page 48: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 48

Default Position

Object and camera at the origin

Page 49: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 49

Separation of the two framesglMatrixMode(GL_MODELVIEW);

glLoadIdentity( );

glTranslatef( 0.0, 0.0,-d);

Page 50: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 50

Frames In OpenGL We use two frames: the camera frame and

the world frame We regard the camera frame as fixed The model-view matrix, M, is the change of

frame matrix, from world-frame coordinates to camera-frame coordinates.

Could be thought as translating the camera frame at a distance d, in direction of negative z-axis, -k, at the new location, centered at P.

McwM,,,k

j

i

w,k

j

i

c

1000

100

0010

0001

1

0

0

1

0

0

0

ddPO

PO

Page 51: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 51

Two Points of View All it matters is the relative position of the camera and the

object the separation of frames could be interpreted in two ways Hold camera frame fixed, move objects in front of the camera

done through affine (modeling) transformations glTranslate(), glRotate(): translate and rotate the object

Model objects stationary and move the camera away from the objects

done through affine (viewing) transformations gluLookAt(): position, orient , and point camera

Page 52: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 52

3D Primitives

Objects With Good Characteristics Described by their surfaces; thought to be hollow Specified through a set of vertices in 3D Composed of, or approximated by, flat convex

polygons For a polygon, when you walk along the edges in

order in which the vertices are specified, the right hand rule gives to outward normal.

Be careful about the order of the vertices when Be careful about the order of the vertices when you specify polygons. (in order, counter clockwise you specify polygons. (in order, counter clockwise when looking from the outside towards the object).when looking from the outside towards the object).

Page 53: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 53

Displaying 3D Objects

Hidden surface removal part of objects occluded by other objects

should not be visible in the 2D picture Z-buffer (depth buffer)

used to implement Z-buffer algorithm for hidden surface removal

should be enabled in OpenGL when 3D scenes are used

Page 54: Math 1Hofstra University1 Math Foundations of CG

Math 1 Hofstra University 54

Displaying 3D Objects In OpenGL•In main():

glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

•In init():

glEnable(GL_DEPTH_TEST);

•In display():

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

•Orthographic projection: only objects inside the viewing volume will be projected

glOrtho(GLfloat xmin, GLfloat xmax,

GLfloat ymin, GLfloat ymax,

Glfloat zmin, Glfloat zmax);

Vertices of object in viewing coordinates, (x,y,z), s.t.

xmin<=x<= xmax, ymin<=y<=ymax, minz<=z<=zmax

will be projected, the rest are clipped out