diff options
author | Robert Adams | 2012-12-06 09:23:20 -0800 |
---|---|---|
committer | Robert Adams | 2012-12-06 09:31:05 -0800 |
commit | edd1b353a5b683b7d9b22e80d97e15e05f34611c (patch) | |
tree | 6cd9eb1b6dc90e3aab963fa4f99b0d52afa2e10a /OpenSim/Region/Physics/BulletSPlugin | |
parent | BulletSim: add detail logging detail flag so I don't have to comment and unco... (diff) | |
download | opensim-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/BulletSPlugin')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 87 |
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 | ||
9 | BULLETSIM TODO LIST: | 9 | VEHICLES TODO LIST: |
10 | ================================================= | 10 | ================================================= |
11 | Neb car jiggling left and right | 11 | Neb car jiggling left and right |
12 | Happens on terrain and any other mesh object. Flat cubes are much smoother. | ||
12 | Vehicles (Move smoothly) | 13 | Vehicles (Move smoothly) |
13 | Light cycle falling over when driving | 14 | Add vehicle collisions so IsColliding is properly reported. |
14 | Light cycle not banking | 15 | Needed for banking, limitMotorUp, movementLimiting, ... |
15 | Do single prim vehicles don't seem to properly vehiclize. | 16 | Some vehicles should not be able to turn if no speed or off ground. |
16 | Gun sending shooter flying | 17 | For limitMotorUp, use raycast down to find if vehicle is in the air. |
18 | Implement function efficiency for lineaar and angular motion. | ||
19 | Should vehicle angular/linear movement friction happen after all the components | ||
20 | or does it only apply to the basic movement? | ||
21 | After 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 | ||
23 | Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) | ||
24 | Implement referenceFrame for all the motion routines. | ||
25 | Cannot edit/move a vehicle being ridden: it jumps back to the origional position. | ||
26 | |||
27 | BULLETSIM TODO LIST: | ||
28 | ================================================= | ||
29 | Disable 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, ... | ||
32 | Scenes with hundred of thousands of static objects take a lot of physics CPU time. | ||
33 | BSPrim.Force should set a continious force on the prim. The force should be | ||
34 | applied each tick. Some limits? | ||
35 | Single prim vehicles don't seem to properly vehiclize. | ||
36 | Gun sending shooter flying. | ||
17 | Collision margin (gap between physical objects lying on each other) | 37 | Collision margin (gap between physical objects lying on each other) |
18 | Boundry checking (crashes related to crossing boundry) | 38 | Boundry 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 | |||
28 | Add material type linkage and input all the material property definitions. | 48 | Add 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. |
30 | Add PID motor for avatar movement (slow to stop, ...) | 50 | Add PID motor for avatar movement (slow to stop, ...) |
31 | Implement function efficiency for lineaar and angular motion. | 51 | setForce should set a constant force. Different than AddImpulse. |
52 | Implement raycast. | ||
53 | Implement ShapeCollection.Dispose() | ||
54 | Implement water as a plain so raycasting and collisions can happen with same. | ||
32 | 55 | ||
33 | After 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 | ||
35 | Find/remove avatar collision with ID=0. | 56 | Find/remove avatar collision with ID=0. |
36 | Test avatar walking up stairs. How does compare with SL. | 57 | Test 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. | |||
39 | Debounce avatar contact so legs don't keep folding up when standing. | 60 | Debounce avatar contact so legs don't keep folding up when standing. |
40 | Implement LSL physics controls. Like STATUS_ROTATE_X. | 61 | Implement LSL physics controls. Like STATUS_ROTATE_X. |
41 | Add border extensions to terrain to help region crossings and objects leaving region. | 62 | Add border extensions to terrain to help region crossings and objects leaving region. |
42 | Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) | ||
43 | 63 | ||
44 | Speed up creation of large physical linksets | 64 | Speed 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 |
46 | Performance test with lots of avatars. Can BulletSim support a thousand? | 66 | Performance test with lots of avatars. Can BulletSim support a thousand? |
47 | Optimize collisions in C++: only send up to the object subscribed to collisions. | 67 | Optimize 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) |
49 | Check wheter SimMotionState needs large if statement (see TODO). | 69 | Check whether SimMotionState needs large if statement (see TODO). |
50 | 70 | ||
51 | Implement 'top colliders' info. | 71 | Implement 'top colliders' info. |
52 | Avatar jump | 72 | Avatar jump |
53 | Implement meshes or just verify that they work. | ||
54 | Do prim hash codes work for sculpties and meshes? | ||
55 | Performance measurement and changes to make quicker. | 73 | Performance measurement and changes to make quicker. |
56 | Implement detailed physics stats (GetStats()). | 74 | Implement detailed physics stats (GetStats()). |
57 | 75 | ||
@@ -67,8 +85,6 @@ Performance of closures and delegates for taint processing | |||
67 | Is there are more efficient method of implementing pre and post step actions? | 85 | Is 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 | ||
70 | Package Bullet source mods for Bullet internal stats output | ||
71 | |||
72 | Physics Arena central pyramid: why is one side permiable? | 88 | Physics Arena central pyramid: why is one side permiable? |
73 | 89 | ||
74 | INTERNAL IMPROVEMENT/CLEANUP | 90 | INTERNAL 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? |
87 | Implement linkset by setting position of children when root updated. (LinksetManual) | 103 | Implement linkset by setting position of children when root updated. (LinksetManual) |
104 | Linkset implementation using manual prim movement. | ||
88 | LinkablePrim class? Would that simplify/centralize the linkset logic? | 105 | LinkablePrim class? Would that simplify/centralize the linkset logic? |
89 | Linkset implementation using manual prim movement. | ||
90 | Linkset implementation using compound shapes. | ||
91 | Compound shapes will need the LocalID in the shapes and collision | ||
92 | processing to get it from there. | ||
93 | BSScene.UpdateParameterSet() is broken. How to set params on objects? | 106 | BSScene.UpdateParameterSet() is broken. How to set params on objects? |
94 | Remove HeightmapInfo from terrain specification. | 107 | Remove 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. |
96 | Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will | 109 | Add 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 | ||
112 | THREADING | ||
113 | ================================================= | ||
114 | Do 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 | |||
99 | DONE DONE DONE DONE | 117 | DONE DONE DONE DONE |
100 | ================================================= | 118 | ================================================= |
101 | Cleanup code in BSDynamics by using motors. | 119 | Cleanup code in BSDynamics by using motors. (Resolution: started) |
102 | Consider implementing terrain with a mesh rather than heightmap. | 120 | Consider implementing terrain with a mesh rather than heightmap. (Resolution: done) |
103 | Would have better and adjustable resolution. | 121 | Would have better and adjustable resolution. |
104 | NOTDONE: Build terrain mesh so heighmap is height of the center of the square meter. | 122 | Build 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. |
106 | Terrain as mesh. | 124 | Terrain as mesh. (Resolution: done) |
107 | How are static linksets seen by the physics engine? | 125 | How 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. |
109 | Remember to remove BSScene.DetailLog Refresh call. | 127 | Convert BSCharacter to use all API2 (Resolution: done) |
110 | Convert BSCharacter to use all API2 | ||
111 | Avatar pushing difficult (too heavy?) | 128 | Avatar pushing difficult (too heavy?) |
112 | Use asset service passed to BulletSim to get sculptie bodies, etc. | 129 | Use asset service passed to BulletSim to get sculptie bodies, etc. (Resolution: done) |
113 | Vehicles (fix bouncing on terrain) | 130 | Remove old code in DLL (all non-API2 stuff). (Resolution: done) |
114 | Remove old code in DLL (all non-API2 stuff). | 131 | Measurements of mega-physical prim performance (with graph) (Resolution: done, email) |
115 | Measurements of mega-physical prim performance (with graph) | ||
116 | Debug Bullet internal stats output (why is timing all wrong?) | 132 | Debug 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). |
134 | Implement meshes or just verify that they work. (Resolution: they do!) | ||
135 | Do prim hash codes work for sculpties and meshes? (Resolution: yes) | ||
136 | Linkset 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. | ||
139 | Light cycle falling over when driving (Resolution: implemented VerticalAttractor) | ||
140 | Light cycle not banking (Resolution: It doesn't. Banking is roll adding yaw.) | ||
141 | Package 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 | ||