BulletSim: add debugging messages to know when assets for physical

objects have been fetched.
Update TODO list with more work.
user_profiles
Robert Adams 2013-01-15 12:57:12 -08:00
parent daef2b8d87
commit 61ff79587b
4 changed files with 51 additions and 17 deletions

View File

@ -855,7 +855,10 @@ public sealed class BSCharacter : BSPhysObject
_rotationalVelocity = entprop.RotationalVelocity; _rotationalVelocity = entprop.RotationalVelocity;
// Do some sanity checking for the avatar. Make sure it's above ground and inbounds. // Do some sanity checking for the avatar. Make sure it's above ground and inbounds.
PositionSanityCheck(true); if (PositionSanityCheck(true))
{
entprop.Position = _position;
}
// remember the current and last set values // remember the current and last set values
LastEntityProperties = CurrentEntityProperties; LastEntityProperties = CurrentEntityProperties;

View File

@ -108,8 +108,8 @@ public sealed class BSLinksetCompound : BSLinkset
// Schedule a refresh to happen after all the other taint processing. // Schedule a refresh to happen after all the other taint processing.
private void ScheduleRebuild(BSPhysObject requestor) private void ScheduleRebuild(BSPhysObject requestor)
{ {
DetailLog("{0},BSLinksetCompound.ScheduleRebuild,,rebuilding={1},hasChildren={2}", DetailLog("{0},BSLinksetCompound.ScheduleRebuild,,rebuilding={1},hasChildren={2},actuallyScheduling={3}",
requestor.LocalID, Rebuilding, HasAnyChildren); requestor.LocalID, Rebuilding, HasAnyChildren, (!Rebuilding && HasAnyChildren));
// When rebuilding, it is possible to set properties that would normally require a rebuild. // When rebuilding, it is possible to set properties that would normally require a rebuild.
// If already rebuilding, don't request another rebuild. // If already rebuilding, don't request another rebuild.
// If a linkset with just a root prim (simple non-linked prim) don't bother rebuilding. // If a linkset with just a root prim (simple non-linked prim) don't bother rebuilding.

View File

@ -513,6 +513,7 @@ public sealed class BSShapeCollection : IDisposable
return ret; return ret;
} }
// return 'true' if the shape was changed
public bool CreateGeomMeshOrHull(BSPhysObject prim, ShapeDestructionCallback shapeCallback) public bool CreateGeomMeshOrHull(BSPhysObject prim, ShapeDestructionCallback shapeCallback)
{ {
@ -872,8 +873,7 @@ public sealed class BSShapeCollection : IDisposable
{ {
prim.LastAssetBuildFailed = true; prim.LastAssetBuildFailed = true;
BSPhysObject xprim = prim; BSPhysObject xprim = prim;
DetailLog("{0},BSShapeCollection.VerifyMeshCreated,fetchAsset,lID={1},lastFailed={2}", DetailLog("{0},BSShapeCollection.VerifyMeshCreated,fetchAsset,lastFailed={1}", prim.LocalID, prim.LastAssetBuildFailed);
LogHeader, prim.LocalID, prim.LastAssetBuildFailed);
Util.FireAndForget(delegate Util.FireAndForget(delegate
{ {
RequestAssetDelegate assetProvider = PhysicsScene.RequestAssetMethod; RequestAssetDelegate assetProvider = PhysicsScene.RequestAssetMethod;
@ -882,19 +882,34 @@ public sealed class BSShapeCollection : IDisposable
BSPhysObject yprim = xprim; // probably not necessary, but, just in case. BSPhysObject yprim = xprim; // probably not necessary, but, just in case.
assetProvider(yprim.BaseShape.SculptTexture, delegate(AssetBase asset) assetProvider(yprim.BaseShape.SculptTexture, delegate(AssetBase asset)
{ {
if (!yprim.BaseShape.SculptEntry) bool assetFound = false; // DEBUG DEBUG
return; string mismatchIDs = String.Empty; // DEBUG DEBUG
if (yprim.BaseShape.SculptTexture.ToString() != asset.ID) if (yprim.BaseShape.SculptEntry)
return; {
if (yprim.BaseShape.SculptTexture.ToString() == asset.ID)
yprim.BaseShape.SculptData = asset.Data; {
// This will cause the prim to see that the filler shape is not the right yprim.BaseShape.SculptData = asset.Data;
// one and try again to build the object. // This will cause the prim to see that the filler shape is not the right
// No race condition with the normal shape setting since the rebuild is at taint time. // one and try again to build the object.
yprim.ForceBodyShapeRebuild(false); // No race condition with the normal shape setting since the rebuild is at taint time.
yprim.ForceBodyShapeRebuild(false /* inTaintTime */);
assetFound = true;
}
else
{
mismatchIDs = yprim.BaseShape.SculptTexture.ToString() + "/" + asset.ID;
}
}
DetailLog("{0},BSShapeCollection,fetchAssetCallback,found={1},isSculpt={2},ids={3}",
yprim.LocalID, assetFound, yprim.BaseShape.SculptEntry, mismatchIDs );
}); });
} }
else
{
PhysicsScene.Logger.ErrorFormat("{0} Physical object requires asset but no asset provider. Name={1}",
LogHeader, PhysicsScene.Name);
}
}); });
} }
else else
@ -907,8 +922,7 @@ public sealed class BSShapeCollection : IDisposable
} }
// While we figure out the real problem, stick in a simple box for the object. // While we figure out the real problem, stick in a simple box for the object.
BulletShape fillinShape = BulletShape fillinShape = BuildPhysicalNativeShape(prim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX);
BuildPhysicalNativeShape(prim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX);
return fillinShape; return fillinShape;
} }

View File

@ -1,7 +1,23 @@
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
Msg Kayaker on OSGrid when working
Teravus llMoveToTarget script debug
Mixing of hover, buoyancy/gravity, moveToTarget, into one force
Surf board debugging
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?)
llRotLookAt
llLookAt
Vehicle angular vertical attraction Vehicle angular vertical attraction
Vehicle angular deflection Vehicle angular deflection
Preferred orientation angular correction fix Preferred orientation angular correction fix
@ -167,6 +183,7 @@ Enforce physical parameter min/max:
Restitution [0, 1] Restitution [0, 1]
http://wiki.secondlife.com/wiki/Physics_Material_Settings_test http://wiki.secondlife.com/wiki/Physics_Material_Settings_test
Avatar attachments have no mass? http://forums-archive.secondlife.com/54/f0/31796/1.html Avatar attachments have no mass? http://forums-archive.secondlife.com/54/f0/31796/1.html
Keep avatar scaling correct. http://pennycow.blogspot.fr/2011/07/matter-of-scale.html
INTERNAL IMPROVEMENT/CLEANUP INTERNAL IMPROVEMENT/CLEANUP
================================================= =================================================