Commit Graph

1669 Commits

Author SHA1 Message Date
erwin.coumans@gmail.com
d48e2c717c fix rotation correction in btFixedConstraint, see Issue 769 2013-12-04 19:06:28 +00:00
erwin.coumans@gmail.com
1362b6ab48 Fix convex cast normals for btScaledBvhTriangleShape: normals were already in world space
See Issue 371 THere seems to be some other issues, need to get a reproduction case.
2013-11-26 18:44:06 +00:00
erwin.coumans@gmail.com
5910b42d8d fix SIMD_2_PI macro, see Issue 773 2013-11-26 17:15:05 +00:00
erwin coumans
beb9e98cd3 expose the gUseLargeBatches as command-line argument --use_large_batches 2013-11-21 09:15:52 -08:00
erwin coumans
8a7ad65177 added a variation of the constraint solver, that works on CPU OpenCL (oneBigBatch), one stage (batching) happens on CPU for this mode 2013-11-21 09:15:42 -08:00
erwincoumans
1d5c651753 Use more shared data structures in src\Bullet3OpenCL\NarrowphaseCollision\kernels\satClipHullContacts.cl
Revert default error func (was broken)
2013-11-19 17:52:59 -08:00
erwin coumans
26dfaa441e add some command-line options
--use_jacobi
--allow_opencl_cpu

b3LauncherCL constructor takes string, to make it easier to determine failing OpenCL kernel
b3SetCustomErrorMessageFunc, printf error and exit(0)
2013-11-19 13:42:53 -08:00
erwin.coumans
bda1fb7dd2 fix 64bit iOS,see also Issue 739 2013-11-18 22:17:00 +00:00
erwin.coumans@gmail.com
9aad92315b Avoid crash in btCompoundCompoundCollisionAlgorithm if there is no tree for one of the btCompoundShapes
Update the revision, to avoid clearing the child cache each frame
2013-11-17 20:35:35 +00:00
erwin.coumans@gmail.com
886650a038 fix 'unused' warning. Fixes Issue 770 2013-11-17 20:13:50 +00:00
erwincoumans
a78cbcf354 Accidently left some very slow copyToHost in the batching code, removing it makes it faster :-) 2013-11-12 09:03:30 -08:00
erwincoumans
5ce0b3938f Re-introduce GPU parallel Jacobi solver, called btGpuJacobiContactSolver. There are still some issues, but for basic scene's it works.
To avoid confusion, rename GPU contact solver to btGpuContactSolver, and constraint (non-contact) solver to btPgsConstraintSolver.
2013-11-11 21:15:06 -08:00
erwincoumans
ef6be5370d more work towards hybrid of GPU grid and sap broadphase, separating small, large (moving) and static objects
re-enable 'useNewBatchingKernel', it is slower but more robust
2013-11-11 02:19:04 -08:00
erwin coumans
d13de109a5 work towards re-enabling GPU grid broadphase (in addition to GPU sap bp) 2013-11-10 23:19:51 -08:00
erwincoumans
b0c43520e3 more work towards re-enabling grid broadphase. 2013-11-10 22:00:35 -08:00
erwincoumans
ad8585f184 prepare for btGpuGridBroadphase 2013-11-10 14:15:23 -08:00
erwincoumans
a6bc61ad1a tweaked the particle demo a little bit 2013-11-08 23:21:01 -08:00
erwincoumans
768ea211a6 add a waiting message, during startup of a demo.
fix an OpenCL kernel, broken in previous commit.
2013-11-07 16:47:18 -08:00
erwin coumans
e85bae5fe3 share more data structures and code between OpenCL kernels and C/C++ code on CPU (non-OpenCL)
integrateSingleTransform
fix bug in registerRigidBody (could lead to random crashes, especially when performing picking/adding rigid bodies afterwards)
2013-11-07 15:49:57 -08:00
erwin coumans
e20cb22832 share more data structures and code between OpenCL and C/C++ on CPU:
move the setConstraint4/b3ConvertConstraint4 to shared code.
2013-11-07 12:46:01 -08:00
erwin coumans
a9a758dd54 share more code between OpenCL kernels and C++ by moving kernel data structures/code to the 'shared' folders 2013-11-06 19:57:36 -08:00
erwin.coumans@gmail.com
0536f986a6 apply patch: soft bodies should not collide with ghost objects.
Thanks to Sergej Reich for the patch, fixes Issue 757
2013-11-04 01:12:52 +00:00
erwin.coumans@gmail.com
439ab03940 fix Mac OSX build (there is no such member called e.m128_f32[0] 2013-11-03 19:55:08 +00:00
erwin.coumans@gmail.com
218d4d1394 use a separate default cfm for the MLCP solver, it is a very sensitive value for Dantzig (and Lemke) 2013-10-31 16:52:32 +00:00
erwin.coumans@gmail.com
644d01d231 added the btNNCGConstraintSolver, based on the paper "Nonsmooth Nonlinear Conjugate Gradient Method for interactive
contact force problems". The solver needs a lot of iterations, before the quality goes up (~ 1000)
Thanks to Gabor PUHR for the contribution!
Improved the btLemkeSolver.
Remove the sparse optimizations from the btMatrixX.h, replace it with explicit call to rowComputeNonZeroElements (only used in the btSolveProjectedGaussSeidel), it was likely slowing things down, without being useful.
Re-enable SIMD in the solver (was accidently disabled in Bullet 2.82 release)
2013-10-31 06:17:08 +00:00
erwin.coumans@gmail.com
6ca948e22f make Lemke work with lower/upper bounds, using the BLCP to LCP conversion (using a dog-slow matrix inversion etc)
for this conversion, see also https://github.com/erwincoumans/num4lcp/blob/master/matlab/test_lcp_bounds.m and
appendix A1 in http://www.cs.duke.edu/~parr/nips10.pdf, thanks to Kenny Erleben and Evan Drumwright for the tips!
(friction is not coupled to normal forces yet)
2013-10-30 00:02:13 +00:00
erwin.coumans@gmail.com
13936eb9a5 use square epsilon in btVector3::fuzzyZero (length2) 2013-10-29 22:53:01 +00:00
erwin.coumans
1a2c3c0ee9 Added a Lemke MLCP solver, extracted from the MBSim project, and re-licensed under the zlib license
with permission of the original author. 
The Lemke implementation is not fully working yet:
1) we need to convert the lo-high LCP problem into a problem without the lo/high
2) we need to sort out the remaining instabilities, and report a failure if the max loopcount is reached etc.
We replaced the fmatvec library with our own LinearMath/btMatrixX.h, and STL std::vector with btAlignedObjectArray

