Reading 6: Rotations

by Mike Gleicher on February 8, 2013

We’ve talked about rotations a bit, and now you’re hopefully ready for more than a hand wave, or to see them fly by in one of the surveys. The writing part of the assignment is minimal – since if you don’t figure out now, it will come back to haunt you soon enough.

The required reading is (before class on 2/13):

  • Representing Rotations and Orientations in Geometric Computing by Jehee Lee (IEEE CG&A 2008) (official IEEE page)http://mrl.snu.ac.kr/publications/RotationAndOrientation.pdf. This is a recent paper that sums up the intuitions from someone who really knows it. It doesn’t necessarily give the low-level details of how quaternions work (look at some older article for that), but explains why we like them. There are lots of pros and cons to the various representations, so I’m not sure I necessarily buy into his idea that we should always do quaternions for orientations and rotation vectors (exponential coordinates) for rotations, but the argument is well laid out, and the intuitions are conveyed. Also he doesn’t give all the details of the quaternion/rot vector operators, so you’ll need another resource for that.

(optional) The other thing to read is something that gives you more practical info about quaternions. Sometimes these are just out of date coding hacks (like a game developer trying to avoid square root since it was slow in 2002). But sometimes they can give you useful tricks and insights. I’ve also thrown in a great source for theory.

Historically, the use of Quaternions is a new thing. Now they are common. 10 years ago not so much. 15 years ago, really rare in graphics. A lot of the old stuff is trying to convince people to use them, before the community understood them very well. (although, the math has been around for a long time).

Some examples:

  • Chapter 2: Rigid Body Motions, in A Mathematical Introduction to Robotic Manipulation by Murray, Li and Shastry.murray_li_shashtry_2.pdf. Still the best theoretical discussion of rotations. But it might be a little too theoretical for most.
  • Practical Parameterization of Rotations Using the Exponential Map F. Febastian Grassia, Journal of Graphics Tools, 1998. http://www.cs.cmu.edu/~spiff/moedit99/expmap.pdf Note: this is a nice discussion of the issues in working with rotation, and survey of different rotation representations. Ironically, his discussions of the exponential map are not the best.
  • Animating rotation with quaternion curves Ken Shoemake, SIGGRAPH ’85. http://doi.acm.org/10.1145/325334.325242 Note: This paper is of historical interest since it is singlehandedly responsible for introducing quaternions to the graphics community. However, it is a bit dated, and the hacks for quaternion splines are now superceded by some actual math.
  • RTR 4.3 discusses Quaternions, but doesn’t really give much insights beyond the basic equations. (note: I will refer to RTR (real-time rendering) a lot – it’s a book that I like a lot, although its not as directly relevant for this class).
  • Understanding SLERP and not using it by Jonathan Blow http://number-none.com/product/Understanding%20Slerp,%20Then%20Not%20Using%20It/. A nice explanation of what SLERP is from a game guy. This gets into some really practical rammifications.
  • Hacking Quaternions. by Jonathan Blow. Again, a game guy who knows a lot of math talks about some practical details
  • A very dated game developer article about quaternions: http://www.gamasutra.com/view/feature/3278/rotating_objects_using_quaternions.php

The writing part is simple. If you read an optional paper, say what it is. For each thing you read (optional and non-optional) say something you learned from it. I just want to make sure you really did look at the paper. The Moodle page is here.

Print Friendly, PDF & Email

Previous post:

Next post: