1 / 22

CS361

Week 5 - Monday. CS361. Last time. What did we talk about last time? Trigonometry Transforms Affine transforms Rotation Scaling Shearing Concatenation of transforms. Questions?. Assignment 2. Project 2. Student Lecture: Normal Transforms and the Euler Transform . Normal transforms.

jaron
Download Presentation

CS361

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Week 5 - Monday CS361

  2. Last time • What did we talk about last time? • Trigonometry • Transforms • Affine transforms • Rotation • Scaling • Shearing • Concatenation of transforms

  3. Questions?

  4. Assignment 2

  5. Project 2

  6. Student Lecture: Normal Transforms and the Euler Transform

  7. Normal transforms • The matrix used to transform points will not always work on surface normals • Rotation is fine • Uniform scaling can stretch the normal (which should be unit) • Non-uniform scaling distorts the normal • Transforming by the transpose of the adjoint always gives the correct answer • In practice, the transpose of the inverse is usually used

  8. Intuition about why it works • Because of the singular value theorem, we can write any square, real-valued matrix M with positive determinant as: • M = R1SR2 • where R1 and R2 are rotation matrices and S is a scaling matrix • (M-1)T = ((R1SR2)-1)T = (R2-1S-1R1-1)T = (R1-1)T(S-1)T(R2-1)T = R1S-1 R2 • Rotations are fine for the normals, but non-uniform scaling will distort them • The transpose of the inverse distorts the scale in the opposite direction

  9. Normal transform rules of thumb • With homogeneous notation, translations do not affect normals at all • If only using rotations, you can use the regular world transform for normals • If using rotations and uniform scaling, you can use the world transform for normals • However, you'll need to normalize your normals so they are unit • If using rotations and non-uniform scaling, use the transpose of the inverse or the transpose of the adjoint • They only differ by a factor of the determinant, and you'll have to normalize your normals anyway

  10. Inverses • 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 = MT • If nothing is known, use the adjoint method

  11. Euler transform • 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) = Rz(r)Rx(p)Ry(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

  12. Gimbal lock • 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

  13. Rotation around an arbitrary axis • 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 • This basis can be made into a matrix M • The final transform X transforms the r-axis to the x-axis, does the rotation by α and then transforms back to r • X = MTRx(α)M

  14. Quaternions • 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

  15. Definition • A quaternion has three imaginary parts and one real part • We use vector notation for quaternions but put a hat on them • Note that the three imaginary number dimensions do not behave the way you might expect

  16. Operations • Multiplication • Addition • Conjugate • Norm • Identity

  17. More operations • Inverse • 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:

  18. Quaternion transforms • Take a vector or point p and pretend its four coordinates make a quaternion • If you have a unit quaternion the result of is p rotated around the u axis by 2 • Note that, because it's a unit quaternion, • There are ways to convert between rotation matrices and quaternions • The details are in the book

  19. Slerp • 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 • To find the angle  between the quaternions, you can use the fact that cos = qxrx + qyry + qzrz+ qwrw

  20. Upcoming

  21. Next time… • Vertex blending • Morphing • Projections

  22. Reminders • Keep reading Chapter 4 • Exam 1 next Wednesday

More Related