Removed some warnings/potential issues: use fuzzyZero instead of isZero, and some warnings, 
related to this issue 756
2013-10-26 18:45:25 +00:00
erwin.coumans@gmail.com
19f999ac08 fix double precision, and remove alloca
increase mass of the load, to show benefits of direct MLCP solver
move damping back to original location
2013-10-24 18:31:27 +00:00
erwin.coumans@gmail.com
5ca137cb54 fix autotools build, add MLCPSolvers and ForkLiftDemo 2013-10-24 02:27:37 +00:00
erwin.coumans@gmail.com
f5320e4106 add "latency motion state interpolation", using previous frame/current, instead of current->next
See Demos/ForkLiftDemo for example (F7 to toggle, use single-frame stepping, press 'i' and 's' to see the effect)
2013-10-24 00:13:43 +00:00
erwin.coumans@gmail.com
a1c962192c Allow the ForkLiftDemo to toggle between MLCP and SI solver, using F6 key.
Apply patch for CMake config, see Issue 754 (Issue 753)
Fix a few issue with the MLCP solver: allow split impulse, and fix offset in friction dependencies
2013-10-23 23:35:13 +00:00
erwin.coumans
1503c806bd fix Mac OSX build when using GNU++11 C++ language standard, make this the default in premake under OSX for easier testing 2013-10-22 23:08:43 +00:00
erwin.coumans
0024c87316 move the m_maxAppliedImpulse into base class, and use it for motor strength/point to point constraint strength 2013-10-22 21:49:52 +00:00
erwin.coumans
f22ceecb82 Fix Featherstone btMultiBodyPoint2Point constraint and picking: don't assume body 0 is the fixed body! 2013-10-22 21:06:47 +00:00
erwin.coumans
75260cd0d7 fix iOS compilation when the C++ Language Dialect is set to GNU++11 2013-10-22 19:13:24 +00:00
erwin.coumans
4169c52b2a use __ARM_NEON__ preprocessor check instead of __armv7__ 2013-10-22 19:01:21 +00:00
erwin.coumans@gmail.com
cf7f5436e4 apply CMake patch in Issue 748
thanks to Julien Schueller for the contribution!
2013-10-22 18:34:17 +00:00
erwin.coumans@gmail.com
23f612bbb5 fix Linux build
by default, only enable 64bit build when using ./premake4_linux64 and only 32bit build when using ./premake4_linux
remove some warning
2013-10-22 18:10:45 +00:00
erwin.coumans@gmail.com
a21480c8ca Attempt to fix "Regression in friction and damping behaviour" , see issue 752
Thanks to Sergej Reich for the report and narrowing down the breaking revision!
2013-10-22 09:26:08 +00:00
erwin.coumans@gmail.com
5e372d6ac5 fix compile errors 2013-10-21 23:33:01 +00:00
erwin.coumans@gmail.com
379f0079e0 Added Dantzig MLCP solver option from Open Dynamics Engine (trying to avoid naming/linking conflicts in case ODE and Bullet is used together)
If an MLCP solver fails, use PGS/SI fallback, add a boolean return value for 'solve' method
2013-10-21 23:27:09 +00:00
erwin.coumans@gmail.com
1ca0493dc4 Build full A matrix and b vector for a MLCP solver interface, to explore Lemke, Dantzig, Newton and other MLCP solvers. The A matrix contains sparsity information.
Added a PGS solver that uses the sparsity of the A matrix, just for testing (the equivalent sequential impulse solver is much faster, not having to allocate the big matrices)
2013-10-20 17:38:14 +00:00
erwin.coumans@gmail.com
5bd6decb2e Use the more accurate, but slightly slower, gjk ray test by default, instead of the sub-simplex convex cast.
Set the rayCallback.m_flag  btTriangleRaycastCallback::kF_UseSubSimplexConvexCastRaytest to enable the previous approximate/faster ray test.
2013-10-19 16:42:17 +00:00
erwin.coumans
d998680a68 fix error in Visual Studio 2005 build, due to unsupported SSE intrinsics 2013-10-16 21:25:52 +00:00
erwin.coumans@gmail.com
d4640227ce add option to disable btMultiBody self-collision (for the entire hierarchy) or to disable parent-child collision for jointed links. 2013-10-08 00:50:40 +00:00
erwin.coumans@gmail.com
34d975143e expose maximum applied impulse for btMultiBody, introduced to reduce/avoid 'exploding' simulations
use btScalar instead of float, to enable double precision build, fix for Issue 744
2013-10-06 17:13:08 +00:00
erwin.coumans@gmail.com
488dd44835 Added btMultiBodyPoint2Point, it can be used between btMultiBody vs btMultiBody or btMultiBody vs btRigidBody
Allow picking of btMultiBody, using a btMultiBodyPoint2Point constraint, with limited strength to avoid adding too much energy to the system (= blowup)
Add btMultiBodyJointMotor, it can be used in combination with joint limit (just add the joint limit after the motor, to avoid jitter)
2013-10-05 01:46:32 +00:00
erwin.coumans@gmail.com
2fb686b937 change btMultiBody to allow removal/changing of links
(still not easy to modify the link structure of a btMultiBody -> You have to manually re-link parents, copying links around etc)
2013-10-03 05:13:41 +00:00
erwin.coumans@gmail.com
88b8ae552b add a btFixedConstraint with toggle between btGeneric6DofConsraint and btFixedConstraint in VoronoiFractureDemo 2013-10-02 21:50:50 +00:00