Commit Graph
100 Commits
Author SHA1 Message Date
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 c986721fb6 Added btGhostObject to projectfiles
btGhostObject can be used for character control, fast short-ray tests, explosions, collision trigger zones etc
See Demos/CharacterDemo/KinematicCharacterController.* for example use. We add some explosion demo before next release.
2008-10-18 05:29:31 +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 b32a0e3491 Removed ray-AABB slopes code again, we are not using it and it is archived in Subversion repo now. 2008-10-16 20:19:01 +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 e627f38a28 Removed ray-AABB slopes code again, we are not using it and it is archived in Subversion repo now. 2008-10-16 20:18:23 +00:00
erwin.coumans 6fcd824524 Applied filtering flags for CCD Motion Clamping, thanks to Bbilz, see http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2736 2008-10-16 20:17:56 +00:00
erwin.coumans 945b299e56 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:01:02 +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 60ce828419 Autoformat selection for soft body, btDbvt related classes (no code change, just layout using Visual Studio) 2008-10-15 18:39:27 +00:00
erwin.coumans cac172d422 Use consistent rayFrom/rayTo API for rayTest for btDbvt and btSoftBody, instead of rayCast/collideRAY(origin,direction). This means RayFromToCaster has a fraction [0..1] instead of distance [0..INF]
Renamed collideRay -> rayTest to reflect change to (rayFrom,rayTo) interface.
Re-use btRayAabb2 function from src/LinearMath/btAabbUtil2.h in btDbvt instead of duplicated implementation.
2008-10-15 18:30:35 +00:00
erwin.coumans 81fcd03af5 Fix BenchmarkDemo issues with double precision build 2008-10-14 20:48:05 +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 780350a9e1 Fix copy/paste bug, resulting in wrong friction warmstarting,
thanks to sandeep_slash, http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2724
2008-10-14 04:44:24 +00:00
erwin.coumans 919a9dcc29 Accepted CreatePatchUV contribution, thanks to mi076.
See also http://code.google.com/p/game-ws
2008-10-12 20:44:09 +00:00
erwin.coumans 4624bde28b updated autogenerated msvc projectfiles, minor fix in Gimpact/btGImpactShape.h (shapeType) and btWin32ThreadInterface. 2008-10-11 16:23:10 +00:00
erwin.coumans 9ae3c55a1c cmake build fixes for Gimpact move 2008-10-11 06:15:30 +00:00
erwin.coumans 374e97fa8b even more build system changes. 2008-10-11 06:11:26 +00:00
erwin.coumans e4ed38e7f6 more build system changes, to reflect Gimpact/BulletMultiThreaded move from Extras to src 2008-10-11 05:52:45 +00:00
erwin.coumans 22a79e61b1 updated Jamfile build system for reorganized files/folders 2008-10-11 05:23:00 +00:00
erwin.coumans b6f0434832 a few modifications to BulletMultiThreaded, add 'setNumTasks' to interface, reorganize DMA transfers to allow larger btBroadphaseProxy size 2008-10-11 00:01:08 +00:00
erwin.coumans 512c0f167e moved Extras/Gimpact to src/BulletCollision/Gimpact
moved Extras/BulletMultiThreaded to src/BulletMultiThreaded
(build systems will be updated soon)
2008-10-10 19:48:36 +00:00
erwin.coumans 6f6f88fa08 bump up version, add changelog entry for aabb/raytest improvements 2008-10-10 18:21:22 +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 a42b7d93f1 Stop resitution for resting contact, after n frames (can be controlled by btContactSolverInfo.m_restingContactRestitutionThreshold
Thanks Jan Bender for bringing this up
2008-10-09 16:24:00 +00:00
erwin.coumans 0508c3a5d5 Disable TEST_NON_VIRTUAL debugging for btGjkPairDetector 2008-10-08 21:00:15 +00:00
erwin.coumans 10d103b50e Disable TEST_NON_VIRTUAL debugging for btGjkPairDetector
Reverted BulletMultiThreaded, there are some performance issues to be resolved.
2008-10-08 20:59:26 +00:00
erwin.coumans 288df0df65 don't include cfloat by default, it breaks OSX and Linux build 2008-10-06 06:00:35 +00:00
erwin.coumans 2998d2a8f3 Added ReadBlend, a data extraction API for Blender's .blend files
This can come in handy, to author physics data for Bullet from Blender, and directly get the physics data straight from the .blend file

Thanks a lot to Adam D. Moss, to digg up this code and make it available under the MIT license
It was mentioned several years ago in this thread:
http://archives.seul.org/linuxgames/Apr-2005/msg00002.html
2008-10-06 03:53:51 +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 454fc84517 updated changelog 2008-10-04 01:15:49 +00:00
erwin.coumans b281057337 made shape construction virtual, to allow destruction of memory of btCollisionShape 2008-10-04 01:11:40 +00:00
erwin.coumans 23b2767100 add support for exporting static plane shape in ColladaConverter. 2008-10-03 23:58:55 +00:00
erwin.coumans 854aaea56a renamed 'failed' into not found, to make it sound less dramatic (it continues fine). add cmake/msvc as alternative build options, at the end of configure. 2008-10-03 22:45:54 +00:00
erwin.coumans 425376a416 Update MayaPlugin projectfiles, to compile for Maya 8.5, when available. If multiple Maya versions are installed, the include path order is Maya 2008 -> 8.5 -> 8.0 2008-10-02 01:29:10 +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 c265db0007 updated auto-generated MSVC projectfiles, for new btConvexPointCloudShape 2008-10-01 23:58:22 +00:00
erwin.coumans 1800169604 add new files to CMake 2008-10-01 23:45:54 +00:00
erwin.coumans d2a282dc07 fixed issue with clamping/quantization in btAxisSweep3,
Thanks to ole.k for report and fix:  http://code.google.com/p/bullet/issues/detail?id=87
2008-09-30 20:58:03 +00:00
erwin.coumans 0ff15db3f3 + capsule should subtract margin, and take local scaling into account.
+ boxshape uses btFsels
+ add assert in btGjkPairDetector that the new non-virtual method produces the same result as old non-virtual
2008-09-30 18:37:01 +00:00
erwin.coumans 9f28b2bc12 Improve damping formula in btRigidBody::applyDamping
Thanks to sparkprime, see http://code.google.com/p/bullet/issues/detail?id=74
Fixed btCompoundShape/btCapsuleShape/btGImpactShape for missing m_shapeType, and added an assert in DemoApplication::localCreateRigidBody for invalid shape types.
2008-09-30 00:34:58 +00:00
erwin.coumans d221d3be8d Update btSoftBodyCollisionShape to set m_shapeType 2008-09-30 00:05:44 +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 682a0a1b90 fixed btSoftBodyConcaveCollisionAlgorithm, wrong bounding box transformation
added vertex welding option for btTriangleMesh (brute-force slow)
reject appendFace for some degenerate triangles (all 3 vertices/nodes need to be different)
add setVelocity method for btSoftBody
2008-09-26 21:59:03 +00:00
erwin.coumans 752eb583d0 some minor work on soft body, to make it easier to integrate into apps. 2008-09-24 02:41:50 +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 a5da7347db changed order in link libraries, math should go last 2008-09-22 14:33:39 +00:00
erwin.coumans 255de503e0 renamed OBJ to COLLADA 2008-09-22 02:12:35 +00:00
erwin.coumans 3d64413ec2 Add Dynamica Bullet installer script for NSIS Nullscript scriptable install system 2.39 for Windows.
Assumes Microsoft Visual Studio 2005 installed in the default location, and BulletMayaPlugin.mll compiled.
2008-09-22 02:01:09 +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 8ae3f92859 encountered some issue with the btDbvtBroadphase, switch of a deferred collision feature. 2008-09-21 01:15:05 +00:00
erwin.coumans 8db0285d4f attempt to support negative local scaling for btConvexHullShape, btConvexInternalShape-derived classes and btScaledBvhTriangleMeshShape 2008-09-20 23:47:38 +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 a7c83d01b9 Added ReleaseDll and DebugDll configurations for MSVC projectfiles.
Fixed the MayaPlugin projectfile, using those ReleaseDll/DebugDll projects.
2008-09-20 00:47:04 +00:00
erwin.coumans 15df743b51 add ReleaseDll and DebugDll configuration for Jam msvcgen build system, to support plugin development (such as Extras/MayaPlugin) 2008-09-20 00:22:18 +00:00
erwin.coumans 97766f45e6 updated MSVC projectfiles: added colladaExport.*, drawUtils.* and BulletColladaConverter, COLLADA_DOM and libxml.
Note: Bullet libs need to be switched to Multithreaded DLL run-time: we should add additional configurations for plugins!
2008-09-19 08:05:55 +00:00
erwin.coumans c30a8bf154 added COLLADA Physics export. import will follow soon.
Note that the exporter/importer doesn't handle GIMPACT and btStaticPlaneShape yet.
2008-09-19 07:14:48 +00:00
erwin.coumans ff46ceb519 make MayaPlugin work under Mac OSX (intel/x86), build/install:
make -f Makefile.mac
make install -f Makefile.mac

It assumes Maya is installed in the default location, and plugin will install in default /Users/Shared/Autodesk/maya folder.
2008-09-19 00:47:56 +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 1346c95205 reverted back to newer btDbvtBroadphase, and applied Nathanael's fixes. 2008-09-13 08:06:39 +00:00
erwin.coumans d1318a05b3 Add plNearestPoints, contribution from Blender
Thanks!
2008-09-13 06:55:34 +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 3018eb9ebb btDbvtBroadphase is broken, revert temporarily to a previous working version. 2008-09-13 06:25:14 +00:00
erwin.coumans 50daff0848 added install.bat used for the Windows release, and updated docs to add instruction videos and link to the forums for support. 2008-09-12 21:22:30 +00:00
erwin.coumans c435f6f65c added btScaledBvhTriangleMeshShape to autogenerated projectfiles 2008-09-12 01:07:12 +00:00
erwin.coumans 58e1e9f049 updated version to 2.72, fix a compilation issue. 2008-09-12 00:59:16 +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 bc8ff765b4 SSE gives compile errors on MSVC 7.1 2008-09-11 18:59:35 +00:00
erwin.coumans 569946a96f added some debugging variable for CCD motion clamping 2008-09-11 18:44:30 +00:00
erwin.coumans 732745d06c fix a compiling issue 2008-09-11 18:22:06 +00:00
erwin.coumans 4ca3861944 remove ; 2008-09-11 18:19:19 +00:00
erwin.coumans 60fa900995 Added CCD motion camping, to avoid tunneling.
Not as versatile compared to btContinuousDynamicsWorld but still useful.
2008-09-11 18:13:56 +00:00
erwin.coumans 96c7465265 stack variables 'aabb' needs to be 16-byte aligned, when used for SIMD 2008-09-11 16:45:21 +00:00
erwin.coumans 8b3270f22f Added 2 optimizations for the SAP broadphase: check AABB before remove, and a faster 2D overlap test.
Thanks to Pierre Terdiman/OPCODE Array SAP. Performance goes down from 4.6 to 2.9ms for the 8192 Extras/CDTestFramework benchmark.
2008-09-11 07:34:18 +00:00
erwin.coumans 32ab5d3691 fix crash in Maya plugin, trying to access elements in a zero-length positions/rotations array. 2008-09-11 00:57:53 +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 6c426f9545 make those members private, in btScaledBvhTriangleMeshShape 2008-09-07 05:30:35 +00:00
erwin.coumans 6b365a7ca5 Add get methods for localAabbMin/localAabbMax, required for btScaledBvhTriangleMeshShape 2008-09-07 05:00:55 +00:00
erwin.coumans d836e83ea2 Added btScaledBvhTriangleMeshShape. The btScaledBvhTriangleMeshShape allows to instance multiple differently scaled versions of an existing btBvhTriangleMeshShape.
All those instances re-use the same btBvhTriangleMeshShape child shape (and its btOptimizedBvh).
2008-09-07 04:59:57 +00:00
erwin.coumans 103b98de73 disable SSE by default on btDbvt, it breaks build on Windows 64 bit and Win32 Intel compiler. 2008-09-06 16:58:18 +00:00
erwin.coumans d61a3aac7f Add btCompoundShapes to concave triangle mesh, to QA this report. Couldn't find any issue:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2557
2008-09-06 16:48:47 +00:00
erwin.coumans 33565d399e Make ForkLiftDemo easier to use (shift+cursor keys to control fork)
Updated projectfiles
2008-09-06 16:35:49 +00:00
erwin.coumans 5e92e6b661 updated cmake for ForkLiftDemo, removed DinoDemo (it breaks cmake due to c/c++ mixing) 2008-09-06 15:43:20 +00:00
erwin.coumans 62f6c16fe3 Added documentation and sample scenes for MayaPlugin
Thanks to Walt Disney Studios.
2008-09-06 00:41:46 +00:00
erwin.coumans 82b64b0565 exclude BulletMultiThreaded from 64-bit builds 2008-09-05 20:56:50 +00:00
erwin.coumans 398d681b22 fixed compile error for btConvexTriangleMeshShape.
Thanks to slackydeb for the report, http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2567
2008-09-05 18:30:18 +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 862ea08d3b use new/delete[] array, overriden by BT_ALIGNED_ALLOCATOR macro.
Thanks to Russell Bartley for the feedback.
2008-09-05 05:58:37 +00:00
erwin.coumans 7df4eeccec updated changelog.txt 2008-09-05 05:29:20 +00:00
erwin.coumans bfe4c2da55 updated projectfiles for OSX demo 2008-09-05 01:43:25 +00:00
erwin.coumans cef07cfa20 Revert to max 1 substep by default: increased maxSubSteps to 10 make debug version way too slow.
Use btDbvtBroadphase in BasicDemo and CcdPhysicsDemo.
2008-09-05 01:41:32 +00:00
erwin.coumans e08c3acc1d updated projectfiles: removed optional ODE quickstep from core. moved into Extras/quickstep. 2008-09-05 00:32:12 +00:00
erwin.coumans 359c84d3b3 Fix previous commit, accidently removed some aabbMin/aabbMax assignments.
move margin calculation for aabb before basis transform.
2008-09-05 00:26:02 +00:00
erwin.coumans 4f1a015b41 Added CUDA link + usage info for btCudaBroadphase demo. 2008-09-04 23:28:49 +00:00