From dc0497c1b831b3bb8fe021d48520bbff7305ce2e Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sun, 2 Dec 2012 20:08:11 -0800 Subject: BulletSim: begin tracking a TODO list. There just are so many things to remember to do. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100755 OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt new file mode 100755 index 0000000..cf112fb --- /dev/null +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -0,0 +1,112 @@ +CRASHES +================================================= +20121129.1411: editting/moving phys object across region boundries causes crash + getPos-> btRigidBody::upcast -> getBodyType -> BOOM +20121128.1600: mesh object not rezzing (no physics mesh). + Causes many errors. Doesn't stop after first error with box shape. + Eventually crashes when deleting the object. + +BULLETSIM TODO LIST: +================================================= +Neb car jiggling left and right +Vehicles (Move smoothly) +Light cycle falling over when driving +Light cycle not banking +Do single prim vehicles don't seem to properly vehiclize. +Gun sending shooter flying +Collision margin (gap between physical objects lying on each other) +Boundry checking (crashes related to crossing boundry) + Add check for border edge position for avatars and objects. + Verify the events are created for border crossings. +Avatar rotation (check out changes to ScenePresence for physical rotation) +Avatar running (what does phys engine need to do?) +Small physical objects do not interact correctly + Create chain of .5x.5x.1 torui and make all but top physical so to hang. + The chain will fall apart and pairs will dance around on ground + Chains of 1x1x.2 will stay connected but will dance. + Chains above 2x2x.4 are move stable and get stablier as torui get larger. +Add material type linkage and input all the material property definitions. + Skeleton classes and table are in the sources but are not filled or used. + +After getting off a vehicle, the root prim is phantom (can be walked through) + Need to force a position update for the root prim after compound shape destruction +Find/remove avatar collision with ID=0. +Test avatar walking up stairs. How does compare with SL. + Radius of the capsule affects ability to climb edges. +Tune terrain/object friction to be closer to SL. +Debounce avatar contact so legs don't keep folding up when standing. +Implement LSL physics controls. Like STATUS_ROTATE_X. +Add border extensions to terrain to help region crossings and objects leaving region. +Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) + +Speed up creation of large physical linksets + For instance, sitting in Neb's car (130 prims) takes several seconds to become physical +Performance test with lots of avatars. Can BulletSim support a thousand? +Optimize collisions in C++: only send up to the object subscribed to collisions. + Use collision subscription and remove the collsion(A,B) and collision(B,A) +Check wheter SimMotionState needs large if statement (see TODO). + +Implement 'top colliders' info. +Avatar jump +Implement meshes or just verify that they work. +Do prim hash codes work for sculpties and meshes? +Performance measurement and changes to make quicker. +Implement detailed physics stats (GetStats()). + +Eliminate collisions between objects in a linkset. (LinksetConstraint) + Have UserPointer point to struct with localID and linksetID? + Objects in original linkset still collide with each other? + +Measure performance improvement from hulls +Test not using ghost objects for volume detect implementation. +Performance of closures and delegates for taint processing + Are there faster ways? + Is any slowdown introduced by the existing implementation significant? +Is there are more efficient method of implementing pre and post step actions? + See http://www.codeproject.com/Articles/29922/Weak-Events-in-C + +Package Bullet source mods for Bullet internal stats output + +Physics Arena central pyramid: why is one side permiable? + +INTERNAL IMPROVEMENT/CLEANUP +================================================= +Remove unused fields from ShapeData (not used in API2) +Breakout code for mesh/hull/compound/native into separate BSShape* classes + Standardize access to building and reference code. + The skeleton classes are in the sources but are not complete or linked in. +Generalize Dynamics and PID with standardized motors. +Generalize Linkset and vehicles into PropertyManagers + Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies + Possibly generalized a 'per step action' registration. +Implement linkset by setting position of children when root updated. (LinksetManual) +LinkablePrim class? Would that simplify/centralize the linkset logic? +Linkset implementation using manual prim movement. +Linkset implementation using compound shapes. + Compound shapes will need the LocalID in the shapes and collision + processing to get it from there. +BSScene.UpdateParameterSet() is broken. How to set params on objects? +Remove HeightmapInfo from terrain specification. + Since C++ code does not need terrain height, this structure et al are not needed. +Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will + bob at the water level. BSPrim.PositionSanityCheck(). + +DONE DONE DONE DONE +================================================= +Cleanup code in BSDynamics by using motors. +Consider implementing terrain with a mesh rather than heightmap. + Would have better and adjustable resolution. +NOTDONE: Build terrain mesh so heighmap is height of the center of the square meter. + SL and ODE define meter square as being at one corner with one diagional. +Terrain as mesh. +How are static linksets seen by the physics engine? + A: they are not linked in physics. When moved, all the children are repositioned. +Remember to remove BSScene.DetailLog Refresh call. +Convert BSCharacter to use all API2 +Avatar pushing difficult (too heavy?) +Use asset service passed to BulletSim to get sculptie bodies, etc. +Vehicles (fix bouncing on terrain) +Remove old code in DLL (all non-API2 stuff). +Measurements of mega-physical prim performance (with graph) +Debug Bullet internal stats output (why is timing all wrong?) + Bullet stats logging only works with a single instance of Bullet (one region). \ No newline at end of file -- cgit v1.1 From 2586bab2dde141c4d01c81c54291394ba07b1ee7 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sun, 2 Dec 2012 20:45:46 -0800 Subject: BulletSim: add stubs for generalization of preStep actions. Will eventually replace the specialized vehicle processing with preStep event processing. Add TODO comments about this feature. Redo line endings in TODO file to be all Linux. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index cf112fb..ca71313 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -27,6 +27,7 @@ Small physical objects do not interact correctly Chains above 2x2x.4 are move stable and get stablier as torui get larger. Add material type linkage and input all the material property definitions. Skeleton classes and table are in the sources but are not filled or used. +Add PID motor for avatar movement (slow to stop, ...) After getting off a vehicle, the root prim is phantom (can be walked through) Need to force a position update for the root prim after compound shape destruction @@ -78,7 +79,10 @@ Breakout code for mesh/hull/compound/native into separate BSShape* classes Generalize Dynamics and PID with standardized motors. Generalize Linkset and vehicles into PropertyManagers Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies - Possibly generalized a 'per step action' registration. + Possibly generalized a 'pre step action' registration. +Complete implemention of preStepActions + Replace vehicle step call with prestep event. + Is there a need for postStepActions? postStepTaints? Implement linkset by setting position of children when root updated. (LinksetManual) LinkablePrim class? Would that simplify/centralize the linkset logic? Linkset implementation using manual prim movement. -- cgit v1.1 From 41f1c5b7f712ed9c093ce421b39460c7711aece4 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sun, 2 Dec 2012 23:39:17 -0800 Subject: BulletSim: rework angular corrections to remove any hybrid code and compute absolute collections. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index ca71313..68f25fc 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -28,6 +28,7 @@ Small physical objects do not interact correctly Add material type linkage and input all the material property definitions. Skeleton classes and table are in the sources but are not filled or used. Add PID motor for avatar movement (slow to stop, ...) +Implement function efficiency for lineaar and angular motion. After getting off a vehicle, the root prim is phantom (can be walked through) Need to force a position update for the root prim after compound shape destruction -- cgit v1.1 From edd1b353a5b683b7d9b22e80d97e15e05f34611c Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 6 Dec 2012 09:23:20 -0800 Subject: BulletSim: update and add to the TODO list. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 87 ++++++++++++++-------- 1 file changed, 56 insertions(+), 31 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 68f25fc..d51003c 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -6,14 +6,34 @@ CRASHES Causes many errors. Doesn't stop after first error with box shape. Eventually crashes when deleting the object. -BULLETSIM TODO LIST: +VEHICLES TODO LIST: ================================================= Neb car jiggling left and right + Happens on terrain and any other mesh object. Flat cubes are much smoother. Vehicles (Move smoothly) -Light cycle falling over when driving -Light cycle not banking -Do single prim vehicles don't seem to properly vehiclize. -Gun sending shooter flying +Add vehicle collisions so IsColliding is properly reported. + Needed for banking, limitMotorUp, movementLimiting, ... +Some vehicles should not be able to turn if no speed or off ground. +For limitMotorUp, use raycast down to find if vehicle is in the air. +Implement function efficiency for lineaar and angular motion. +Should vehicle angular/linear movement friction happen after all the components + or does it only apply to the basic movement? +After getting off a vehicle, the root prim is phantom (can be walked through) + Need to force a position update for the root prim after compound shape destruction +Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) +Implement referenceFrame for all the motion routines. +Cannot edit/move a vehicle being ridden: it jumps back to the origional position. + +BULLETSIM TODO LIST: +================================================= +Disable activity of passive linkset children. + Since the linkset is a compound object, the old prims are left lying + around and need to be phantomized so they don't collide, ... +Scenes with hundred of thousands of static objects take a lot of physics CPU time. +BSPrim.Force should set a continious force on the prim. The force should be + applied each tick. Some limits? +Single prim vehicles don't seem to properly vehiclize. +Gun sending shooter flying. Collision margin (gap between physical objects lying on each other) Boundry checking (crashes related to crossing boundry) Add check for border edge position for avatars and objects. @@ -28,10 +48,11 @@ Small physical objects do not interact correctly Add material type linkage and input all the material property definitions. Skeleton classes and table are in the sources but are not filled or used. Add PID motor for avatar movement (slow to stop, ...) -Implement function efficiency for lineaar and angular motion. +setForce should set a constant force. Different than AddImpulse. +Implement raycast. +Implement ShapeCollection.Dispose() +Implement water as a plain so raycasting and collisions can happen with same. -After getting off a vehicle, the root prim is phantom (can be walked through) - Need to force a position update for the root prim after compound shape destruction Find/remove avatar collision with ID=0. Test avatar walking up stairs. How does compare with SL. Radius of the capsule affects ability to climb edges. @@ -39,19 +60,16 @@ Tune terrain/object friction to be closer to SL. Debounce avatar contact so legs don't keep folding up when standing. Implement LSL physics controls. Like STATUS_ROTATE_X. Add border extensions to terrain to help region crossings and objects leaving region. -Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) Speed up creation of large physical linksets For instance, sitting in Neb's car (130 prims) takes several seconds to become physical Performance test with lots of avatars. Can BulletSim support a thousand? Optimize collisions in C++: only send up to the object subscribed to collisions. Use collision subscription and remove the collsion(A,B) and collision(B,A) -Check wheter SimMotionState needs large if statement (see TODO). +Check whether SimMotionState needs large if statement (see TODO). Implement 'top colliders' info. Avatar jump -Implement meshes or just verify that they work. -Do prim hash codes work for sculpties and meshes? Performance measurement and changes to make quicker. Implement detailed physics stats (GetStats()). @@ -67,8 +85,6 @@ Performance of closures and delegates for taint processing Is there are more efficient method of implementing pre and post step actions? See http://www.codeproject.com/Articles/29922/Weak-Events-in-C -Package Bullet source mods for Bullet internal stats output - Physics Arena central pyramid: why is one side permiable? INTERNAL IMPROVEMENT/CLEANUP @@ -85,33 +101,42 @@ Complete implemention of preStepActions Replace vehicle step call with prestep event. Is there a need for postStepActions? postStepTaints? Implement linkset by setting position of children when root updated. (LinksetManual) + Linkset implementation using manual prim movement. LinkablePrim class? Would that simplify/centralize the linkset logic? -Linkset implementation using manual prim movement. -Linkset implementation using compound shapes. - Compound shapes will need the LocalID in the shapes and collision - processing to get it from there. BSScene.UpdateParameterSet() is broken. How to set params on objects? Remove HeightmapInfo from terrain specification. Since C++ code does not need terrain height, this structure et al are not needed. Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will bob at the water level. BSPrim.PositionSanityCheck(). +THREADING +================================================= +Do taint action immediately if not actually executing Bullet. + Add lock around Bullet execution and just do taint actions if simulation is not happening. + DONE DONE DONE DONE ================================================= -Cleanup code in BSDynamics by using motors. -Consider implementing terrain with a mesh rather than heightmap. +Cleanup code in BSDynamics by using motors. (Resolution: started) +Consider implementing terrain with a mesh rather than heightmap. (Resolution: done) Would have better and adjustable resolution. -NOTDONE: Build terrain mesh so heighmap is height of the center of the square meter. - SL and ODE define meter square as being at one corner with one diagional. -Terrain as mesh. +Build terrain mesh so heighmap is height of the center of the square meter. + Resolution: NOT DONE: SL and ODE define meter square as being at one corner with one diagional. +Terrain as mesh. (Resolution: done) How are static linksets seen by the physics engine? - A: they are not linked in physics. When moved, all the children are repositioned. -Remember to remove BSScene.DetailLog Refresh call. -Convert BSCharacter to use all API2 + Resolution: they are not linked in physics. When moved, all the children are repositioned. +Convert BSCharacter to use all API2 (Resolution: done) Avatar pushing difficult (too heavy?) -Use asset service passed to BulletSim to get sculptie bodies, etc. -Vehicles (fix bouncing on terrain) -Remove old code in DLL (all non-API2 stuff). -Measurements of mega-physical prim performance (with graph) +Use asset service passed to BulletSim to get sculptie bodies, etc. (Resolution: done) +Remove old code in DLL (all non-API2 stuff). (Resolution: done) +Measurements of mega-physical prim performance (with graph) (Resolution: done, email) Debug Bullet internal stats output (why is timing all wrong?) - Bullet stats logging only works with a single instance of Bullet (one region). \ No newline at end of file + Resolution: Bullet stats logging only works with a single instance of Bullet (one region). +Implement meshes or just verify that they work. (Resolution: they do!) +Do prim hash codes work for sculpties and meshes? (Resolution: yes) +Linkset implementation using compound shapes. (Resolution: implemented LinksetCompound) + Compound shapes will need the LocalID in the shapes and collision + processing to get it from there. +Light cycle falling over when driving (Resolution: implemented VerticalAttractor) +Light cycle not banking (Resolution: It doesn't. Banking is roll adding yaw.) +Package Bullet source mods for Bullet internal stats output + (Resolution: move code into WorldData.h rather than relying on patches) \ No newline at end of file -- cgit v1.1 From addb791f3df481560d36cbeea6824bfe48d0d971 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 6 Dec 2012 13:00:52 -0800 Subject: BulletSim: update comments and add more to TODO list. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index d51003c..a2161c3 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -5,6 +5,9 @@ CRASHES 20121128.1600: mesh object not rezzing (no physics mesh). Causes many errors. Doesn't stop after first error with box shape. Eventually crashes when deleting the object. +20121206.1434: rez Sam-pan into OSGrid BulletSim11 region + Immediate simulator crash. Mono does not output any stacktrace and + log just stops after reporting taint-time linking of the linkset. VEHICLES TODO LIST: ================================================= @@ -23,9 +26,12 @@ After getting off a vehicle, the root prim is phantom (can be walked through) Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) Implement referenceFrame for all the motion routines. Cannot edit/move a vehicle being ridden: it jumps back to the origional position. +Border crossing with linked vehicle causes crash BULLETSIM TODO LIST: ================================================= +Duplicating a physical prim causes old prim to jump away + Dup a phys prim and the original become unselected and thus interacts w/ selected prim. Disable activity of passive linkset children. Since the linkset is a compound object, the old prims are left lying around and need to be phantomized so they don't collide, ... @@ -96,7 +102,7 @@ Breakout code for mesh/hull/compound/native into separate BSShape* classes Generalize Dynamics and PID with standardized motors. Generalize Linkset and vehicles into PropertyManagers Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies - Possibly generalized a 'pre step action' registration. + Potentially add events for shape destruction, etc. Complete implemention of preStepActions Replace vehicle step call with prestep event. Is there a need for postStepActions? postStepTaints? -- cgit v1.1 From 8b861e880ad128edc0267b8e2d5931cfc8a142bc Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 11 Dec 2012 00:13:13 -0800 Subject: BulletSim: add ini file and command line parameters to control dumping of physical vehicle parameters (out of Bullet) on each simulation step and to optionally scale vehicle angular velocity by the time step. The latter looks to be part of a difference between angular parameters for ODE and BulletSim. SL docs say angular velocity is measured in radians/timeScale. Not sure if this is different than what ODE does. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index a2161c3..4b6e9a4 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -38,7 +38,8 @@ Disable activity of passive linkset children. Scenes with hundred of thousands of static objects take a lot of physics CPU time. BSPrim.Force should set a continious force on the prim. The force should be applied each tick. Some limits? -Single prim vehicles don't seem to properly vehiclize. +Linksets should allow collisions to individual children + Add LocalID to children shapes in LinksetCompound and create events for individuals Gun sending shooter flying. Collision margin (gap between physical objects lying on each other) Boundry checking (crashes related to crossing boundry) @@ -145,4 +146,6 @@ Linkset implementation using compound shapes. (Resolution: implemented LinksetCo Light cycle falling over when driving (Resolution: implemented VerticalAttractor) Light cycle not banking (Resolution: It doesn't. Banking is roll adding yaw.) Package Bullet source mods for Bullet internal stats output - (Resolution: move code into WorldData.h rather than relying on patches) \ No newline at end of file + (Resolution: move code into WorldData.h rather than relying on patches) +Single prim vehicles don't seem to properly vehiclize. + (Resolution: mass was not getting set properly for single prim linksets) -- cgit v1.1 From 63099184dbd2c1c5bcee2c3c87802f78444e7008 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 11 Dec 2012 13:42:23 -0800 Subject: BulletSim: protect prim property setting to remove crash from taints setting properties after the destroy object taint has happened. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 4b6e9a4..1c7b577 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -11,12 +11,14 @@ CRASHES VEHICLES TODO LIST: ================================================= -Neb car jiggling left and right - Happens on terrain and any other mesh object. Flat cubes are much smoother. +Neb vehicle taking > 25ms of physics time!! Vehicles (Move smoothly) Add vehicle collisions so IsColliding is properly reported. Needed for banking, limitMotorUp, movementLimiting, ... Some vehicles should not be able to turn if no speed or off ground. +Neb car jiggling left and right + Happens on terrain and any other mesh object. Flat cubes are much smoother. + This has been reduced but not eliminated. For limitMotorUp, use raycast down to find if vehicle is in the air. Implement function efficiency for lineaar and angular motion. Should vehicle angular/linear movement friction happen after all the components @@ -30,6 +32,9 @@ Border crossing with linked vehicle causes crash BULLETSIM TODO LIST: ================================================= +Avatar height off after unsitting (float off ground) + Editting appearance then moving restores. + Must not be initializing height when recreating capsule after unsit. Duplicating a physical prim causes old prim to jump away Dup a phys prim and the original become unselected and thus interacts w/ selected prim. Disable activity of passive linkset children. -- cgit v1.1 From 7bb5613dc665a788e1b151278c20d415f708242a Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 11 Dec 2012 16:46:43 -0800 Subject: BulletSim: updates and rearrangement of the TODO list. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 47 +++++++++++++++------- 1 file changed, 33 insertions(+), 14 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 1c7b577..11c1387 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -20,6 +20,10 @@ Neb car jiggling left and right Happens on terrain and any other mesh object. Flat cubes are much smoother. This has been reduced but not eliminated. For limitMotorUp, use raycast down to find if vehicle is in the air. +Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. + Verify that angular motion specified around Z moves in the vehicle coordinates. +Verify llGetVel() is returning a smooth and good value for vehicle movement. +llGetVel() should return the root's velocity if requested in a child prim. Implement function efficiency for lineaar and angular motion. Should vehicle angular/linear movement friction happen after all the components or does it only apply to the basic movement? @@ -32,19 +36,14 @@ Border crossing with linked vehicle causes crash BULLETSIM TODO LIST: ================================================= -Avatar height off after unsitting (float off ground) +Avatar height off after unsitting (floats off ground) Editting appearance then moving restores. Must not be initializing height when recreating capsule after unsit. Duplicating a physical prim causes old prim to jump away Dup a phys prim and the original become unselected and thus interacts w/ selected prim. -Disable activity of passive linkset children. - Since the linkset is a compound object, the old prims are left lying - around and need to be phantomized so they don't collide, ... Scenes with hundred of thousands of static objects take a lot of physics CPU time. BSPrim.Force should set a continious force on the prim. The force should be applied each tick. Some limits? -Linksets should allow collisions to individual children - Add LocalID to children shapes in LinksetCompound and create events for individuals Gun sending shooter flying. Collision margin (gap between physical objects lying on each other) Boundry checking (crashes related to crossing boundry) @@ -57,14 +56,34 @@ Small physical objects do not interact correctly The chain will fall apart and pairs will dance around on ground Chains of 1x1x.2 will stay connected but will dance. Chains above 2x2x.4 are move stable and get stablier as torui get larger. -Add material type linkage and input all the material property definitions. - Skeleton classes and table are in the sources but are not filled or used. Add PID motor for avatar movement (slow to stop, ...) setForce should set a constant force. Different than AddImpulse. Implement raycast. Implement ShapeCollection.Dispose() Implement water as a plain so raycasting and collisions can happen with same. +Add osGetPhysicsEngineName() so scripters can tell whether BulletSim or ODE + Also osGetPhysicsEngineVerion() maybe. + +LINKSETS +====================================================== +Linksets should allow collisions to individual children + Add LocalID to children shapes in LinksetCompound and create events for individuals +Verify/think through scripts in children of linksets. What do they reference + and return when getting position, velocity, ... +Confirm constraint linksets still work after making all the changes for compound linksets. +Add 'changed' flag or similar to reduce the number of times a linkset is rebuilt. + For compound linksets, add ability to remove or reposition individual child shapes. +Disable activity of passive linkset children. + Since the linkset is a compound object, the old prims are left lying + around and need to be phantomized so they don't collide, ... +Speed up creation of large physical linksets + For instance, sitting in Neb's car (130 prims) takes several seconds to become physical +Eliminate collisions between objects in a linkset. (LinksetConstraint) + Have UserPointer point to struct with localID and linksetID? + Objects in original linkset still collide with each other? +MORE +====================================================== Find/remove avatar collision with ID=0. Test avatar walking up stairs. How does compare with SL. Radius of the capsule affects ability to climb edges. @@ -73,8 +92,6 @@ Debounce avatar contact so legs don't keep folding up when standing. Implement LSL physics controls. Like STATUS_ROTATE_X. Add border extensions to terrain to help region crossings and objects leaving region. -Speed up creation of large physical linksets - For instance, sitting in Neb's car (130 prims) takes several seconds to become physical Performance test with lots of avatars. Can BulletSim support a thousand? Optimize collisions in C++: only send up to the object subscribed to collisions. Use collision subscription and remove the collsion(A,B) and collision(B,A) @@ -85,10 +102,6 @@ Avatar jump Performance measurement and changes to make quicker. Implement detailed physics stats (GetStats()). -Eliminate collisions between objects in a linkset. (LinksetConstraint) - Have UserPointer point to struct with localID and linksetID? - Objects in original linkset still collide with each other? - Measure performance improvement from hulls Test not using ghost objects for volume detect implementation. Performance of closures and delegates for taint processing @@ -101,6 +114,9 @@ Physics Arena central pyramid: why is one side permiable? INTERNAL IMPROVEMENT/CLEANUP ================================================= +Consider moving prim/character body and shape destruction in destroy() + to postTimeTime rather than protecting all the potential sets that + might have been queued up. Remove unused fields from ShapeData (not used in API2) Breakout code for mesh/hull/compound/native into separate BSShape* classes Standardize access to building and reference code. @@ -154,3 +170,6 @@ Package Bullet source mods for Bullet internal stats output (Resolution: move code into WorldData.h rather than relying on patches) Single prim vehicles don't seem to properly vehiclize. (Resolution: mass was not getting set properly for single prim linksets) +Add material type linkage and input all the material property definitions. + Skeleton classes and table are in the sources but are not filled or used. + (Resolution: -- cgit v1.1 From 664dad53dded9537e75893ca9fc6a42c93a95ded Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 13 Dec 2012 23:08:01 -0800 Subject: BulletSim: Add more to the TODO list. Clean up and improve some comments. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 11c1387..7d6ace8 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -19,6 +19,7 @@ Some vehicles should not be able to turn if no speed or off ground. Neb car jiggling left and right Happens on terrain and any other mesh object. Flat cubes are much smoother. This has been reduced but not eliminated. +Light cycle falling over when driving For limitMotorUp, use raycast down to find if vehicle is in the air. Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. Verify that angular motion specified around Z moves in the vehicle coordinates. @@ -121,6 +122,9 @@ Remove unused fields from ShapeData (not used in API2) Breakout code for mesh/hull/compound/native into separate BSShape* classes Standardize access to building and reference code. The skeleton classes are in the sources but are not complete or linked in. +Make BSBody and BSShape real classes to centralize creation/changin/destruction + Convert state and parameter calls from BulletSimAPI direct calls to + calls on BSBody and BSShape Generalize Dynamics and PID with standardized motors. Generalize Linkset and vehicles into PropertyManagers Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies @@ -132,7 +136,7 @@ Implement linkset by setting position of children when root updated. (LinksetMan Linkset implementation using manual prim movement. LinkablePrim class? Would that simplify/centralize the linkset logic? BSScene.UpdateParameterSet() is broken. How to set params on objects? -Remove HeightmapInfo from terrain specification. +Remove HeightmapInfo from terrain specification Since C++ code does not need terrain height, this structure et al are not needed. Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will bob at the water level. BSPrim.PositionSanityCheck(). @@ -164,7 +168,6 @@ Do prim hash codes work for sculpties and meshes? (Resolution: yes) Linkset implementation using compound shapes. (Resolution: implemented LinksetCompound) Compound shapes will need the LocalID in the shapes and collision processing to get it from there. -Light cycle falling over when driving (Resolution: implemented VerticalAttractor) Light cycle not banking (Resolution: It doesn't. Banking is roll adding yaw.) Package Bullet source mods for Bullet internal stats output (Resolution: move code into WorldData.h rather than relying on patches) -- cgit v1.1 From ace1f1e9314d2e5b3cf45426225ca485649bbf96 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Fri, 14 Dec 2012 17:03:59 -0800 Subject: BulletSim: rip out old code for linkset child position fetching. BulletSim doesn't need to do that bookkeeping because SOG/SOP already does it. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 7d6ace8..9b89f0b 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -37,6 +37,7 @@ Border crossing with linked vehicle causes crash BULLETSIM TODO LIST: ================================================= +Revisit CollisionMargin. Builders notice the 0.04 spacing between prims. Avatar height off after unsitting (floats off ground) Editting appearance then moving restores. Must not be initializing height when recreating capsule after unsit. @@ -64,6 +65,8 @@ Implement ShapeCollection.Dispose() Implement water as a plain so raycasting and collisions can happen with same. Add osGetPhysicsEngineName() so scripters can tell whether BulletSim or ODE Also osGetPhysicsEngineVerion() maybe. +Linkset.Position and Linkset.Orientation requre rewrite to properly return + child position. LinksetConstraint acts like it's at taint time!! LINKSETS ====================================================== -- cgit v1.1 From 3f2aaffd4d32ec7569cc2e5faae76c5faa9e9da4 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sun, 16 Dec 2012 21:16:40 -0800 Subject: BulletSim: add even more to the TODO list. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 31 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 9b89f0b..31dd790 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,3 +1,16 @@ +CURRENT PRIORITIES +================================================= +Eliminate all crashes (DONEish) + Editing/deleting physical linkset (DONE) + Border crossing of physical linkset (DONE) +Enable vehicle border crossings (at least as poorly as ODE) + Avatar created in previous region and not new region when crossing border + Vehicle recreated in new sim at small Z value (offset from root value?) +Calibrate turning radius +limitMotorUp calibration (more down?) +study PID motors (include 'efficiency' implementation + Add to avatar movement + CRASHES ================================================= 20121129.1411: editting/moving phys object across region boundries causes crash @@ -11,16 +24,18 @@ CRASHES VEHICLES TODO LIST: ================================================= +Border crossing with linked vehicle causes crash Neb vehicle taking > 25ms of physics time!! Vehicles (Move smoothly) Add vehicle collisions so IsColliding is properly reported. Needed for banking, limitMotorUp, movementLimiting, ... Some vehicles should not be able to turn if no speed or off ground. +Cannot edit/move a vehicle being ridden: it jumps back to the origional position. Neb car jiggling left and right Happens on terrain and any other mesh object. Flat cubes are much smoother. This has been reduced but not eliminated. Light cycle falling over when driving -For limitMotorUp, use raycast down to find if vehicle is in the air. +Implement referenceFrame for all the motion routines. Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. Verify that angular motion specified around Z moves in the vehicle coordinates. Verify llGetVel() is returning a smooth and good value for vehicle movement. @@ -31,9 +46,9 @@ Should vehicle angular/linear movement friction happen after all the components After getting off a vehicle, the root prim is phantom (can be walked through) Need to force a position update for the root prim after compound shape destruction Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) -Implement referenceFrame for all the motion routines. -Cannot edit/move a vehicle being ridden: it jumps back to the origional position. -Border crossing with linked vehicle causes crash +For limitMotorUp, use raycast down to find if vehicle is in the air. +Remove vehicle angular velocity zeroing in BSPrim.UpdateProperties(). + A kludge that isn't fixing the real problem of Bullet adding extra motion. BULLETSIM TODO LIST: ================================================= @@ -72,6 +87,9 @@ LINKSETS ====================================================== Linksets should allow collisions to individual children Add LocalID to children shapes in LinksetCompound and create events for individuals +LinksetCompound: when one of the children changes orientation (like tires + turning on a vehicle, the whole compound object is rebuilt. Optimize this + so orientation/position of individual children can change without a rebuild. Verify/think through scripts in children of linksets. What do they reference and return when getting position, velocity, ... Confirm constraint linksets still work after making all the changes for compound linksets. @@ -143,6 +161,11 @@ Remove HeightmapInfo from terrain specification Since C++ code does not need terrain height, this structure et al are not needed. Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will bob at the water level. BSPrim.PositionSanityCheck(). +Should taints check for existance or activeness of target? + When destroying linksets/etc, taints can be generated for objects that are + actually gone when the taint happens. Crashes don't happen because the taint closure + keeps the object from being freed, but that is just an accident. + Possibly have and 'active' flag that is checked by the taint processor? THREADING ================================================= -- cgit v1.1 From 11532a4390ce3054f5a6798b4bf8dcf39d002e77 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Mon, 17 Dec 2012 13:22:04 -0800 Subject: BulletSim: fix vehicles going underground when unsat. Problem was that, when doing unsit, the order of operations on the prims and the vehicle is very chaotic and not in a good order so the root prim was being left physical and thus it fell for a bit. Also changed default of velocity scaling to be closer to the movement standard. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 31dd790..0d9a156 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -5,7 +5,7 @@ Eliminate all crashes (DONEish) Border crossing of physical linkset (DONE) Enable vehicle border crossings (at least as poorly as ODE) Avatar created in previous region and not new region when crossing border - Vehicle recreated in new sim at small Z value (offset from root value?) + Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) Calibrate turning radius limitMotorUp calibration (more down?) study PID motors (include 'efficiency' implementation -- cgit v1.1 From cf89e29ac315cbac74361b8fd85e0fdbf6157f09 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 18 Dec 2012 19:19:58 -0800 Subject: BulletSim: comments and TODO list update --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 0d9a156..ad4e42b 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -6,7 +6,7 @@ Eliminate all crashes (DONEish) Enable vehicle border crossings (at least as poorly as ODE) Avatar created in previous region and not new region when crossing border Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) -Calibrate turning radius +Calibrate turning radius (DONE) limitMotorUp calibration (more down?) study PID motors (include 'efficiency' implementation Add to avatar movement @@ -82,6 +82,7 @@ Add osGetPhysicsEngineName() so scripters can tell whether BulletSim or ODE Also osGetPhysicsEngineVerion() maybe. Linkset.Position and Linkset.Orientation requre rewrite to properly return child position. LinksetConstraint acts like it's at taint time!! +Implement LockAngularMotion -- implements llSetStatus(ROTATE_AXIS_*, T/F) LINKSETS ====================================================== -- cgit v1.1 From e73dac4debcf79cba83b94255d62fce0815871cb Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 20 Dec 2012 10:19:16 -0800 Subject: BulletSim: angularMotorUp working again (seems a little slow as it takes longer than timescale to correct, but getting better). Disabled angularDeflection (need to resolve interactions between angular corrections). Update TODO list. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 33 ++++++++++++++-------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index ad4e42b..8a9aec9 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -8,9 +8,10 @@ Enable vehicle border crossings (at least as poorly as ODE) Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) Calibrate turning radius (DONE) limitMotorUp calibration (more down?) -study PID motors (include 'efficiency' implementation +study PID motors (include 'efficiency' implementation (DONE) Add to avatar movement + CRASHES ================================================= 20121129.1411: editting/moving phys object across region boundries causes crash @@ -25,7 +26,6 @@ CRASHES VEHICLES TODO LIST: ================================================= Border crossing with linked vehicle causes crash -Neb vehicle taking > 25ms of physics time!! Vehicles (Move smoothly) Add vehicle collisions so IsColliding is properly reported. Needed for banking, limitMotorUp, movementLimiting, ... @@ -34,28 +34,25 @@ Cannot edit/move a vehicle being ridden: it jumps back to the origional position Neb car jiggling left and right Happens on terrain and any other mesh object. Flat cubes are much smoother. This has been reduced but not eliminated. -Light cycle falling over when driving Implement referenceFrame for all the motion routines. Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. Verify that angular motion specified around Z moves in the vehicle coordinates. Verify llGetVel() is returning a smooth and good value for vehicle movement. llGetVel() should return the root's velocity if requested in a child prim. Implement function efficiency for lineaar and angular motion. -Should vehicle angular/linear movement friction happen after all the components - or does it only apply to the basic movement? After getting off a vehicle, the root prim is phantom (can be walked through) Need to force a position update for the root prim after compound shape destruction Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) For limitMotorUp, use raycast down to find if vehicle is in the air. Remove vehicle angular velocity zeroing in BSPrim.UpdateProperties(). A kludge that isn't fixing the real problem of Bullet adding extra motion. +Incorporate inter-relationship of angular corrections. For instance, angularDeflection + and angularMotorUp will compute same X or Y correction. When added together + creates over-correction and over-shoot and wabbling. BULLETSIM TODO LIST: ================================================= Revisit CollisionMargin. Builders notice the 0.04 spacing between prims. -Avatar height off after unsitting (floats off ground) - Editting appearance then moving restores. - Must not be initializing height when recreating capsule after unsit. Duplicating a physical prim causes old prim to jump away Dup a phys prim and the original become unselected and thus interacts w/ selected prim. Scenes with hundred of thousands of static objects take a lot of physics CPU time. @@ -83,6 +80,8 @@ Add osGetPhysicsEngineName() so scripters can tell whether BulletSim or ODE Linkset.Position and Linkset.Orientation requre rewrite to properly return child position. LinksetConstraint acts like it's at taint time!! Implement LockAngularMotion -- implements llSetStatus(ROTATE_AXIS_*, T/F) +Should the different PID factors have non-equal contributions for different + values of Efficiency? LINKSETS ====================================================== @@ -100,17 +99,16 @@ Disable activity of passive linkset children. Since the linkset is a compound object, the old prims are left lying around and need to be phantomized so they don't collide, ... Speed up creation of large physical linksets - For instance, sitting in Neb's car (130 prims) takes several seconds to become physical + For instance, sitting in Neb's car (130 prims) takes several seconds to become physical. + REALLY bad for very large physical linksets (freezes the sim for many seconds). Eliminate collisions between objects in a linkset. (LinksetConstraint) Have UserPointer point to struct with localID and linksetID? Objects in original linkset still collide with each other? MORE ====================================================== -Find/remove avatar collision with ID=0. Test avatar walking up stairs. How does compare with SL. Radius of the capsule affects ability to climb edges. -Tune terrain/object friction to be closer to SL. Debounce avatar contact so legs don't keep folding up when standing. Implement LSL physics controls. Like STATUS_ROTATE_X. Add border extensions to terrain to help region crossings and objects leaving region. @@ -203,3 +201,16 @@ Single prim vehicles don't seem to properly vehiclize. Add material type linkage and input all the material property definitions. Skeleton classes and table are in the sources but are not filled or used. (Resolution: +Neb vehicle taking > 25ms of physics time!! + (Resolution: compound linksets were being rebuild WAY too often) +Avatar height off after unsitting (floats off ground) + Editting appearance then moving restores. + Must not be initializing height when recreating capsule after unsit. + (Resolution: confusion of scale vs size for native objects removed) +Light cycle falling over when driving (Resolution: implemented angularMotorUp) +Should vehicle angular/linear movement friction happen after all the components + or does it only apply to the basic movement? + (Resolution: friction added before returning newly computed motor value. + What is expected by some vehicles (turning up friction to moderate speed)) +Tune terrain/object friction to be closer to SL. + (Resolution: added material type with friction and resolution) -- cgit v1.1 From 750492796d3f19028ddd7fdf5f696933f083fd33 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Fri, 21 Dec 2012 09:55:20 -0800 Subject: BulletSim: begin movement of parameters from pinned memory block to variables all in managed code. Add note to TODO list to remember to do the rest. Other updates to TODO list. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 8a9aec9..c084ab4 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,16 +1,16 @@ CURRENT PRIORITIES ================================================= -Eliminate all crashes (DONEish) - Editing/deleting physical linkset (DONE) - Border crossing of physical linkset (DONE) +Smooth avatar movement with motor + Should motor update be all at taint-time? Enable vehicle border crossings (at least as poorly as ODE) + Terrain skirts Avatar created in previous region and not new region when crossing border Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) -Calibrate turning radius (DONE) +Vehicle movement on terrain smoothness +Vehicle script tuning/debugging + Avanti speed script + Weapon shooter script limitMotorUp calibration (more down?) -study PID motors (include 'efficiency' implementation (DONE) - Add to avatar movement - CRASHES ================================================= @@ -139,6 +139,8 @@ Consider moving prim/character body and shape destruction in destroy() to postTimeTime rather than protecting all the potential sets that might have been queued up. Remove unused fields from ShapeData (not used in API2) +Remove unused fields from pinned memory shared parameter block + Create parameter variables in BSScene to replace same. Breakout code for mesh/hull/compound/native into separate BSShape* classes Standardize access to building and reference code. The skeleton classes are in the sources but are not complete or linked in. -- cgit v1.1 From 30807b81cc9f91917fd3b4bf8dc24a1622013afa Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sat, 22 Dec 2012 17:09:40 -0800 Subject: BulletSim: modify avatar motor code to make falling movement better. Clean up some usages. Disable motor when done. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index c084ab4..9a7e965 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -112,6 +112,9 @@ Test avatar walking up stairs. How does compare with SL. Debounce avatar contact so legs don't keep folding up when standing. Implement LSL physics controls. Like STATUS_ROTATE_X. Add border extensions to terrain to help region crossings and objects leaving region. +Use a different capsule shape for avatar when sitting + LL uses a pyrimidal shape scaled by the avatar's bounding box + http://wiki.secondlife.com/wiki/File:Avmeshforms.png Performance test with lots of avatars. Can BulletSim support a thousand? Optimize collisions in C++: only send up to the object subscribed to collisions. -- cgit v1.1 From 80cee1b85a646045c02e2bb675056d532ce2fe27 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Mon, 24 Dec 2012 08:56:02 -0800 Subject: BulletSim: Fix single physical prim reporting its mass as zero. Properly return root mass as mass of just the root prim rather than the mass of the linkset. SOG has the logic to add the masses together to get the linkset mass. Update TODO list. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 9a7e965..0f27d67 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,11 +1,17 @@ CURRENT PRIORITIES ================================================= -Smooth avatar movement with motor - Should motor update be all at taint-time? +Smooth avatar movement with motor (DONE) + Should motor update be all at taint-time? (Yes, DONE) + Fix avatar slowly sliding when standing (zero motion when stopped) +llApplyImpulse() + Compare mass/movement in OS and SL. Calibrate actions. +llSetBuoyancy() +Boats float low in the water Enable vehicle border crossings (at least as poorly as ODE) Terrain skirts Avatar created in previous region and not new region when crossing border Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) +Add material densities to the material types. Vehicle movement on terrain smoothness Vehicle script tuning/debugging Avanti speed script @@ -52,6 +58,8 @@ Incorporate inter-relationship of angular corrections. For instance, angularDefl BULLETSIM TODO LIST: ================================================= +In SL, perfect spheres don't seem to have rolling friction. Add special case. +Avatar density is WAY off. Compare and calibrate with what's in SL. Revisit CollisionMargin. Builders notice the 0.04 spacing between prims. Duplicating a physical prim causes old prim to jump away Dup a phys prim and the original become unselected and thus interacts w/ selected prim. @@ -82,6 +90,9 @@ Linkset.Position and Linkset.Orientation requre rewrite to properly return Implement LockAngularMotion -- implements llSetStatus(ROTATE_AXIS_*, T/F) Should the different PID factors have non-equal contributions for different values of Efficiency? +Selecting and deselecting physical objects causes CPU processing time to jump + http://www.youtube.com/watch?v=Hjg57fWg8yI&hd=1 + put thousand physical objects, select and deselect same. CPU time will be large. LINKSETS ====================================================== -- cgit v1.1 From bbc5a5089f79a4c5543f4a3f1cd4ffaf1de8c07e Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Mon, 24 Dec 2012 20:18:06 -0800 Subject: BulletSim: Rename some of the interface structures (BulletWorld, ...) to get ready for... Start creation of BulletAPITemplate. This defines the abstract interface functions. Following commits will move over to the new interface. This will enable switching between the managed and unmanaged version of Bullet. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 0f27d67..35cb8f3 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -146,6 +146,13 @@ Is there are more efficient method of implementing pre and post step actions? See http://www.codeproject.com/Articles/29922/Weak-Events-in-C Physics Arena central pyramid: why is one side permiable? +Enforce physical parameter min/max: + Gravity: [-1, 28] + Friction: [0, 255] + Density: [1, 22587] + Restitution [0, 1] + http://wiki.secondlife.com/wiki/Physics_Material_Settings_test +Avatar attachments have no mass? http://forums-archive.secondlife.com/54/f0/31796/1.html INTERNAL IMPROVEMENT/CLEANUP ================================================= -- cgit v1.1 From d1ede1df3a04428c83a9937059a0df00d7f3e281 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 25 Dec 2012 23:55:25 -0800 Subject: BulletSim: make llBuoyancy work. For some reason, Bullet resets an object's individual gravity to the world gravity when the object is added to the physical world. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 35cb8f3..9d07d72 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -58,7 +58,6 @@ Incorporate inter-relationship of angular corrections. For instance, angularDefl BULLETSIM TODO LIST: ================================================= -In SL, perfect spheres don't seem to have rolling friction. Add special case. Avatar density is WAY off. Compare and calibrate with what's in SL. Revisit CollisionMargin. Builders notice the 0.04 spacing between prims. Duplicating a physical prim causes old prim to jump away @@ -146,6 +145,8 @@ Is there are more efficient method of implementing pre and post step actions? See http://www.codeproject.com/Articles/29922/Weak-Events-in-C Physics Arena central pyramid: why is one side permiable? + +In SL, perfect spheres don't seem to have rolling friction. Add special case. Enforce physical parameter min/max: Gravity: [-1, 28] Friction: [0, 255] -- cgit v1.1 From 225b564573a5ac12ca1b1e592834476feccf8ebb Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Wed, 26 Dec 2012 10:25:50 -0800 Subject: BulletSim: scale the force for external AddForce by the simulation step time so it will be applied completely the next step. The internal AddForce routine does not scale the force. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 9d07d72..78cc26c 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -35,6 +35,8 @@ Border crossing with linked vehicle causes crash Vehicles (Move smoothly) Add vehicle collisions so IsColliding is properly reported. Needed for banking, limitMotorUp, movementLimiting, ... +VehicleAddForce is not scaled by the simulation step but it is only + applied for one step. Should it be scaled? Some vehicles should not be able to turn if no speed or off ground. Cannot edit/move a vehicle being ridden: it jumps back to the origional position. Neb car jiggling left and right @@ -92,6 +94,8 @@ Should the different PID factors have non-equal contributions for different Selecting and deselecting physical objects causes CPU processing time to jump http://www.youtube.com/watch?v=Hjg57fWg8yI&hd=1 put thousand physical objects, select and deselect same. CPU time will be large. +Re-implement buoyancy as a separate force on the object rather than diddling gravity. + Register a pre-step event to add the force. LINKSETS ====================================================== -- cgit v1.1 From f3baed5827853c5041f042ff36cf394b1e45538f Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 27 Dec 2012 06:58:07 -0800 Subject: BulletSim: add physical parameter min/max constants in BSParam. I just don't like raw numbers scattered around the code. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 78cc26c..bc6dd7e 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -96,6 +96,7 @@ Selecting and deselecting physical objects causes CPU processing time to jump put thousand physical objects, select and deselect same. CPU time will be large. Re-implement buoyancy as a separate force on the object rather than diddling gravity. Register a pre-step event to add the force. +More efficient memory usage when passing hull information from BSPrim to BulletSim LINKSETS ====================================================== -- cgit v1.1 From e57c0e6731bff376186ecba2530e76b697ab5887 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 27 Dec 2012 13:13:35 -0800 Subject: BulletSim: fix buoyancy so it's properly set by a script when an object is selected. Update TODO list. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 24 ++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index bc6dd7e..a66508a 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,22 +1,21 @@ CURRENT PRIORITIES ================================================= -Smooth avatar movement with motor (DONE) - Should motor update be all at taint-time? (Yes, DONE) - Fix avatar slowly sliding when standing (zero motion when stopped) -llApplyImpulse() - Compare mass/movement in OS and SL. Calibrate actions. -llSetBuoyancy() -Boats float low in the water +Redo BulletSimAPI to allow native C# implementation of Bullet option. +Avatar movement + flying into a wall doesn't stop avatar who keeps appearing to move through the obsticle + walking up stairs is not calibrated correctly (stairs out of Kepler cabin) + avatar capsule rotation completed Enable vehicle border crossings (at least as poorly as ODE) Terrain skirts Avatar created in previous region and not new region when crossing border Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) -Add material densities to the material types. Vehicle movement on terrain smoothness Vehicle script tuning/debugging Avanti speed script Weapon shooter script limitMotorUp calibration (more down?) +Boats float low in the water +Add material densities to the material types. CRASHES ================================================= @@ -243,3 +242,12 @@ Should vehicle angular/linear movement friction happen after all the components What is expected by some vehicles (turning up friction to moderate speed)) Tune terrain/object friction to be closer to SL. (Resolution: added material type with friction and resolution) +Smooth avatar movement with motor (DONE) + Should motor update be all at taint-time? (Yes, DONE) + Fix avatar slowly sliding when standing (zero motion when stopped) (DONE) + (Resolution: added BSVMotor for avatar starting and stopping) +llApplyImpulse() + Compare mass/movement in OS and SL. Calibrate actions. (DONE) + (Resolution: tested on SL and OS. AddForce scales the force for timestep) +llSetBuoyancy() (DONE) + (Resolution: Bullet resets object gravity when added to world. Moved set gravity) -- cgit v1.1 From 7a5f598399c7373bd146061b478e6d04cb204879 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 27 Dec 2012 16:05:11 -0800 Subject: BulletSim: move logic for IsColliding, CollidingGround and CollidingObj from individual sub-classes and up to parent BSPhysObject class. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index a66508a..16131cd 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -2,9 +2,10 @@ CURRENT PRIORITIES ================================================= Redo BulletSimAPI to allow native C# implementation of Bullet option. Avatar movement - flying into a wall doesn't stop avatar who keeps appearing to move through the obsticle + flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle walking up stairs is not calibrated correctly (stairs out of Kepler cabin) avatar capsule rotation completed +llMoveToTarget Enable vehicle border crossings (at least as poorly as ODE) Terrain skirts Avatar created in previous region and not new region when crossing border -- cgit v1.1 From 1f6aaad0b587f1589afd7a7ca6feb8d2bbba8641 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 27 Dec 2012 22:04:12 -0800 Subject: BulletSim: correct collision mask definition for linkset children. Remove unused code. Add comments and TODOs. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 16131cd..f805836 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -194,6 +194,7 @@ Should taints check for existance or activeness of target? actually gone when the taint happens. Crashes don't happen because the taint closure keeps the object from being freed, but that is just an accident. Possibly have and 'active' flag that is checked by the taint processor? +Parameters for physics logging should be moved from BSScene to BSParam (at least boolean ones) THREADING ================================================= -- cgit v1.1 From 203588e3c0374505a6aa564d8f7a655d968653d7 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sat, 29 Dec 2012 18:34:46 -0800 Subject: BulletSim: change physical data structures to classes. Add default instantiations for PhysBody and PhysShape when BSPhysObject is created to account for them being classes and not structures. Update TODO list. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index f805836..8ec9871 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -97,6 +97,9 @@ Selecting and deselecting physical objects causes CPU processing time to jump Re-implement buoyancy as a separate force on the object rather than diddling gravity. Register a pre-step event to add the force. More efficient memory usage when passing hull information from BSPrim to BulletSim +Avatar movement motor check for zero or small movement. Somehow suppress small movements + when avatar has stopped and is just standing. Simple test for near zero has + the problem of preventing starting up (increase from zero) especially when falling. LINKSETS ====================================================== @@ -195,6 +198,7 @@ Should taints check for existance or activeness of target? keeps the object from being freed, but that is just an accident. Possibly have and 'active' flag that is checked by the taint processor? Parameters for physics logging should be moved from BSScene to BSParam (at least boolean ones) +Can some of the physical wrapper classes (BulletBody, BulletWorld, BulletShape) be 'sealed'? THREADING ================================================= -- cgit v1.1 From 48f718f39fcd61501262878a8bcfbd98efed29d2 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sat, 29 Dec 2012 21:43:43 -0800 Subject: BulletSim: first round of conversion from direct BulletSimAPI interfacing by BulletSim core to using the BulletSimAPITemplate. Physical object creation and destruction first. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 8ec9871..4cb8e6d 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -31,6 +31,7 @@ CRASHES VEHICLES TODO LIST: ================================================= +Angular motor direction is global coordinates rather than local coordinates Border crossing with linked vehicle causes crash Vehicles (Move smoothly) Add vehicle collisions so IsColliding is properly reported. @@ -78,7 +79,7 @@ Small physical objects do not interact correctly Create chain of .5x.5x.1 torui and make all but top physical so to hang. The chain will fall apart and pairs will dance around on ground Chains of 1x1x.2 will stay connected but will dance. - Chains above 2x2x.4 are move stable and get stablier as torui get larger. + Chains above 2x2x.4 are more stable and get stablier as torui get larger. Add PID motor for avatar movement (slow to stop, ...) setForce should set a constant force. Different than AddImpulse. Implement raycast. @@ -100,9 +101,13 @@ More efficient memory usage when passing hull information from BSPrim to BulletS Avatar movement motor check for zero or small movement. Somehow suppress small movements when avatar has stopped and is just standing. Simple test for near zero has the problem of preventing starting up (increase from zero) especially when falling. +Physical and phantom will drop through the terrain + LINKSETS ====================================================== +Offset the center of the linkset to be the geometric center of all the prims + Not quite the same as the center-of-gravity Linksets should allow collisions to individual children Add LocalID to children shapes in LinksetCompound and create events for individuals LinksetCompound: when one of the children changes orientation (like tires -- cgit v1.1 From 3d0fc708647ceb734385f90e2f22be9774e2171e Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Mon, 31 Dec 2012 16:22:45 -0800 Subject: BulletSim: complete movement of BulletSimAPI functions to BSAPITemplate. Update BulletSim DLLs and SOs with simplier step function interface. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 4cb8e6d..a8a4ff5 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -61,7 +61,8 @@ Incorporate inter-relationship of angular corrections. For instance, angularDefl BULLETSIM TODO LIST: ================================================= -Avatar density is WAY off. Compare and calibrate with what's in SL. +Implement an avatar mesh shape. The Bullet capsule is way too limited. + Consider just hand creating a vertex/index array in a new BSShapeAvatar. Revisit CollisionMargin. Builders notice the 0.04 spacing between prims. Duplicating a physical prim causes old prim to jump away Dup a phys prim and the original become unselected and thus interacts w/ selected prim. @@ -170,6 +171,9 @@ Avatar attachments have no mass? http://forums-archive.secondlife.com/54/f0/3179 INTERNAL IMPROVEMENT/CLEANUP ================================================= +Create the physical wrapper classes (BulletBody, BulletShape) by methods on + BSAPITemplate and make their actual implementation Bullet engine specific. + For the short term, just call the existing functions in ShapeCollection. Consider moving prim/character body and shape destruction in destroy() to postTimeTime rather than protecting all the potential sets that might have been queued up. @@ -204,6 +208,8 @@ Should taints check for existance or activeness of target? Possibly have and 'active' flag that is checked by the taint processor? Parameters for physics logging should be moved from BSScene to BSParam (at least boolean ones) Can some of the physical wrapper classes (BulletBody, BulletWorld, BulletShape) be 'sealed'? +There are TOO MANY interfaces from BulletSim core to Bullet itself + Think of something to eliminate one or more of the layers THREADING ================================================= @@ -262,3 +268,5 @@ llApplyImpulse() (Resolution: tested on SL and OS. AddForce scales the force for timestep) llSetBuoyancy() (DONE) (Resolution: Bullet resets object gravity when added to world. Moved set gravity) +Avatar density is WAY off. Compare and calibrate with what's in SL. (DONE) + (Resolution: set default density to 3.5 (from 60) which is closer to SL) -- cgit v1.1 From 48cfc6d089ae47795d99bf56382c3d1a867e7d03 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Fri, 4 Jan 2013 16:47:04 -0800 Subject: BulletSim: implement llMoveToTarget by adding PIDActive, etc. Implementation of non-vehicle hover but haven't tested it a lot. Update TODO list. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index a8a4ff5..facf720 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,22 +1,26 @@ CURRENT PRIORITIES ================================================= -Redo BulletSimAPI to allow native C# implementation of Bullet option. +Redo BulletSimAPI to allow native C# implementation of Bullet option (DONE) +Meshes rendering as bounding boxes +llMoveToTarget +Vehicle movement on terrain smoothness +limitMotorUp calibration (more down?) +Preferred orientatino angular correction fix +Surfboard go wonky when turning + Angular motor direction is global coordinates rather than local coordinates? +Boats float low in the water Avatar movement - flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle + flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE) walking up stairs is not calibrated correctly (stairs out of Kepler cabin) - avatar capsule rotation completed -llMoveToTarget + avatar capsule rotation completed (NOT DONE - Bullet's capsule shape is not the solution) Enable vehicle border crossings (at least as poorly as ODE) Terrain skirts Avatar created in previous region and not new region when crossing border Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) -Vehicle movement on terrain smoothness Vehicle script tuning/debugging Avanti speed script Weapon shooter script -limitMotorUp calibration (more down?) -Boats float low in the water -Add material densities to the material types. +Add material densities to the material types CRASHES ================================================= -- cgit v1.1 From 939340325396c80e8798ec43361ffd983ce325c9 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sun, 6 Jan 2013 14:01:15 -0800 Subject: BulletSim: update DLLs and SOs with better debugging output. Add definition of hand crafted avatar mesh. Not used yet. Comments and cleanup. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index facf720..7b59e60 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,8 +1,6 @@ CURRENT PRIORITIES ================================================= -Redo BulletSimAPI to allow native C# implementation of Bullet option (DONE) -Meshes rendering as bounding boxes -llMoveToTarget +Avatars walking up stairs Vehicle movement on terrain smoothness limitMotorUp calibration (more down?) Preferred orientatino angular correction fix @@ -135,6 +133,9 @@ Eliminate collisions between objects in a linkset. (LinksetConstraint) MORE ====================================================== +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? + There is some problem with meshes and collisions Test avatar walking up stairs. How does compare with SL. Radius of the capsule affects ability to climb edges. Debounce avatar contact so legs don't keep folding up when standing. @@ -274,3 +275,8 @@ llSetBuoyancy() (DONE) (Resolution: Bullet resets object gravity when added to world. Moved set gravity) Avatar density is WAY off. Compare and calibrate with what's in SL. (DONE) (Resolution: set default density to 3.5 (from 60) which is closer to SL) +Redo BulletSimAPI to allow native C# implementation of Bullet option (DONE) + (Resolution: added BSAPITemplate and then interfaces for C++ Bullet and C# BulletXNA +Meshes rendering as bounding boxes (DONE) + (Resolution: Added test for mesh/sculpties in native shapes so it didn't think it was a box) +llMoveToTarget (Resolution: added simple motor to update the position.) -- cgit v1.1 From 8452c0a8702ccf7ea045740dd829c69a6f509845 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Mon, 7 Jan 2013 16:05:02 -0800 Subject: BulletSim: add function to push avatar up when hitting stairs. It looks like BulletSim and ODE rely on penetration correction to cause the avatar to move up and thus allowing walking up stairs. Object penetration was minimized for walking and flying (so one doesn't go through walls) and this stopped stairs from working. This commit introduces avatar movement code to check for collisions at the feet while walking and attempts to raise the avatar for the steps. Not yet perfect but movement is better. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 7b59e60..794a6af 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -88,6 +88,8 @@ setForce should set a constant force. Different than AddImpulse. Implement raycast. Implement ShapeCollection.Dispose() Implement water as a plain so raycasting and collisions can happen with same. +Add collision penetration return + Add field passed back by BulletSim.dll and fill with info in ManifoldConstact.GetDistance() Add osGetPhysicsEngineName() so scripters can tell whether BulletSim or ODE Also osGetPhysicsEngineVerion() maybe. Linkset.Position and Linkset.Orientation requre rewrite to properly return -- cgit v1.1 From df1d7414adbf329e139201cdb7578c7b64bb50c8 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 8 Jan 2013 16:09:15 -0800 Subject: BulletSim: Fix hover height (boats float at the correct level). Fix problem of vehicles going crazy when backing up. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 794a6af..29bd4e4 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,9 +1,9 @@ CURRENT PRIORITIES ================================================= -Avatars walking up stairs +Avatars walking up stairs (HALF DONE) Vehicle movement on terrain smoothness limitMotorUp calibration (more down?) -Preferred orientatino angular correction fix +Preferred orientation angular correction fix Surfboard go wonky when turning Angular motor direction is global coordinates rather than local coordinates? Boats float low in the water -- cgit v1.1 From 98168edc29c7c761121e453d82bf1fab52814b58 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Wed, 9 Jan 2013 11:06:49 -0800 Subject: BulletSim: remove double application of buoyancy. Centralize computation of buoyancy. Add motor angular debugging controls. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 58 ++++++++++++---------- 1 file changed, 31 insertions(+), 27 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 29bd4e4..1540dbb 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,12 +1,17 @@ CURRENT PRIORITIES ================================================= +Nebadon vehicles turning funny in arena +limitMotorUp calibration (more down?) +Vehicle angular vertical attraction +Vehicle angular deflection + Preferred orientation angular correction fix +vehicle angular banking Avatars walking up stairs (HALF DONE) + Radius of the capsule affects ability to climb edges. Vehicle movement on terrain smoothness -limitMotorUp calibration (more down?) -Preferred orientation angular correction fix Surfboard go wonky when turning Angular motor direction is global coordinates rather than local coordinates? -Boats float low in the water +Boats float low in the water (DONE) Avatar movement flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE) walking up stairs is not calibrated correctly (stairs out of Kepler cabin) @@ -33,19 +38,15 @@ CRASHES VEHICLES TODO LIST: ================================================= -Angular motor direction is global coordinates rather than local coordinates Border crossing with linked vehicle causes crash Vehicles (Move smoothly) -Add vehicle collisions so IsColliding is properly reported. - Needed for banking, limitMotorUp, movementLimiting, ... -VehicleAddForce is not scaled by the simulation step but it is only - applied for one step. Should it be scaled? Some vehicles should not be able to turn if no speed or off ground. Cannot edit/move a vehicle being ridden: it jumps back to the origional position. Neb car jiggling left and right Happens on terrain and any other mesh object. Flat cubes are much smoother. This has been reduced but not eliminated. Implement referenceFrame for all the motion routines. +For limitMotorUp, use raycast down to find if vehicle is in the air. Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. Verify that angular motion specified around Z moves in the vehicle coordinates. Verify llGetVel() is returning a smooth and good value for vehicle movement. @@ -54,14 +55,13 @@ Implement function efficiency for lineaar and angular motion. After getting off a vehicle, the root prim is phantom (can be walked through) Need to force a position update for the root prim after compound shape destruction Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) -For limitMotorUp, use raycast down to find if vehicle is in the air. Remove vehicle angular velocity zeroing in BSPrim.UpdateProperties(). A kludge that isn't fixing the real problem of Bullet adding extra motion. Incorporate inter-relationship of angular corrections. For instance, angularDeflection and angularMotorUp will compute same X or Y correction. When added together creates over-correction and over-shoot and wabbling. -BULLETSIM TODO LIST: +GENERAL TODO LIST: ================================================= Implement an avatar mesh shape. The Bullet capsule is way too limited. Consider just hand creating a vertex/index array in a new BSShapeAvatar. @@ -121,11 +121,9 @@ LinksetCompound: when one of the children changes orientation (like tires Verify/think through scripts in children of linksets. What do they reference and return when getting position, velocity, ... Confirm constraint linksets still work after making all the changes for compound linksets. +Use PostTaint callback to do rebuilds for constraint linksets to reduce rebuilding Add 'changed' flag or similar to reduce the number of times a linkset is rebuilt. For compound linksets, add ability to remove or reposition individual child shapes. -Disable activity of passive linkset children. - Since the linkset is a compound object, the old prims are left lying - around and need to be phantomized so they don't collide, ... Speed up creation of large physical linksets For instance, sitting in Neb's car (130 prims) takes several seconds to become physical. REALLY bad for very large physical linksets (freezes the sim for many seconds). @@ -138,25 +136,21 @@ MORE 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? There is some problem with meshes and collisions -Test avatar walking up stairs. How does compare with SL. - Radius of the capsule affects ability to climb edges. + Hulls are not as detailed as meshes. Hulled vehicles insides are different shape. Debounce avatar contact so legs don't keep folding up when standing. Implement LSL physics controls. Like STATUS_ROTATE_X. Add border extensions to terrain to help region crossings and objects leaving region. Use a different capsule shape for avatar when sitting LL uses a pyrimidal shape scaled by the avatar's bounding box http://wiki.secondlife.com/wiki/File:Avmeshforms.png - Performance test with lots of avatars. Can BulletSim support a thousand? Optimize collisions in C++: only send up to the object subscribed to collisions. Use collision subscription and remove the collsion(A,B) and collision(B,A) Check whether SimMotionState needs large if statement (see TODO). - Implement 'top colliders' info. Avatar jump Performance measurement and changes to make quicker. Implement detailed physics stats (GetStats()). - Measure performance improvement from hulls Test not using ghost objects for volume detect implementation. Performance of closures and delegates for taint processing @@ -164,9 +158,7 @@ Performance of closures and delegates for taint processing Is any slowdown introduced by the existing implementation significant? Is there are more efficient method of implementing pre and post step actions? See http://www.codeproject.com/Articles/29922/Weak-Events-in-C - Physics Arena central pyramid: why is one side permiable? - In SL, perfect spheres don't seem to have rolling friction. Add special case. Enforce physical parameter min/max: Gravity: [-1, 28] @@ -197,22 +189,19 @@ Generalize Dynamics and PID with standardized motors. Generalize Linkset and vehicles into PropertyManagers Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies Potentially add events for shape destruction, etc. -Complete implemention of preStepActions - Replace vehicle step call with prestep event. - Is there a need for postStepActions? postStepTaints? +Better mechanism for resetting linkset set and vehicle parameters when body rebuilt. + BSPrim.CreateGeomAndObject is kludgy with the callbacks, etc. Implement linkset by setting position of children when root updated. (LinksetManual) Linkset implementation using manual prim movement. LinkablePrim class? Would that simplify/centralize the linkset logic? BSScene.UpdateParameterSet() is broken. How to set params on objects? -Remove HeightmapInfo from terrain specification - Since C++ code does not need terrain height, this structure et al are not needed. Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will - bob at the water level. BSPrim.PositionSanityCheck(). + bob at the water level. BSPrim.PositionSanityCheck() Should taints check for existance or activeness of target? When destroying linksets/etc, taints can be generated for objects that are actually gone when the taint happens. Crashes don't happen because the taint closure keeps the object from being freed, but that is just an accident. - Possibly have and 'active' flag that is checked by the taint processor? + Possibly have an 'active' flag that is checked by the taint processor? Parameters for physics logging should be moved from BSScene to BSParam (at least boolean ones) Can some of the physical wrapper classes (BulletBody, BulletWorld, BulletShape) be 'sealed'? There are TOO MANY interfaces from BulletSim core to Bullet itself @@ -282,3 +271,18 @@ Redo BulletSimAPI to allow native C# implementation of Bullet option (DONE) Meshes rendering as bounding boxes (DONE) (Resolution: Added test for mesh/sculpties in native shapes so it didn't think it was a box) llMoveToTarget (Resolution: added simple motor to update the position.) +Angular motor direction is global coordinates rather than local coordinates (DONE) +Add vehicle collisions so IsColliding is properly reported. (DONE) + Needed for banking, limitMotorUp, movementLimiting, ... + (Resolution: added CollisionFlags.BS_VEHICLE_COLLISION and code to use it) +VehicleAddForce is not scaled by the simulation step but it is only + applied for one step. Should it be scaled? (DONE) + (Resolution: use force for timed things, Impulse for immediate, non-timed things) +Complete implemention of preStepActions (DONE) + Replace vehicle step call with prestep event. + Is there a need for postStepActions? postStepTaints? +Disable activity of passive linkset children. (DONE) + Since the linkset is a compound object, the old prims are left lying + around and need to be phantomized so they don't collide, ... +Remove HeightmapInfo from terrain specification (DONE) + Since C++ code does not need terrain height, this structure et al are not needed. \ No newline at end of file -- cgit v1.1 From 459fcd81c9d6e7c92738b40f1b4b4fe746699379 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Fri, 11 Jan 2013 16:36:34 -0800 Subject: BulletSim: move center of gravity of linkset to its geometric center. Necessitated allowing simulator and physical position of a body to get out of sync since Bullet assumes that <0,0,0> is the center of mass. Update DLLs and SOs for the UpdateChildTransform so positions of individual prim in a linkset can be implemented. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 1540dbb..59cbab9 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -170,6 +170,8 @@ Avatar attachments have no mass? http://forums-archive.secondlife.com/54/f0/3179 INTERNAL IMPROVEMENT/CLEANUP ================================================= +Can the 'inTaintTime' flag be cleaned up and used? For instance, a call to + BSScene.TaintedObject() could immediately execute the callback if already in taint time. Create the physical wrapper classes (BulletBody, BulletShape) by methods on BSAPITemplate and make their actual implementation Bullet engine specific. For the short term, just call the existing functions in ShapeCollection. -- cgit v1.1 From 61ff79587bea373278771f9529b582db2e05afdd Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 15 Jan 2013 12:57:12 -0800 Subject: BulletSim: add debugging messages to know when assets for physical objects have been fetched. Update TODO list with more work. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 59cbab9..067e64a 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,7 +1,23 @@ 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 limitMotorUp calibration (more down?) +llRotLookAt +llLookAt Vehicle angular vertical attraction Vehicle angular deflection Preferred orientation angular correction fix @@ -167,6 +183,7 @@ Enforce physical parameter min/max: Restitution [0, 1] http://wiki.secondlife.com/wiki/Physics_Material_Settings_test 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 ================================================= -- cgit v1.1 From 5d098d8f17fe24d9ad2999ddce819787d02989ce Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 15 Jan 2013 15:07:38 -0800 Subject: 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. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') 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 @@ 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 limitMotorUp calibration (more down?) @@ -25,8 +16,6 @@ vehicle angular banking Avatars walking up stairs (HALF DONE) Radius of the capsule affects ability to climb edges. 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) Avatar movement 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 ================================================= +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 getPos-> btRigidBody::upcast -> getBodyType -> BOOM 20121128.1600: mesh object not rezzing (no physics mesh). @@ -149,6 +142,10 @@ Eliminate collisions between objects in a linkset. (LinksetConstraint) 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. Do we need to do convex hulls all the time? Can complex meshes be left meshes? There is some problem with meshes and collisions @@ -304,4 +301,7 @@ Disable activity of passive linkset children. (DONE) Since the linkset is a compound object, the old prims are left lying around and need to be phantomized so they don't collide, ... Remove HeightmapInfo from terrain specification (DONE) - Since C++ code does not need terrain height, this structure et al are not needed. \ No newline at end of file + 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) \ No newline at end of file -- cgit v1.1 From 8ee9daa121440ad550676814fe60e6b6c0c5d701 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 15 Jan 2013 21:08:11 -0800 Subject: BulletSim: add the editting children in linkset going phantom bug to TODO list. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 53b5530..d4545f7 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -120,6 +120,8 @@ Physical and phantom will drop through the terrain LINKSETS ====================================================== +Editing a child of a linkset causes the child to go phantom + Move a child prim once when it is physical and can never move it again without it going phantom Offset the center of the linkset to be the geometric center of all the prims Not quite the same as the center-of-gravity Linksets should allow collisions to individual children -- cgit v1.1 From 75f710f1e70a3c9d3459d549eb4334a445aca834 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 17 Jan 2013 14:47:35 -0800 Subject: BulletSim: Add one function that all actors who act on the physical can use to know if the object is currently active. Code cleaning including use of Util.ClampV function. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index d4545f7..9bfec19 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -16,6 +16,7 @@ vehicle angular banking Avatars walking up stairs (HALF DONE) Radius of the capsule affects ability to climb edges. Vehicle movement on terrain smoothness +When is force introduced by SetForce removed? The prestep action could go forever. Boats float low in the water (DONE) Avatar movement flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE) @@ -72,8 +73,11 @@ Incorporate inter-relationship of angular corrections. For instance, angularDefl GENERAL TODO LIST: ================================================= +Implement llSetPhysicalMaterial. +Implement llSetForceAndTorque. Implement an avatar mesh shape. The Bullet capsule is way too limited. Consider just hand creating a vertex/index array in a new BSShapeAvatar. +Verify/fix phantom, volume-detect objects do not fall to infinity. Should stop at terrain. Revisit CollisionMargin. Builders notice the 0.04 spacing between prims. Duplicating a physical prim causes old prim to jump away Dup a phys prim and the original become unselected and thus interacts w/ selected prim. @@ -121,7 +125,7 @@ Physical and phantom will drop through the terrain LINKSETS ====================================================== Editing a child of a linkset causes the child to go phantom - Move a child prim once when it is physical and can never move it again without it going phantom + Move a child prim once when it is physical and can never move it again without it going phantom Offset the center of the linkset to be the geometric center of all the prims Not quite the same as the center-of-gravity Linksets should allow collisions to individual children -- cgit v1.1 From 3b0df52d10c157cd2711d64ef9007d2afccbd468 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sun, 20 Jan 2013 09:33:13 -0800 Subject: BulletSim: modify motors to return correction rather than current value to better use them for incremental updates. Modify prim and character to use the new motors. Simplify the vehicle linear movement code to just update the velocity directly or the basic movement. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 9bfec19..23b7ca8 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -74,7 +74,10 @@ Incorporate inter-relationship of angular corrections. For instance, angularDefl GENERAL TODO LIST: ================================================= Implement llSetPhysicalMaterial. + extend it with Center-of-mass, rolling friction, density Implement llSetForceAndTorque. +Change BSPrim.moveToTarget to used forces rather than changing position + Changing position allows one to move through walls Implement an avatar mesh shape. The Bullet capsule is way too limited. Consider just hand creating a vertex/index array in a new BSShapeAvatar. Verify/fix phantom, volume-detect objects do not fall to infinity. Should stop at terrain. -- cgit v1.1 From 3f6698a595593edc4027ff58cbebf947a6b5ac1f Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Mon, 21 Jan 2013 09:19:09 -0800 Subject: BulletSim: remove unused MaxTaintsToProcessPerStep parameter --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 23b7ca8..c1bf766 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -2,6 +2,8 @@ CURRENT PRIORITIES ================================================= Mantis 6040 script http://opensimulator.org/mantis/view.php?id=6040 Msg Kayaker on OSGrid when working +when should angular and linear motor targets be zeroed? when selected? + Need a vehicle.clear()? Or an 'else' in prestep if not physical. Teravus llMoveToTarget script debug Mixing of hover, buoyancy/gravity, moveToTarget, into one force Boats floating at proper level -- cgit v1.1 From 471c4778639aec60078e6cee7c964682c959f033 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Mon, 21 Jan 2013 15:58:22 -0800 Subject: BulletSim: allow changing position and rotation of a child of a linkset without rebuilding the whole compound shape. Should make vehicles move smoother. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 28 ++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index c1bf766..41bab26 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,25 +1,20 @@ CURRENT PRIORITIES ================================================= -Mantis 6040 script http://opensimulator.org/mantis/view.php?id=6040 - Msg Kayaker on OSGrid when working +Child movement in linkset (don't rebuild linkset) +Vehicle angular vertical attraction +vehicle angular banking +Center-of-gravity +Vehicle angular deflection + Preferred orientation angular correction fix when should angular and linear motor targets be zeroed? when selected? Need a vehicle.clear()? Or an 'else' in prestep if not physical. Teravus llMoveToTarget script debug Mixing of hover, buoyancy/gravity, moveToTarget, into one force -Boats floating at proper level Nebadon vehicles turning funny in arena limitMotorUp calibration (more down?) llRotLookAt llLookAt -Vehicle angular vertical attraction -Vehicle angular deflection - Preferred orientation angular correction fix -vehicle angular banking Avatars walking up stairs (HALF DONE) - Radius of the capsule affects ability to climb edges. -Vehicle movement on terrain smoothness -When is force introduced by SetForce removed? The prestep action could go forever. -Boats float low in the water (DONE) Avatar movement flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE) walking up stairs is not calibrated correctly (stairs out of Kepler cabin) @@ -75,6 +70,7 @@ Incorporate inter-relationship of angular corrections. For instance, angularDefl GENERAL TODO LIST: ================================================= +llMoveToTarget objects are not effected by gravity until target is removed. Implement llSetPhysicalMaterial. extend it with Center-of-mass, rolling friction, density Implement llSetForceAndTorque. @@ -315,4 +311,12 @@ Remove HeightmapInfo from terrain specification (DONE) 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) \ No newline at end of file + (Resolution: made angular motor direction correct coordinate system) +Mantis 6040 script http://opensimulator.org/mantis/view.php?id=6040 (DONE) + Msg Kayaker on OSGrid when working + (Resolution: LINEAR_DIRECTION is in vehicle coords. Test script does the + same in SL as in OS/BulletSim) +Boats float low in the water (DONE) +Boats floating at proper level (DONE) +When is force introduced by SetForce removed? The prestep action could go forever. (DONE) + (Resolution: setForce registers a prestep action which keeps applying the force) \ No newline at end of file -- cgit v1.1 From c1371ab786a699ce91693e6e575bb81144a79c57 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Wed, 23 Jan 2013 08:28:36 -0800 Subject: BulletSim: working on COM --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 41bab26..801f690 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,5 +1,7 @@ CURRENT PRIORITIES ================================================= +Deleting a linkset while standing on the root will leave the physical shape of the root behind. + Not sure if it is because standing on it. Done with large prim linksets. Child movement in linkset (don't rebuild linkset) Vehicle angular vertical attraction vehicle angular banking -- cgit v1.1 From dd08e1fba6e154002a7fe8f46c8c01e6e61d39db Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Fri, 25 Jan 2013 12:00:19 -0800 Subject: BulletSim: parameterize several vehicle debugging values: physical linear and angular force factors now default to less than 1 (0.2) vehicle friction and restitution now default to low values --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 801f690..7917795 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -2,7 +2,6 @@ CURRENT PRIORITIES ================================================= Deleting a linkset while standing on the root will leave the physical shape of the root behind. Not sure if it is because standing on it. Done with large prim linksets. -Child movement in linkset (don't rebuild linkset) Vehicle angular vertical attraction vehicle angular banking Center-of-gravity @@ -12,6 +11,7 @@ when should angular and linear motor targets be zeroed? when selected? Need a vehicle.clear()? Or an 'else' in prestep if not physical. Teravus llMoveToTarget script debug Mixing of hover, buoyancy/gravity, moveToTarget, into one force + Setting hover height to zero disables hover even if hover flags are on (from SL wiki) Nebadon vehicles turning funny in arena limitMotorUp calibration (more down?) llRotLookAt @@ -72,7 +72,11 @@ Incorporate inter-relationship of angular corrections. For instance, angularDefl GENERAL TODO LIST: ================================================= +Avatar standing on a moving object should start to move with the object. llMoveToTarget objects are not effected by gravity until target is removed. +Compute CCD parameters based on body size +Can solver iterations be changed per body/shape? Can be for constraints but what + about regular vehicles? Implement llSetPhysicalMaterial. extend it with Center-of-mass, rolling friction, density Implement llSetForceAndTorque. @@ -321,4 +325,5 @@ Mantis 6040 script http://opensimulator.org/mantis/view.php?id=6040 (DONE) Boats float low in the water (DONE) Boats floating at proper level (DONE) When is force introduced by SetForce removed? The prestep action could go forever. (DONE) - (Resolution: setForce registers a prestep action which keeps applying the force) \ No newline at end of file + (Resolution: setForce registers a prestep action which keeps applying the force) +Child movement in linkset (don't rebuild linkset) (DONE 20130122)) \ No newline at end of file -- cgit v1.1 From ddef8f16e58471d19baa63f14134b25309cf2570 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Fri, 25 Jan 2013 16:00:17 -0800 Subject: BulletSim: first attempt at reporting top colliders --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 7917795..a95e169 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,5 +1,9 @@ CURRENT PRIORITIES ================================================= +One sided meshes? Should terrain be built into a closed shape? + When meshes get partially wedged into the terrain, they cannot push themselves out. + It is possible that Bullet processes collisions whether entering or leaving a mesh. + Ref: http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=4869 Deleting a linkset while standing on the root will leave the physical shape of the root behind. Not sure if it is because standing on it. Done with large prim linksets. Vehicle angular vertical attraction -- cgit v1.1 From ed71c939fc22059b03572fe6380fcc754c89a284 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 31 Jan 2013 10:26:53 -0800 Subject: BulletSim: make sure vehicle physical properties are set when going physical by delaying setting until pre-step time. Change vehicle.Refresh() to schedule the pre-step setting. Comments and updating of TODO list. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 30 ++++++++-------------- 1 file changed, 11 insertions(+), 19 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index a95e169..d574a49 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -6,6 +6,7 @@ One sided meshes? Should terrain be built into a closed shape? Ref: http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=4869 Deleting a linkset while standing on the root will leave the physical shape of the root behind. Not sure if it is because standing on it. Done with large prim linksets. +Terrain detail: double terrain mesh detail Vehicle angular vertical attraction vehicle angular banking Center-of-gravity @@ -34,34 +35,20 @@ Vehicle script tuning/debugging Weapon shooter script Add material densities to the material types -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 - getPos-> btRigidBody::upcast -> getBodyType -> BOOM -20121128.1600: mesh object not rezzing (no physics mesh). - Causes many errors. Doesn't stop after first error with box shape. - Eventually crashes when deleting the object. -20121206.1434: rez Sam-pan into OSGrid BulletSim11 region - Immediate simulator crash. Mono does not output any stacktrace and - log just stops after reporting taint-time linking of the linkset. - VEHICLES TODO LIST: ================================================= Border crossing with linked vehicle causes crash + 20121129.1411: editting/moving phys object across region boundries causes crash + getPos-> btRigidBody::upcast -> getBodyType -> BOOM Vehicles (Move smoothly) Some vehicles should not be able to turn if no speed or off ground. +What to do if vehicle and prim buoyancy differ? Cannot edit/move a vehicle being ridden: it jumps back to the origional position. Neb car jiggling left and right Happens on terrain and any other mesh object. Flat cubes are much smoother. This has been reduced but not eliminated. Implement referenceFrame for all the motion routines. For limitMotorUp, use raycast down to find if vehicle is in the air. -Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. - Verify that angular motion specified around Z moves in the vehicle coordinates. Verify llGetVel() is returning a smooth and good value for vehicle movement. llGetVel() should return the root's velocity if requested in a child prim. Implement function efficiency for lineaar and angular motion. @@ -73,10 +60,11 @@ Remove vehicle angular velocity zeroing in BSPrim.UpdateProperties(). Incorporate inter-relationship of angular corrections. For instance, angularDeflection and angularMotorUp will compute same X or Y correction. When added together creates over-correction and over-shoot and wabbling. +Vehicle attributes are not restored when a vehicle is rezzed on region creation + Create vehicle, setup vehicle properties, restart region, vehicle is not reinitialized. GENERAL TODO LIST: ================================================= -Avatar standing on a moving object should start to move with the object. llMoveToTarget objects are not effected by gravity until target is removed. Compute CCD parameters based on body size Can solver iterations be changed per body/shape? Can be for constraints but what @@ -330,4 +318,8 @@ Boats float low in the water (DONE) Boats floating at proper level (DONE) When is force introduced by SetForce removed? The prestep action could go forever. (DONE) (Resolution: setForce registers a prestep action which keeps applying the force) -Child movement in linkset (don't rebuild linkset) (DONE 20130122)) \ No newline at end of file +Child movement in linkset (don't rebuild linkset) (DONE 20130122)) +Avatar standing on a moving object should start to move with the object. (DONE 20130125) +Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. + Verify that angular motion specified around Z moves in the vehicle coordinates. + DONE 20130120: BulletSim properly applies force in vehicle relative coordinates. \ No newline at end of file -- cgit v1.1 From 75a05c16c5c0ec0712f7f564b60530e0a3fd1c82 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 31 Jan 2013 15:52:50 -0800 Subject: BulletSim: fix crash caused when linksets were rebuilt. A problem added when individual child pos/rot changes were implementated a week or so ago. Remove some passing of inTaintTime flag when it was never false. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index d574a49..7dfdec1 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -65,6 +65,10 @@ Vehicle attributes are not restored when a vehicle is rezzed on region creation GENERAL TODO LIST: ================================================= +Collisions are inconsistant: arrows are supposed to hit and report collision. Often don't. + If arrow show at prim, collision reported about 1/3 of time. If collision reported, + both arrow and prim report it. The arrow bounces off the prim 9 out of 10 times. + Shooting 5m sphere "arrows" at 60m/s. llMoveToTarget objects are not effected by gravity until target is removed. Compute CCD parameters based on body size Can solver iterations be changed per body/shape? Can be for constraints but what -- cgit v1.1 From 5bb85a14d46ad280b045e945edcc9e9bc6045612 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Fri, 1 Feb 2013 11:52:27 -0800 Subject: BulletSim: fix problem where editting a physical linkset caused the child prim physical positions to get out of sync with the view. More reliably compute the offset of children in a physical linkset. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 7dfdec1..a3b3556 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -127,6 +127,7 @@ Physical and phantom will drop through the terrain LINKSETS ====================================================== +Child prims do not report collisions Editing a child of a linkset causes the child to go phantom Move a child prim once when it is physical and can never move it again without it going phantom Offset the center of the linkset to be the geometric center of all the prims -- cgit v1.1 From 13233da66c96e9fb8b4f8c5c98aa34c8b6ccf1b7 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Sun, 3 Feb 2013 21:48:11 -0800 Subject: BulletSim: add debugging looking for doorway sculpty problems --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index a3b3556..1eaa523 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -128,6 +128,9 @@ Physical and phantom will drop through the terrain LINKSETS ====================================================== Child prims do not report collisions +Allow children of a linkset to be phantom: + http://opensim-dev.2196679.n2.nabble.com/Setting-a-single-child-prim-to-Phantom-tp7578513.html + Add OS_STATUS_PHANTOM_PRIM to llSetLinkPrimitaveParamsFast. Editing a child of a linkset causes the child to go phantom Move a child prim once when it is physical and can never move it again without it going phantom Offset the center of the linkset to be the geometric center of all the prims -- cgit v1.1 From dce9e323f4f0fdccd2f34266e870de9cbcebd2f0 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 5 Feb 2013 16:51:02 -0800 Subject: BulletSim: remove degenerate triangles from meshes. This fixes the invisible barriers in sculptie doorways (Mantis 6529). Bump up level-of-detail for physical meshes to 32 (the max). This fixes the invisible barriers that showed up in prim cut arches. NOTE: the default LOD values are removed from OpenSimDefaults.ini. If you don't change your OpenSimDefaults.ini, you will continue to see the arch problem. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 1eaa523..bda7c47 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -65,6 +65,8 @@ Vehicle attributes are not restored when a vehicle is rezzed on region creation GENERAL TODO LIST: ================================================= +Level-of-detail for mesh creation. Prims with circular interiors require lod of 32. + Is much saved with lower LODs? At the moment, all set to 32. Collisions are inconsistant: arrows are supposed to hit and report collision. Often don't. If arrow show at prim, collision reported about 1/3 of time. If collision reported, both arrow and prim report it. The arrow bounces off the prim 9 out of 10 times. -- cgit v1.1 From efb5da0aa672551a8a68e16066f3dd3991f75da4 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Thu, 21 Feb 2013 08:52:11 -0800 Subject: BulletSim: add OutOfBounds logic and some position sanity checking to eliminate some of the "cannot find terrain height" warning messages. --- .../Region/Physics/BulletSPlugin/BulletSimTODO.txt | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index bda7c47..49718c4 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,17 +1,16 @@ CURRENT PRIORITIES ================================================= -One sided meshes? Should terrain be built into a closed shape? - When meshes get partially wedged into the terrain, they cannot push themselves out. - It is possible that Bullet processes collisions whether entering or leaving a mesh. - Ref: http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=4869 Deleting a linkset while standing on the root will leave the physical shape of the root behind. Not sure if it is because standing on it. Done with large prim linksets. -Terrain detail: double terrain mesh detail Vehicle angular vertical attraction vehicle angular banking Center-of-gravity Vehicle angular deflection Preferred orientation angular correction fix +Enable vehicle border crossings (at least as poorly as ODE) + Terrain skirts + Avatar created in previous region and not new region when crossing border + Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) when should angular and linear motor targets be zeroed? when selected? Need a vehicle.clear()? Or an 'else' in prestep if not physical. Teravus llMoveToTarget script debug @@ -26,14 +25,16 @@ Avatar movement flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE) walking up stairs is not calibrated correctly (stairs out of Kepler cabin) avatar capsule rotation completed (NOT DONE - Bullet's capsule shape is not the solution) -Enable vehicle border crossings (at least as poorly as ODE) - Terrain skirts - Avatar created in previous region and not new region when crossing border - Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) Vehicle script tuning/debugging Avanti speed script Weapon shooter script -Add material densities to the material types +Move material definitions (friction, ...) into simulator. +Add material densities to the material types. +Terrain detail: double terrain mesh detail +One sided meshes? Should terrain be built into a closed shape? + When meshes get partially wedged into the terrain, they cannot push themselves out. + It is possible that Bullet processes collisions whether entering or leaving a mesh. + Ref: http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=4869 VEHICLES TODO LIST: ================================================= @@ -65,6 +66,7 @@ Vehicle attributes are not restored when a vehicle is rezzed on region creation GENERAL TODO LIST: ================================================= +Add a sanity check for PIDTarget location. Level-of-detail for mesh creation. Prims with circular interiors require lod of 32. Is much saved with lower LODs? At the moment, all set to 32. Collisions are inconsistant: arrows are supposed to hit and report collision. Often don't. -- cgit v1.1 From bf9132e1c7a1ddaf291101f60f43c0cbd0f53662 Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Tue, 26 Feb 2013 11:32:01 -0800 Subject: BulletSim: fix crash around race condition when a mesh asset cannot be fetched. Update TODO list. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 49718c4..4dc16f4 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -1,5 +1,12 @@ CURRENT PRIORITIES ================================================= +Use the HACD convex hull routine in Bullet rather than the C# version. + Speed up hullifying large meshes. +Enable vehicle border crossings (at least as poorly as ODE) + Terrain skirts + Avatar created in previous region and not new region when crossing border + Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) +Lock axis Deleting a linkset while standing on the root will leave the physical shape of the root behind. Not sure if it is because standing on it. Done with large prim linksets. Vehicle angular vertical attraction @@ -7,16 +14,11 @@ vehicle angular banking Center-of-gravity Vehicle angular deflection Preferred orientation angular correction fix -Enable vehicle border crossings (at least as poorly as ODE) - Terrain skirts - Avatar created in previous region and not new region when crossing border - Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) when should angular and linear motor targets be zeroed? when selected? Need a vehicle.clear()? Or an 'else' in prestep if not physical. Teravus llMoveToTarget script debug Mixing of hover, buoyancy/gravity, moveToTarget, into one force Setting hover height to zero disables hover even if hover flags are on (from SL wiki) -Nebadon vehicles turning funny in arena limitMotorUp calibration (more down?) llRotLookAt llLookAt @@ -66,6 +68,8 @@ Vehicle attributes are not restored when a vehicle is rezzed on region creation GENERAL TODO LIST: ================================================= +Resitution of a prim works on another prim but not on terrain. + The dropped prim doesn't bounce properly on the terrain. Add a sanity check for PIDTarget location. Level-of-detail for mesh creation. Prims with circular interiors require lod of 32. Is much saved with lower LODs? At the moment, all set to 32. @@ -163,7 +167,6 @@ 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. Do we need to do convex hulls all the time? Can complex meshes be left meshes? There is some problem with meshes and collisions Hulls are not as detailed as meshes. Hulled vehicles insides are different shape. @@ -334,4 +337,5 @@ Child movement in linkset (don't rebuild linkset) (DONE 20130122)) Avatar standing on a moving object should start to move with the object. (DONE 20130125) Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. Verify that angular motion specified around Z moves in the vehicle coordinates. - DONE 20130120: BulletSim properly applies force in vehicle relative coordinates. \ No newline at end of file + DONE 20130120: BulletSim properly applies force in vehicle relative coordinates. +Nebadon vehicles turning funny in arena (DONE) \ No newline at end of file -- cgit v1.1 From 326634a0b38fc21fd52a7bfb0c89a0d4c13f0dae Mon Sep 17 00:00:00 2001 From: Robert Adams Date: Fri, 1 Mar 2013 09:43:40 -0800 Subject: BulletSim: more things into the TODO list. --- OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt') diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 4dc16f4..8a15abe 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt @@ -9,6 +9,9 @@ Enable vehicle border crossings (at least as poorly as ODE) Lock axis Deleting a linkset while standing on the root will leave the physical shape of the root behind. Not sure if it is because standing on it. Done with large prim linksets. +Linkset child rotations. + Nebadon spiral tube has middle sections which are rotated wrong. + Select linked spiral tube. Delink and note where the middle section ends up. Vehicle angular vertical attraction vehicle angular banking Center-of-gravity @@ -68,6 +71,8 @@ Vehicle attributes are not restored when a vehicle is rezzed on region creation GENERAL TODO LIST: ================================================= +Explore btGImpactMeshShape as alternative to convex hulls for simplified physical objects. + Regular triangle meshes don't do physical collisions. Resitution of a prim works on another prim but not on terrain. The dropped prim doesn't bounce properly on the terrain. Add a sanity check for PIDTarget location. @@ -338,4 +343,4 @@ Avatar standing on a moving object should start to move with the object. (DONE 2 Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. Verify that angular motion specified around Z moves in the vehicle coordinates. DONE 20130120: BulletSim properly applies force in vehicle relative coordinates. -Nebadon vehicles turning funny in arena (DONE) \ No newline at end of file +Nebadon vehicles turning funny in arena (DONE) -- cgit v1.1