So, when I began working on adding 'simple physics' to last week's project, it got me thinking about rigid body dynamics (a.k.a. game physics) and how to apply geometric algebra to it. Not surprisingly, I ended up on a tangent. You'd think I'd know better by now.
First, some background. When I was younger (late high school early college) I was very interested in creating an n-dimensional game engine. A game engine that could handle 2D, 3D, 4D, 1D, 16D, etc. It was this interest that eventually lead me to learn about geometric algebra, as well as many other complex and interesting topics.
Game development is an interesting culture when it comes to academia. On the one hand, game developers are generally very pragmatic; they aren't prone to theory for theory's sake. On the other, they are constantly pushing the envelope with performance. Consequently, while there is a lot of academia in game development, it is generally pretty messy.
So when you look into reading material on real-time physics simulation, you find some very good algorithms that are almost completely inconsistent with more general theories. Algorithms used outside of real-time simulation aren't much better. Without the performance constraint, one generally falls back on simple, but computationally expensive algorithms. For example, collision detection in n-D is actually pretty simple (using convex decomposition and Minkowski differences), but optimizing those concepts for real-time is incredibly difficult. Even MPR, an existing algorithm using these concepts, requires a ton of additional work to get all the information necessary to resolve a collision.
The only resource I was able to find in my search was this one. Most of it went over my head, but I did pick up a few things. In particular, it confirmed my hunch that angular velocity should be treated as a bivector (although I'm still not sure exactly why).
---
In other news, I did add some color to my project. Here's an updated screen. It's using a Minecraft texture pack at the moment. The one featured in this article. Additionally, I got the skybox from here.
No comments:
Post a Comment