|
|
|
[
Permlink
| « Hide
]
Strife Onizuka added a comment - 05/Oct/07 08:41 PM
i can't replicate this, is this a Havok 4 only bug?
Strife: Most if not all physics bugs reported at this point will probably be Havok4 related, just that we don't have a tag specific to Havok4, and some people aren't tagging the issues as such.
The attached video shows the results of this script. ///////////////// listen(integer channel, string name, key id, string msg) { llSetTimerEvent(5.0); llSetBuoyancy(1.0); }timer() { llSetBuoyancy(0.0); }} llSetBuoyancy(10.0) in the Green cube, and (1.0) in the red cube. In Havok1, the Green cube would have rose with 10x the speed as the red cube. Passing to Andrew. Code is fixed internally but we need to figure out a sane limit value.
Anybody have opinions about what a sane limit for buoyancy should be? We must bound it by something, but I'm curious to hear what values of buoyancy are useful. At the moment I'm thinking about capping it to +/- 10 (that is, 10 gravities).
Arguments I've heard for allowing it to be very large are:
1) fast recovery after being "blitzed" to nearly infinite altitudes Some counter arguments to these examples are: 1) I think we've nerfed the blitzed avatar problem in Havok4 Anybody got other reasons to make the buoyancy limits larger than 10? I think 1000 is a good number. Or maybe 1024
I would personally like to make a gravity chamber which goes up to 400x.
IT would also be nice for making supper dense, dark matter style objects.
Could you possibly explain why there has to be a limit, andrew? MAX_FLOAT is not an option – there MUST be some limit because 9.8 * FLOAT_MAX = NaN and if you insert NaN into the physics engine you get a lot of other NaN's and a whole bunch of stuff starts to break. If you have a NaN's in the system you can get more NaN's – it can spread like a virus.
2 * NaN = NaN Eventually you'll start doing some logic on NaN's and things start to fail: (1 < NaN) == false The reason I like the idea of clamping the value to rather small values (~10, or ~1) is that whenever you have a mode that allows arbitrary amounts of energy pumped into the system then there is a danger of "instability". Instability is where the physics engine can oscillate into the relm of infinity or NaN. It isn't always obvious where the instability modes exist and low values of force/impulse/velocity greatly reduce the likelihood of instabilities – they are the safe path. A possible use for a larger maximum for buoyancy: using something small to lift something large.
This assumes that the force you get from a buoyant I'd imagine there would be other ways to achieve the same effect though. Andrew,
go to my inventory an grab yourself a copy of "Shield CrystSm v1.04". Sorry UUID's dont work on the beta grid for some reason. I'll pass you a copy on the beta grid too. It is an 18 sided shape that will shatter when the owner walks though it. It has a buoyancysetting of 1 to make the parts shatter and float as if in space. On havok1 it will break appart with a natural feel. each of the parts floating away in the direction they were bumped by the collisions with other parts. It is really is nice to watch. On havok4 all the parts immediatly fall to the ground as if they have no buoyancy at all. Several seconds later they mysteriously start to float up. It looks totaly wrong from a physical point of view on earth or space! Objects with a buoyancy of 1 should not be effected by graverty at all. Many skydiving platforms being used in SL use buoyancy to overcome gravery to lift themselves several thousand meters into the air. Adusting the buoyancy compensates for the number of passengers. Fast movment is a requirement of many teleporters and transportation gadgets in SL. Buoyancy has been extensivly used because it is able to apply a force against gravery that is far more predictable that other methods such as llApplyForce. Fixed publicly in Havok4 Beta – for news & updates on the Official Linden Blog, see: » http://blog.secondlife.com/?s=sidewinder%20havok |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||