I was just wondering basically how the Physics engine works; it might help me work with it a little easier.
I understand it basically uses algorithms and colliders, and alters transforms of objects to change them. I have a few specific questions, however;
1) Is there anything I'm missing here, or do I have it basically understood?
2) Does it work with more complicated physics concepts like inertia/momentum, centrifugal forces, and reactions? (as in, with every action there is an equal and opposite reaction - so for example if one object exerts a force on a more 'massive' or stable object, it will instead exert that force on itself in an opposite direction.)
If not, is there a simple way I can implement these? (Well, relatively simple.) I don't exactly understand the math behind it, but I figure I could potentially sort of 'plug into' the native physics engine; or maybe fake it using the currently available functions/scripting, if less dynamically. (as in my earlier example, I write a script that allows for such things - and checks relative masses, then applies the correct forces to the appropriate objects.)
Though on that note, the way I understand it forces are added to objects, but objects don't necessarily inflict force on other objects? I know it natively does this to some extent, but I'm not sure how far that goes.
3) Is there an inherent way to make a rigid-body more dynamic in the way it interacts with physics? As in, instead of forces only applying translation/rotation, actually modifying the mesh of the object, to stimulate elasticity/tensile factors/resistances/deformability. (For example, making a ball squish/stretch as it is pressed against the ground, and then reversing its' momentum; Or a fibrous material like wood or fiberglass 'bending' with a force, then snapping back into place; Or a metal object bending, then keeping its' new shape; etc.) How are things like this handled? Does it make it hugely more complicated to calculate? Would I have to essentially rewrite the engine to apply these things, or would it be possible to create an add-on to the original engine?
I understand that's where strategic animation comes into play, but at a certain point those things just aren't possible to animate; or rather, you are working in so much detail, that you might as well write a new physics engine because it would take less time.
Now keep in mind I have little understanding of how animation works either, so it might not take as much as I imagine.
In any case, I'm mostly curious, I don't have an immediate application just yet.
asked Jan 09 '11 at 11:37 PM