Commit Graph

162 Commits

Author SHA1 Message Date
erwin.coumans
003b6fa669 removed some warnings, as reported here:
http://code.google.com/p/bullet/issues/detail?id=123
Thanks sparkprime
2008-10-27 20:20:28 +00:00
erwin.coumans
6f28170422 Removed obsolete btPoint3: use btVector3 instead 2008-10-27 19:56:48 +00:00
erwin.coumans
e6202f58ad 1)Added SCE Physics Effects boxBoxDistance
BulletMultiThreaded/NarrowPhaseCollision makes use of this boxBoxDistance.
Cache some values in src/BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.cpp, to avoid DMA transfers

2) Added btConvexSeparatingDistanceUtil: this allows caching of separating distance/vector as early-out to avoid convex-convex collision detection.
btConvexSeparatingDistanceUtil is used in src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp and can be controlled by btDispatcherInfo.m_useConvexConservativeDistanceUtil/m_convexConservativeDistanceThreshold

3) Use BulletMultiThreaded/vectormath/scalar/cpp/vectormath/scalar/cpp/vectormath_aos.h as fallback for non-PlayStation 3 Cell SPU/PPU platforms (used by boxBoxDistance).
Note there are other implementations in Extras/vectormath folder, that are potentially faster for IBM Cell SDK 3.0 SPU (libspe2)
2008-10-20 20:12:39 +00:00
erwin.coumans
4cbb3f2e7b Added btGhostObject and btPairCachingGhostObject functionality.
It is a fast way to keep track of overlapping objects in an area, and doing rayTest and convexSweepTest for overlapping objects, instead of btCollisionWorld::rayTest/convexSweepTest.

Updated KinematicCharacterController to use btPairCachingGhostObject.
2008-10-18 01:33:23 +00:00
erwin.coumans
b48d05d52a Preliminary adding btGhostObject.
It can be useful for collision sensors, explosion objects, character controller etc.

Similar to Havok phantom object.
2008-10-16 22:29:38 +00:00
erwin.coumans
947a44452d Removed ray-AABB slopes code again, we are not using it and it is archived in Subversion repo now. 2008-10-16 20:18:41 +00:00
erwin.coumans
675c45f42d some rayTest improvements in btDbvt::rayTestInternal, it avoids/reduces memory allocations during stack allocation (by sharing a persistent m_stack)
and rayTestInternal re-uses precomputed invRayDirection/signs.
also did some performance comparison with different ray-AABB test, from 
http://jgt.akpeters.com/papers/EisemannEtAl07/

