aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2008-10-22 01:52:12 +0000
committerTeravus Ovares2008-10-22 01:52:12 +0000
commitdfc12d591c0a23a189826db482bb9215018a61ec (patch)
treea5fa2dfcf104ca3acb48d2df2b63c73e2c3f7428
parentPare the groups module down to basics. Adjust dependent files so that a (diff)
downloadopensim-SC-dfc12d591c0a23a189826db482bb9215018a61ec.zip
opensim-SC-dfc12d591c0a23a189826db482bb9215018a61ec.tar.gz
opensim-SC-dfc12d591c0a23a189826db482bb9215018a61ec.tar.bz2
opensim-SC-dfc12d591c0a23a189826db482bb9215018a61ec.tar.xz
* Add a config option for filtering collisions. Sometimes, under load, this seems to cause bouncing on really thin flat prim.
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs5
-rw-r--r--bin/OpenSim.ini.example5
2 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index 04d2ea9..a782e2d 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -195,6 +195,7 @@ namespace OpenSim.Region.Physics.OdePlugin
195 private float[] _heightmap; 195 private float[] _heightmap;
196 196
197 private float[] _watermap; 197 private float[] _watermap;
198 private bool m_filterCollisions = true;
198 199
199 // private float[] _origheightmap; 200 // private float[] _origheightmap;
200 201
@@ -360,6 +361,7 @@ namespace OpenSim.Region.Physics.OdePlugin
360 meshSculptedPrim = physicsconfig.GetBoolean("mesh_sculpted_prim", true); 361 meshSculptedPrim = physicsconfig.GetBoolean("mesh_sculpted_prim", true);
361 meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); 362 meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f);
362 MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); 363 MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f);
364 m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", true);
363 365
364 if (Environment.OSVersion.Platform == PlatformID.Unix) 366 if (Environment.OSVersion.Platform == PlatformID.Unix)
365 { 367 {
@@ -847,6 +849,9 @@ namespace OpenSim.Region.Physics.OdePlugin
847 { 849 {
848 bool result = false; 850 bool result = false;
849 //return result; 851 //return result;
852 if (!m_filterCollisions)
853 return false;
854
850 ActorTypes at = (ActorTypes)atype; 855 ActorTypes at = (ActorTypes)atype;
851 lock (_perloopContact) 856 lock (_perloopContact)
852 { 857 {
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 6315d28..f71fa65 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -240,6 +240,11 @@ small_hashspace_size_high = 66
240; surface layer around geometries other geometries can sink into before generating a contact 240; surface layer around geometries other geometries can sink into before generating a contact
241world_contact_surface_layer = 0.001 241world_contact_surface_layer = 0.001
242 242
243; Filtering Collisions helps keep things stable physics wise, but sometimes
244; it can be over zealous. If you notice bouncing, chances are it's being just
245; that
246filter_collisions = true
247
243; Non Moving Terrain Contact (avatar isn't moving) 248; Non Moving Terrain Contact (avatar isn't moving)
244nm_terraincontact_friction = 255.0 249nm_terraincontact_friction = 255.0
245nm_terraincontact_bounce = 0.1 250nm_terraincontact_bounce = 0.1