Commit Graph

135 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
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
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
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
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
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
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
john.mccutchan
2b71784c86 Make getShapeType() a non virtual function.
Add localGetSupportVertexNonVirtual, localGetSupportVertexWithoutMarginNonVirtual, getAabbNonVirtual and getMarginNonVirtual methods to convex shape classes
2008-09-29 22:47:05 +00:00
john.mccutchan
41b6eaa87f Change to make serializing btOptimizedBvh/btQuantizedBvh properly deterministic. Contributed by reltham. 2008-09-29 21:17:37 +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
id0x1234
7a72d76ef2 btDbvtBroadphase, re-enable deferred collide. 2008-09-21 02:23:30 +00:00
id0x1234
323df8f85b btDbvtBroadphase, fixed missed pairs when m_deferred collide was set to false. 2008-09-21 02:21:22 +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
rponom
486b172f58 Bug in constructor btHingeConstraint(body, pivot, axis) fixed. Build under MSVC 7.1 fixed 2008-09-19 21:10: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
3018eb9ebb btDbvtBroadphase is broken, revert temporarily to a previous working version. 2008-09-13 06:25:14 +00:00
id0x1234
a6f47f17d8 Fixed alignment issue in btDbvt::CollideTV 2008-09-12 02:39:33 +00:00
id0x1234
670d7d94fc Fixed SIMD compilation issues under msvc 7 2008-09-12 02:31:43 +00:00
erwin.coumans
bc8ff765b4 SSE gives compile errors on MSVC 7.1 2008-09-11 18:59:35 +00:00
erwin.coumans
732745d06c fix a compiling issue 2008-09-11 18:22:06 +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
id0x1234
fe0e2cd266 Improved DbvtBroadphase performance for sleeping world (when no bodies are moving).
Improved DbvtBroadphase velocity prediction.
2008-09-11 15:20:55 +00:00
id0x1234
afcfcb0a5d DbvtBroadphase, fixed slow initialization issue. 2008-09-11 11:41:10 +00:00
id0x1234
c09a664808 Improved speed for 'slow' moving bodies. 2008-09-11 11:26:00 +00:00
id0x1234
8c6788ad6a Improved Dbvt speed slightly. 2008-09-11 11:23:55 +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
id0x1234
bb50a2038f (re)Enable SSE by default (using intrinsics) should compile fine under all Intel platforms. 2008-09-07 09:10:43 +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
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
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
7234a61910 fix btSimpleBroadphase, it shouldn't store the allocated handles, they are simply in m_pHandles.
Thanks to Ole K. for reporting the issue:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2560
2008-09-04 19:31:37 +00:00
erwin.coumans
d2760b18aa fix placement new[], see discussion here:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1787&p=10252#p10252
2008-09-04 18:54:14 +00:00
erwin.coumans
dcefff0e0e stack variable 'bounds' needs to be 16-byte aligned for SSE 2008-08-27 23:37:33 +00:00
erwin.coumans
42ad559b2d Add some Doxygen comments for broadphase and linearmath classes. 2008-08-27 02:24:11 +00:00
erwin.coumans
db2514e930 provide serialization for btOptimizedBvh, using btQuantizedBvh. 2008-08-27 01:15:34 +00:00
erwin.coumans
79b6f7a772 Removed (circular) dependency between broadphase and collision shapes: moved parts CollisionShapes/btOptimizedBvh into BroadphaseCollision/btQuantizedBvh 2008-08-26 23:40:51 +00:00
erwin.coumans
8eafab367f syntax error fix, removed comma, see http://code.google.com/p/bullet/issues/detail?id=76&can=1
Fix btOptimizedBvh, thanks to reltham, http://code.google.com/p/bullet/issues/detail?id=72&can=1
2008-08-19 15:57:01 +00:00
id0x1234
79a1e5b8f4 - General performances improvement (25%) on insert/update/collideTT.
- ~30% additional performance improvement for win32 using SSE implementation for critical methods.
2008-08-13 04:46:01 +00:00
john.mccutchan
551f0fa1ec Keep track of raw pointer returned from btAlignedAlloc when using placement new on an array. 2008-08-07 16:02:59 +00:00
erwin.coumans
3ca977e39f Patch by Nathanael Presson: (needs some more work, some of the demos don't show properly (RayCaster, CollisionInterfaceDemo,'g' key is already occupied in ConcaveDemo etc)
btDbvtBroadphase:
- Fixed a performance issues reported by 'reltham'
- Added btDbvtBroadphase::optimize() for people who want good performances right away or don't do dynamics.
- fixed compilation issues when DBVT_BP_PROFILE was set.

btSoftBody:
- Fixed singular matrix issues related to polar decomposition (flat meshes).

DemoApplication:
- Shadows (enable/disable through 'g' or DemoApplication::setShadows(bool)).
- Texture can be enable/disable through 'u'

CDFramework:
- fixed compilation issues.
2008-07-28 04:33:55 +00:00
erwin.coumans
a9a67d62c3 Fixed memory leak in btDbvtBroadphase
http://code.google.com/p/bullet/issues/detail?id=66
2008-07-22 15:07:04 +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
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