* Add a config option for filtering collisions. Sometimes, under load, this seems to cause bouncing on really thin flat prim.

0.6.0-stable
Teravus Ovares 2008-10-22 01:52:12 +00:00
parent f44742f75f
commit dfc12d591c
2 changed files with 10 additions and 0 deletions

View File

@ -195,6 +195,7 @@ namespace OpenSim.Region.Physics.OdePlugin
private float[] _heightmap; private float[] _heightmap;
private float[] _watermap; private float[] _watermap;
private bool m_filterCollisions = true;
// private float[] _origheightmap; // private float[] _origheightmap;
@ -360,6 +361,7 @@ namespace OpenSim.Region.Physics.OdePlugin
meshSculptedPrim = physicsconfig.GetBoolean("mesh_sculpted_prim", true); meshSculptedPrim = physicsconfig.GetBoolean("mesh_sculpted_prim", true);
meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f);
MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f);
m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", true);
if (Environment.OSVersion.Platform == PlatformID.Unix) if (Environment.OSVersion.Platform == PlatformID.Unix)
{ {
@ -847,6 +849,9 @@ namespace OpenSim.Region.Physics.OdePlugin
{ {
bool result = false; bool result = false;
//return result; //return result;
if (!m_filterCollisions)
return false;
ActorTypes at = (ActorTypes)atype; ActorTypes at = (ActorTypes)atype;
lock (_perloopContact) lock (_perloopContact)
{ {

View File

@ -240,6 +240,11 @@ small_hashspace_size_high = 66
; surface layer around geometries other geometries can sink into before generating a contact ; surface layer around geometries other geometries can sink into before generating a contact
world_contact_surface_layer = 0.001 world_contact_surface_layer = 0.001
; Filtering Collisions helps keep things stable physics wise, but sometimes
; it can be over zealous. If you notice bouncing, chances are it's being just
; that
filter_collisions = true
; Non Moving Terrain Contact (avatar isn't moving) ; Non Moving Terrain Contact (avatar isn't moving)
nm_terraincontact_friction = 255.0 nm_terraincontact_friction = 255.0
nm_terraincontact_bounce = 0.1 nm_terraincontact_bounce = 0.1