Commit Graph

225 Commits

Author SHA1 Message Date
Teravus Ovares
21d4423030 * Allow passing of material type to physics engine
* Define low friction and medium bounce for Glass
2009-04-20 03:07:53 +00:00
Dahlia Trimble
5f1fa0d3d7 Added a "force_simple_prim_meshing" option to the ODE settings in OpenSim.ini which will use meshes for collisions with simple prim shapes rather than internal ODE algorithms. This may help with Mantis #2905 and Mantis #3487 for those experimenting with capsule settings.
Note that this will increase memory usage and region startup time.
2009-04-19 01:21:38 +00:00
Dr Scofield
aecb4fb72a From: Alan M Webb <alan_webb@us.ibm.com>
Add sanity check to fly-height calculation so that it does
  not attempt to retrieve information from non-existent
  regions.
2009-03-31 12:45:34 +00:00
Teravus Ovares
6522b4f5d4 * Fixing thread safety of avatar adding and removing from the Physics Scene in the ODEPlugin
* This may help one of the symptoms or mantis 3363 , however it probably won't solve the occasional NonFinite Avatar Position detected..  issues that some people see.    That is probably an entirely different issue(NaN).
2009-03-30 14:10:24 +00:00
Justin Clarke Casey
acad0328b2 * Make all coded defaults match settings in OpenSim.ini.example
* In most cases, the setting in OpenSim.ini.example is taken as the canonical one since this is the file virtually everyone ends up using
* OpenSim will start up with a blank OpenSim.ini, in which case sqlite is the default database (as before)
2009-03-11 18:02:22 +00:00
idb
93a697b24d Correct a typo, purely cosmetic.
FixesMantis #3263
2009-03-07 14:39:42 +00:00
Teravus Ovares
5a49c772ca * Making the minimum ground offset for flying a configurable offset in the OpenSim.ini. This is the code that causes you to rise off the ground when you press the fly button and attempts to keep you above ground automatically when flying in a simulator.
* minimum_ground_flight_offset, by default is 3 meters, as per Kitto Flora  See OpenSim.ini.example for an example.
2009-03-07 07:17:43 +00:00
Teravus Ovares
6c7151109b * fixes mantis 3259
* I'm concerned however that the 'minimum fly height' should really be implemented in ScenePresence and not in the specific physics plugin so that all of the physics plugins can take advantage of it and if desired, a person could swap out the 'minimum fly height' functionality with other functionality.
2009-03-07 06:51:27 +00:00
Teravus Ovares
3a93bb992f * Added some limits to the maximum force applied per second by llMoveToTarget. Currently, it's 350 times the mass in newtons applied per second, maximum. 2009-03-07 00:27:56 +00:00
Charles Krinke
b637a11b58 Fixes Mantis #3260. Thank you kindly, MCortez for a patch that:
llSetHoverHeight() should not clamp the x/y position of an object the way MoveTo does, 
and it should recalculate the absolute height to hover at as an object moves to reflect 
the current ground/water height under it.
Correctly implementing required adjusting the Physics interfaces and implementing at 
the physics plug-in level. The attached is a patch that correctly implements 
llSetHoverHeight() including updates to the ODE physics plug-in.
2009-03-06 23:01:35 +00:00
Charles Krinke
8f55b9d735 Mantis#3218. Thank you kindly, TLaukkan (Tommil) for a patch that:
* Added log4net dependency to physxplugin in prebuild.xml.
* Added missing m_log fields to classes.
* Replaced Console.WriteLine with appropriate m_log.Xxxx
* Tested that nant test target runs succesfully.
* Tested that local opensim sandbox starts up without errors.
2009-02-22 20:52:55 +00:00
diva
3d5a9e6748 This started as way to correct Mantis #3158, which I believe should be fixed now. The flying status was temporarily being ignored, which caused the avie to drop sometimes -- there was a race condition. In the process it also fixes that annoying bug in basic physics where the avie would drop half-way to the ground upon region crossings (SetAppearance was missing). Additionally, a lot of child-agent-related code has been cleaned up; namely child agents are now consistently not added to physical scenes, and they also don't have appearances. All of that happens in MakeRoot, consistently. 2009-02-15 05:00:58 +00:00
Jeff Ames
95d53d48d4 Add copyright headers. Minor formatting cleanup. Fix some compiler warnings. Fix some m_log declarations. 2009-02-13 02:06:28 +00:00
Dahlia Trimble
d21601d497 Thanks Kitto Flora for a patch that adds automatic min fly height to ODE - Mantis #3134 2009-02-12 07:58:10 +00:00
Teravus Ovares
c0c330988f * Some minor cleanup
* sealed OdeScene
2009-02-08 17:41:15 +00:00
Teravus Ovares
26ca3e26bf Reverts patch from tuco/mikkopa/sempuki mantis #3072 2009-02-08 17:25:02 +00:00
Teravus Ovares
b60931b686 * Limit the total number of joints created per frame to the maximum possible without causing a stack collision.
* This fixes crashing on large sets of physical prims because of stack collisions (assuming you follow the directions on linux for starting ode with ulimit).   After the maximum joints are created, objects will start to fall through the ground and be disabled.   Not the best solution, but it's better then a crash caused by a stack collision with the process exceeding the maximum available memory/recursions per thread.
* Make a clean region, make a stack of 5000 prim, 20 layers high.  Make them physical, *SLOW*, but no crash.
2009-02-08 03:02:43 +00:00
Teravus Ovares
08a9a85376 * Fixes colliding with the terrain lower then 0 and higher then 256m
* The actual AABB of the heightfield on the Z is now determined by the minimum and maximum heightfield value in the terrain array (assuming it's a reasonable number).  This might optimize collisions in simulators that have a small difference between minimum and maximum heightfield values.
2009-02-08 01:05:09 +00:00
Mike Mazur
949ae6136e Change access levels from private to protected to facilitate
subclassing; also add new method signatures. Thanks tuco and mikkopa.
Fix Mantis #3072.
2009-02-03 08:31:08 +00:00
Teravus Ovares
85c0c0557e * Tweaks some locks when modifying an ODECharacter. This actually allows a user to log-in while the physics scene and the scripts are starting up. This also seems to smooth out the jerks on teleport/connect/disconnect a little bit.
* If you log-in while the simulator is starting up, you won't be able to move and the sim stats will say 0 FPS, and 0 Physics Frames and you may see only terrain.  Once the sim finishes starting up, it'll all resume as normal.
2009-01-31 16:49:32 +00:00
nlin
bfdf2479fb Improve parsing of joint parameters for NINJA physics (Mantis #2966).
Multiple spaces or leading/trailing spaces when specifying the prims 
to connect should no longer cause problems.
2009-01-14 04:59:57 +00:00
Homer Horwitz
a72d3522ff Slight optimisation: Don't check for duplication if we won't use the result anyway. 2008-12-31 20:09:17 +00:00
Jeff Ames
2be0f7a6f0 Update svn properties, minor formatting cleanup. 2008-12-30 01:08:07 +00:00
Teravus Ovares
ec2dc354b4 * Applying Nlin's NINJA Joint patch. v2. Mantis# 2874
* Thanks nlin!
* To try it out, set ninja joints active in the ODEPhysicsSettings
and use the example at:
* http://forge.opensimulator.org/gf/download/frsrelease/142/304/demo-playground.tgz.
* Don't forget to change the .tgz to .oar and load it with load-oar.
2008-12-26 12:58:02 +00:00
Charles Krinke
62dd67b8b8 Mantis#2796. Thank you kindly, Gerhard for a patch that addresses:
On a call of llVolumeDetect(1) (or any other number !=0) volume 
detection is enabled. Together with VD, the phantom flag is set to the GUI.
On a call of llVolumeDetect(0), vd detection is switched of again, 
also the phantom state is removed. On a call to llSetState(STATE_PHANTOM, 
false) while VD is active, also VD is switched off. The same is true for 
unchecking the phantom flag via GUI. This allows to take back VD without 
the need to script just by removing the phantom flag.
Things missing in this patch: persistance of the volume-detection flag. 
This needs more discussion and will be included in another patch soon.
2008-12-20 21:36:42 +00:00
Dahlia Trimble
2537a4098a Enabled complex meshing for simple box prims with non-zero shear 2008-12-18 17:53:38 +00:00
Justin Clarke Casey
3b0db66b92 * Apply http://opensimulator.org/mantis/view.php?id=2775 with small tweaks
* This pushes an identifier for the OpenSim scene to the physics scene.  This allows log messages from the physics scene to identify which OpenSim scene they relate to.
* Thanks Gerhard
2008-12-15 18:39:54 +00:00
Teravus Ovares
7f80eff067 * Committing a slightly distilled version of nlin's ODECharacter race condition eliminator.
* The modifications that I made were only so that it didn't require changes to the public physics api.
2008-12-10 23:46:20 +00:00
Teravus Ovares
3844e73d27 * Gerhard's patch m2781. Does some initial work for setting up llVolumeDetect.
* Warning! Physics API change. This means that the NBodySimulation needs to be updated!
* PhysicsActor -> void SetVolumeDetect(int) needs to go into classes that use PhysicsActor as their base class.
2008-12-09 11:11:16 +00:00
Teravus Ovares
e61dacb928 * Adds some rudimentary error handling to the physics debug drawstuff tool. 2008-12-08 07:19:26 +00:00
Teravus Ovares
76e1462dff * Tweaks physics so that linked prim are a single body. This will make linked prim more stable and probably the last obstacle to vehicles physics wise.
* Fixed a bug that caused physics proxies to be scattered when you link an object.
* Single physical prim work exactly the same as before, just linked physical prim will have changed.
2008-12-07 04:03:09 +00:00
Justin Clarke Casey
b4db3a550a * Apply http://opensimulator.org/mantis/view.php?id=2750 with a small tweak.
* Initializes ODE only when a scene is grabbed rather than on plugin load.  This means we don't initialize ode if that physics engine is not used, and it allows other ode use 
plugins to be used instead.
2008-12-04 20:29:34 +00:00
Melanie Thielker
6f0e068cf1 Guard against a strange nullref in ODE 2008-11-19 20:04:41 +00:00
Charles Krinke
087d2f9147 Enabled SoftERP for the contact structure but not SoftCFM.
A tube on a pole is a bit less "flubbery" so maybe this is
the right direction.
2008-11-09 20:20:20 +00:00
Charles Krinke
c6ed72b4fa Clean up a few comments. 2008-11-09 18:43:46 +00:00
Charles Krinke
9299be0080 Revert last checkin. Avatars fall through non-physical prims now.
There is more to the solution then just enabling soft_erp and 
soft_cfm for all d.Contact cases.
2008-11-01 17:58:34 +00:00
Charles Krinke
1e376deedd Added soft_cfm and soft_erp to the general "contact" initialization
for physical prim interactions. They were not previously enabled
for prim-prim interactions.
2008-11-01 17:30:06 +00:00
Teravus Ovares
dfc12d591c * Add a config option for filtering collisions. Sometimes, under load, this seems to cause bouncing on really thin flat prim. 2008-10-22 01:52:12 +00:00
Teravus Ovares
11fd935038 * Changed the dupe collision depth limiter to be slightly more restrictive. (less chance for a dupe) 2008-10-18 16:20:02 +00:00
Teravus Ovares
0916b38b83 * Fix an over compensation for bounciness on flat Primitive
* Implement the linear impulse portion of llPushObject.  We should have a lsl compatible implementation of that portion of the push.  Angular..   well.  still have yet to implement a torque accumulator.
* llPushObject respects the region and parcel settings for Restrict Push, it also respects GodMode as is defined in the LSL spec.
2008-10-17 23:19:00 +00:00
Teravus Ovares
a6df2011f7 * Adds a lot of stability and performance to the physics engine. The avatar bounces less and things are a bit less explosive.
* Additionally, you can probably get more physical prim now together..  though, I think this puts us back on par with where we were in the beginning of the year on number of physical objects.   Experiment.  Make videos.  Send Feedback.  Enjoy.
2008-10-17 05:09:23 +00:00
Justin Clarke Casey
82b7374ed2 * minor: get rid of pointless ipeSender 2008-10-16 19:50:12 +00:00
Teravus Ovares
68d85497ad * Releases the inter-region thread synchronization between physics in ODE on the same instance.
* If you are hosting many regions on a single instance, you will probably notice a decrease in region startup time and maybe a slight increase in performance.
* Single regions won't notice anything different
2008-10-16 12:57:29 +00:00
Teravus Ovares
180e3de50f * Cleaned up tons of code duplication in ODEPrim
* Re-enabled the native ODE prim types when possible
* Fixed several invalid assumptions in the prim recycle process.
* Added better message for 'reused a disposed physicsactor'
* Added a way to recover from errors during collision_optimized
* Added a way to recover from an error condition where prim_geom wasn't reset properly
2008-10-14 02:48:30 +00:00
Teravus Ovares
f344f26bd8 * Based on user reports, it looks like the OS specific settings have been unified as far as tuning (thank heavens).
* If you're experiencing knee bendiness try the windows settings, as the *nix settings seem to now be incorrect.  (this update does that, but you may have your own opensim.ini settings active.
2008-10-13 01:54:13 +00:00
Teravus Ovares
2ede1a3ce7 * This updates ODE to the most up-to-date version as of today. 1558
* Mac users, pray to chi11ken to make you a .dylib version
* This is semi-tuned and post teravus hack.   (Though I didn't apply the terrain pitting fix hack.   I'm still deciding if it's necessary as there was a lot of work over the past several months on the heightfield collider.
* Please use '--enable-shared --disable-demos --disable-asserts' if you are building your own libode in the configure step.   Asserts are pretty much useless for use with .NET
* This also updates ODE.NET as, there were some API changes in May that were just added to ODE.NET today.
2008-10-12 23:47:39 +00:00
Dahlia Trimble
232aa783ad Disabled use of ODE internal geometry to see if it affects the "waves finger" error 2008-09-22 02:33:48 +00:00
Dahlia Trimble
52af9b3fd7 ODE was using a box collision shape for some spheres - changed those cases to now use a mesh instead. 2008-09-21 08:12:52 +00:00
Dahlia Trimble
e6afb28355 re-enabled some ODE internal proxies for some simple prim types to try to save some more memory 2008-09-19 09:13:27 +00:00
Justin Clarke Casey
8ff1bc5b03 * Make the ode simulation update loop print out the stack if an exception occurs (at least, this is what will happen on linux) 2008-09-18 18:54:42 +00:00