PDA

View Full Version : Bullet Dynamics-What is needed to enhance it?



prometheus
11-13-2014, 04:35 AM
was fiddling a little yesterday with bullet dynamics, and came across problems with advanced collisions, that is to have moving collision bodies that in themself are to be fractured in pieces, but they also need to move in exact path that
is changing during itīs course..like a spacecraft or aeroplane twisting and turning before either impacting with different items.

making it a parts body only is a little difficult to move around and donīt seem to behave correctly, you can not have it active from start,..well you could but there seem to be a lot of issues with it, and having it in sleeping mode dontīseem to work properly either, I also tested activate by key, and also releasing glue based on distance to object..neither is really good enough in my meaning.

The best control of the item to move it without it slowing down in the simulation process until impact point, would be to use kinematic object and parent a ship to it, this way that kinematic null will be easy to move around and design impact point exactly on other items, and the other collision point will behave nicely upon impact, the problem with this is that if my ship is fractured, the kinematic null will also impact that ship and destroy it before it hits the other object.

So a suggested feature would be to allow bullet to set groups so we can exclude the kinematic force/and other forces ..and not having it affect the very kinematic object it is parented to, I think results will be realistic enough since it will only be the kinematic object hitting a tower or some other object for instance and it will be a much faster simulation, so it is the kinematic object that breaks..but the ship object it carries will anyway affect the tower and the tower will affect the ship.

I know the old hard fx system can be set to use groups, I was a little surprised the lightwave team never managed to get that working with the new bullet engine in itīs first release nor in the lightwave updates.


Please folks...add your enhancement wants to this list. :)

Michael

pinkmouse
11-13-2014, 05:32 AM
Where to start... :)

Bullet needs the full set of constraints currently implemented.

Glue strength 0f 100% should be 100%, so nothing moves until it's altered.

Scale, it's very twitchy about the size of stuff. Is it beyond a dev's ken to calculate the bounding box of the simulated objects, then scale the calculations appropriately?

Mass, see above.

Groups, yes please.

Friction. If I set an object to have 0% friction, it should have 0% friction, and not drag other objects along with it.

Nodal control for everything.

Have Activation Regions, as well as time, imagine being able to set a falloff on a null, drag that across a scene, and only have objects within that falloff active.

Tied in with flocking, so flock objects avoid Bullet parts objects.

Soft body objects that can hold a deformed shape - a blast blows up the car and bends the doors and bodywork, objects bent stay bent once the initial blast is finished, and don't spring back to their initial shape.

Parts objects that can also have soft body simulation applied, see above.

I'm sure I have more, but they're the things that come to mind ATM.

tyrot
11-13-2014, 06:06 AM
gravity should be activated via a weight map .... that s what i can add to list. overall it is amazingly hard to combine things with T button..

pinkmouse
11-13-2014, 06:10 AM
gravity should be activated via a weight map .... that s what i can add to list. overall it is amazingly hard to combine things with T button..

That's what I mean by everything should be nodal, plug a weight map into a distance from item network, and even animate the rate of fall off over time. Easy if every option has an N button. ;)

Ryan Roye
11-13-2014, 06:12 AM
Making bullet not process every keyframe beyond frame 0, regardless of whether its "activate key" is set would be a big step forward. If you have a 1000 frame animation, and the bullet simulation only needs to start in the last 100 frames, Bullet in its current state still has to calculate the first 900 frames in order to provide you a simulated result, even if the object is not changing in any way.

Again this is one of the main reasons I picked up Syflex.

pinkmouse
11-13-2014, 06:18 AM
Eeh, nasty. Not noticed that one particularly, but can see how it would be a problem...

marchermitte
12-15-2014, 02:59 AM
Lots of great ideas here! I'll add Bullet should be able to collide with MDD animated mesh.

Emmanuel
12-15-2014, 09:59 AM
Thats all in LW2020. I have seen it, in my crystal ball.

marchermitte
12-16-2014, 08:53 AM
Frankly, MDD is native to lightwave and Modo did implement already collision detection with MDD driven files.

lino.grandi
12-16-2014, 01:47 PM
Frankly, MDD is native to lightwave and Modo did implement already collision detection with MDD driven files.

Collision with MDD driven deformations works fine in LightWave Bullet. You just need to make the deformed object a deformation body using the right settings.

Ryan Roye
12-16-2014, 02:22 PM
Collision with MDD driven deformations works fine in LightWave Bullet. You just need to make the deformed object a deformation body using the right settings.

I'm curious too; anyone here able to present a really simplified scene of an MDD-driven deforming body interacting/colliding with something? My experimentation using a lot of different settings haven't yielded any results.

Could it be possible that the MDD must be loaded in via a specific method? Example: There's like 3-5 different ways to get an MDD file playing on a file, should we be using a certain one for this purpose?

At this time the closest solution I can come up with is to use something like anchor to stick nulls to MDD-deformed objects to emulate collision behavior. For those who don't know what anchor is, it takes a UV map and lets you place an object onto the surface of another objects... typically it is used on "Atlas" UVs.

hrgiger
12-16-2014, 03:07 PM
I'd like to see a better volume preserving feature in softbodies like Houdini has. Amazing stuff.

machbeowulf
12-16-2014, 06:21 PM
I'm curious too; anyone here able to present a really simplified scene of an MDD-driven deforming body interacting/colliding with something? My experimentation using a lot of different settings haven't yielded any results.

Could it be possible that the MDD must be loaded in via a specific method? Example: There's like 3-5 different ways to get an MDD file playing on a file, should we be using a certain one for this purpose?

At this time the closest solution I can come up with is to use something like anchor to stick nulls to MDD-deformed objects to emulate collision behavior. For those who don't know what anchor is, it takes a UV map and lets you place an object onto the surface of another objects... typically it is used on "Atlas" UVs.

Just just got this to work first time - had tried in past but had put aside - I loaded the mdd object itself and used obj properties deform mdreader to load the mdd. In bullet i set the mdd object to deforming and trick seems to be to ensure 1. shape rentention is set to 100% and 2. shape lock is set to translation and rotation. Set the obstacle object to parts in bullet - and the mdd moves the obstacle whenever it comes into contact :) ... have no clue if it matters how you load the mdd - anyways hope this helps !!!

edit - sorry chazriker - also in bullet properties for the obstacle object have mass distribution set to Solid and mass specification set to 'Given Mass' - added a little extra bounce there .. but think rest is defaults

marchermitte
12-19-2014, 02:32 AM
It kind of work, collision isn't precise at all (even increasing the steps), I have a simple test scene with moving rectangle hitting a ball, ball interpenetrates the rectangles (even playing with the collision radius, I'd have to set it up to the sphere's radius to get a decent result). Plus It's more a workaround that a real feature, the steps to get there aren't really user friendly. So It doesn't work well and It's cumbersome to get It to work (badly). Not what I call a feature. It seems to me that the collision should work as It does with any kinematic object.