BulletSim: updates and rearrangement of the TODO list.

0.7.5-pf-bulletsim
Robert Adams 2012-12-11 16:46:43 -08:00
parent 512e4c9313
commit 7bb5613dc6
1 changed files with 33 additions and 14 deletions

View File

@ -20,6 +20,10 @@ Neb car jiggling left and right
Happens on terrain and any other mesh object. Flat cubes are much smoother. Happens on terrain and any other mesh object. Flat cubes are much smoother.
This has been reduced but not eliminated. This has been reduced but not eliminated.
For limitMotorUp, use raycast down to find if vehicle is in the air. 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. Implement function efficiency for lineaar and angular motion.
Should vehicle angular/linear movement friction happen after all the components Should vehicle angular/linear movement friction happen after all the components
or does it only apply to the basic movement? or does it only apply to the basic movement?
@ -32,19 +36,14 @@ Border crossing with linked vehicle causes crash
BULLETSIM TODO LIST: BULLETSIM TODO LIST:
================================================= =================================================
Avatar height off after unsitting (float off ground) Avatar height off after unsitting (floats off ground)
Editting appearance then moving restores. Editting appearance then moving restores.
Must not be initializing height when recreating capsule after unsit. Must not be initializing height when recreating capsule after unsit.
Duplicating a physical prim causes old prim to jump away 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. 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. 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 BSPrim.Force should set a continious force on the prim. The force should be
applied each tick. Some limits? 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. Gun sending shooter flying.
Collision margin (gap between physical objects lying on each other) Collision margin (gap between physical objects lying on each other)
Boundry checking (crashes related to crossing boundry) 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 The chain will fall apart and pairs will dance around on ground
Chains of 1x1x.2 will stay connected but will dance. 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 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, ...) Add PID motor for avatar movement (slow to stop, ...)
setForce should set a constant force. Different than AddImpulse. setForce should set a constant force. Different than AddImpulse.
Implement raycast. Implement raycast.
Implement ShapeCollection.Dispose() Implement ShapeCollection.Dispose()
Implement water as a plain so raycasting and collisions can happen with same. 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. Find/remove avatar collision with ID=0.
Test avatar walking up stairs. How does compare with SL. Test avatar walking up stairs. How does compare with SL.
Radius of the capsule affects ability to climb edges. 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. Implement LSL physics controls. Like STATUS_ROTATE_X.
Add border extensions to terrain to help region crossings and objects leaving region. 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? Performance test with lots of avatars. Can BulletSim support a thousand?
Optimize collisions in C++: only send up to the object subscribed to collisions. 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) 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. Performance measurement and changes to make quicker.
Implement detailed physics stats (GetStats()). 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 Measure performance improvement from hulls
Test not using ghost objects for volume detect implementation. Test not using ghost objects for volume detect implementation.
Performance of closures and delegates for taint processing Performance of closures and delegates for taint processing
@ -101,6 +114,9 @@ Physics Arena central pyramid: why is one side permiable?
INTERNAL IMPROVEMENT/CLEANUP 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) Remove unused fields from ShapeData (not used in API2)
Breakout code for mesh/hull/compound/native into separate BSShape* classes Breakout code for mesh/hull/compound/native into separate BSShape* classes
Standardize access to building and reference code. 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) (Resolution: move code into WorldData.h rather than relying on patches)
Single prim vehicles don't seem to properly vehiclize. Single prim vehicles don't seem to properly vehiclize.
(Resolution: mass was not getting set properly for single prim linksets) (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: