[Bf-committers] Softbody revisited :)

Tom M letterrip at gmail.com
Thu Mar 31 16:08:58 CEST 2005

> It will depend on speed of course,

Actually 'jerk' (change in accelleration) is probably going to be most
critical.  Think of how your body sways going a constant speed of 120
km/h on a straight away, or a smooth accelleration to 100 km/h, now
think of cornering hard at 40 km, or going over a rough road.  The
first has high speed and no jerk so a few time steps can accurately
represent the motion.  The second has low speed to high speed and low
jerk (at the start of the accelleration then constant accelleration
through most of the time step and at the end a deccelleration), the
third has low speed and high jerk, and the fourth also has low speed,
and frequent jerk.

So, my suggestion is to either do adaptive time steps based on the
jerk curve, or flash a warning when the time step chosen are likely to
give poor results.  (Perhaps highlight the curve there.)

> Maybe larger time steps should also fully reset the softbody system...
> needs to be checked on if a "not refresh" is useful. For me the "not
> refresh" means just don't call the simulator, and signal the softbody
> to be "OK" for that new time.

Perhaps a 'freeze' or 'bake' frame would be preferable.

> *proposed:
>         - On frame steps back, Softbody resets completely.

Personally I'd like to have the data baked out each simulation so if
part of the result is good I can keep it, and not accidentally wipe a
simulation.  Also, if I like the simulation, I don't want to have to
recalculate it each time simply because I wanted to re watch it. 
Personally I'd prefer a way to explicitly toggle recording of the
simulation on and off, and of clearing out data from old simulations.

>         - On exit editmode, reset completely
>         - While transform Softbody in object mode, do simulation steps, but
> reset at end
>         - And of course a button in the Panel causing a reset
>  >  ... hum on resetting .. there's still the question : what's the
> correct state
> A "Reset" is just setting all speed vectors to zero, and put the
> body-point locations on desired "goal" for the current frame. Isn't
> that sufficient?

It is quite possible that the individual might want an initial
velocity or accelleration (I think this is generally called prerolling
in other simulation packages), so probably a toggle of (initial
conditions are 0 OR initial conditions are user defined).


More information about the Bf-committers mailing list