Realistic physics (Continuum)

So I’ve been researching what realistic elastic collisions are like. Pretty darn complicated they are. And as much as I appreciate the help I’ve received from people who are dedicated to physics, they don’t tend to look at situations like a programmer would. When I say simplistic approximation, I mean realtime simplistic. (Also, simplistic enough for a dummy like me to understand.

My trials have led me a few particular qualities of elastic collisions between object, and I can’t quite figure out how they’re related. I figure a game-dev perspective might be better suited for explaining broad relations. Here goes!

  • Strain is a force from one object upon another. If my understanding is correct, this is Kinetic Energy (which is 0.5 * Mass * Velocity^2) / Area.
  • Stress is the force inside the object that tries to maintain its shape. It’s based on Young’s Modulus of Elasticity. Stress = YoungsModulus * Strain
  • Yield Strength is the amount of stress the material can take before fracture. This is what I’m lost on.

Iron for example has a Young’s Modulus of about 210, and a Yield Strength of about 90. Steel has a Young of 210 and Yield of 250. Silicon is 107 and 7000.

But how these two numbers relate, I cannot for the life of me figure out. For sake of learning, I’m keeping things as simple as possible and eliminating Area for now, assuming both objects are 1-meter cubes colliding perfectly.

Anyone have any insight?

Stop over thinking it. There’s a difference between realistic physics (good luck!) and believable physics. Just make sure it doesn’t look “unnatural” based off the setting of a game. For example if it’s a modern FPS ensure a tank can’t jump 10 feet in the air or bounce like a ball off a wall, which is easy to do by adjusting its mass using built in Unity physics. Simple test is to get 2-3 people to look at a reaction in your game and tell you if it looks odd or not; it’s very easy to see something moving in an unnatural way (even in a game!).

It’s the Yield in particular I’m looking at though; I want to know how hard something has to get hit in order to bend and/or break. For the time being I’m only looking at Yield which is the point where it starts bending (which I’ll temporarily count as breaking), and if I understand that then actual breaking is easy.

You mean as if there was a bridge and too much weight was on it, you want it to break? You should be able to just create a script that includes a custom public variable for how much weight/force it can handle. Then check what the total force or mass is of items colliding with it then if it’s more than the limit specified in your custom variable then break it with either an animation, mesh replacement, or maybe something like the below.

http://gustavolsson.squarespace.com/shatter-toolkit/

A bridge could be one use, but I’m looking at things like weapons hitting armor. I want to know how reality works so I can build a better RPG. Knowing how Yield Strength relates to Stress is as far as I really need to go, but figuring it out has been excruciating.

Could you explain further as to how just knowing how yield strength relates to stress will give a simulation of weapons hitting armor?
Do you want the objects to bend some before they break, or just fracture when they are hit too hard?
Do you want to play an animation of the object breaking, and you just need to know when to trigger that animation based on how hard it was hit?
Or do you actually want to do a physics simulation that tracks stress and strain at each point in the object and calculates how it deforms and breaks according to the laws of physics?

It sounds to me like you might be asking for something very difficult, like a complicated finite element simulation with fracturing, like this:

http://graphics.berkeley.edu/papers/Obrien-GMA-1999-08/index.html

Has anybody implemented something like this in Unity?
It would be very cool but a lot of work.

I don’t see how implementing those equations will give you accurate results. As Mwsc says its about finite element simulation and you don’t have enough computing power to do that in real time in a game. To explain what I mean in simpler terms: real world materials have different properties and behaviors based on form, thickness, aggregation. For example a Kalashnikov bullet (which is a powerful weapon) is suppose to go through a concrete wall, but it might get stuck in a thick book. Why? Because even if its frail, stacking multiple pieces of paper will change the properties of the material. Imagine how many calculations you need to make to accurate simulate a bullet hitting an 100 pages book.

Yeah, the physics guys didn’t give you a complex answer just for giggles. It’s actually a very complex interaction that you’re looking at.

If it’s for an RPG, why can’t you use a high level abstraction like the vast majority of RPGs use for the vast majority of interactions?

Your definitions are wrong, yield strength is (loosely) the point at which deformation becomes “noticeable” without increase in load, a point between the ultimate strength and the point where the relationship between permanent deformation and stress ceases to be linear. It has nothing to do with fracture per se.

More importantly it is measured by experimentation not calculated.

Your relationship between stress and strain only holds during the proportional region of the elastic region (before the yield strength).

EDIT: For games, you probably don’t care about this … see above :slight_smile: Furthermore there are likely other factors that are much more important to a “realistic” game, consider for example piercing weapons vs bludgeoning weapons, mail vs plate, etc.

Thanks for all the input. I know it really is an undertaking and I’m reading everything I can about it, but ultimately I may just be too dense to achieve understanding. x_x

The reason I’m learning about this sort of thing is because I want to see just what approach to abstract RPG mechanics is the closest to real life. The RPG itself may not be perfectly accurate or even close for that matter. But something at least remotely realish would be nice to accomplish.

Now studying that paper that was linked. Thanks again!