In short: it is faster, but it is not clear how to cull ray segments using ray slopes: when rays starts inside the AABB, we get a negative t value, but negatives also get false t-values...
2008-10-16 20:00:47 +00:00
erwin.coumans
e6c850f13b Fix/improve raycast performance for btBvhTriangleMeshShape (btQuantizedBvh, btOptimizedBvh)
Add raycast acceleration for btAxisSweep3, using btDbvtBroadphase, providing large speedup. Can be disabled in constructor to safe memory.
2008-10-14 20:24:28 +00:00
erwin.coumans
fffca75e9f Make raycast benchmark default, to show improved raycasting performance.
Add rayTest to btBroadphaseInterface, and implement efficient version for btDbvtBroadphase to accelerate raycasting.
btAxisSweep3, btSimpleBroadphase and btMultiSapBroadphase implement brute-force method (as before). For now, it is recommended to use btDbvtBroadphase for fastest world raycast.
2008-10-14 06:23:45 +00:00
erwin.coumans
9ad17dda22 Add aabbMin/aabbMax to broadphase proxy, and improve rayTest performance.
Todo: use broadphase acceleration structure (btDbvtBroadphase etc) for ray test
2008-10-10 17:32:52 +00:00
erwin.coumans
30a13d5b5d updated INSTALL file and btCollisionWorld doxygen, adding ./autogen.sh and make support. 2008-10-04 14:52:01 +00:00
erwin.coumans
0ca2eef022 FIX: use btScalar instead of float, otherwise double precision build breaks
FIX: make Maya plugin compile for Maya 8.0
FIX: btDbvt SSE doesn't compile for double precision builds
2008-10-02 01:17:18 +00:00
erwin.coumans
e590f4a721 fixed some outstanding issues with Bullet soft bodies:
1) re-allocate a pool allocator, if one of the soft body collision algorithms is larger than max pool element size
2) manage child shapes properly, and call RemoveReferences on the m_sparsesdf
2008-09-26 23:39:17 +00:00
erwin.coumans
d7b635cabf logic bug in (de)activation/island management: deactivated 'fantom' objects do merge islands, in particular when connected by constraints. (fantom = object with collision detection but no collision response). 2008-09-23 04:57:20 +00:00
erwin.coumans
d2f7f9d25b make soft bodies more compatible with rigid body API: disable setCollisionShape (it would delete the shape passed in!) 2008-09-21 15:19:54 +00:00
erwin.coumans
58f2747acf fixed and re-enabled sphere-sphere collision: contact points were not properly removed/refreshed. 2008-09-20 22:33:36 +00:00
erwin.coumans
56d88e18f8 disable sphere-sphere collision algorithm, it is buggy.
See also http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=12&t=2636
2008-09-20 01:59:06 +00:00
erwin.coumans
bf5eafb759 make sure Bullet and Blender/extern/bullet2 is in sync 2008-09-17 20:01:01 +00:00
erwin.coumans
c9e5f2df05 fix 64-bit issue, can't cast void* to int. 2008-09-16 06:17:33 +00:00
erwin.coumans
3d2ce530d4 applied patch to make child shape of a compound shape available during ray testing.
Thanks to Benoit Bolsee for the patch: http://code.google.com/p/bullet/issues/detail?id=91
2008-09-13 06:46:53 +00:00
erwin.coumans
fae48b5c25 some more improvements to support basic CCD motion clamping 2008-09-11 23:50:50 +00:00
erwin.coumans
350e2e0393 btDbvtVolume needs to be 16-byte aligned, otherwise SIMD version crashes. 2008-09-11 20:20:31 +00:00
erwin.coumans
93d1d24234 Some changes in rendering, to get shadows for trimeshes
Add dynamic aabb tree (btDbvt) optimization for btCompoundShape/btCompoundCollisionAlgorithm
Add btTransformAabb util, todo: deploy it throughout the codebase
2008-09-10 05:20:04 +00:00
erwin.coumans
aad1d574ef wrong condition: swap the contact normal/results independent from contact manifold owner.
Thanks to ihar3d, http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2588
2008-09-09 22:40:30 +00:00
erwin.coumans
971a060bbb Define btAssert as empty in non-debug builds.
GL_DEPTH_BUFFER_BIT -> GL_DEPTH_TEST, thanks to Mihail Isakov, http://code.google.com/p/bullet/issues/detail?id=86
2008-09-05 06:22:18 +00:00
erwin.coumans
d8a5bf2c9c Calculation of bounding box: margins should be added before basis transform.
Disable btSphereBoxCollisionAlgorithm, it is broken.
More fixes for btSimpleBroadphase
Moved quickstep to Extras/quickstep folder, so developers don't get confused which constraint solver is default.
2008-09-04 22:53:24 +00:00
erwin.coumans
8340a77aa8 ConvexResultCallback::hasHit() and RayResultCallback::hasHit() are both const now.
Developers need to fix their derived classes too!
Thanks to bcsanches, http://code.google.com/p/bullet/issues/detail?id=81&can=1
2008-08-29 05:16:05 +00:00
erwin.coumans
4894f24c9a Fixes for FPU exceptions, thanks to Phil Knight for reporting and John McCutchan for fix/workarounds.
Added new cluster collision methods for soft bodies, thanks to Nathanael Presson.
Enable/disable textures/shadows for specific demos.
2008-08-01 01:04:45 +00:00
erwin.coumans
af4520801b + Fix btSubsimplexConvexCast
Thanks to Nacho, http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2422)
Fix in rendering, GL_STENCIL
+ btTriangleIndexVertexArray indices should be unsigned int/unsigned short int,
+ Made InternalProcessAllTriangles virtual, thanks to 
Both thank to Fullmetalcoder, http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2401
+clamp impulse for btPoint2PointConstraint
Thanks to Martijn Reuvers, http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2418
+ Free memory of bvh, pass in scaling factor (optional)
Thanks to Roy Eltham, http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2375
2008-07-31 19:44:28 +00:00
erwin.coumans
9cd83c004b + add dummy getcwd/getenv for PS3 compatibility
+ disable HAVE_SIGNAL_H 0 for LibXML
+ removed unused variable in btCollisionWorld
+ removed unused variable in btSequentialImpulseConstraintSolver
2008-07-28 23:15:43 +00:00
erwin.coumans
884a494412 make the source code compile with older compilers again (Visual Studio 2006 in particular)
renamed btDbvt::Volume to btDbvtVolume and btDbvt::Node to btDbvtNode to distinguish from btSoftBody::Node
2008-07-15 23:27:18 +00:00
erwin.coumans
8f3e9603f3 + fixed issue related to temporary/root collision shape in btCollisionObject
+ normalize plane normal input for btStaticPlaneShape
+ fixed issue related to swapped collision detectors (SphereTriangleDetector in particular)
Thanks a lot to Andrey Tuganov for reporting the issue and his reproduction case ( http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2143 )
2008-07-11 05:39:31 +00:00
john.mccutchan
31dfbf55e1 Compile fixes
Added getOwnsBvh to btBvhTriangleMeshShape
2008-07-10 23:22:29 +00:00
erwin.coumans
1c0fa00bc7 + provide access to 'root' collision shape, in case the original collision shape is temporarily replaced by a child collision shape.
+ added MultiMaterialDemo showing how to use the new btTriangleIndexVertexMaterialArray.
Thanks to Alex Silverman for this contribution!
2008-07-10 22:19:30 +00:00
erwin.coumans
b66e5350d0 rename HasHit method to hasHit
rename AddSingleResult to addSingleResult
moved collision filtering for btCollisionWorld::rayTest and btCollisionWorld::convexSweepTest from argument to the callback needsCollision
2008-07-09 23:30:21 +00:00
erwin.coumans
dcd57f333b + improved KinematicCharacterController
+ improved btSubsimplexConvexCast, btContinuousConvexCollision and btGjkConvexCast to support configuration that start in touching/penetration, required for 'sliding'.
+ added files to CMakeLists.txt for CharacterController
+ bump up version to 2.70 (preparation for beta)
2008-07-09 00:08:49 +00:00
erwin.coumans
52de9fee03 add profiling for 'calculateOverlappingPairs' 2008-06-25 01:26:02 +00:00
erwin.coumans
e854a5133b add support for non-power-of-2 dma sizes (for small dma transfers)
add setBroadphase
2008-06-24 02:15:06 +00:00
erwin.coumans
d16c1b615f pass in reference to actual contact point in cache, rather then temporary value, should fix issue 53
http://code.google.com/p/bullet/issues/detail?id=53
Thanks Alex Silverman for reporting and suggested fix
Changed addContactPoint to lowercase
2008-06-22 03:30:55 +00:00
erwin.coumans
d49aeb9dff + improved split impulse constraint solver option
+ improved friction warm starting
+ made constraint solver configuration more consistent (moved m_solverMode into btContactSolverInfo)
+ reset timing in CDTestFramework after initialization (SAP init destorts timings)
+ make it easier to change default sizes for stack allocator in btDefaultCollisionConfiguration
2008-05-29 03:33:32 +00:00
erwin.coumans
3d32cf7ddf add penetration depth solver for btCollisionWorld::convexSweepTest, to handle touching/penetrating contact (useful for character controller) 2008-05-24 05:22:41 +00:00
erwin.coumans
f8e5481612 Added method to collect all persistent contact manifolds, given a btBroadphasePair (collision algorithm)
virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)
See Demos/CharacterDemo/CharacterDemo.cpp for example usage of getAllContactManifolds
Added btDbvtBroadphase to btBulletCollisionCommon.h headerfile
Enable soft body vs concave (albeit slow)
Improved contact point debug rendering (moved from constraint solver into debugDrawWorld)
2008-05-24 04:23:00 +00:00
erwin.coumans
561066af75 + make compound versus soft body work (soft body uses interpolated transform)
+ fixed issue with persistent manifold, warmstarting values were not initialized properly
+ don't clear manifold in sphere-sphere collision (need warmstarting)
+ added support for 'split impulse', decouple positional error correction from velocity correction
This avoids adding momentum due to penetration correction, it can be tuned using following variables:
solverInfo.m_splitImpulse = true/false (disable/enable)
solverInfo.m_splitImpulsePenetrationThreshold (below this value, baumgarte/mixed velocity/penetration is used (cheaper, looks more plausible)
solverInfo.m_linearSlop (less jitter, when small amound of penetration is allowed)
2008-05-23 09:05:37 +00:00
erwin.coumans
6a69fe7f3b use collision margin of btBvhTriangleMeshShape for convexTest.
Thanks to reltham for the contribution.
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2121&p=8454#p8454
2008-05-18 01:15:00 +00:00
erwin.coumans
bd97c5e569 Fixed warnings in Bullet/src core library
Thanks Martijn Reuvers from Two Tribes B.V. (www.twotribes.com) for the patch

To make this work more visible, suppress warnings in external libraries in Extras (COLLADA_DOM, libxml and glui contain many warnings)
Added PreprocessorDefinitions: _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE to vcproj files
2008-05-10 18:00:21 +00:00
erwin.coumans
1139c06a4d more soft body preparations, moved some parts from Demo/SoftBody to src/BulletDynamics/SoftBody
moved Extras/ConvexHull/btConvexHull.* to src/LinearMath/btConvexHull.*
removed btCollisionObject::m_internalOwner, replaced it by m_internalType. This should not affect external API (it was clearly marked as internal)
2008-04-10 20:00:41 +00:00
erwin.coumans
b37a37a28e Added initial broadphase support for softbody versus softbody and softbody versus rigidbody (see btSoftSoftCollisionAlgorithm and btSoftRididCollisionAlgorithm)
Added 	SOFTBODY_SHAPE_PROXYTYPE.
Some refactoring for btSoftBody, needs more work.
2008-04-06 06:53:00 +00:00
erwin.coumans
883d3278ec + fixed btMinkowskiSumShape Sa+b(v) = Sa(v)-Sb(-v) instead of Sa(v)+Sb(v)
+ fix related btMinkowskiSumShape issue in btSubsimplexConvexCast and btGjkConvexCast
+ add hitpoint for btSubsimplexConvexCast
+ reduce maximum number of iterations in conservative advancement/CCD implementations
2008-04-03 18:35:28 +00:00
erwin.coumans
83c6ea03d1 added btBoxBoxCollisionAlgorithm and btBoxBoxDetector.cpp to core of Bullet under the ZLib license
Thanks to Russell L. Smith from Open Dynamics Library (ODE) to allow re-distribution under ZLib as part of Bullet.
2008-03-30 20:29:26 +00:00
erwin.coumans
65bb612598 - added quickSort to btAlignedObjectArray (has generally better performance then heapSort)
- replaced all usage of heapSort by quickSort
- finished btMultiSapBroadphase. Still some work to be done to increase performance (faster add/remove from child broadphases. 
  uses currently AABB tree to locate child broadphase (should use grid), and sorted array takes too much time.
2008-03-16 04:30:43 +00:00