Let's remove Quaternions from every 3D Engine
111–120 of 184 posts
Re: Let's remove Quaternions from every 3D Engine
#112Re: Let's remove Quaternions from every 3D Engine
#113Earlier quoted context omitted.
It's very cool that the geometric product of any orthonormal basis for R^2 gives i as a "pseudoscalar". Let {e1,e2} be an orthonormal basis for R^2. Let i = e1e2. Then i^2 = e1e2e1e2 = -e1e1e2e2 (anticommutivity) = -(1)(1) = -1. Personally that alone is enough to justify learning more about geometric algebra.
That is true of the wedge product also, though. That's my point. The geometric product gives very little power over the wedge product, and when it does, it's massively non-intuitive how it works.
Re: Let's remove Quaternions from every 3D Engine
#114Texts on GA seem to start out saying "we're going to replace vector analysis with something intuitive and natural and eloquent and..." and then immediately introduce the "geometric product", which is neither intuitive, eloquent, or, as far as I can tell, natural. Its properties are found via formula-wrangling, and the results you get from it seem to just magically work, rather than being intuitive. Bivectors in gener…
The outermorphism of a linear transformation is a useful and convenient (but sometimes tricky) concept. It gives you not only determinants, but also the application of your linear transformation to arbitrary multivectors.
Re: Let's remove Quaternions from every 3D Engine
#115Texts on GA seem to start out saying "we're going to replace vector analysis with something intuitive and natural and eloquent and..." and then immediately introduce the "geometric product", which is neither intuitive, eloquent, or, as far as I can tell, natural. Its properties are found via formula-wrangling, and the results you get from it seem to just magically work, rather than being intuitive. Bivectors in gener…
By the way, the determinant of a matrix is just the outermorphism of the associated linear transformation applied to a unit pseudoscalar. The outermorphism of a linear transformation is a useful and convenient (but sometimes tricky) concept. It gives you not only determinants, but also the application of your linear transformation to arbitrary multivectors.
Re: Let's remove Quaternions from every 3D Engine
#116Earlier quoted context omitted.
Yes, it does, because it is an identical representation to quaternions. Except it actually explains all the weirdness in quaternions without resorting to 4-space. This is because quaternions are a subalgebra of geometric algebra in 3-space.
there is nothing weird about 4-space, what do you mean?
> all the weirdness in quaternions without resorting to 4-space
Re: Let's remove Quaternions from every 3D Engine
#117I read through a bunch of this, and one part seems poorly explained. There’s a clear definition of the product of two vectors, but the result isn’t a vector — it’s a scalar plus a bivector. Then, by magic, three vectors get multiplied! But what does that even mean? Somehow a vector gets multiplied by a bivector, and the result is somehow still a vector. What’s going on?
The [Aside] section of "The Reflection Formula (Geometric Product Version) " http://marctenbosch.com/quaternions/#h_13 has the answer you seek ;)
I suppose this could be answered if you explicitly stated what set the geometric product acted on. As a guess, and from skimming Wikipedia, it’s the direct sum of scalars, vectors, bivectors, etc, up through n-vectors. So 2 + x∧y + 3x∧y∧z is a valid output. And it’s probably straightforward to show that the geometric product is actually defined on this space.
(Hi Marc!)
Re: Let's remove Quaternions from every 3D Engine
#118I'm no game developer. But wouldn't it be important for game engines to use the most performant approach. Is there a difference in performance when using rotors instead of quaternions?
Re: Let's remove Quaternions from every 3D Engine
#119Earlier quoted context omitted.
The results are going to be the same. The arithmetic involved is literally identical. The real power of the GA version is that you can more clearly geometrically explain what is going on, and you can generalize everything to pseudo-Euclidean spaces or to lower or higher dimensions. GA gives you some more algebraic tools to work with, so when you are trying to write your proofs they are clearer and more concise.
I believe you. I work in code all day. I have a lot of code that works. I’d love to see code that also works but is easier to understand. If someone wants to remove something from every 3d engine then I’m going to need to see what the replacement looks like. In actual code.
I got a C- in Linear Algebra in college... I remember my Linear Algebra prof saying "maybe I'm being pedantic" when explaining a concept and I was like "wtf are you even talking about?"
I avoid all Math - and I think black boxes are great. The few times I've used functions with quaternions in game programming (I'm not a game programmer) they seemed really easy to use. I'm skeptical that a concept that is easy to understand for people with a Math background is easier to use in code for people like me.
Re: Let's remove Quaternions from every 3D Engine
#120Tangential: Back in 2000 there was some debate about dropping quaternions in favor of a set of equivalent operations on plain matrices. https://www.gamedev.net/articles/programming/math-and-physic... The debate petered out when the proponents finished optimizing their implementation and found they had produced exactly the same code as the existing quaternion implementations. The only difference was the approach used…
Interesting that the original complaint of that article/thread and this one are both the same - ie. quaternions are 'too hard to understand', and people 'use them without knowing how they work'. With this being posted so soon after https://news.ycombinator.com/item?id=18310788 , I feel like that complaint is less valid now than it ever has been, but it's kind of interesting to think about why quaternions in particular draw so much fire when, honestly, I found matrices to be equally challenging at first. Is it just an education thing, since matrices are generally taught much earlier? Or is there some intuition in matrices that isn't present in quaternions? Both of them seem to be just 'do this math, then magic happens' unless you think about them a fair bit, and that was pretty challenging for both the first time round imo.