1 / 28

CS361

Week 5 - Wednesday. CS361. Last time. What did we talk about last time? Project 2 Normal transforms Euler angles Quaternions. Questions?. Project 2. Quaternions. Quaternions. Quaternions are a compact way to represent orientations Pros: Compact (only four values needed)

sahara
Télécharger la présentation

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 - Wednesday CS361

  2. Last time • What did we talk about last time? • Project 2 • Normal transforms • Euler angles • Quaternions

  3. Questions?

  4. Project 2

  5. Quaternions

  6. 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

  7. 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

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

  9. 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:

  10. 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

  11. Quaternion rotation example • Take vector (0,0,3), write it as p = (0,0,3,0) • Let's rotate it 90° around the x-axis using a quaternion • We want where u is the x-axis and is 45° • p = (0, -3 sin , 0, 3cos , 0) = (0, -6sincos,3cos2-3sincos, 0) = (0, -3, 0, 0)

  12. 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

  13. Student Lecture: Vertex Blending and Morphing

  14. Vertex blending • 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

  15. Vertex blending continued • The following equation shows the effect that each bone i (and its corresponding animation transform matrix Bi(t) and bone to world transform matrix Mi ) have on the p, the original location of a vertex • Vertex blending is popular in part because it can be computed in hardware with the vertex shader

  16. Morphing • Morphing is the technique for interpolating between two complete 3D models • It has two problems: • Vertex correspondence • What if there is not a 1 to 1 correspondence between vertices? • Interpolation • How do we combine the two models?

  17. Morphing continued • We're going to ignore the correspondence problem (because it's really hard) • If there's a 1 to 1 correspondence, we use parameter s[0,1] to indicate where we are between the models and then find the new location m based on the two locations p0 and p1 • Morph targets is another technique that adds in weighted poses to a neutral model

  18. Projections • Finally, we deal with the issue of projecting the points into view space • Since we only have a 2D screen, we need to map everything to x and y coordinates • Like other transforms, we can accomplish projection with a 4 x 4 matrix • Unlike affine transforms, projection transforms can affect the w components in homogeneous notation

  19. Orthographic projections • An orthographic projection maintains the property that parallel lines are still parallel after projection • The most basic orthographic projection matrix simply removes all the z values • This projection is not ideal because z values are lost • Things behind the camera are in front • z-buffer algorithms don't work

  20. Canonical view volume • To maintain relative depths and allow for clipping, we usually set up a canonical view volume based on (l,r,b,t,n,f) • These letters simply refer to the six bounding planes of the cube • Left • Right • Bottom • Top • Near • Far • Here is the (OpenGL) matrix that translates all points and scales them into the canonical view volume

  21. Stupid XNA • OpenGL normalizes to a canonical view volume from [-1,1] in x, [-1,1] in y, and [-1,1] in z • Just to be silly, XNA normalizes to a canonical view volume of [-1,1] in x, [-1,1] in y, and [0,1] in z • Thus, its projection matrix is:

  22. Perspective projection • A perspective projection does not preserve parallel lines • Lines that are farther from the camera will appear smaller • Thus, a view frustum must be normalized to a canonical view volume • Because points actually move (in x and y) based on their z distance, there is a distorting term in the w row of the projection matrix

  23. Perspective projection matrix • Here is the XNA projection matrix • It is different from the OpenGL again because it only uses [0,1] for z

  24. XNA Projection Examples

  25. Quiz

  26. Upcoming

  27. Next time… • Light • Materials • Sensors

  28. Reminders • Read Chapter 5 for Friday • Exam 1 next Wednesday • Review all the material so far • Keep working on Project 2

More Related