Ryu Makkuro wrote:
codemonkey wrote:After a lot of experimentation, testing and coordination with the PhysX team at NVidia, we've been making some significant forward moves with the vehicle collision responses..
Does all this coordination with PhysX team mean that the basic form of PhysX for the vehicles that nVidia provides will be improved? As in if someone will decide to use PhysX for physics, would they benefit from the improvements you did so far on it?
I always forgot to ask about this when I'm checking the forum while it keeps bothering me all the time I'm not xD
Not really. Most of our vehicle code is bespoke and outside of PhysX - we don't use the vehicle rigging offered by PhysX / UE as it just wasn't up to the job of handling GRIP / Rollcage style vehicles. In fact all of our vehicle dynamics code is custom-written.
The work we're doing with Nvidia is related to collision detection / response, establishing how to achieve what we want with the features PhysX already has. Take CCD for example. We wanted to use this on the entire vehicle for its collision with the world, but that brought with it many problems and often destroyed handling. It turns out what you need is something like a small sphere at the centre of the vehicle with CCD enabled that is just used to stop the vehicle falling out of the world and nothing more - the normal collision shape is still present and still performing the normal world collision / response but without CCD enabled. This is Nvidia's best advice on how to marry the best aspects of continuous and discrete collision detection. Unfortunately, this wasn't possible with UE however, as its interface to PhysX is a bit broken in this regard. It's not really designed very well for multiple collision shapes per physics object. So in the end, we had to rewrite some of the UE engine code to allow for our CCD sphere and stopping the vehicles from falling out of the world. That's a pretty long story for such a small feature.
Much of our work with PhysX has been like this though - trying to find the right balance of things within PhysX to produce the desired behaviour, and then twisting and bending UE to make it possible.
Luckily, I'm talking mostly to a guy at Nvidia who previously worked on Blur, so he knows his stuff when it comes to physics and when it comes to racing. Mostly he's just helping us with the technical details under the hood with PhysX, but it's great that he has an understanding of what we're talking about when it comes to vehicle behaviour too - it breeds a lot of confidence.