week 5 wednesday what did we talk about last time
play

Week 5 -Wednesday What did we talk about last time? Transforms - PowerPoint PPT Presentation

Week 5 -Wednesday What did we talk about last time? Transforms Translation Rotation Scaling Shearing Rigid-body transforms and their inverses Normal transforms For normals and other things, we need to be able to


  1. Week 5 -Wednesday

  2.  What did we talk about last time?  Transforms  Translation  Rotation  Scaling  Shearing  Rigid-body transforms and their inverses  Normal transforms

  3.  For normals and other things, we need to be able to compute inverses  Rigid body inverses were given before  For a concatenation of simple transforms with known parameters, the inverse can be done by inverting the parameters and reversing the order: ▪ If M = T ( t ) R ( ϕ ) then M -1 = R (- ϕ ) T (- t )  For orthogonal matrices, M -1 = M T  If nothing is known, use the adjoint method

  4.  We can describe orientations from some default orientation using the Euler transform  The default is usually looking down the – z axis with "up" as positive y  The new orientation is:  E ( h , p , r ) = R z ( r ) R x ( p ) R y ( h )  h is head , like shaking your head "no" ▪ Also called yaw  p is pitch , like nodding your head back and forth  r is roll … the third dimension

  5.  One trouble with Euler angles is that they can exhibit gimbal lock  In gimbal lock, two axes become aligned, causing a degree of freedom to be lost  Euler angles can describe orientations in multiple ways, however the wrong choice of rotations may cause gimbal lock

  6.  Sometimes you want to rotate around some arbitrary axis r  To do so, create an orthonormal basis r , s , and t as follows  Take the smallest component of r and set it to 0  Swap the two remaining components and negate the first one  Divide the result by its norm, making it a normal vector s  Let t = r x s   T  This basis can be made into a matrix M r   =   T M s   T t    The final transform X transforms the r -axis to the x -axis, does the rotation by α and then transforms back to r  X = M T R x ( α ) M

  7.  Quaternions are a compact way to represent orientations  Pros:  Compact (only four values needed)  Do not suffer from gimbal lock  Are easy to interpolate between  Cons:  Are confusing  Use three imaginary numbers  Have their own set of operations

  8.  A quaternion has three imaginary parts and one real part = = = − 2 2 2 i j k 1 = = + + + = + ˆ ˆ q ( q , q ) iq jq kq q q q v w x y z w v w = − = jk kj i  We use vector notation for = − = quaternions but put a hat on them ki ik j  Note that the three imaginary = − = ij ji k number dimensions do not behave the way you might expect

  9. = × + + − ⋅ ˆ ˆ q r ( q r r q q r , q r q r )  Multiplication v v w v w v w w v v + = + q + ˆ ˆ q r ( q r , r )  Addition v v w w = − ˆ * q ( q v q , )  Conjugate w = + + +  Norm 2 2 2 2 ˆ n ( q ) q q q q x y z w ˆ i =  Identity ( 0 , 1 )

  10. 1 − = 1 *  Inverse: ˆ ˆ q q 2 ˆ n ( q ) = * * * ˆ ˆ ˆ ˆ ( q r ) r q  One (useful) conjugate rule:  Note that scalar multiplication is just like scalar vector multiplication for any vector  Quaternion quaternion multiplication is associative but not commutative  For any unit vector u , note that the following is a unit quaternion: q = ˆ (sin φ u , cos φ )

  11.  Take a vector or point p and pretend its four coordinates make ˆ a quaternion p q = ˆ  If you have a unit quaternion (sin φ u , cos φ ) − the result of is p rotated around the u axis by 2 ϕ 1 ˆ ˆ ˆ q p q − = 1 * ˆ ˆ q q  Note that, because it's a unit quaternion,  There are ways to convert between rotation matrices and quaternions  The details are in the book

  12.  Short for spherical linear interpolation  Using unit quaternions that represent orientations, we can slerp between them to find a new orientation at time t = [0,1], tracing the path on a unit sphere between the orientations − sin( φ ( 1 t )) sin( φ t ) = + ˆ ˆ ˆ ˆ ˆ s ( q , r , t ) q r sin φ sin φ  To find the angle ϕ between the quaternions, you can use the fact that cos ϕ = q x r x + q y r y + q z r z + q w r w

  13.  If we animate by moving rigid bodies around each other, joints won't look natural  To do so, we define bones and skin and have the rigid bone changes dictate blended changes in the skin

  14.  The following equation shows the effect that each bone i (and its corresponding animation transform matrix B i ( t ) and bone to world transform matrix M i ) have on the p , the original location of a vertex − − n 1 n 1 ∑ ∑ − = = 1 u ( t ) w B ( t ) M p where w 1 i i i i = = i 0 i 0  Vertex blending is popular in part because it can be computed in hardware with the vertex shader

  15.  Finish vertex blending and morphing  Projections  Work day to finish Project 1

  16.  Finish Project 1 due this Friday!  Keep working on Assignment 2

Recommend


More recommend