3 ms·
Having written professionally about quaternions and GA, and having implemented them multiple times in professional engines, GA is simply slower and worse to use
by SideQuark 5y ago
Having written professionally about quaternions and GA, and having implemented them multiple times in professional engines, GA is simply slower and worse to use (until you replace them in the special case and put back quaternions).
I recommend every 3D engine keep quaternions - they work well for their task.
Here's [1] one example from the godfather of GA demonstrating how poorly GA performs
[1] https://webspace.science.uu.nl/~kreve101/asci/GAraytracer.pdf https://webspace.science.uu.nl/~kreve101/asci/GAraytracer.pd...
- ncmncm 5y agoIt seems like leaning into support from the type system of modern, static-typed languages like C++ could get us the conceptual advantage of GA with the performance of ordinary 3D linear algrebra, by representing knowledge of zero elements in such a way that operations with them shake out. It is another trick to map this to SIMD operations with vector units or GPUs in modern CPUs, but that should be no harder than doing the same thing with quaternions.
- ChrisLomont 5y ago>could get us the conceptual advantage of GA with the performance of ordinary 3D linear algrebra People have tried this for well over 20 years, and it has never once panned out. It's simply not possible, since the representation required for Clifford Algebras is simply larger than for a quat. C++ static typed engines with all the template magic, or even super optimized hand rolled GA engines, are simply not performant compared to the same effort on a traditional linear algebra one. Look over the writings of the authors in the paper I linked - they're gods in the GA field, and they've tried for decades to get it to work, as have many others (I worked on it 20ish years ago too..). Go ahead and reinvent it all. I suspect you'll eventually reach the same conclusion many have before.
- ncmncm 5y agoI doubt any recent additions to C++ would make it any easier. So, I am ready to give up on it.