diff options
Diffstat (limited to 'OpenSim/Region/Physics')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | 2 | ||||
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 18 |
3 files changed, 18 insertions, 12 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs index 1f186c3..f442ca2 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | |||
@@ -204,7 +204,7 @@ public sealed class BSCharacter : BSPhysObject | |||
204 | // move. Thus, the velocity cannot be forced to zero. The problem is that small velocity | 204 | // move. Thus, the velocity cannot be forced to zero. The problem is that small velocity |
205 | // errors can creap in and the avatar will slowly float off in some direction. | 205 | // errors can creap in and the avatar will slowly float off in some direction. |
206 | // So, the problem is that, when an avatar is standing, we cannot tell creaping error | 206 | // So, the problem is that, when an avatar is standing, we cannot tell creaping error |
207 | // from real pushing.OMV.Vector3.Zero; | 207 | // from real pushing. |
208 | // The code below keeps setting the velocity to zero hoping the world will keep pushing. | 208 | // The code below keeps setting the velocity to zero hoping the world will keep pushing. |
209 | 209 | ||
210 | _velocityMotor.Step(timeStep); | 210 | _velocityMotor.Step(timeStep); |
@@ -254,9 +254,11 @@ public sealed class BSCharacter : BSPhysObject | |||
254 | } | 254 | } |
255 | 255 | ||
256 | // If falling, we keep the world's downward vector no matter what the other axis specify. | 256 | // If falling, we keep the world's downward vector no matter what the other axis specify. |
257 | // The check for _velocity.Z < 0 makes jumping work (temporary upward force). | ||
257 | if (!Flying && !IsColliding) | 258 | if (!Flying && !IsColliding) |
258 | { | 259 | { |
259 | stepVelocity.Z = _velocity.Z; | 260 | if (_velocity.Z < 0) |
261 | stepVelocity.Z = _velocity.Z; | ||
260 | // DetailLog("{0},BSCharacter.MoveMotor,taint,overrideStepZWithWorldZ,stepVel={1}", LocalID, stepVelocity); | 262 | // DetailLog("{0},BSCharacter.MoveMotor,taint,overrideStepZWithWorldZ,stepVel={1}", LocalID, stepVelocity); |
261 | } | 263 | } |
262 | 264 | ||
@@ -512,7 +514,7 @@ public sealed class BSCharacter : BSPhysObject | |||
512 | // just assign to "Position" because of potential call loops. | 514 | // just assign to "Position" because of potential call loops. |
513 | PhysicsScene.TaintedObject(inTaintTime, "BSCharacter.PositionSanityCheck", delegate() | 515 | PhysicsScene.TaintedObject(inTaintTime, "BSCharacter.PositionSanityCheck", delegate() |
514 | { | 516 | { |
515 | DetailLog("{0},BSCharacter.PositionSanityCheck,taint,pos={1},orient={2}", LocalID, _position, _orientation); | 517 | DetailLog("{0},BSCharacter.PositionSanityCheck,taint,pos={1},orient={2}", LocalID, _position, _orientation); |
516 | ForcePosition = _position; | 518 | ForcePosition = _position; |
517 | }); | 519 | }); |
518 | ret = true; | 520 | ret = true; |
@@ -572,7 +574,7 @@ public sealed class BSCharacter : BSPhysObject | |||
572 | m_targetVelocity = value; | 574 | m_targetVelocity = value; |
573 | OMV.Vector3 targetVel = value; | 575 | OMV.Vector3 targetVel = value; |
574 | if (_setAlwaysRun) | 576 | if (_setAlwaysRun) |
575 | targetVel *= BSParam.AvatarAlwaysRunFactor; | 577 | targetVel *= new OMV.Vector3(BSParam.AvatarAlwaysRunFactor, BSParam.AvatarAlwaysRunFactor, 0f); |
576 | 578 | ||
577 | PhysicsScene.TaintedObject("BSCharacter.setTargetVelocity", delegate() | 579 | PhysicsScene.TaintedObject("BSCharacter.setTargetVelocity", delegate() |
578 | { | 580 | { |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs index 4dff927..8f660c4 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |||
@@ -470,7 +470,7 @@ public class BSPrim : BSPhysObject | |||
470 | // Note that this does not change _mass! | 470 | // Note that this does not change _mass! |
471 | public override void UpdatePhysicalMassProperties(float physMass, bool inWorld) | 471 | public override void UpdatePhysicalMassProperties(float physMass, bool inWorld) |
472 | { | 472 | { |
473 | if (PhysBody.HasPhysicalBody) | 473 | if (PhysBody.HasPhysicalBody && PhysShape.HasPhysicalShape) |
474 | { | 474 | { |
475 | if (IsStatic) | 475 | if (IsStatic) |
476 | { | 476 | { |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 49718c4..4dc16f4 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | |||
@@ -1,5 +1,12 @@ | |||
1 | CURRENT PRIORITIES | 1 | CURRENT PRIORITIES |
2 | ================================================= | 2 | ================================================= |
3 | Use the HACD convex hull routine in Bullet rather than the C# version. | ||
4 | Speed up hullifying large meshes. | ||
5 | Enable vehicle border crossings (at least as poorly as ODE) | ||
6 | Terrain skirts | ||
7 | 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) | ||
9 | Lock axis | ||
3 | Deleting a linkset while standing on the root will leave the physical shape of the root behind. | 10 | Deleting a linkset while standing on the root will leave the physical shape of the root behind. |
4 | Not sure if it is because standing on it. Done with large prim linksets. | 11 | Not sure if it is because standing on it. Done with large prim linksets. |
5 | Vehicle angular vertical attraction | 12 | Vehicle angular vertical attraction |
@@ -7,16 +14,11 @@ vehicle angular banking | |||
7 | Center-of-gravity | 14 | Center-of-gravity |
8 | Vehicle angular deflection | 15 | Vehicle angular deflection |
9 | Preferred orientation angular correction fix | 16 | Preferred orientation angular correction fix |
10 | Enable vehicle border crossings (at least as poorly as ODE) | ||
11 | Terrain skirts | ||
12 | Avatar created in previous region and not new region when crossing border | ||
13 | Vehicle recreated in new sim at small Z value (offset from root value?) (DONE) | ||
14 | when should angular and linear motor targets be zeroed? when selected? | 17 | when should angular and linear motor targets be zeroed? when selected? |
15 | Need a vehicle.clear()? Or an 'else' in prestep if not physical. | 18 | Need a vehicle.clear()? Or an 'else' in prestep if not physical. |
16 | Teravus llMoveToTarget script debug | 19 | Teravus llMoveToTarget script debug |
17 | Mixing of hover, buoyancy/gravity, moveToTarget, into one force | 20 | Mixing of hover, buoyancy/gravity, moveToTarget, into one force |
18 | Setting hover height to zero disables hover even if hover flags are on (from SL wiki) | 21 | Setting hover height to zero disables hover even if hover flags are on (from SL wiki) |
19 | Nebadon vehicles turning funny in arena | ||
20 | limitMotorUp calibration (more down?) | 22 | limitMotorUp calibration (more down?) |
21 | llRotLookAt | 23 | llRotLookAt |
22 | llLookAt | 24 | llLookAt |
@@ -66,6 +68,8 @@ Vehicle attributes are not restored when a vehicle is rezzed on region creation | |||
66 | 68 | ||
67 | GENERAL TODO LIST: | 69 | GENERAL TODO LIST: |
68 | ================================================= | 70 | ================================================= |
71 | Resitution of a prim works on another prim but not on terrain. | ||
72 | The dropped prim doesn't bounce properly on the terrain. | ||
69 | Add a sanity check for PIDTarget location. | 73 | Add a sanity check for PIDTarget location. |
70 | Level-of-detail for mesh creation. Prims with circular interiors require lod of 32. | 74 | Level-of-detail for mesh creation. Prims with circular interiors require lod of 32. |
71 | Is much saved with lower LODs? At the moment, all set to 32. | 75 | Is much saved with lower LODs? At the moment, all set to 32. |
@@ -163,7 +167,6 @@ Create tests for different interface components | |||
163 | Have test objects/scripts measure themselves and turn color if correct/bad | 167 | Have test objects/scripts measure themselves and turn color if correct/bad |
164 | Test functions in SL and calibrate correctness there | 168 | Test functions in SL and calibrate correctness there |
165 | Create auto rezzer and tracker to run through the tests | 169 | Create auto rezzer and tracker to run through the tests |
166 | Use the HACD convex hull routine in Bullet rather than the C# version. | ||
167 | Do we need to do convex hulls all the time? Can complex meshes be left meshes? | 170 | Do we need to do convex hulls all the time? Can complex meshes be left meshes? |
168 | There is some problem with meshes and collisions | 171 | There is some problem with meshes and collisions |
169 | Hulls are not as detailed as meshes. Hulled vehicles insides are different shape. | 172 | Hulls are not as detailed as meshes. Hulled vehicles insides are different shape. |
@@ -334,4 +337,5 @@ Child movement in linkset (don't rebuild linkset) (DONE 20130122)) | |||
334 | Avatar standing on a moving object should start to move with the object. (DONE 20130125) | 337 | Avatar standing on a moving object should start to move with the object. (DONE 20130125) |
335 | Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. | 338 | Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. |
336 | Verify that angular motion specified around Z moves in the vehicle coordinates. | 339 | Verify that angular motion specified around Z moves in the vehicle coordinates. |
337 | DONE 20130120: BulletSim properly applies force in vehicle relative coordinates. \ No newline at end of file | 340 | DONE 20130120: BulletSim properly applies force in vehicle relative coordinates. |
341 | Nebadon vehicles turning funny in arena (DONE) \ No newline at end of file | ||