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.user_profiles
parent
61ff79587b
commit
5d098d8f17
|
@ -215,7 +215,7 @@ public sealed class BSCharacter : BSPhysObject
|
||||||
// Add special movement force to allow avatars to walk up stepped surfaces.
|
// Add special movement force to allow avatars to walk up stepped surfaces.
|
||||||
moveForce += WalkUpStairs();
|
moveForce += WalkUpStairs();
|
||||||
|
|
||||||
DetailLog("{0},BSCharacter.MoveMotor,move,stepVel={1},vel={2},mass={3},moveForce={4}", LocalID, stepVelocity, _velocity, Mass, moveForce);
|
// DetailLog("{0},BSCharacter.MoveMotor,move,stepVel={1},vel={2},mass={3},moveForce={4}", LocalID, stepVelocity, _velocity, Mass, moveForce);
|
||||||
PhysicsScene.PE.ApplyCentralImpulse(PhysBody, moveForce);
|
PhysicsScene.PE.ApplyCentralImpulse(PhysBody, moveForce);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1160,8 +1160,10 @@ namespace OpenSim.Region.Physics.BulletSPlugin
|
||||||
if (!Prim.IsColliding && VehicleVelocity.Z > 0.1)
|
if (!Prim.IsColliding && VehicleVelocity.Z > 0.1)
|
||||||
{
|
{
|
||||||
// Get rid of any of the velocity vector that is pushing us up.
|
// Get rid of any of the velocity vector that is pushing us up.
|
||||||
VehicleVelocity += new Vector3(0, 0, -VehicleVelocity.Z);
|
float upVelocity = VehicleVelocity.Z;
|
||||||
|
VehicleVelocity += new Vector3(0, 0, -upVelocity);
|
||||||
|
|
||||||
|
/*
|
||||||
// If we're pointed up into the air, we should nose down
|
// If we're pointed up into the air, we should nose down
|
||||||
Vector3 pointingDirection = Vector3.UnitX * VehicleOrientation;
|
Vector3 pointingDirection = Vector3.UnitX * VehicleOrientation;
|
||||||
// The rotation around the Y axis is pitch up or down
|
// The rotation around the Y axis is pitch up or down
|
||||||
|
@ -1175,11 +1177,9 @@ namespace OpenSim.Region.Physics.BulletSPlugin
|
||||||
VDetailLog("{0}, MoveLinear,limitMotorUp,newVel={1},pntDir={2},corrFrc={3},aCorr={4}",
|
VDetailLog("{0}, MoveLinear,limitMotorUp,newVel={1},pntDir={2},corrFrc={3},aCorr={4}",
|
||||||
Prim.LocalID, VehicleVelocity, pointingDirection, angularCorrectionForce, angularCorrectionVector);
|
Prim.LocalID, VehicleVelocity, pointingDirection, angularCorrectionForce, angularCorrectionVector);
|
||||||
}
|
}
|
||||||
else
|
*/
|
||||||
{
|
VDetailLog("{0}, MoveLinear,limitMotorUp,collide={1},upVel={2},newVel={3}",
|
||||||
VDetailLog("{0}, MoveLinear,limitMotorUp,newVel={1},pntDir={2}",
|
Prim.LocalID, Prim.IsColliding, upVelocity, VehicleVelocity);
|
||||||
Prim.LocalID, VehicleVelocity, pointingDirection);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -311,7 +311,7 @@ public sealed class BSLinksetCompound : BSLinkset
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Rebuild the compound shape with the child removed
|
// Rebuild the compound shape with the child removed
|
||||||
ScheduleRebuild(child);
|
ScheduleRebuild(LinksetRoot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -442,7 +442,8 @@ public sealed class BSShapeCollection : IDisposable
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a mesh/hull shape or a native shape if 'nativeShapePossible' is 'true'.
|
// Create a mesh, hull or native shape.
|
||||||
|
// Return 'true' if the prim's shape was changed.
|
||||||
public bool CreateGeomNonSpecial(bool forceRebuild, BSPhysObject prim, ShapeDestructionCallback shapeCallback)
|
public bool CreateGeomNonSpecial(bool forceRebuild, BSPhysObject prim, ShapeDestructionCallback shapeCallback)
|
||||||
{
|
{
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
@ -472,7 +473,7 @@ public sealed class BSShapeCollection : IDisposable
|
||||||
if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,maybeNative,force={1},primScale={2},primSize={3},primShape={4}",
|
if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,maybeNative,force={1},primScale={2},primSize={3},primShape={4}",
|
||||||
prim.LocalID, forceRebuild, prim.Scale, prim.Size, prim.PhysShape.type);
|
prim.LocalID, forceRebuild, prim.Scale, prim.Size, prim.PhysShape.type);
|
||||||
|
|
||||||
// It doesn't look like Bullet scales spheres so make sure the scales are all equal
|
// It doesn't look like Bullet scales native spheres so make sure the scales are all equal
|
||||||
if ((pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1)
|
if ((pbs.ProfileShape == ProfileShape.HalfCircle && pbs.PathCurve == (byte)Extrusion.Curve1)
|
||||||
&& pbs.Scale.X == pbs.Scale.Y && pbs.Scale.Y == pbs.Scale.Z)
|
&& pbs.Scale.X == pbs.Scale.Y && pbs.Scale.Y == pbs.Scale.Z)
|
||||||
{
|
{
|
||||||
|
@ -484,9 +485,9 @@ public sealed class BSShapeCollection : IDisposable
|
||||||
{
|
{
|
||||||
ret = GetReferenceToNativeShape(prim, BSPhysicsShapeType.SHAPE_SPHERE,
|
ret = GetReferenceToNativeShape(prim, BSPhysicsShapeType.SHAPE_SPHERE,
|
||||||
FixedShapeKey.KEY_SPHERE, shapeCallback);
|
FixedShapeKey.KEY_SPHERE, shapeCallback);
|
||||||
if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,sphere,force={1},shape={2}",
|
|
||||||
prim.LocalID, forceRebuild, prim.PhysShape);
|
|
||||||
}
|
}
|
||||||
|
if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,sphere,force={1},rebuilt={2},shape={3}",
|
||||||
|
prim.LocalID, forceRebuild, ret, prim.PhysShape);
|
||||||
}
|
}
|
||||||
if (!haveShape && pbs.ProfileShape == ProfileShape.Square && pbs.PathCurve == (byte)Extrusion.Straight)
|
if (!haveShape && pbs.ProfileShape == ProfileShape.Square && pbs.PathCurve == (byte)Extrusion.Straight)
|
||||||
{
|
{
|
||||||
|
@ -498,9 +499,9 @@ public sealed class BSShapeCollection : IDisposable
|
||||||
{
|
{
|
||||||
ret = GetReferenceToNativeShape( prim, BSPhysicsShapeType.SHAPE_BOX,
|
ret = GetReferenceToNativeShape( prim, BSPhysicsShapeType.SHAPE_BOX,
|
||||||
FixedShapeKey.KEY_BOX, shapeCallback);
|
FixedShapeKey.KEY_BOX, shapeCallback);
|
||||||
if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,box,force={1},shape={2}",
|
|
||||||
prim.LocalID, forceRebuild, prim.PhysShape);
|
|
||||||
}
|
}
|
||||||
|
if (DDetail) DetailLog("{0},BSShapeCollection.CreateGeom,box,force={1},rebuilt={2},shape={3}",
|
||||||
|
prim.LocalID, forceRebuild, ret, prim.PhysShape);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -513,7 +514,7 @@ public sealed class BSShapeCollection : IDisposable
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// return 'true' if the shape was changed
|
// return 'true' if the prim's shape was changed.
|
||||||
public bool CreateGeomMeshOrHull(BSPhysObject prim, ShapeDestructionCallback shapeCallback)
|
public bool CreateGeomMeshOrHull(BSPhysObject prim, ShapeDestructionCallback shapeCallback)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -921,8 +922,9 @@ public sealed class BSShapeCollection : IDisposable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// While we figure out the real problem, stick in a simple box for the object.
|
// While we wait for the mesh defining asset to be loaded, stick in a simple box for the object.
|
||||||
BulletShape fillinShape = BuildPhysicalNativeShape(prim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX);
|
BulletShape fillinShape = BuildPhysicalNativeShape(prim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX);
|
||||||
|
DetailLog("{0},BSShapeCollection.VerifyMeshCreated,boxTempShape", prim.LocalID);
|
||||||
|
|
||||||
return fillinShape;
|
return fillinShape;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,9 @@
|
||||||
CURRENT PRIORITIES
|
CURRENT PRIORITIES
|
||||||
=================================================
|
=================================================
|
||||||
Crazyness during 20130115 office hours was PositionAdjustUnderground for both char and prim
|
|
||||||
m1:logs/20130115.0934/physics-BulletSim-20130115083613.log
|
|
||||||
Creation of Neb's terrain made the terrain "disappear". Everything started to fall
|
|
||||||
and then get restored to be above terrain.
|
|
||||||
Create tests for different interface components
|
|
||||||
Have test objects/scripts measure themselves and turn color if correct/bad
|
|
||||||
Test functions in SL and calibrate correctness there
|
|
||||||
Create auto rezzer and tracker to run through the tests
|
|
||||||
Mantis 6040 script http://opensimulator.org/mantis/view.php?id=6040
|
Mantis 6040 script http://opensimulator.org/mantis/view.php?id=6040
|
||||||
Msg Kayaker on OSGrid when working
|
Msg Kayaker on OSGrid when working
|
||||||
Teravus llMoveToTarget script debug
|
Teravus llMoveToTarget script debug
|
||||||
Mixing of hover, buoyancy/gravity, moveToTarget, into one force
|
Mixing of hover, buoyancy/gravity, moveToTarget, into one force
|
||||||
Surf board debugging
|
|
||||||
Boats floating at proper level
|
Boats floating at proper level
|
||||||
Nebadon vehicles turning funny in arena
|
Nebadon vehicles turning funny in arena
|
||||||
limitMotorUp calibration (more down?)
|
limitMotorUp calibration (more down?)
|
||||||
|
@ -25,8 +16,6 @@ vehicle angular banking
|
||||||
Avatars walking up stairs (HALF DONE)
|
Avatars walking up stairs (HALF DONE)
|
||||||
Radius of the capsule affects ability to climb edges.
|
Radius of the capsule affects ability to climb edges.
|
||||||
Vehicle movement on terrain smoothness
|
Vehicle movement on terrain smoothness
|
||||||
Surfboard go wonky when turning
|
|
||||||
Angular motor direction is global coordinates rather than local coordinates?
|
|
||||||
Boats float low in the water (DONE)
|
Boats float low in the water (DONE)
|
||||||
Avatar movement
|
Avatar movement
|
||||||
flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE)
|
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
|
||||||
|
|
||||||
CRASHES
|
CRASHES
|
||||||
=================================================
|
=================================================
|
||||||
|
Crazyness during 20130115 office hours was PositionAdjustUnderground for both char and prim
|
||||||
|
m1:logs/20130115.0934/physics-BulletSim-20130115083613.log
|
||||||
|
Creation of Neb's terrain made the terrain "disappear". Everything started to fall
|
||||||
|
and then get restored to be above terrain.
|
||||||
20121129.1411: editting/moving phys object across region boundries causes crash
|
20121129.1411: editting/moving phys object across region boundries causes crash
|
||||||
getPos-> btRigidBody::upcast -> getBodyType -> BOOM
|
getPos-> btRigidBody::upcast -> getBodyType -> BOOM
|
||||||
20121128.1600: mesh object not rezzing (no physics mesh).
|
20121128.1600: mesh object not rezzing (no physics mesh).
|
||||||
|
@ -149,6 +142,10 @@ Eliminate collisions between objects in a linkset. (LinksetConstraint)
|
||||||
|
|
||||||
MORE
|
MORE
|
||||||
======================================================
|
======================================================
|
||||||
|
Create tests for different interface components
|
||||||
|
Have test objects/scripts measure themselves and turn color if correct/bad
|
||||||
|
Test functions in SL and calibrate correctness there
|
||||||
|
Create auto rezzer and tracker to run through the tests
|
||||||
Use the HACD convex hull routine in Bullet rather than the C# version.
|
Use the HACD convex hull routine in Bullet rather than the C# version.
|
||||||
Do we need to do convex hulls all the time? Can complex meshes be left meshes?
|
Do we need to do convex hulls all the time? Can complex meshes be left meshes?
|
||||||
There is some problem with meshes and collisions
|
There is some problem with meshes and collisions
|
||||||
|
@ -305,3 +302,6 @@ Disable activity of passive linkset children. (DONE)
|
||||||
around and need to be phantomized so they don't collide, ...
|
around and need to be phantomized so they don't collide, ...
|
||||||
Remove HeightmapInfo from terrain specification (DONE)
|
Remove HeightmapInfo from terrain specification (DONE)
|
||||||
Since C++ code does not need terrain height, this structure et al are not needed.
|
Since C++ code does not need terrain height, this structure et al are not needed.
|
||||||
|
Surfboard go wonky when turning (DONE)
|
||||||
|
Angular motor direction is global coordinates rather than local coordinates?
|
||||||
|
(Resolution: made angular motor direction correct coordinate system)
|
Loading…
Reference in New Issue