diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 64 |
1 files changed, 47 insertions, 17 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index a2161c3..7d6ace8 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | |||
@@ -11,13 +11,20 @@ CRASHES | |||
11 | 11 | ||
12 | VEHICLES TODO LIST: | 12 | VEHICLES TODO LIST: |
13 | ================================================= | 13 | ================================================= |
14 | Neb car jiggling left and right | 14 | Neb vehicle taking > 25ms of physics time!! |
15 | Happens on terrain and any other mesh object. Flat cubes are much smoother. | ||
16 | Vehicles (Move smoothly) | 15 | Vehicles (Move smoothly) |
17 | Add vehicle collisions so IsColliding is properly reported. | 16 | Add vehicle collisions so IsColliding is properly reported. |
18 | Needed for banking, limitMotorUp, movementLimiting, ... | 17 | Needed for banking, limitMotorUp, movementLimiting, ... |
19 | Some vehicles should not be able to turn if no speed or off ground. | 18 | Some vehicles should not be able to turn if no speed or off ground. |
19 | Neb car jiggling left and right | ||
20 | Happens on terrain and any other mesh object. Flat cubes are much smoother. | ||
21 | This has been reduced but not eliminated. | ||
22 | Light cycle falling over when driving | ||
20 | For limitMotorUp, use raycast down to find if vehicle is in the air. | 23 | For limitMotorUp, use raycast down to find if vehicle is in the air. |
24 | Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. | ||
25 | Verify that angular motion specified around Z moves in the vehicle coordinates. | ||
26 | Verify llGetVel() is returning a smooth and good value for vehicle movement. | ||
27 | llGetVel() should return the root's velocity if requested in a child prim. | ||
21 | Implement function efficiency for lineaar and angular motion. | 28 | Implement function efficiency for lineaar and angular motion. |
22 | Should vehicle angular/linear movement friction happen after all the components | 29 | Should vehicle angular/linear movement friction happen after all the components |
23 | or does it only apply to the basic movement? | 30 | or does it only apply to the basic movement? |
@@ -30,15 +37,14 @@ Border crossing with linked vehicle causes crash | |||
30 | 37 | ||
31 | BULLETSIM TODO LIST: | 38 | BULLETSIM TODO LIST: |
32 | ================================================= | 39 | ================================================= |
40 | Avatar height off after unsitting (floats off ground) | ||
41 | Editting appearance then moving restores. | ||
42 | Must not be initializing height when recreating capsule after unsit. | ||
33 | Duplicating a physical prim causes old prim to jump away | 43 | Duplicating a physical prim causes old prim to jump away |
34 | Dup a phys prim and the original become unselected and thus interacts w/ selected prim. | 44 | Dup a phys prim and the original become unselected and thus interacts w/ selected prim. |
35 | Disable activity of passive linkset children. | ||
36 | Since the linkset is a compound object, the old prims are left lying | ||
37 | around and need to be phantomized so they don't collide, ... | ||
38 | Scenes with hundred of thousands of static objects take a lot of physics CPU time. | 45 | Scenes with hundred of thousands of static objects take a lot of physics CPU time. |
39 | BSPrim.Force should set a continious force on the prim. The force should be | 46 | BSPrim.Force should set a continious force on the prim. The force should be |
40 | applied each tick. Some limits? | 47 | applied each tick. Some limits? |
41 | Single prim vehicles don't seem to properly vehiclize. | ||
42 | Gun sending shooter flying. | 48 | Gun sending shooter flying. |
43 | Collision margin (gap between physical objects lying on each other) | 49 | Collision margin (gap between physical objects lying on each other) |
44 | Boundry checking (crashes related to crossing boundry) | 50 | Boundry checking (crashes related to crossing boundry) |
@@ -51,14 +57,34 @@ Small physical objects do not interact correctly | |||
51 | The chain will fall apart and pairs will dance around on ground | 57 | The chain will fall apart and pairs will dance around on ground |
52 | Chains of 1x1x.2 will stay connected but will dance. | 58 | Chains of 1x1x.2 will stay connected but will dance. |
53 | Chains above 2x2x.4 are move stable and get stablier as torui get larger. | 59 | Chains above 2x2x.4 are move stable and get stablier as torui get larger. |
54 | Add material type linkage and input all the material property definitions. | ||
55 | Skeleton classes and table are in the sources but are not filled or used. | ||
56 | Add PID motor for avatar movement (slow to stop, ...) | 60 | Add PID motor for avatar movement (slow to stop, ...) |
57 | setForce should set a constant force. Different than AddImpulse. | 61 | setForce should set a constant force. Different than AddImpulse. |
58 | Implement raycast. | 62 | Implement raycast. |
59 | Implement ShapeCollection.Dispose() | 63 | Implement ShapeCollection.Dispose() |
60 | Implement water as a plain so raycasting and collisions can happen with same. | 64 | Implement water as a plain so raycasting and collisions can happen with same. |
65 | Add osGetPhysicsEngineName() so scripters can tell whether BulletSim or ODE | ||
66 | Also osGetPhysicsEngineVerion() maybe. | ||
67 | |||
68 | LINKSETS | ||
69 | ====================================================== | ||
70 | Linksets should allow collisions to individual children | ||
71 | Add LocalID to children shapes in LinksetCompound and create events for individuals | ||
72 | Verify/think through scripts in children of linksets. What do they reference | ||
73 | and return when getting position, velocity, ... | ||
74 | Confirm constraint linksets still work after making all the changes for compound linksets. | ||
75 | Add 'changed' flag or similar to reduce the number of times a linkset is rebuilt. | ||
76 | For compound linksets, add ability to remove or reposition individual child shapes. | ||
77 | Disable activity of passive linkset children. | ||
78 | Since the linkset is a compound object, the old prims are left lying | ||
79 | around and need to be phantomized so they don't collide, ... | ||
80 | Speed up creation of large physical linksets | ||
81 | For instance, sitting in Neb's car (130 prims) takes several seconds to become physical | ||
82 | Eliminate collisions between objects in a linkset. (LinksetConstraint) | ||
83 | Have UserPointer point to struct with localID and linksetID? | ||
84 | Objects in original linkset still collide with each other? | ||
61 | 85 | ||
86 | MORE | ||
87 | ====================================================== | ||
62 | Find/remove avatar collision with ID=0. | 88 | Find/remove avatar collision with ID=0. |
63 | Test avatar walking up stairs. How does compare with SL. | 89 | Test avatar walking up stairs. How does compare with SL. |
64 | Radius of the capsule affects ability to climb edges. | 90 | Radius of the capsule affects ability to climb edges. |
@@ -67,8 +93,6 @@ Debounce avatar contact so legs don't keep folding up when standing. | |||
67 | Implement LSL physics controls. Like STATUS_ROTATE_X. | 93 | Implement LSL physics controls. Like STATUS_ROTATE_X. |
68 | Add border extensions to terrain to help region crossings and objects leaving region. | 94 | Add border extensions to terrain to help region crossings and objects leaving region. |
69 | 95 | ||
70 | Speed up creation of large physical linksets | ||
71 | For instance, sitting in Neb's car (130 prims) takes several seconds to become physical | ||
72 | Performance test with lots of avatars. Can BulletSim support a thousand? | 96 | Performance test with lots of avatars. Can BulletSim support a thousand? |
73 | Optimize collisions in C++: only send up to the object subscribed to collisions. | 97 | Optimize collisions in C++: only send up to the object subscribed to collisions. |
74 | Use collision subscription and remove the collsion(A,B) and collision(B,A) | 98 | Use collision subscription and remove the collsion(A,B) and collision(B,A) |
@@ -79,10 +103,6 @@ Avatar jump | |||
79 | Performance measurement and changes to make quicker. | 103 | Performance measurement and changes to make quicker. |
80 | Implement detailed physics stats (GetStats()). | 104 | Implement detailed physics stats (GetStats()). |
81 | 105 | ||
82 | Eliminate collisions between objects in a linkset. (LinksetConstraint) | ||
83 | Have UserPointer point to struct with localID and linksetID? | ||
84 | Objects in original linkset still collide with each other? | ||
85 | |||
86 | Measure performance improvement from hulls | 106 | Measure performance improvement from hulls |
87 | Test not using ghost objects for volume detect implementation. | 107 | Test not using ghost objects for volume detect implementation. |
88 | Performance of closures and delegates for taint processing | 108 | Performance of closures and delegates for taint processing |
@@ -95,10 +115,16 @@ Physics Arena central pyramid: why is one side permiable? | |||
95 | 115 | ||
96 | INTERNAL IMPROVEMENT/CLEANUP | 116 | INTERNAL IMPROVEMENT/CLEANUP |
97 | ================================================= | 117 | ================================================= |
118 | Consider moving prim/character body and shape destruction in destroy() | ||
119 | to postTimeTime rather than protecting all the potential sets that | ||
120 | might have been queued up. | ||
98 | Remove unused fields from ShapeData (not used in API2) | 121 | Remove unused fields from ShapeData (not used in API2) |
99 | Breakout code for mesh/hull/compound/native into separate BSShape* classes | 122 | Breakout code for mesh/hull/compound/native into separate BSShape* classes |
100 | Standardize access to building and reference code. | 123 | Standardize access to building and reference code. |
101 | The skeleton classes are in the sources but are not complete or linked in. | 124 | The skeleton classes are in the sources but are not complete or linked in. |
125 | Make BSBody and BSShape real classes to centralize creation/changin/destruction | ||
126 | Convert state and parameter calls from BulletSimAPI direct calls to | ||
127 | calls on BSBody and BSShape | ||
102 | Generalize Dynamics and PID with standardized motors. | 128 | Generalize Dynamics and PID with standardized motors. |
103 | Generalize Linkset and vehicles into PropertyManagers | 129 | Generalize Linkset and vehicles into PropertyManagers |
104 | Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies | 130 | Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies |
@@ -110,7 +136,7 @@ Implement linkset by setting position of children when root updated. (LinksetMan | |||
110 | Linkset implementation using manual prim movement. | 136 | Linkset implementation using manual prim movement. |
111 | LinkablePrim class? Would that simplify/centralize the linkset logic? | 137 | LinkablePrim class? Would that simplify/centralize the linkset logic? |
112 | BSScene.UpdateParameterSet() is broken. How to set params on objects? | 138 | BSScene.UpdateParameterSet() is broken. How to set params on objects? |
113 | Remove HeightmapInfo from terrain specification. | 139 | Remove HeightmapInfo from terrain specification |
114 | Since C++ code does not need terrain height, this structure et al are not needed. | 140 | Since C++ code does not need terrain height, this structure et al are not needed. |
115 | Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will | 141 | Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will |
116 | bob at the water level. BSPrim.PositionSanityCheck(). | 142 | bob at the water level. BSPrim.PositionSanityCheck(). |
@@ -142,7 +168,11 @@ Do prim hash codes work for sculpties and meshes? (Resolution: yes) | |||
142 | Linkset implementation using compound shapes. (Resolution: implemented LinksetCompound) | 168 | Linkset implementation using compound shapes. (Resolution: implemented LinksetCompound) |
143 | Compound shapes will need the LocalID in the shapes and collision | 169 | Compound shapes will need the LocalID in the shapes and collision |
144 | processing to get it from there. | 170 | processing to get it from there. |
145 | Light cycle falling over when driving (Resolution: implemented VerticalAttractor) | ||
146 | Light cycle not banking (Resolution: It doesn't. Banking is roll adding yaw.) | 171 | Light cycle not banking (Resolution: It doesn't. Banking is roll adding yaw.) |
147 | Package Bullet source mods for Bullet internal stats output | 172 | Package Bullet source mods for Bullet internal stats output |
148 | (Resolution: move code into WorldData.h rather than relying on patches) \ No newline at end of file | 173 | (Resolution: move code into WorldData.h rather than relying on patches) |
174 | Single prim vehicles don't seem to properly vehiclize. | ||
175 | (Resolution: mass was not getting set properly for single prim linksets) | ||
176 | Add material type linkage and input all the material property definitions. | ||
177 | Skeleton classes and table are in the sources but are not filled or used. | ||
178 | (Resolution: | ||