280 likes | 527 Views
Week 4 - Monday. CS361. Last time. What did we talk about last time? Vectors. Questions?. Project 1. Drawing Primitives with Lighting in XNA. Student Lecture: Matrices. Matrices. A matrix.
E N D
Week 4 - Monday CS361
Last time • What did we talk about last time? • Vectors
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
Identity matrix • The identity or unit matrixI is a square matrix whose diagonal is all ones with zeroes elsewhere
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
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
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
Trace of a matrix • The trace of a square matrix is the sum of its diagonal elements • This is useful in defining quaternion conversions
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
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
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
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 subdeterminantdij to define the adjoint • The adjointA of an arbitrary sized matrix M is: • For a 3 x 3:
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:
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 Mviffu 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):
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
Next time… • Geometric techniques • Any trigonometry that seems useful
Reminders • Keep reading Appendix A • Read Appendix B • Keep working on Project 1, due Friday