aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRobert Adams2013-01-15 15:07:38 -0800
committerRobert Adams2013-01-15 21:08:46 -0800
commit5d098d8f17fe24d9ad2999ddce819787d02989ce (patch)
tree35f64a4781217e822b3793cfa0bec136d9894268
parentBulletSim: add debugging messages to know when assets for physical (diff)
downloadopensim-SC-5d098d8f17fe24d9ad2999ddce819787d02989ce.zip
opensim-SC-5d098d8f17fe24d9ad2999ddce819787d02989ce.tar.gz
opensim-SC-5d098d8f17fe24d9ad2999ddce819787d02989ce.tar.bz2
opensim-SC-5d098d8f17fe24d9ad2999ddce819787d02989ce.tar.xz
BulletSim: don't modify angular parameters when doing LIMIT_MOTOR_UP.
It was a dumb idea to try and do a nose over feature for jumping cars anyway. Add better logging of native shape creation/reuse so can tell the difference.
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs2
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs12
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs2
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs18
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt24
5 files changed, 30 insertions, 28 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
index 2e900b3..87a06c1 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
@@ -215,7 +215,7 @@ public sealed class BSCharacter : BSPhysObject
215 // Add special movement force to allow avatars to walk up stepped surfaces. 215 // Add special movement force to allow avatars to walk up stepped surfaces.
216 moveForce += WalkUpStairs(); 216 moveForce += WalkUpStairs();
217 217
218 DetailLog("{0},BSCharacter.MoveMotor,move,stepVel={1},vel={2},mass={3},moveForce={4}", LocalID, stepVelocity, _velocity, Mass, moveForce); 218 // DetailLog("{0},BSCharacter.MoveMotor,move,stepVel={1},vel={2},mass={3},moveForce={4}", LocalID, stepVelocity, _velocity, Mass, moveForce);
219 PhysicsScene.PE.ApplyCentralImpulse(PhysBody, moveForce); 219 PhysicsScene.PE.ApplyCentralImpulse(PhysBody, moveForce);
220 }); 220 });
221 } 221 }
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs b/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs
index e434412..6601479 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs
@@ -1160,8 +1160,10 @@ namespace OpenSim.Region.Physics.BulletSPlugin
1160 if (!Prim.IsColliding && VehicleVelocity.Z > 0.1) 1160 if (!Prim.IsColliding && VehicleVelocity.Z > 0.1)
1161 { 1161 {
1162 // Get rid of any of the velocity vector that is pushing us up. 1162 // Get rid of any of the velocity vector that is pushing us up.
1163 VehicleVelocity += new Vector3(0, 0, -VehicleVelocity.Z); 1163 float upVelocity = VehicleVelocity.Z;
1164 VehicleVelocity += new Vector3(0, 0, -upVelocity);
1164 1165
1166 /*
1165 // If we're pointed up into the air, we should nose down 1167 // If we're pointed up into the air, we should nose down
1166 Vector3 pointingDirection = Vector3.UnitX * VehicleOrientation; 1168 Vector3 pointingDirection = Vector3.UnitX * VehicleOrientation;
1167 // The rotation around the Y axis is pitch up or down 1169 // The rotation around the Y axis is pitch up or down
@@ -1175,11 +1177,9 @@ namespace OpenSim.Region.Physics.BulletSPlugin
1175 VDetailLog("{0}, MoveLinear,limitMotorUp,newVel={1},pntDir={2},corrFrc={3},aCorr={4}", 1177 VDetailLog("{0}, MoveLinear,limitMotorUp,newVel={1},pntDir={2},corrFrc={3},aCorr={4}",
1176 Prim.LocalID, VehicleVelocity, pointingDirection, angularCorrectionForce, angularCorrectionVector); 1178 Prim.LocalID, VehicleVelocity, pointingDirection, angularCorrectionForce, angularCorrectionVector);
1177 } 1179 }
1178 else 1180 */
1179 { 1181 VDetailLog("{0}, MoveLinear,limitMotorUp,collide={1},upVel={2},newVel={3}",
1180 VDetailLog("{0}, MoveLinear,limitMotorUp,newVel={1},pntDir={2}", 1182 Prim.LocalID, Prim.IsColliding, upVelocity, VehicleVelocity);
1181 Prim.LocalID, VehicleVelocity, pointingDirection);
1182 }
1183 } 1183 }
1184 } 1184 }
1185 } 1185 }
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs b/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs
index eff909c..8c9a774 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs
@@ -311,7 +311,7 @@ public sealed class BSLinksetCompound : BSLinkset
311 else 311 else
312 { 312 {
313 // Rebuild the compound shape with the child removed 313 // Rebuild the compound shape with the child removed
314 ScheduleRebuild(child); 314 ScheduleRebuild(LinksetRoot);
315 } 315 }
316 } 316 }
317 return; 317 return;
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs b/OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs
index 4f0d345..9fbfcdc 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs
@@ -442,7 +442,8 @@ public sealed class BSShapeCollection : IDisposable
442 return ret; 442 return ret;
443 } 443 }
444 444
445 // Create a mesh/hull shape or a native shape if 'nativeShapePossible' is 'true'. 445 // Create a mesh, hull or native shape.
446 // Return 'true' if the prim's shape was changed.
446 public bool CreateGeomNonSpecial(bool forceRebuild, BSPhysObject prim, ShapeDestructionCallback shapeCallback) 447 public bool CreateGeomNonSpecial(bool forceRebuild, BSPhysObject prim, ShapeDestructionCallback shapeCallback)
447 { 448 {
448 bool ret = false; 449 bool ret = false;
@@ -472,7 +473,7 @@ public sealed class BSShapeCollection : IDisposable
472 if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,maybeNative,force={1},primScale={2},primSize={3},primShape={4}", 473 if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,maybeNative,force={1},primScale={2},primSize={3},primShape={4}",
473 prim.LocalID, forceRebuild, prim.Scale, prim.Size, prim.PhysShape.type); 474 prim.LocalID, forceRebuild, prim.Scale, prim.Size, prim.PhysShape.type);
474 475
475 // It doesn't look like Bullet scales spheres so make sure the scales are all equal 476 // It doesn't look like Bullet scales native spheres so make sure the scales are all equal
476 if ((pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1) 477 if ((pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1)
477 && pbs.Scale.X == pbs.Scale.Y && pbs.Scale.Y == pbs.Scale.Z) 478 && pbs.Scale.X == pbs.Scale.Y && pbs.Scale.Y == pbs.Scale.Z)
478 { 479 {
@@ -484,9 +485,9 @@ public sealed class BSShapeCollection : IDisposable
484 { 485 {
485 ret = GetReferenceToNativeShape(prim, BSPhysicsShapeType.SHAPE_SPHERE, 486 ret = GetReferenceToNativeShape(prim, BSPhysicsShapeType.SHAPE_SPHERE,
486 FixedShapeKey.KEY_SPHERE, shapeCallback); 487 FixedShapeKey.KEY_SPHERE, shapeCallback);
487 if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,sphere,force={1},shape={2}",
488 prim.LocalID, forceRebuild, prim.PhysShape);
489 } 488 }
489 if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,sphere,force={1},rebuilt={2},shape={3}",
490 prim.LocalID, forceRebuild, ret, prim.PhysShape);
490 } 491 }
491 if (!haveShape && pbs.ProfileShape == ProfileShape.Square && pbs.PathCurve == (byte)Extrusion.Straight) 492 if (!haveShape && pbs.ProfileShape == ProfileShape.Square && pbs.PathCurve == (byte)Extrusion.Straight)
492 { 493 {
@@ -498,9 +499,9 @@ public sealed class BSShapeCollection : IDisposable
498 { 499 {
499 ret = GetReferenceToNativeShape( prim, BSPhysicsShapeType.SHAPE_BOX, 500 ret = GetReferenceToNativeShape( prim, BSPhysicsShapeType.SHAPE_BOX,
500 FixedShapeKey.KEY_BOX, shapeCallback); 501 FixedShapeKey.KEY_BOX, shapeCallback);
501 if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,box,force={1},shape={2}",
502 prim.LocalID, forceRebuild, prim.PhysShape);
503 } 502 }
503 if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,box,force={1},rebuilt={2},shape={3}",
504 prim.LocalID, forceRebuild, ret, prim.PhysShape);
504 } 505 }
505 } 506 }
506 507
@@ -513,7 +514,7 @@ public sealed class BSShapeCollection : IDisposable
513 return ret; 514 return ret;
514 } 515 }
515 516
516 // return 'true' if the shape was changed 517 // return 'true' if the prim's shape was changed.
517 public bool CreateGeomMeshOrHull(BSPhysObject prim, ShapeDestructionCallback shapeCallback) 518 public bool CreateGeomMeshOrHull(BSPhysObject prim, ShapeDestructionCallback shapeCallback)
518 { 519 {
519 520
@@ -921,8 +922,9 @@ public sealed class BSShapeCollection : IDisposable
921 } 922 }
922 } 923 }
923 924
924 // While we figure out the real problem, stick in a simple box for the object. 925 // While we wait for the mesh defining asset to be loaded, stick in a simple box for the object.
925 BulletShape fillinShape = BuildPhysicalNativeShape(prim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX); 926 BulletShape fillinShape = BuildPhysicalNativeShape(prim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX);
927 DetailLog("{0},BSShapeCollection.VerifyMeshCreated,boxTempShape", prim.LocalID);
926 928
927 return fillinShape; 929 return fillinShape;
928 } 930 }
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
index 067e64a..53b5530 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
+++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
@@ -1,18 +1,9 @@
1CURRENT PRIORITIES 1CURRENT PRIORITIES
2================================================= 2=================================================
3Crazyness during 20130115 office hours was PositionAdjustUnderground for both char and prim
4 m1:logs/20130115.0934/physics-BulletSim-20130115083613.log
5 Creation of Neb's terrain made the terrain "disappear". Everything started to fall
6 and then get restored to be above terrain.
7Create tests for different interface components
8 Have test objects/scripts measure themselves and turn color if correct/bad
9 Test functions in SL and calibrate correctness there
10 Create auto rezzer and tracker to run through the tests
11Mantis 6040 script http://opensimulator.org/mantis/view.php?id=6040 3Mantis 6040 script http://opensimulator.org/mantis/view.php?id=6040
12 Msg Kayaker on OSGrid when working 4 Msg Kayaker on OSGrid when working
13Teravus llMoveToTarget script debug 5Teravus llMoveToTarget script debug
14 Mixing of hover, buoyancy/gravity, moveToTarget, into one force 6 Mixing of hover, buoyancy/gravity, moveToTarget, into one force
15Surf board debugging
16Boats floating at proper level 7Boats floating at proper level
17Nebadon vehicles turning funny in arena 8Nebadon vehicles turning funny in arena
18limitMotorUp calibration (more down?) 9limitMotorUp calibration (more down?)
@@ -25,8 +16,6 @@ vehicle angular banking
25Avatars walking up stairs (HALF DONE) 16Avatars walking up stairs (HALF DONE)
26 Radius of the capsule affects ability to climb edges. 17 Radius of the capsule affects ability to climb edges.
27Vehicle movement on terrain smoothness 18Vehicle movement on terrain smoothness
28Surfboard go wonky when turning
29 Angular motor direction is global coordinates rather than local coordinates?
30Boats float low in the water (DONE) 19Boats float low in the water (DONE)
31Avatar movement 20Avatar movement
32 flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE) 21 flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE)
@@ -43,6 +32,10 @@ Add material densities to the material types
43 32
44CRASHES 33CRASHES
45================================================= 34=================================================
35Crazyness during 20130115 office hours was PositionAdjustUnderground for both char and prim
36 m1:logs/20130115.0934/physics-BulletSim-20130115083613.log
37 Creation of Neb's terrain made the terrain "disappear". Everything started to fall
38 and then get restored to be above terrain.
4620121129.1411: editting/moving phys object across region boundries causes crash 3920121129.1411: editting/moving phys object across region boundries causes crash
47 getPos-> btRigidBody::upcast -> getBodyType -> BOOM 40 getPos-> btRigidBody::upcast -> getBodyType -> BOOM
4820121128.1600: mesh object not rezzing (no physics mesh). 4120121128.1600: mesh object not rezzing (no physics mesh).
@@ -149,6 +142,10 @@ Eliminate collisions between objects in a linkset. (LinksetConstraint)
149 142
150MORE 143MORE
151====================================================== 144======================================================
145Create tests for different interface components
146 Have test objects/scripts measure themselves and turn color if correct/bad
147 Test functions in SL and calibrate correctness there
148 Create auto rezzer and tracker to run through the tests
152Use the HACD convex hull routine in Bullet rather than the C# version. 149Use the HACD convex hull routine in Bullet rather than the C# version.
153Do we need to do convex hulls all the time? Can complex meshes be left meshes? 150Do we need to do convex hulls all the time? Can complex meshes be left meshes?
154 There is some problem with meshes and collisions 151 There is some problem with meshes and collisions
@@ -304,4 +301,7 @@ Disable activity of passive linkset children. (DONE)
304 Since the linkset is a compound object, the old prims are left lying 301 Since the linkset is a compound object, the old prims are left lying
305 around and need to be phantomized so they don't collide, ... 302 around and need to be phantomized so they don't collide, ...
306Remove HeightmapInfo from terrain specification (DONE) 303Remove HeightmapInfo from terrain specification (DONE)
307 Since C++ code does not need terrain height, this structure et al are not needed. \ No newline at end of file 304 Since C++ code does not need terrain height, this structure et al are not needed.
305Surfboard go wonky when turning (DONE)
306 Angular motor direction is global coordinates rather than local coordinates?
307 (Resolution: made angular motor direction correct coordinate system) \ No newline at end of file