aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics
diff options
context:
space:
mode:
authorRobert Adams2012-12-06 09:23:20 -0800
committerRobert Adams2012-12-06 09:31:05 -0800
commitedd1b353a5b683b7d9b22e80d97e15e05f34611c (patch)
tree6cd9eb1b6dc90e3aab963fa4f99b0d52afa2e10a /OpenSim/Region/Physics
parentBulletSim: add detail logging detail flag so I don't have to comment and unco... (diff)
downloadopensim-SC_OLD-edd1b353a5b683b7d9b22e80d97e15e05f34611c.zip
opensim-SC_OLD-edd1b353a5b683b7d9b22e80d97e15e05f34611c.tar.gz
opensim-SC_OLD-edd1b353a5b683b7d9b22e80d97e15e05f34611c.tar.bz2
opensim-SC_OLD-edd1b353a5b683b7d9b22e80d97e15e05f34611c.tar.xz
BulletSim: update and add to the TODO list.
Diffstat (limited to 'OpenSim/Region/Physics')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt87
1 files changed, 56 insertions, 31 deletions
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
6 Causes many errors. Doesn't stop after first error with box shape. 6 Causes many errors. Doesn't stop after first error with box shape.
7 Eventually crashes when deleting the object. 7 Eventually crashes when deleting the object.
8 8
9BULLETSIM TODO LIST: 9VEHICLES TODO LIST:
10================================================= 10=================================================
11Neb car jiggling left and right 11Neb car jiggling left and right
12 Happens on terrain and any other mesh object. Flat cubes are much smoother.
12Vehicles (Move smoothly) 13Vehicles (Move smoothly)
13Light cycle falling over when driving 14Add vehicle collisions so IsColliding is properly reported.
14Light cycle not banking 15 Needed for banking, limitMotorUp, movementLimiting, ...
15Do single prim vehicles don't seem to properly vehiclize. 16Some vehicles should not be able to turn if no speed or off ground.
16Gun sending shooter flying 17For limitMotorUp, use raycast down to find if vehicle is in the air.
18Implement function efficiency for lineaar and angular motion.
19Should vehicle angular/linear movement friction happen after all the components
20 or does it only apply to the basic movement?
21After getting off a vehicle, the root prim is phantom (can be walked through)
22 Need to force a position update for the root prim after compound shape destruction
23Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint)
24Implement referenceFrame for all the motion routines.
25Cannot edit/move a vehicle being ridden: it jumps back to the origional position.
26
27BULLETSIM TODO LIST:
28=================================================
29Disable activity of passive linkset children.
30 Since the linkset is a compound object, the old prims are left lying
31 around and need to be phantomized so they don't collide, ...
32Scenes with hundred of thousands of static objects take a lot of physics CPU time.
33BSPrim.Force should set a continious force on the prim. The force should be
34 applied each tick. Some limits?
35Single prim vehicles don't seem to properly vehiclize.
36Gun sending shooter flying.
17Collision margin (gap between physical objects lying on each other) 37Collision margin (gap between physical objects lying on each other)
18Boundry checking (crashes related to crossing boundry) 38Boundry checking (crashes related to crossing boundry)
19 Add check for border edge position for avatars and objects. 39 Add check for border edge position for avatars and objects.
@@ -28,10 +48,11 @@ Small physical objects do not interact correctly
28Add material type linkage and input all the material property definitions. 48Add material type linkage and input all the material property definitions.
29 Skeleton classes and table are in the sources but are not filled or used. 49 Skeleton classes and table are in the sources but are not filled or used.
30Add PID motor for avatar movement (slow to stop, ...) 50Add PID motor for avatar movement (slow to stop, ...)
31Implement function efficiency for lineaar and angular motion. 51setForce should set a constant force. Different than AddImpulse.
52Implement raycast.
53Implement ShapeCollection.Dispose()
54Implement water as a plain so raycasting and collisions can happen with same.
32 55
33After getting off a vehicle, the root prim is phantom (can be walked through)
34 Need to force a position update for the root prim after compound shape destruction
35Find/remove avatar collision with ID=0. 56Find/remove avatar collision with ID=0.
36Test avatar walking up stairs. How does compare with SL. 57Test avatar walking up stairs. How does compare with SL.
37 Radius of the capsule affects ability to climb edges. 58 Radius of the capsule affects ability to climb edges.
@@ -39,19 +60,16 @@ Tune terrain/object friction to be closer to SL.
39Debounce avatar contact so legs don't keep folding up when standing. 60Debounce avatar contact so legs don't keep folding up when standing.
40Implement LSL physics controls. Like STATUS_ROTATE_X. 61Implement LSL physics controls. Like STATUS_ROTATE_X.
41Add border extensions to terrain to help region crossings and objects leaving region. 62Add border extensions to terrain to help region crossings and objects leaving region.
42Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint)
43 63
44Speed up creation of large physical linksets 64Speed up creation of large physical linksets
45 For instance, sitting in Neb's car (130 prims) takes several seconds to become physical 65 For instance, sitting in Neb's car (130 prims) takes several seconds to become physical
46Performance test with lots of avatars. Can BulletSim support a thousand? 66Performance test with lots of avatars. Can BulletSim support a thousand?
47Optimize collisions in C++: only send up to the object subscribed to collisions. 67Optimize collisions in C++: only send up to the object subscribed to collisions.
48 Use collision subscription and remove the collsion(A,B) and collision(B,A) 68 Use collision subscription and remove the collsion(A,B) and collision(B,A)
49Check wheter SimMotionState needs large if statement (see TODO). 69Check whether SimMotionState needs large if statement (see TODO).
50 70
51Implement 'top colliders' info. 71Implement 'top colliders' info.
52Avatar jump 72Avatar jump
53Implement meshes or just verify that they work.
54Do prim hash codes work for sculpties and meshes?
55Performance measurement and changes to make quicker. 73Performance measurement and changes to make quicker.
56Implement detailed physics stats (GetStats()). 74Implement detailed physics stats (GetStats()).
57 75
@@ -67,8 +85,6 @@ Performance of closures and delegates for taint processing
67Is there are more efficient method of implementing pre and post step actions? 85Is there are more efficient method of implementing pre and post step actions?
68 See http://www.codeproject.com/Articles/29922/Weak-Events-in-C 86 See http://www.codeproject.com/Articles/29922/Weak-Events-in-C
69 87
70Package Bullet source mods for Bullet internal stats output
71
72Physics Arena central pyramid: why is one side permiable? 88Physics Arena central pyramid: why is one side permiable?
73 89
74INTERNAL IMPROVEMENT/CLEANUP 90INTERNAL IMPROVEMENT/CLEANUP
@@ -85,33 +101,42 @@ Complete implemention of preStepActions
85 Replace vehicle step call with prestep event. 101 Replace vehicle step call with prestep event.
86 Is there a need for postStepActions? postStepTaints? 102 Is there a need for postStepActions? postStepTaints?
87Implement linkset by setting position of children when root updated. (LinksetManual) 103Implement linkset by setting position of children when root updated. (LinksetManual)
104 Linkset implementation using manual prim movement.
88LinkablePrim class? Would that simplify/centralize the linkset logic? 105LinkablePrim class? Would that simplify/centralize the linkset logic?
89Linkset implementation using manual prim movement.
90Linkset implementation using compound shapes.
91 Compound shapes will need the LocalID in the shapes and collision
92 processing to get it from there.
93BSScene.UpdateParameterSet() is broken. How to set params on objects? 106BSScene.UpdateParameterSet() is broken. How to set params on objects?
94Remove HeightmapInfo from terrain specification. 107Remove HeightmapInfo from terrain specification.
95 Since C++ code does not need terrain height, this structure et al are not needed. 108 Since C++ code does not need terrain height, this structure et al are not needed.
96Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will 109Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will
97 bob at the water level. BSPrim.PositionSanityCheck(). 110 bob at the water level. BSPrim.PositionSanityCheck().
98 111
112THREADING
113=================================================
114Do taint action immediately if not actually executing Bullet.
115 Add lock around Bullet execution and just do taint actions if simulation is not happening.
116
99DONE DONE DONE DONE 117DONE DONE DONE DONE
100================================================= 118=================================================
101Cleanup code in BSDynamics by using motors. 119Cleanup code in BSDynamics by using motors. (Resolution: started)
102Consider implementing terrain with a mesh rather than heightmap. 120Consider implementing terrain with a mesh rather than heightmap. (Resolution: done)
103 Would have better and adjustable resolution. 121 Would have better and adjustable resolution.
104NOTDONE: Build terrain mesh so heighmap is height of the center of the square meter. 122Build terrain mesh so heighmap is height of the center of the square meter.
105 SL and ODE define meter square as being at one corner with one diagional. 123 Resolution: NOT DONE: SL and ODE define meter square as being at one corner with one diagional.
106Terrain as mesh. 124Terrain as mesh. (Resolution: done)
107How are static linksets seen by the physics engine? 125How are static linksets seen by the physics engine?
108 A: they are not linked in physics. When moved, all the children are repositioned. 126 Resolution: they are not linked in physics. When moved, all the children are repositioned.
109Remember to remove BSScene.DetailLog Refresh call. 127Convert BSCharacter to use all API2 (Resolution: done)
110Convert BSCharacter to use all API2
111Avatar pushing difficult (too heavy?) 128Avatar pushing difficult (too heavy?)
112Use asset service passed to BulletSim to get sculptie bodies, etc. 129Use asset service passed to BulletSim to get sculptie bodies, etc. (Resolution: done)
113Vehicles (fix bouncing on terrain) 130Remove old code in DLL (all non-API2 stuff). (Resolution: done)
114Remove old code in DLL (all non-API2 stuff). 131Measurements of mega-physical prim performance (with graph) (Resolution: done, email)
115Measurements of mega-physical prim performance (with graph)
116Debug Bullet internal stats output (why is timing all wrong?) 132Debug Bullet internal stats output (why is timing all wrong?)
117 Bullet stats logging only works with a single instance of Bullet (one region). \ No newline at end of file 133 Resolution: Bullet stats logging only works with a single instance of Bullet (one region).
134Implement meshes or just verify that they work. (Resolution: they do!)
135Do prim hash codes work for sculpties and meshes? (Resolution: yes)
136Linkset implementation using compound shapes. (Resolution: implemented LinksetCompound)
137 Compound shapes will need the LocalID in the shapes and collision
138 processing to get it from there.
139Light cycle falling over when driving (Resolution: implemented VerticalAttractor)
140Light cycle not banking (Resolution: It doesn't. Banking is roll adding yaw.)
141Package Bullet source mods for Bullet internal stats output
142 (Resolution: move code into WorldData.h rather than relying on patches) \ No newline at end of file