Week 5 monday
1 / 22

CS361 - PowerPoint PPT Presentation

  • Uploaded on

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.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' CS361' - jaron

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Last time
Last time

  • What did we talk about last time?

  • Trigonometry

  • Transforms

    • Affine transforms

    • Rotation

    • Scaling

    • Shearing

    • Concatenation of transforms

Normal transforms
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

Intuition about why it work s
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

Normal transform rules of thumb
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


  • 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

Euler transform
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

Gimbal lock
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

Rotation around an arbitrary axis
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


  • 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


  • 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


  • Multiplication

  • Addition

  • Conjugate

  • Norm

  • Identity

More operations
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:

Quaternion transforms
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


  • 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

Next time
Next time…

  • Vertex blending

  • Morphing

  • Projections


  • Keep reading Chapter 4

  • Exam 1 next Wednesday