Robert Adams
5d098d8f17
BulletSim: don't modify angular parameters when doing LIMIT_MOTOR_UP.
...
It was a dumb idea to try and do a nose over feature for jumping cars anyway.
Add better logging of native shape creation/reuse so can tell the difference.
2013-01-15 21:08:46 -08:00
Robert Adams
61ff79587b
BulletSim: add debugging messages to know when assets for physical
...
objects have been fetched.
Update TODO list with more work.
2013-01-15 21:08:46 -08:00
Robert Adams
daef2b8d87
BulletSim: reduce maximum force a script can apply (like in llApplyImpulse)
...
to the documented maximum from the outragious number previously.
2013-01-15 21:08:46 -08:00
Robert Adams
021964c6e0
BulletSim: tweeks to improve hover.
2013-01-15 04:24:24 -08:00
Robert Adams
181d4c6fcb
BulletSim: temporarily disable banking and direction deflection
...
because the computations are wrong.
Add VehicleTorqueImpulse routines.
2013-01-15 02:58:14 -08:00
Robert Adams
0374b2a0b4
BulletSim: fix logic for enabling unmanaged code debug messages.
...
Free pinned memory when physics engine is unloaded.
2013-01-15 02:21:38 -08:00
Robert Adams
13778c895a
BulletSim: by default, turn on continuious collision detection (CCD)
...
and enable friction computation caching. Remove dangerous BulletSim
settings from OpenSimDefaults.ini.
2013-01-15 01:44:34 -08:00
Robert Adams
4e1ca890c2
BulletSim: fix not moving physical objects below terrain to over terrain.
...
Add locking on register prestep action list preventing potential race conditions.
Little comment and formatting changes.
2013-01-14 15:46:46 -08:00
Robert Adams
8bf0a9f85d
BulletSim: disable center-of-mass computation for linksets until debugged. Move physical prim above ground if it is underground. Previously tried to correct by applying and up force but the prim would never go through the ground.
2013-01-14 07:50:58 -08:00
Robert Adams
459fcd81c9
BulletSim: move center of gravity of linkset to its geometric center.
...
Necessitated allowing simulator and physical position of a body to
get out of sync since Bullet assumes that <0,0,0> is the center of mass.
Update DLLs and SOs for the UpdateChildTransform so positions of
individual prim in a linkset can be implemented.
2013-01-11 16:47:53 -08:00
Robert Adams
eacc2561d1
BulletSim: add osGetPhysicsEngineType() LSL function and update
...
the physics engines to return the name that is specified in the INI
file ("physics = XXX") as the type of engine.
This os function is a little different than the others in that it
does not throw an exception of one is not privilaged to use it.
It merely returns an empty string.
2013-01-11 16:47:35 -08:00
Robert Adams
93adc4cb66
BulletSim: Add IsSelected attribute to physical objects. Have vehicles check to see if physical before trying to step. Replace vehicle gravity application. Previously relying on Bullet to apply gravity but since vehicles over-ride the velocity calculation, gravity never had a chance to accelerate the body down. Added AddForceImpulse as well as AddForce for those who need to apply immediate velocity updates. Use the impulse to apply the linear motion.
2013-01-11 16:47:20 -08:00
Robert Adams
7e58bbaac6
BulletSim: Redo linear function coding so they can better interact. New algorithm for limitMotorUp that relies on going up when not colliding rather than distance from ground. Add parameter for turning on and off embedded source vehicle debugging.
2013-01-11 16:46:53 -08:00
Robert Adams
98168edc29
BulletSim: remove double application of buoyancy. Centralize computation of buoyancy. Add motor angular debugging controls.
2013-01-11 16:46:38 -08:00
Robert Adams
b592ec265b
BulletSim: fix the 'No recognised physics mesh found ...' error spew by remembering that the last asset fetch failed until the simulator resets the shape parameters.
2013-01-11 16:44:34 -08:00
Robert Adams
df1d7414ad
BulletSim: Fix hover height (boats float at the correct level).
...
Fix problem of vehicles going crazy when backing up.
2013-01-08 16:37:49 -08:00
Robert Adams
1603606f1d
BulletSim: improve vehicle angular banking and deflection computation. Rotate angular correction forces to be world relative rather than vehicle relative.
2013-01-07 22:00:50 -08:00
Robert Adams
8452c0a870
BulletSim: add function to push avatar up when hitting stairs.
...
It looks like BulletSim and ODE rely on penetration correction to cause
the avatar to move up and thus allowing walking up stairs. Object
penetration was minimized for walking and flying (so one doesn't go
through walls) and this stopped stairs from working. This commit
introduces avatar movement code to check for collisions at the
feet while walking and attempts to raise the avatar for the steps.
Not yet perfect but movement is better.
2013-01-07 16:05:02 -08:00
Robert Adams
599dbc3d95
BulletSim: fix exception when re-creating the terrain when loading an OAR file
2013-01-07 16:04:21 -08:00
Robert Adams
2e5222055f
BulletSim: comments and removing small compile errors introduced in last commit.
2013-01-06 22:56:16 -08:00
Robert Adams
9393403253
BulletSim: update DLLs and SOs with better debugging output.
...
Add definition of hand crafted avatar mesh. Not used yet.
Comments and cleanup.
2013-01-06 14:01:15 -08:00
Robert Adams
2eba80a8cd
BulletSim: fix problem where mesh shapes were physically just their bounding box and not the complete mesh. Fill mesh physical objects are back.
2013-01-04 17:06:52 -08:00
Robert Adams
48cfc6d089
BulletSim: implement llMoveToTarget by adding PIDActive, etc.
...
Implementation of non-vehicle hover but haven't tested it a lot.
Update TODO list.
2013-01-04 17:06:51 -08:00
Robert Adams
d0c7f7f050
BulletSim: add some features to the PID motor to make it more flexible.
2013-01-04 17:06:51 -08:00
Robert Adams
613f516007
BulletSim: convert avatar movement from a force to an impulse. Shouldn't
...
change functionality but removes an oddity in computing the force.
2013-01-04 17:06:50 -08:00
Robert Adams
2c6b269b6e
BulletSim: add initial implementation of llMoveToTarget and hover height.
...
Not all there yet.
2013-01-04 17:06:50 -08:00
Robert Adams
5432180027
BulletSim: reorganize motor code a little to pull together common functions.
...
Add BSFMotor.
2013-01-04 17:06:50 -08:00
Robert Adams
44492b3a49
BulletSim: add comments to force and impulse setting functions
...
so it is clear what Bullet is actually doing with the set values.
2013-01-04 17:06:49 -08:00
Robert Adams
92a6958b6d
BulletSim: fix problem where pre-step actions would not replaced
...
by new registrations thus causing multiple instances of an action.
2013-01-04 17:06:49 -08:00
Robert Adams
2eda385f5e
BulletSim: add ResetBroadphasePool and ResetConstraintSolver diagnostic
...
functions. If values set from console, the functions are called. Looking
for why the collision pools fill up with unnecessary stuff.
2013-01-04 17:06:48 -08:00
Robert Adams
aa236b2020
BulletSim: add parameter to have Bullet output performance statistics
...
every so many frames. Default to off.
2013-01-01 17:27:34 -08:00
Robert Adams
b14b65ea95
BulletSim: move selection of the unmanaged Bullet DLL from BSPlugin
...
into the unmanaged Bullet interface class.
2013-01-01 17:27:33 -08:00
Robert Adams
9d840fd2ee
BulletSim: move over and port the interface for BulletXNA.
...
Copied BulletSNPlugin.BulletSimAPI to a new
BulletSPlugin.BSAPIXNA.cs and then modifyed the latter to
comply with the BSAPITemplate definition. Not totally debugged
but the code is all there for an INI variable to select either
unmanaged C++ Bullet or the C# version of Bullet.
2013-01-01 17:27:33 -08:00
Robert Adams
0662d109c2
BulletSim: fix line endings.
2013-01-01 17:27:33 -08:00
Robert Adams
04132d3af4
BulletSim: subclass Bullet[World|Body|Shape|Constraint] for unmanaged
...
to have pointers and managed to have objects.
Initial paste of XNA code. Commented out.
2013-01-01 17:27:32 -08:00
Robert Adams
db3b6e8921
BulletSim: remove unused unmanaged memory reference functions from BSAPITemplate.
2012-12-31 19:57:26 -08:00
Robert Adams
6988b5ceaf
BulletSim: remove rigid body contruction functions from BSAPITemplate that relied on prebuilt construction info structures.
2012-12-31 19:57:25 -08:00
Robert Adams
9396ccc078
BulletSim: eliminate the use of the unmanaged HeightMapInfo structure.
...
Remove all related calls from the unmanaged and BSAPITemplate interfaces.
Update DLLs and SOs to include the version without HeightMapInfo structures.
2012-12-31 19:57:25 -08:00
Robert Adams
3d0fc70864
BulletSim: complete movement of BulletSimAPI functions to BSAPITemplate.
...
Update BulletSim DLLs and SOs with simplier step function interface.
2012-12-31 19:57:24 -08:00
Robert Adams
c2a7af18b6
BulletSim: nearly complete in conversion from BulletSimAPI to BSAPITemplate. Only initialization and debug fuctions left.
2012-12-31 19:57:23 -08:00
Robert Adams
5379d6d112
BulletSim: remove all the debug printing of pointer formatting (.ToString(X)) and replace it with a method on BulletBody, BulletShape, ...
2012-12-31 19:57:22 -08:00
Robert Adams
9218748321
BulletSim: another round of conversion: dynamics world and collision object functions.
2012-12-31 19:57:22 -08:00
Robert Adams
9fd0e1b080
BulletSim: add the implementation files for the two versions of Bullet:
...
unmanaged (C++) and managed (C#).
2012-12-31 19:57:21 -08:00
Robert Adams
48f718f39f
BulletSim: first round of conversion from direct BulletSimAPI interfacing by BulletSim core to using the BulletSimAPITemplate. Physical object creation and destruction first.
2012-12-31 19:57:21 -08:00
Robert Adams
203588e3c0
BulletSim: change physical data structures to classes. Add default
...
instantiations for PhysBody and PhysShape when BSPhysObject is created
to account for them being classes and not structures.
Update TODO list.
2012-12-31 19:57:21 -08:00
Robert Adams
28a8949b9f
BulletSim: remove check for small motor movement because, while it
...
did the right thing for stopping (speed reducing to zero), it prevented
movement from starting (speed increasing from zero). Will revisit
when the generalize PID motor is debugged.
2012-12-29 10:19:47 -08:00
Robert Adams
0538096fa3
BulletSim: an 'if' to suppress multiple setting of avatar orientation.
...
Looks like the viewer bombards the server with avatar orientation
information (we're talking several hundred a second) when the avatar
is being turned or when walking. This change just reduces the number
of 'set' calls into unmanaged code.
2012-12-29 08:32:57 -08:00
Robert Adams
db6c0363f0
BulletSim: tweeking avatar capsule code in an attempt to have
...
asymmetrical avatar capsule work now that rotation is being passed
from the simulator. Turns out the Bullet capsule is just not very
functional: it doesn't scale properly, the implementation only half
does asymmetry and, in general, is hard to work with.
Avatar shape is about what it was before these changes.
Added initial data structures for avatar shape mesh.
2012-12-29 08:03:57 -08:00
Robert Adams
7266eeca6e
BulletSim: add 'AvatarAlwaysRunFactor' parameter and use in setTargetVelocity
...
to implement the 'always run' feature.
2012-12-28 12:01:57 -08:00
Robert Adams
70e0a86601
BulletSim: fix problem of avatars appearing to walk through walls
...
by moving the movement motor to a pre-step action and out of its
questionable previous home in UpdateProperties.
2012-12-28 11:56:07 -08:00
Robert Adams
1f6aaad0b5
BulletSim: correct collision mask definition for linkset children.
...
Remove unused code. Add comments and TODOs.
2012-12-27 22:12:28 -08:00
Robert Adams
422f0fd6ec
BulletSim: fix physical object not interacting with static objects.
...
Another instance of the underlying Bullet doing, ah, helpful things
when items are added to the world.
2012-12-27 22:12:28 -08:00
Robert Adams
c1e7539c77
BulletSim: Parameterize nominal frame rate (55) and add parameters to dynamially turn on/off detailed, unmanaged data dumping of prims and vehicles.
2012-12-27 22:12:28 -08:00
Robert Adams
7a5f598399
BulletSim: move logic for IsColliding, CollidingGround and CollidingObj from individual sub-classes and up to parent BSPhysObject class.
2012-12-27 22:12:27 -08:00
Robert Adams
e57c0e6731
BulletSim: fix buoyancy so it's properly set by a script when an
...
object is selected.
Update TODO list.
2012-12-27 22:12:26 -08:00
Robert Adams
7230990679
BulletSim: fix odd code that wasn't really recomputing the mass of a
...
rebuilt linkset. I was burnt by making get/set methods with side
effects. I should know better.
2012-12-27 22:12:26 -08:00
Robert Adams
f3baed5827
BulletSim: add physical parameter min/max constants in BSParam. I just don't like raw numbers scattered around the code.
2012-12-27 22:12:25 -08:00
Robert Adams
e98e223927
BulletSim: complete applyImpulse function in BSCharacter (like I said
...
I did last time).
2012-12-27 22:12:25 -08:00
teravus
29cdf0f3dd
* Merges BulletSim Updates to BulletSimN(BulletSNPlugin)
2012-12-18 15:00:10 -05:00
Robert Adams
225b564573
BulletSim: scale the force for external AddForce by the simulation
...
step time so it will be applied completely the next step. The internal
AddForce routine does not scale the force.
2012-12-26 10:25:50 -08:00
Robert Adams
d1ede1df3a
BulletSim: make llBuoyancy work. For some reason, Bullet resets an
...
object's individual gravity to the world gravity when the object
is added to the physical world.
2012-12-25 23:55:25 -08:00
Robert Adams
5f71ee57c4
BulletSim: stop avatar from sliding VERY slowly after walking by
...
only zeroing the movement motor in the UpdateProperties routine.
2012-12-25 23:54:10 -08:00
Robert Adams
bbc5a5089f
BulletSim: Rename some of the interface structures (BulletWorld, ...)
...
to get ready for...
Start creation of BulletAPITemplate. This defines the abstract interface
functions. Following commits will move over to the new interface.
This will enable switching between the managed and unmanaged version of
Bullet.
2012-12-24 20:18:06 -08:00
Robert Adams
4759a8acee
BulletSim: Default avatar density changed to 3.5 which is WAY closer
...
to the SL value.
Fixed frictin values for physical materials which were just wrong
which caused things that should have slipped to not.
2012-12-24 20:16:10 -08:00
Robert Adams
80cee1b85a
BulletSim: Fix single physical prim reporting its mass as zero.
...
Properly return root mass as mass of just the root prim rather
than the mass of the linkset. SOG has the logic to add the masses
together to get the linkset mass.
Update TODO list.
2012-12-24 08:56:02 -08:00
teravus
9318870607
* Update BulletSimN terrain implementation to default to Heightfield, it's less CPU intensive.
2012-12-23 16:17:18 -05:00
teravus
92e4f9f412
* Initial commit of BulletSimN (BulletSNPlugin). Purely C# implementation of BulletSim. This is designed to be /as close as possible/ to the BulletSim plugin while still being entirely in the managed space to make keeping it up to date easy as possible (no thinking work). This implementation is /slower/ then the c++ version just because it's fully managed, so it's not appropriate for huge sims, but it will run small ones OK. At the moment, it supports all known features of BulletSim. Think of it like.. POS but everything works. To use this plugin, set the physics plugin to BulletSimN.
2012-12-23 15:21:25 -05:00
Robert Adams
30807b81cc
BulletSim: modify avatar motor code to make falling movement better. Clean up some usages. Disable motor when done.
2012-12-22 17:09:40 -08:00
Robert Adams
144322a7c9
BulletSim: remove post step one-time taints (doesn't make any sense). Rename pre and post step event invocation routines to Trigger* to be consistant. Remove old, unused code.
2012-12-22 17:07:52 -08:00
Robert Adams
16e49035f7
BulletSim: add Enabled parameter and operation to motors.
2012-12-22 17:06:13 -08:00
Robert Adams
5b2cbc0ae6
BulletSim: remove all special vehicle code from BSScene. Replace per-frame updates for vehicles with per-frame action registration. One fewer special case.
2012-12-21 23:24:31 -08:00
Robert Adams
a54392d7cc
BulletSim: remove the movement decay while flying. Made flying slow down over time.
2012-12-21 23:05:05 -08:00
Robert Adams
37fb691ba5
BulletSim: Fix llApplyImpulse so it works after the first impulse. The problem was Bullet deactivating the object between the pushes (when, as far as the physics engine is concerned, it isn't moving).
2012-12-21 23:03:27 -08:00
Robert Adams
3d659fe97d
BulletSim: add BSPhysObject code to manage registrations of preStep events. Use same to implement setForce and setTorque so the values are restored at the beginning of each step (since Bullet zeros forces applied last step). Simplify implementation of AddForce and AddTorque by relying on the addition of forces in Bullet.
2012-12-21 17:27:53 -08:00
Robert Adams
6dbf9c8ed4
BulletSim: repair vehicle problems introduced in previous 'improvements'. Fix line endings in BSParams.
2012-12-21 15:21:32 -08:00
Robert Adams
ae4d932e7f
BulletSim: Move all the parameter variables, tables and get and fetch logic to a separate, static class for easier addition and to remove all that bulk from the BSScene class.
2012-12-21 13:35:44 -08:00
Robert Adams
2e3e95e846
BulletSim: small fix to avatar movement motor use which keeps avatar from flying up forever. This doesn't fix the overall problem but keeps avatar flying from being totally unusable.
2012-12-21 10:04:12 -08:00
Robert Adams
8c99f63239
BulletSim: avatar movement smoothed with motor that modifies avatar velocity to target velocity. Fails in incorporating physical world effects (gravity) so avatar doesn't fly correctly.
2012-12-21 10:00:03 -08:00
Robert Adams
b4f8a05e9a
BulletSim: Better detail logging of VMotor actions.
2012-12-21 09:56:31 -08:00
Robert Adams
750492796d
BulletSim: begin movement of parameters from pinned memory block to variables all in managed code. Add note to TODO list to remember to do the rest. Other updates to TODO list.
2012-12-21 09:55:20 -08:00
Robert Adams
9d2f569d60
BulletSim: fix incorrectly defined property changed flag.
2012-12-20 16:06:52 -08:00
Robert Adams
e522bdb96a
BulletSim: Check for unspecified TimeScale in BSVMotor and don't scale if not specified. Add test dump routine. Don'e zero current and target values when error goes to zero as the values could be used externally to store the actual target values, etc.
2012-12-20 16:05:33 -08:00
Robert Adams
a5b2539cf9
BulletSim: replace use of funky nullable values for vehicle property update control (m_known* stuff). Bitmaps will be quicker to test and to clear.
2012-12-20 10:32:33 -08:00
Robert Adams
e73dac4deb
BulletSim: angularMotorUp working again (seems a little slow as it takes longer than timescale to correct, but getting better). Disabled angularDeflection (need to resolve interactions between angular corrections). Update TODO list.
2012-12-20 10:19:16 -08:00
Robert Adams
b7ad44e3a6
BulletSim: reorganize motor step code to separate error computation allowing subclass for PID error correction.
2012-12-20 08:35:36 -08:00
Robert Adams
a9b9c0f035
BulletSim: improve angularVerticalAttraction calculation to compute angular correction velocity rather than estimating correction (excuse to use trig functions).
2012-12-18 23:05:59 -08:00
Robert Adams
7b84bcfbb8
BulletSim: initial implementation of a PID motor. Not hooked up yet.
2012-12-18 22:59:59 -08:00
Robert Adams
cf89e29ac3
BulletSim: comments and TODO list update
2012-12-18 19:25:51 -08:00
Robert Adams
8653ea93b2
BulletSim: apply friction to linear and angular motion before returning advanced motor value. This seems to be the problem with BulletSim vehicles turning too quickly. Also removed the configuration parameter that controlled the timestep scaling kludge for angular velocity that was added to research the question of quick turning.
2012-12-17 13:51:39 -08:00
Robert Adams
11532a4390
BulletSim: fix vehicles going underground when unsat. Problem was that, when doing unsit, the order of operations on the prims and the vehicle is very chaotic and not in a good order so the root prim was being left physical and thus it fell for a bit. Also changed default of velocity scaling to be closer to the movement standard.
2012-12-17 13:22:04 -08:00
Robert Adams
021623a17d
BulletSim: fix vehicles being shot in the air at border crossings because of mis-application of correction to postion for below groundness.
2012-12-16 22:31:22 -08:00
Robert Adams
2b8efa24dd
BulletSim: add parameter to UpdateProperties call into the linkset so changes from the physics engine can be differentiated from changes made by the user. This eliminates a linkset rebuild loop. Also add logic to not rebuild or freak out when the object/linkset crosses a terrain boundry.
2012-12-16 21:19:13 -08:00
Robert Adams
3f2aaffd4d
BulletSim: add even more to the TODO list.
2012-12-16 21:19:13 -08:00
Robert Adams
7ed860d3ac
BulletSim: add check for border crossing in character position sanity check.
2012-12-16 21:19:12 -08:00
Robert Adams
4cbc5082ff
BulletSim: refactor to combine common terrain height testing code. Add function to test if a position is over known terrain.
2012-12-16 21:19:12 -08:00
Robert Adams
f3b1efd889
BulletSim: remove some errors on shutdown by moving terrain destruction until after physical object destruction. TerrainManager also made disposable and that feature used.
2012-12-16 21:19:11 -08:00
Robert Adams
ace1f1e931
BulletSim: rip out old code for linkset child position fetching. BulletSim doesn't need to do that bookkeeping because SOG/SOP already does it.
2012-12-16 21:19:10 -08:00
Robert Adams
664dad53dd
BulletSim: Add more to the TODO list. Clean up and improve some comments.
2012-12-13 23:08:01 -08:00
Robert Adams
469c6c000a
Return the last set targetVelocity rather than the current velocity as the default action made available in PhysicsActor.TargetVelocity. Doesn't change any physics operation but makes DSG work better as the targetVelocity value does not keep moving around.
2012-12-13 16:32:25 -08:00
Robert Adams
31d3952477
BulletSim: fix problem with continuious rebuilding of physical linksets. This caused movement problems and large prim vehicles to take up a LOT of simulation time.
2012-12-13 16:32:19 -08:00