Jump to content
  • Advertisement
miqvp22

Plastic deformation using PBD

Recommended Posts

I want to simulate a metal car chassis deformation using Particle Based Dynamics.

I'm wondering to know what constraints should I have in order to make the particles stay rigid until some crash.

Currently I'm Integrating with Verlet, but It's not enough with distance constraints and bend constraints to behave realistically, everything looks very soft.

( I'm a little bit lost because I'm using cloth softbodies, but I don't know if I should be looking at rigidbodies )

Thanks.

Share this post


Link to post
Share on other sites
Advertisement

I've done car body Sim with verlet before, and to stiffen it up, created more layers of points with more distance constraints between the layers, including diagonal connections.

It's kind of like if you nail four planks into a square, it won't keep its shape very well, but if you add two more planks across the diagonals, it will be much more rigid.

Share this post


Link to post
Share on other sites
Posted (edited)

I've extended the particles to have orientation, so angular constraints became possible (helped also with flipping / inversions that diagonal extra constraints could not prevent).

You can also have lower resolution constraint mesh (with orientation), and the high res mesh (without orn) is connected to this coarser version. This increases stiffness much more than lots of solver iterations.

Edited by JoeJ

Share this post


Link to post
Share on other sites
6 hours ago, JoeJ said:

I've extended the particles to have orientation, so angular constraints became possible (helped also with flipping / inversions that diagonal extra constraints could not prevent).

You can also have lower resolution constraint mesh (with orientation), and the high res mesh (without orn) is connected to this coarser version. This increases stiffness much more than lots of solver iterations.

How do you know each particle orientation? How it should be the integration step to do so? (If you could provide some code)

I've tried to do so using duality methods, where each point of the lower resolution constraint mesh is between three points of the other high constraint mesh, so I can get the normal orientation. But it is very inefficient to iterate over it.

Thanks!

Share this post


Link to post
Share on other sites
9 hours ago, Hodgman said:

I've done car body Sim with verlet before, and to stiffen it up, created more layers of points with more distance constraints between the layers, including diagonal connections.

It's kind of like if you nail four planks into a square, it won't keep its shape very well, but if you add two more planks across the diagonals, it will be much more rigid.

At this moment, I have all the points connected between them, so there are already too many connections in the simulation. And I'm doing about 10 iteration steps.

Even though, It looks a little bit soft.

What do you mean with layers of points? ( do you mean having separated node structures actuating on the same chassis mesh? )

Thanks!

Share this post


Link to post
Share on other sites
10 hours ago, miqvp22 said:

How do you know each particle orientation? How it should be the integration step to do so?

I did this like with usual rigid bodies, so each body stores orientation together with position. Angular velocity (or angular verlet displacement) needs to be integrated, and joints have given direction for both particles together with distance.

In contrast to rigid bodies i did not use nonuniform inertia but just the mass of the particle, so the prformance is better but still much worse than simple particles.

Before i decided to support orientation i tried some other things like plane constraints (particle can not cross the plane defined by 3 other particles), or tetrahedron constraints (4 particles keep that given shape and can not flip). But orientation ended up faster and more robust in the end for me. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!