Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

This is a kinda tricky question and I fear there is no easy enough solution, but I figured I'd hit SE up before giving up on it and just doing what I can.

A machine I am working on has no suspension or shocks or springs of any sort in the real machine, so you would think that when it drives over bumps, it would shake like crazy but because its tires (6 of them) are quite large they seem to absorb a lot of shock from the bumps. Part of this is because the machine is around 30k lbs and it just smashes/compresses any bumps in the ground down (This is another issue im still working on) and the other part is that the tires seem to have a lot of flex to them with a lot of air as well.

So my current task is to simulate shock absorption in physx without visibly separating the tires from the spindle/axle..

I have been messing with all kinds of NxMaterial, NxSpring, Joints, etc. and have had no luck getting this to work. The main problem is that the spindle attached to the tire is directly in the center and the axle is basically solidly attached to the chassis, so if i give it any spring or suspension travel, that spindle on the tires will move upwards or downwards, looking very odd because now its not any longer in the center of the tire. I tried giving it a higher restitution but that just makes it bouncy without any shock absorption.

Another avenue I am messing with is to actively smooth the terrain in front of the tires so that before it hits a bumpy patch, that patch is smoothed and it doesn't bounce. The only issue with this is that it is pretty expensive to do with 6 tires, high tessellation of the terrain and other complex things going on at the same time in this simulation. I am still working on this but I am hoping to mix and match a few different aspects to get the best possible outcome.

This is a bit of a complex issue so I'm not expecting anyone to have a definitive answer, just hoping someone may think of something I haven't =-)

-Side note: Yes i know PhysX 2.8.x is quite outdated but we have to stick with it for this implementation. We are in the process of going to another physics engine but it is out of scope to apply that engine to this project.

share|improve this question
    
I don't have a definitive answer but I think you should fake a lot more. What you see on screen doesn't have to be what happened in the simulation step exactly. Maybe just some visual smoothing will help. –  Roy T. Oct 23 '12 at 15:50
    
unfortunately I have no idea how to use PhysX, but maybe you can add a limited mesh deformation? Based on the weight of your machine you could set a "bend clamp" for your tire vertices. When you go over a bump, the vertices are bent inward until they reach the bend clamp, if enough space to accommodation the bump is created then the shock is absorbed otherwise you generate a shock based on the uncovered part of the bump. (hopefully this was clear) basically you are just bending the tire around the bump based on the weight of your machine (and possibly the air pressure in the tire.) –  Benjamin Danger Johnson Oct 23 '12 at 16:17

1 Answer 1

up vote 2 down vote accepted

It may be that you are treating the wheel as being soft as a whole instead of just making the tire soft. This would lead to the center of the tire going away from the axle.

Make the hub of the wheel a solid shape and try surrounding it in springs. Weld one end of each spring to the hub of the wheel. Align the spring with the surface normal of the hub. At the other end, join it to it's neighbour spring via a spring for each neighbour.

I found the perfect image to illustrate what I mean, although you would obviously be using spring joints to hold up a body: A tire of springs

You may want several rows of springs running around the hub and you might want to try different configurations of joining them to each other with springs.

Here is an alternative way you could organize springs to make the tire, but in your simulation you would need to join several spring joints together to simulate an actual spring to spread across the tire: enter image description here

You could do something similar when laying out the springs. You could try adding a little extra support by placing a spring under some of the "joining nodes" and hopefully you could find a configuration that looks good enough for the performance requirement.

Another alternative is to make a soft body deforming torus but I'm not sure if physx has soft body support. If it doesn't it could get tricky. But it does come down to applying an outward force (aligned to the vertex's normal) relative to the difference in volume between the shape it started as and what it is currently. Keep in mind that pulling it would make the difference negative and so it would pull the points inwards.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.