|
||||||||||||||||||
Add Forum to Favorites | Send Topic To a Friend | View Forum FAQ | Track this topic |
Last Thread Next Thread ![]() |
| Do We Really Need Quaternions? |
|
![]() Anonymous Poster |
||||
|
||||
| Diana certainly comes off pretty math phobic in this article for someone with a degree in the subject. |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
| This article is rather strange, it reads more like someone trying to intimidate a customer into retracting their request for quaternions in the fastgraph package. First of all, quaternions aren't really that complicated. Their principal advantages over matrix operations were understated in this article. Anyone can appreciate only requiring 4 floating point numbers instead of 9, and anyone can see that the expressions for quaternion multiplication are simpler than those for 3x3 matrix multiplication. Moreover they are numerically more stable. Of course if the graphics package doesn't support quaternion rotations in drawing scenes they most be converted back to matrices as a final step, but this added cost is negligible compared with the savings after a long sequence of transformations. Section I "Equivalence" is bizarre. From what I can see it shows that the rotation matrix derived from a quaternion is identical to a matrix representation of that rotation. Well of course they are - that's the whole point. It's completely unnecessary to prove this because it doesn't actually prove anything that wasn't obvious in the first place. Quaternions are a lot simpler than they are presented here. In fact all the mathematics is overcomplicated here, perhaps in the hope that it will deter people (and fastgraph customers) from arguing. |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
| 4. Quaternion operations don't require trig, vector operations do. A. Don't get too hung up on this. A dot product is a cosine whether you are talking about vectors or quaternions. Bollocks. A dot product involves multiplication and addition which just happens to equal a cosine. In vector algebra you actually need to consider the cosine and all its numerical problems, in quaternion algebra you don't. |
||||
|
||||
![]() Myopic Rhino Staff Member since: The dawn of time
From: Temecula, CA, United States |
||||
|
|
||||
| Okay, did this article get mentioned somewhere today or something? I think it's been discussed ad nauseam elsewhere in the forums. |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
| I would like to say that I found this website extremely useful. Personally I have used the matrix based on Euclidean geometry for my work and it worked perfectly ok! It is simple and practical. On thing I spot is at the point where deriving the Rotation Matrix Around an Arbitrary Axis in R^3. You will notice that the final matrix (1st row, 3rd column) should be txz - sy and not txz - xy. |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
| roofle |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
| In Deriving the Rotation Matrix Around an Arbitrary Axis in R3, How did you get from line 2 to line 3 of the derivation? Why is [r - n(n.r)]cos(phi) == n(n.r)(1 - cos(phi)) Please could someone explain this. Thanks Ed |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
| Diana's article makes a lot of sense to me ... why go through all the trouble of creating some unique vector space, and map to and from it when our old friends the sine and cosine work just as well? Quaternions seem like just another subject that takes time to learn; that time could be better allocated elsewhere. Dave Kopp |
||||
|
||||
![]() Zipster GDNet+ Member since: 3/11/2000 From: Las Vegas, NV, United States |
||||
|
|
||||
Quote: It happens all the time. The complex number space in particular is actually extremely useful and applicable. System engineers for example use Laplace transformations to transform functions of the single variable time into a complex number space in order to more easily deal with dynamic systems. Once they've done their manipulations they do an inverse transform to get back into the time space. The alternative is to solve complicated differential equations, which is something that mathematicians might enjoy but engineers surely do not. Another example of transformations making life easier is something as simple as logarithms, which transform numbers into logarithmic space so they can more easily multiplied and divided (multiplication turns into addition, division into subtraction, exponentiation into multiplication, et cetera). The central idea is that you transform something into a form that's more condense and easier to manipulate, and then transform it back into it's native space when you're finished. You incur the "cost" of transformation but in many cases it's nothing compared to the work you'd have to do in the native space. Maybe matrices aren't the best examples of something that's too difficult to work with natively, however you'll notice that quaternions solve a lot of stability issues association with matrix transformations (like gimbal lock). |
||||
|
||||
![]() meeshoo Member since: 6/16/2002 From: Cluj-Napoca, Romania |
||||
|
|
||||
| well, yes we do. from all the articles regarding quaternions, there is a demonstration that is superios (in CPU usage) to matrix ops, and their interpolation ability makes it very useful in a lot of cases (but not all of them). Their implementation should be very easy on a modern GPU as well. That's my opinion |
||||
|
||||
![]() Dmytry Member since: 12/9/2003 From: M 104 .... |
||||
|
|
||||
Quote: It's not quaternions are taking time to learn, it's 3d rotations takes time to learn. As about axis and angle. 99.99% of time, we don't need angle itself, we need sine or cosine of angle or even more often, half-angle. And sine and cosine of half angle is storen inside quaternion. If we are working with axis and angle, when combining rotation, we compute sine and cosine, then we compute arcsine and arccosine, then again and again. It's just plain stupid to calculate arcsine to find angle , so then you'll use sine to find what you really need. It's just like vectors versus angle and length And if you can understand how axis-and-angle rotations is combined, you should be able to understand quaternions as well. Really, write down quaternion multiplication side-to-side with combination of axis-and-angle rotations. What one will be more complex? Heck, quaternions was invented before vectors or matrices. How them can be really "much more complicated"? |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
| There is nice GUI based software to convert Eurler angles to quaternion for different sequence of rotations around roll, pithc and yaw. http://www.soft32.com/download_124236.html |
||||
|
||||
![]() Anonymous Poster |
||||
|
||||
Quote: Quaternions are not enough to solve the problem of gimbal lock. You need to use non eulerian transforms to avoid gimbal lock and it is easier to use this kind of transform with quaternions. A lot of people use quaternions + eulerian transforms, that leads to gimbal lock, I proved it, I worked on gimbal lock during 6 months last year. |
||||
|
||||
![]() Lode GDNet+ Member since: 3/29/2002 From: Belgium |
||||
|
|
||||
Quote: Has it been? Where? I was really interested to see all possible comments about this article, because I want to know what the general stance of quaternions vs matrices is. |
||||
|
||||
![]() Gage64 Member since: 11/8/2006 |
||||
|
|
||||
Quote: I think he was talking about this thread, as there's a link to it at the top of the article. OOP Articles | C++: A Dialog (free book) | Thinking in C++ (free book) | Google Books - Free preview for many books |
||||
|
||||
![]() taby Member since: 2/10/2005 From: Regina, Canada |
||||
|
|
||||
| The author tries to strike a balance against quaternion mania, which is respectable. As is their initiative to familiarize others with this quasi-"mystical" subject. However, the author incorrectly claims that quaternion multiplication is unwieldy. This immediately calls into question exactly how deep their knowledge of the subject is. Quaternion multiplication is not unwieldy; beyond grade school arithmetic, it requires only two "complicated" operations that are familiar to anyone with 1st year linear algebra under their belt. The author's lack of objectivity smacks of sensationalism, because there is really no controversy to be found here. For the author's reference: http://world.std.com/~sweetser/quaternions/intro/tools/tools.html Where Qn represents a quaternion, a lowercase letter indicates a single scalar, and an uppercase letter indicates a 3-vector: Q1 = (t, V) Q2 = (t', V') Q1 Q2 = (t t' - V dot V', t V' + t' V + V cross V') Here dot is the well-known 3D dot product operation (resulting in a scalar), and cross is the well-known 3D cross product operation (resulting in a 3-vector). It's incredibly simple, and just so happens to be deeply related to vector algebra. For the record, I haven't been developing games since the dawn of time, and I couldn't give a rat's ass about university. Never been there, never will. In fact, it was only three years ago that jyk taught me the basics of linear algebra. That said, I'd be more than happy to tutor the author on higher-dimensional division algebras, Lie groups, etc. at no cost. I'm being sarcastic, but it sounds kind of sensationalist/rude when it's put that way, now doesn't it? :) [Edited by - taby on July 31, 2009 11:09:27 AM] |
||||
|
||||
All times are ET (US)![]() |
Last Thread Next Thread ![]() |
|