skeletons
play

Skeletons CSE169: Computer Animation Instructor: Steve Rotenberg - PowerPoint PPT Presentation

Skeletons CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2020 Matrix Review Coordinate Systems Right handed coordinate system y x z 3D Models Lets say we have a 3D model that has an array of position vectors


  1. Skeletons CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2020

  2. Matrix Review

  3. Coordinate Systems ◼ Right handed coordinate system y x z

  4. 3D Models ◼ Let’s say we have a 3D model that has an array of position vectors describing its shape ◼ We will group all of the position vectors used to store the data in the model into a single array: v n where 0 ≤ n ≤ NumVerts-1 ◼ Each vector v n has components v nx v ny v nz

  5. Translation ◼ Let’s say that we want to move our 3D model from its current location to somewhere else… ◼ In technical jargon, we call this a translation ◼ We want to compute a new array of positions v ′ n representing the new location ◼ Let’s say that vector d represents the relative offset that we want to move our object by ◼ We can simply use: v ′ n = v n + d to get the new array of positions

  6. Transformations v ′ n = v n + d ◼ This translation represents a very simple example of an object transformation ◼ The result is that the entire object gets moved or translated by d ◼ From now on, we will drop the n subscript, and just write v ′ = v + d remembering that in practice, this is actually a loop over several different v n vectors applying the same vector d every time

  7. Transformations  = + v v d ◼ Always remember that this compact equation can be expanded out into        v v d x x x        = + v v d       y y y              v v d z z z ◼ Or into a system of linear equations:  = + v v d x x x  = + v v d y y y  = + v v d z z z

  8. Rotation ◼ Now, let’s rotate the object in the xy plane by an angle θ , as if we were spinning it around the z axis ( ) ( )  =  −  v cos v sin v x x y ( ) ( )  =  +  v sin v cos v y x y  = v v z z ◼ Note: a positive rotation will rotate the object counterclockwise when the rotation axis (z) is pointing towards the observer

  9. Rotation ( ) ( )  =  −  v cos v sin v x x y ( ) ( )  =  +  v sin v cos v y x y  = v v z z We can expand this to: ◼ ( ) ( )  =  −  + v cos v sin v 0 v x x y z ( ) ( )  =  +  + v sin v cos v 0 v y x y z  = + + v 0 v 0 v 1 v z x y z And rewrite it as a matrix equation: ◼   −        v cos sin 0 v x x        =    v sin cos 0 v       y y              v 0 0 1 v z z Or just: ◼  =  v M v

  10. Rotation ◼ We can represent a z-axis rotation transformation in matrix form as:   −        v cos sin 0 v x x        =    v sin cos 0 v       y y              v 0 0 1 v z z or more compactly as:  =  v M v where  −    cos sin 0   ( ) =  =   M R sin cos 0   z     0 0 1

  11. Rotation We can also define rotation matrices for the x , y , and z axes: ◼   1 0 0   ( )  =  −  R 0 cos sin   x       0 sin cos     cos 0 sin   ( )  = R 0 1 0   y   −     sin 0 cos  −    cos sin 0   ( )  =   R sin cos 0   z     0 0 1

  12. Linear Transformations ◼ Like translation, rotation is an example of a linear transformation ◼ True, the rotation contains nonlinear functions like sin()’s and cos()’s, but those ultimately just end up as constants in the actual linear equation ◼ We can generalize our matrix in the previous example to be:   a b c 1 1 1    =  = M a b c v M v   2 2 2     a b c 3 3 3

  13. Linear Equation ◼ A general linear equation of 1 variable is: ( ) = + f v av d where a and d are constants ◼ A general linear equation of 3 variables is: ( ) ( ) = = + + + f v , v , v f v av bv cv d x y z x y z 2 , ◼ Note: there are no nonlinear terms like v x v y , v x sin( v x )…

  14. System of Linear Equations ◼ Now let’s look at 3 linear equations of 3 variables v x , v y , and v z  = + + + v a v b v c v d x 1 x 1 y 1 z 1  = + + + v a v b v c v d y 2 x 2 y 2 z 2  = + + + v a v b v c v d z 3 x 3 y 3 z 3 ◼ Note that all of the a n , b n , c n , and d n are constants (12 in total)

  15. Matrix Notation  = + + + v a v b v c v d x 1 x 1 y 1 z 1  = + + + v a v b v c v d y 2 x 2 y 2 z 2  = + + + v a v b v c v d z 3 x 3 y 3 z 3          v a b c v d x 1 1 1 x 1          =  + v a b c v d         y 2 2 2 y 2                  v a b c v d z 3 3 3 z 3  =  + v M v d

  16. Translation ◼ Let’s look at our translation transformation again:  = + v v d x x x  = +  = + v v d v v d y y y  = + v v d z z z ◼ If we really wanted to, we could rewrite our three translation equations as:  = + + + v 1 v 0 v 0 v d x x y z x  = + + + v 0 v 1 v 0 v d y x y z y  = + + + v 0 v 0 v 1 v d z x y z z

  17. Identity ◼ We can see that this is equal to a transformation by the identity matrix  = + + + v 1 v 0 v 0 v d x x y z 1  = + + + v 0 v 1 v 0 v d y x y z 2  = + + + v 0 v 0 v 1 v d z x y z 3          v 1 0 0 v d x x 1          =  + v 0 1 0 v d         y y 2                  v 0 0 1 v d z z 3

  18. Identity ◼ Multiplication by the identity matrix does not affect the vector   1 0 0   = I 0 1 0       0 0 1 =  v I v

  19. Uniform Scaling We can apply a uniform scale to our object with the following ◼ transformation        v s 0 0 v x x        =  v 0 s 0 v       y y              v 0 0 s v z z If s >1, then the object will grow by a factor of s in each dimension ◼ If 0< s <1, the object will shrink ◼ If s<0, the object will be reflected across all three dimensions, ◼ leading to an object that is ‘inside out’

  20. Non-Uniform Scaling ◼ We can also do a more general nonuniform scale , where each dimension has its own scale factor        v s 0 0 v x x x        =  v 0 s 0 v       y y y              v 0 0 s v z z z which leads to the equations:  = v s v x x x  = v s v y y y  = v s v z z z

  21. Reflections ◼ A reflection is a special type of scale operation where one of the axes is negated causing the object to reflect across a plane ◼ For example, a reflection along the x-axis would look like: ◼ Given an arbitrary 3x3 matrix M , we can tell if it has been reflected by checking if the matrix determinant is negative

  22. Shears ◼ A shear is a translation along one axis by an amount proportional to the value along a different axis ◼ It causes a deformation similar to writing with italics (i.e., it causes a rectangle to deform into a parallelogram) ◼ For example a shear along x proportional to the value of y would look like:

  23. Multiple Transformations ◼ If we have a vector v , and an x-axis rotation matrix R x , we can generate a rotated vector v ′: ( ) v  =   v R x ◼ If we wanted to then rotate that vector around the y-axis, we could simply: ( )    =   v R v y ( ) ( ( ) )   =     v R R v y x

  24. Multiple Transformations We can extend this to the concept of applying any sequence of ◼ transformations: ( ( ( ) ) )  =     v M M M M v 4 3 2 1 Because matrix algebra obeys the associative law, we can regroup this as: ◼ ( ) v  =     v M M M M 4 3 2 1 This allows us to concatenate them into a single matrix: ◼ =    M M M M M total 4 3 2 1  =  v M v total Note: matrices do NOT obey the commutative law, so the order of ◼ multiplications is important

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend