week 4 - monday. what did we talk about last time? vectors

32
CS361 Week 4 - Monday

Upload: jordan-stanley

Post on 23-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

CS361Week 4 - Monday

Last time

What did we talk about last time? Vectors

Questions?

Project 1

Geometric Interpretations

Cross product

The cross product of two vectors finds a vector that is orthogonal to both

For 3D vectors u and v in an orthonormal basis, the cross product w is:

xyyx

zxxz

yzzy

z

y

x

vuvu

vuvu

vuvu

w

w

w

vuw

Cross product rules

In addition wu and wv u, v, and w form a right-handed system

Things to remember

Vectors can represents points or directions

The norm of a vector gives its length The dot product of two vectors gives

a measure of how much they point in the same direction A scalar!

The cross product of two vectors gives a third vector, orthogonal to both of the original vectors

Drawing Primitives with Lighting in SharpDX

Student Lecture: Matrices

Matrices

A matrix

A matrix M is a set of p x q scalars with each element named mij, where 0 ≤ i ≤ p – 1 and 0 ≤ j ≤ q – 1

We display them as p rows and q columns

1,11,10,1

1,11110

1,00100

qppp

q

q

mmm

mmm

mmm

M

Identity matrix

The identity or unit matrix I is a square matrix whose diagonal is all ones with zeroes elsewhere

10000

01000

00010

00001

I

Operations

We will be interested in a number of operations on matrices, including: Addition Scalar multiplication Transpose Trace Matrix-matrix multiplication Determinant Inverse

Matrix-matrix addition

Similar to vector addition, matrix-matrix addition gives as its result a new matrix made up of element by element additions

The two matrices must be the same size ][][][ ijijijij nmnm NM

Scalar-matrix multiplication Similar to scalar-vector multiplication, scalar-

matrix addition results in a matrix where each element is multiplied by the scalar

Properties 0M = 0 1M = M a(bM) = (ab)M a0 = 0 (a+b)M = aM + bM a(M + N) = aM + aN

][ ijama MT

Transpose of a matrix

Transposing a matrix means exchanging its rows for columns

It has the effect of mirroring the matrix around its diagonal (or close to it, if not square)

Properties (aM)T = aMT

(M + N)T = MT + NT

(MT)T = M (MN)T = NTMT

][ jiT mM

Trace of a matrix

The trace of a square matrix is the sum of its diagonal elements

This is useful in defining quaternion conversions

1

0

)tr(n

iiimM

Matrix-matrix multiplication

Multiplication MN is legal only if M is p x q and N is q x r

Each row of M and each column of N are combined with a dot product and put in the corresponding row and column element

𝐌𝐍=𝐓=[𝑡 𝑖𝑗 ]=[∑𝑘=0

𝑞− 1

𝑚𝑖𝑘𝑛𝑘𝑗]

Properties of matrix-matrix multiplication

Properties: (LM)N = L(MN) (L + M)N = LN + MN MI = IM = M

Matrix-matrix multiplication is not commutative

We can treat a vector as an n x 1 matrix and do matrix-vector multiplication similarly

Determinant

The determinant is a measure of the "magnitude" of a square matrix

We'll focus on determinants for 2 x 2 and 3 x 3 matrices

100111001110

0100)det( mmmmmm

mmMM

222120

121110

020100

)det(

mmm

mmm

mmm

MM211200221001201102

211002201201221100

mmmmmmmmm

mmmmmmmmm

Subdeterminant

The subdeterminant or cofactor dij of matrix M is the determinant of the (n – 1) x (n – 1) matrix formed when row i and column j are removed

Below is d02 for a 3 x 3 matrix M

201121102120

111002 mmmm

mm

mmd

Adjoint

The adjoint of a matrix is a form useful for transforming surface normals

We can also use the adjoint when finding the inverse of a matrix

We need the subdeterminant dij to define the adjoint The adjoint A of an arbitrary sized matrix M is:

For a 3 x 3:

jijiij da )()1()adj( M

221202

211101

201000

)adj(

ddd

ddd

ddd

M

Multiplicative inverse of a matrix

For a square matrix M where |M| ≠ 0, there is a multiplicative inverse M-

1 such that MM-1 = I For implicit inverse, we only need to

find v in the equation u = Mv, done as follows:

For cases up to 4 x 4, we can use the adjoint:

),,det(

),,det(

),,det(

||1

umm

mum

mmu

Mv

yx

zx

zy

z

y

x

v

v

v

)adj(11 MM

M

Notes about the inverse

For cases larger than 4 x 4, other methods are necessary: Gaussian elimination LU decomposition

Fortunately, we never need more than 4 x 4 in graphics

Properties of the inverse: (M-1)T = (MT)-1

(MN)-1 = N-1M-1

Orthogonal matrices

A square matrix is orthogonal if and only if its transpose is its inverse MMT = MTM = I

Lots of special things are true about an orthogonal matrix M |M| = ± 1 M-1 = MT

MT is also orthogonal ||Mu|| = ||u|| Mu Mv iff u v If M and N are orthogonal, so is MN

An orthogonal matrix is equivalent to an orthonormal basis of vectors lined up together

Homogeneous notation

Why do we often have vectors of 4 things or 4 x 4 matrices in graphics?

We have points (locations) and vectors (directions)

What's really confusing is that we represent them the same way (in what looks like a vector for both)

We need to translate points but translation isn't meaningful for vectors

A 3 x 3 matrix can rotate, scale, or shear, but it can't translate

How we do it

We add an extra value to our vectors It's a 0 if it’s a direction It's a 1 if it's a point

Now we can do a rotation, scale, or shear with a matrix (with an extra row and column):

1000

0

0

0

222120

121110

020100

mmm

mmm

mmm

M

Translations

Then, we multiply by a translation matrix (which doesn't affect a vector)

We'll cover how we make the transforms we want starting Friday

1000

100

010

001

z

y

x

t

t

t

T

Upcoming

Next time…

Geometric techniques Any trigonometry that seems useful

Reminders

Keep reading Appendix A Read Appendix BKeep working on Project 1, due

Friday