week 5 monday
Download
Skip this Video
Download Presentation
CS361

Loading in 2 Seconds...

play fullscreen
1 / 22

CS361 - PowerPoint PPT Presentation


  • 193 Views
  • 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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
inverses
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
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
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
definition
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
operations
Operations
  • 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
slerp
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
next time
Next time…
  • Vertex blending
  • Morphing
  • Projections
reminders
Reminders
  • Keep reading Chapter 4
  • Exam 1 next Wednesday
ad