diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 131 |
1 files changed, 82 insertions, 49 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 8a15abe..0453376 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | |||
@@ -1,65 +1,61 @@ | |||
1 | CURRENT PRIORITIES | 1 | CURRENT PROBLEMS TO FIX AND/OR LOOK AT |
2 | ================================================= | 2 | ================================================= |
3 | Use the HACD convex hull routine in Bullet rather than the C# version. | 3 | Vehicle buoyancy. Computed correctly? Possibly creating very large effective mass. |
4 | Speed up hullifying large meshes. | 4 | Interaction of llSetBuoyancy and vehicle buoyancy. Should be additive? |
5 | Negative buoyancy computed correctly | ||
6 | Center-of-gravity | ||
7 | Computation of mesh mass. How done? How should it be done? | ||
5 | Enable vehicle border crossings (at least as poorly as ODE) | 8 | Enable vehicle border crossings (at least as poorly as ODE) |
6 | Terrain skirts | 9 | Terrain skirts |
7 | Avatar created in previous region and not new region when crossing border | 10 | Avatar created in previous region and not new region when crossing border |
8 | Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) | 11 | Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) |
9 | Lock axis | 12 | User settable terrain mesh |
13 | Allow specifying as convex or concave and use different getHeight functions depending | ||
14 | Boats, when turning nose down into the water | ||
15 | Acts like rotation around Z is also effecting rotation around X and Y | ||
10 | Deleting a linkset while standing on the root will leave the physical shape of the root behind. | 16 | Deleting a linkset while standing on the root will leave the physical shape of the root behind. |
11 | Not sure if it is because standing on it. Done with large prim linksets. | 17 | Not sure if it is because standing on it. Done with large prim linksets. |
12 | Linkset child rotations. | 18 | Linkset child rotations. |
13 | Nebadon spiral tube has middle sections which are rotated wrong. | 19 | Nebadon spiral tube has middle sections which are rotated wrong. |
14 | Select linked spiral tube. Delink and note where the middle section ends up. | 20 | Select linked spiral tube. Delink and note where the middle section ends up. |
15 | Vehicle angular vertical attraction | ||
16 | vehicle angular banking | ||
17 | Center-of-gravity | ||
18 | Vehicle angular deflection | ||
19 | Preferred orientation angular correction fix | ||
20 | when should angular and linear motor targets be zeroed? when selected? | ||
21 | Need a vehicle.clear()? Or an 'else' in prestep if not physical. | ||
22 | Teravus llMoveToTarget script debug | 21 | Teravus llMoveToTarget script debug |
23 | Mixing of hover, buoyancy/gravity, moveToTarget, into one force | 22 | Mixing of hover, buoyancy/gravity, moveToTarget, into one force |
24 | Setting hover height to zero disables hover even if hover flags are on (from SL wiki) | 23 | Setting hover height to zero disables hover even if hover flags are on (from SL wiki) |
25 | limitMotorUp calibration (more down?) | 24 | limitMotorUp calibration (more down?) |
26 | llRotLookAt | 25 | llRotLookAt |
27 | llLookAt | 26 | llLookAt |
28 | Avatars walking up stairs (HALF DONE) | 27 | Convert to avatar mesh capsule. Include rotation of capsule. |
29 | Avatar movement | ||
30 | flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE) | ||
31 | walking up stairs is not calibrated correctly (stairs out of Kepler cabin) | ||
32 | avatar capsule rotation completed (NOT DONE - Bullet's capsule shape is not the solution) | ||
33 | Vehicle script tuning/debugging | 28 | Vehicle script tuning/debugging |
34 | Avanti speed script | 29 | Avanti speed script |
35 | Weapon shooter script | 30 | Weapon shooter script |
36 | Move material definitions (friction, ...) into simulator. | 31 | Move material definitions (friction, ...) into simulator. |
37 | Add material densities to the material types. | 32 | osGetPhysicsEngineVerion() and create a version code for the C++ DLL |
38 | Terrain detail: double terrain mesh detail | ||
39 | One sided meshes? Should terrain be built into a closed shape? | 33 | One sided meshes? Should terrain be built into a closed shape? |
40 | When meshes get partially wedged into the terrain, they cannot push themselves out. | 34 | When meshes get partially wedged into the terrain, they cannot push themselves out. |
41 | It is possible that Bullet processes collisions whether entering or leaving a mesh. | 35 | It is possible that Bullet processes collisions whether entering or leaving a mesh. |
42 | Ref: http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=4869 | 36 | Ref: http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=4869 |
37 | Small physical objects do not interact correctly | ||
38 | Create chain of .5x.5x.1 torui and make all but top physical so to hang. | ||
39 | The chain will fall apart and pairs will dance around on ground | ||
40 | Chains of 1x1x.2 will stay connected but will dance. | ||
41 | Chains above 2x2x.4 are more stable and get stablier as torui get larger. | ||
43 | 42 | ||
44 | VEHICLES TODO LIST: | 43 | VEHICLES TODO LIST: |
45 | ================================================= | 44 | ================================================= |
46 | Border crossing with linked vehicle causes crash | 45 | LINEAR_MOTOR_DIRECTION values should be clamped to reasonable numbers. |
47 | 20121129.1411: editting/moving phys object across region boundries causes crash | 46 | What are the limits in SL? |
48 | getPos-> btRigidBody::upcast -> getBodyType -> BOOM | 47 | Same for other velocity settings. |
49 | Vehicles (Move smoothly) | 48 | UBit improvements to remove rubber-banding of avatars sitting on vehicle child prims: |
49 | https://github.com/UbitUmarov/Ubit-opensim | ||
50 | Some vehicles should not be able to turn if no speed or off ground. | 50 | Some vehicles should not be able to turn if no speed or off ground. |
51 | What to do if vehicle and prim buoyancy differ? | ||
52 | Cannot edit/move a vehicle being ridden: it jumps back to the origional position. | 51 | Cannot edit/move a vehicle being ridden: it jumps back to the origional position. |
53 | Neb car jiggling left and right | 52 | Neb car jiggling left and right |
54 | Happens on terrain and any other mesh object. Flat cubes are much smoother. | 53 | Happens on terrain and any other mesh object. Flat cubes are much smoother. |
55 | This has been reduced but not eliminated. | 54 | This has been reduced but not eliminated. |
56 | Implement referenceFrame for all the motion routines. | 55 | Implement referenceFrame for all the motion routines. |
57 | For limitMotorUp, use raycast down to find if vehicle is in the air. | ||
58 | Verify llGetVel() is returning a smooth and good value for vehicle movement. | 56 | Verify llGetVel() is returning a smooth and good value for vehicle movement. |
59 | llGetVel() should return the root's velocity if requested in a child prim. | 57 | llGetVel() should return the root's velocity if requested in a child prim. |
60 | Implement function efficiency for lineaar and angular motion. | 58 | Implement function efficiency for lineaar and angular motion. |
61 | After getting off a vehicle, the root prim is phantom (can be walked through) | ||
62 | Need to force a position update for the root prim after compound shape destruction | ||
63 | Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) | 59 | Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) |
64 | Remove vehicle angular velocity zeroing in BSPrim.UpdateProperties(). | 60 | Remove vehicle angular velocity zeroing in BSPrim.UpdateProperties(). |
65 | A kludge that isn't fixing the real problem of Bullet adding extra motion. | 61 | A kludge that isn't fixing the real problem of Bullet adding extra motion. |
@@ -68,11 +64,10 @@ Incorporate inter-relationship of angular corrections. For instance, angularDefl | |||
68 | creates over-correction and over-shoot and wabbling. | 64 | creates over-correction and over-shoot and wabbling. |
69 | Vehicle attributes are not restored when a vehicle is rezzed on region creation | 65 | Vehicle attributes are not restored when a vehicle is rezzed on region creation |
70 | Create vehicle, setup vehicle properties, restart region, vehicle is not reinitialized. | 66 | Create vehicle, setup vehicle properties, restart region, vehicle is not reinitialized. |
67 | What to do if vehicle and prim buoyancy differ? | ||
71 | 68 | ||
72 | GENERAL TODO LIST: | 69 | GENERAL TODO LIST: |
73 | ================================================= | 70 | ================================================= |
74 | Explore btGImpactMeshShape as alternative to convex hulls for simplified physical objects. | ||
75 | Regular triangle meshes don't do physical collisions. | ||
76 | Resitution of a prim works on another prim but not on terrain. | 71 | Resitution of a prim works on another prim but not on terrain. |
77 | The dropped prim doesn't bounce properly on the terrain. | 72 | The dropped prim doesn't bounce properly on the terrain. |
78 | Add a sanity check for PIDTarget location. | 73 | Add a sanity check for PIDTarget location. |
@@ -98,29 +93,15 @@ Revisit CollisionMargin. Builders notice the 0.04 spacing between prims. | |||
98 | Duplicating a physical prim causes old prim to jump away | 93 | Duplicating a physical prim causes old prim to jump away |
99 | Dup a phys prim and the original become unselected and thus interacts w/ selected prim. | 94 | Dup a phys prim and the original become unselected and thus interacts w/ selected prim. |
100 | Scenes with hundred of thousands of static objects take a lot of physics CPU time. | 95 | Scenes with hundred of thousands of static objects take a lot of physics CPU time. |
101 | BSPrim.Force should set a continious force on the prim. The force should be | ||
102 | applied each tick. Some limits? | ||
103 | Gun sending shooter flying. | 96 | Gun sending shooter flying. |
104 | Collision margin (gap between physical objects lying on each other) | 97 | Collision margin (gap between physical objects lying on each other) |
105 | Boundry checking (crashes related to crossing boundry) | 98 | Boundry checking (crashes related to crossing boundry) |
106 | Add check for border edge position for avatars and objects. | 99 | Add check for border edge position for avatars and objects. |
107 | Verify the events are created for border crossings. | 100 | Verify the events are created for border crossings. |
108 | Avatar rotation (check out changes to ScenePresence for physical rotation) | ||
109 | Avatar running (what does phys engine need to do?) | ||
110 | Small physical objects do not interact correctly | ||
111 | Create chain of .5x.5x.1 torui and make all but top physical so to hang. | ||
112 | The chain will fall apart and pairs will dance around on ground | ||
113 | Chains of 1x1x.2 will stay connected but will dance. | ||
114 | Chains above 2x2x.4 are more stable and get stablier as torui get larger. | ||
115 | Add PID motor for avatar movement (slow to stop, ...) | ||
116 | setForce should set a constant force. Different than AddImpulse. | ||
117 | Implement raycast. | ||
118 | Implement ShapeCollection.Dispose() | 101 | Implement ShapeCollection.Dispose() |
119 | Implement water as a plain so raycasting and collisions can happen with same. | 102 | Implement water as a plain or mesh so raycasting and collisions can happen with same. |
120 | Add collision penetration return | 103 | Add collision penetration return |
121 | Add field passed back by BulletSim.dll and fill with info in ManifoldConstact.GetDistance() | 104 | Add field passed back by BulletSim.dll and fill with info in ManifoldConstact.GetDistance() |
122 | Add osGetPhysicsEngineName() so scripters can tell whether BulletSim or ODE | ||
123 | Also osGetPhysicsEngineVerion() maybe. | ||
124 | Linkset.Position and Linkset.Orientation requre rewrite to properly return | 105 | Linkset.Position and Linkset.Orientation requre rewrite to properly return |
125 | child position. LinksetConstraint acts like it's at taint time!! | 106 | child position. LinksetConstraint acts like it's at taint time!! |
126 | Implement LockAngularMotion -- implements llSetStatus(ROTATE_AXIS_*, T/F) | 107 | Implement LockAngularMotion -- implements llSetStatus(ROTATE_AXIS_*, T/F) |
@@ -132,9 +113,6 @@ Selecting and deselecting physical objects causes CPU processing time to jump | |||
132 | Re-implement buoyancy as a separate force on the object rather than diddling gravity. | 113 | Re-implement buoyancy as a separate force on the object rather than diddling gravity. |
133 | Register a pre-step event to add the force. | 114 | Register a pre-step event to add the force. |
134 | More efficient memory usage when passing hull information from BSPrim to BulletSim | 115 | More efficient memory usage when passing hull information from BSPrim to BulletSim |
135 | Avatar movement motor check for zero or small movement. Somehow suppress small movements | ||
136 | when avatar has stopped and is just standing. Simple test for near zero has | ||
137 | the problem of preventing starting up (increase from zero) especially when falling. | ||
138 | Physical and phantom will drop through the terrain | 116 | Physical and phantom will drop through the terrain |
139 | 117 | ||
140 | 118 | ||
@@ -168,6 +146,7 @@ Eliminate collisions between objects in a linkset. (LinksetConstraint) | |||
168 | 146 | ||
169 | MORE | 147 | MORE |
170 | ====================================================== | 148 | ====================================================== |
149 | Compute avatar size and scale correctly. Now it is a bit off from the capsule size. | ||
171 | Create tests for different interface components | 150 | Create tests for different interface components |
172 | Have test objects/scripts measure themselves and turn color if correct/bad | 151 | Have test objects/scripts measure themselves and turn color if correct/bad |
173 | Test functions in SL and calibrate correctness there | 152 | Test functions in SL and calibrate correctness there |
@@ -176,7 +155,6 @@ Do we need to do convex hulls all the time? Can complex meshes be left meshes? | |||
176 | There is some problem with meshes and collisions | 155 | There is some problem with meshes and collisions |
177 | Hulls are not as detailed as meshes. Hulled vehicles insides are different shape. | 156 | Hulls are not as detailed as meshes. Hulled vehicles insides are different shape. |
178 | Debounce avatar contact so legs don't keep folding up when standing. | 157 | Debounce avatar contact so legs don't keep folding up when standing. |
179 | Implement LSL physics controls. Like STATUS_ROTATE_X. | ||
180 | Add border extensions to terrain to help region crossings and objects leaving region. | 158 | Add border extensions to terrain to help region crossings and objects leaving region. |
181 | Use a different capsule shape for avatar when sitting | 159 | Use a different capsule shape for avatar when sitting |
182 | LL uses a pyrimidal shape scaled by the avatar's bounding box | 160 | LL uses a pyrimidal shape scaled by the avatar's bounding box |
@@ -209,8 +187,6 @@ Keep avatar scaling correct. http://pennycow.blogspot.fr/2011/07/matter-of-scale | |||
209 | 187 | ||
210 | INTERNAL IMPROVEMENT/CLEANUP | 188 | INTERNAL IMPROVEMENT/CLEANUP |
211 | ================================================= | 189 | ================================================= |
212 | Can the 'inTaintTime' flag be cleaned up and used? For instance, a call to | ||
213 | BSScene.TaintedObject() could immediately execute the callback if already in taint time. | ||
214 | Create the physical wrapper classes (BulletBody, BulletShape) by methods on | 190 | Create the physical wrapper classes (BulletBody, BulletShape) by methods on |
215 | BSAPITemplate and make their actual implementation Bullet engine specific. | 191 | BSAPITemplate and make their actual implementation Bullet engine specific. |
216 | For the short term, just call the existing functions in ShapeCollection. | 192 | For the short term, just call the existing functions in ShapeCollection. |
@@ -344,3 +320,60 @@ Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. | |||
344 | Verify that angular motion specified around Z moves in the vehicle coordinates. | 320 | Verify that angular motion specified around Z moves in the vehicle coordinates. |
345 | DONE 20130120: BulletSim properly applies force in vehicle relative coordinates. | 321 | DONE 20130120: BulletSim properly applies force in vehicle relative coordinates. |
346 | Nebadon vehicles turning funny in arena (DONE) | 322 | Nebadon vehicles turning funny in arena (DONE) |
323 | Lock axis (DONE 20130401) | ||
324 | Terrain detail: double terrain mesh detail (DONE) | ||
325 | Use the HACD convex hull routine in Bullet rather than the C# version. | ||
326 | Speed up hullifying large meshes. (DONE) | ||
327 | Vehicle ride, get up, ride again. Second time vehicle does not act correctly. | ||
328 | Have to rez new vehicle and delete the old to fix situation. | ||
329 | (DONE 20130520: normalize rotations) | ||
330 | Hitting RESET on Nebadon's vehicle while riding causes vehicle to get into odd | ||
331 | position state where it will not settle onto ground properly, etc | ||
332 | (DONE 20130520: normalize rotations) | ||
333 | Two of Nebadon vehicles in a sim max the CPU. This is new. | ||
334 | (DONE 20130520: two problems: if asset failed to mesh, constantly refetched | ||
335 | asset; vehicle was sending too many messages to all linkset members) | ||
336 | Add material densities to the material types. (WILL NOT BE DONE: not how it is done) | ||
337 | Avatars walking up stairs (DONE) | ||
338 | Avatar movement | ||
339 | flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE) | ||
340 | walking up stairs is not calibrated correctly (stairs out of Kepler cabin) (DONE) | ||
341 | avatar capsule rotation completed (NOT DONE - Bullet's capsule shape is not the solution) | ||
342 | After getting off a vehicle, the root prim is phantom (can be walked through) | ||
343 | Need to force a position update for the root prim after compound shape destruction | ||
344 | (DONE) | ||
345 | Explore btGImpactMeshShape as alternative to convex hulls for simplified physical objects. | ||
346 | Regular triangle meshes don't do physical collisions. | ||
347 | (DONE: discovered GImpact is VERY CPU intensive) | ||
348 | Script changing rotation of child prim while vehicle moving (eg turning wheel) causes | ||
349 | the wheel to appear to jump back. Looks like sending position from previous update. | ||
350 | (DONE: redo of compound linksets fixed problem) | ||
351 | Refarb compound linkset creation to create a pseudo-root for center-of-mass | ||
352 | Let children change their shape to physical indendently and just add shapes to compound | ||
353 | (DONE: redo of compound linkset fixed problem) | ||
354 | Vehicle angular vertical attraction (DONE: vegaslon code) | ||
355 | vehicle angular banking (DONE: vegaslon code) | ||
356 | Vehicle angular deflection (DONE: vegaslon code) | ||
357 | Preferred orientation angular correction fix | ||
358 | Vehicles (Move smoothly) | ||
359 | For limitMotorUp, use raycast down to find if vehicle is in the air. | ||
360 | (WILL NOT BE DONE: gravity does the job well enough) | ||
361 | BSPrim.Force should set a continious force on the prim. The force should be | ||
362 | applied each tick. Some limits? | ||
363 | (DONE: added physical actors. Implemented SetForce, SetTorque, ...) | ||
364 | Implement LSL physics controls. Like STATUS_ROTATE_X. (DONE) | ||
365 | Add osGetPhysicsEngineName() so scripters can tell whether BulletSim or ODE | ||
366 | Avatar rotation (check out changes to ScenePresence for physical rotation) (DONE) | ||
367 | Avatar running (what does phys engine need to do?) (DONE: multiplies run factor by walking force) | ||
368 | setForce should set a constant force. Different than AddImpulse. (DONE) | ||
369 | Add PID motor for avatar movement (slow to stop, ...) (WNBD: current works ok) | ||
370 | Avatar movement motor check for zero or small movement. Somehow suppress small movements | ||
371 | when avatar has stopped and is just standing. Simple test for near zero has | ||
372 | the problem of preventing starting up (increase from zero) especially when falling. | ||
373 | (DONE: avatar movement actor knows if standing on stationary object and zeros motion) | ||
374 | Can the 'inTaintTime' flag be cleaned up and used? For instance, a call to | ||
375 | BSScene.TaintedObject() could immediately execute the callback if already in taint time. | ||
376 | (DONE) | ||
377 | |||
378 | |||
379 | |||