Commit Graph

795 Commits

Author SHA1 Message Date
Erwin Coumans
dc2d54df2c remove 32bit build ARCH from xcode4 generated files (premake4)
optimization in btMultiBody::fillConstraintJacobianMultiDof:
only compute links between current link and root
2018-10-20 10:44:43 -07:00
erwincoumans
332cbfa609 fix typo in previous commit 2018-10-06 18:37:51 -07:00
erwincoumans
71d4a90c98 btMultiBody: fix indexing issue causing wrong friction to be reported (has no effect, since we don't use warmstarting for multibody) 2018-10-06 15:25:22 -07:00
erwincoumans
cdd56e4641 Merge pull request #1895 from erwincoumans/master
Code-style consistency improvement: _clang-format applied
2018-09-23 19:22:09 -07:00
erwincoumans
ab8f16961e Code-style consistency improvement:
Apply clang-format-all.sh using the _clang-format file through all the cpp/.h files.
make sure not to apply it to certain serialization structures, since some parser expects the * as part of the name, instead of type.
This commit contains no other changes aside from adding and applying clang-format-all.sh
2018-09-23 14:17:31 -07:00
Lucas Walter
fbf4d946c4 Spelling fix: on-way -> one-way 2018-09-18 07:40:22 -07:00
Erwin Coumans
2668b89740 fix another island issue 2018-08-26 22:25:39 -07:00
Erwin Coumans
ff43cea263 Fix some deactivation issues with btMultiBodyDynamicsWorld, should also improve performance for PyBullet with larger worlds
(even when sleeping is disabled, islands are split)
2018-08-26 16:14:36 -07:00
Erwin Coumans
61b7591b8e expose choice of contraint solver in PyBullet, with switchConstraintSolver example 2018-08-23 23:04:17 -07:00
Jeongseok Lee
340236ee29 Fix copy & paste mistake 2018-08-07 15:16:46 -07:00
Jeongseok Lee
e8e97d39fe Merge remote-tracking branch 'upstream/master' into multibody_mlcp_solver_v2 2018-08-06 10:34:43 -07:00
Erwin Coumans
684b69f4dd fix applied too fast 2018-08-03 17:57:09 -07:00
Erwin Coumans
02b0e34bda v_ptr 2018-08-03 17:53:07 -07:00
Erwin Coumans
97baccd1a5 revert regression in btMultiBody.cpp 2018-08-03 17:38:01 -07:00
Jeongseok Lee
809fb3ed49 Use btAssert instead of assert 2018-08-03 13:46:59 -07:00
Jeongseok Lee
89c6a83ae9 Add MLCP constraint solver for multibody 2018-08-02 22:53:30 -07:00
Erwin Coumans
f0c8bbf1a1 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2018-07-24 15:21:12 +02:00
Erwin Coumans
f91e5c573c use the maximum square residual instead of sum 2018-07-24 15:20:34 +02:00
Erwin Coumans
bd7c3825bb Merge remote-tracking branch 'bp/master' 2018-07-22 13:04:44 +02:00
Erwin Coumans
7a27cb1739 body1 -> bodyA and body2 -> bodyB 2018-07-22 13:03:53 +02:00
erwincoumans
defd961f60 Merge pull request #1798 from erwincoumans/master
Change constraint solver threshold-based termination condition on res…
2018-07-22 12:28:32 +02:00
Erwin Coumans
b5495e789d Change constraint solver threshold-based termination condition on residual of velocity threshold, not on residual of impulse threshold.
This avoids issues with systems with large mass ratios.

Test: add this to BasicDemo/BasicExample.cpp in initPhysics

	m_dynamicsWorld->getSolverInfo().m_numIterations = 1000;
	m_dynamicsWorld->getSolverInfo().m_leastSquaresResidualThreshold = 1e-4;
2018-07-22 11:30:16 +02:00
Jeongseok Lee
deea2bb411 Use const reference for referencing existing members 2018-07-09 20:59:29 -07:00
Jeongseok Lee
6dbdf02808 Minor code optimization in multibody forward dynamics 2018-07-09 20:54:13 -07:00
erwincoumans
cb1fce7899 revert exposing getSharedMemoryStreamBuffer / adding to command structure
use 16k rays by default
add uploadRaysToSharedMemory method
2018-06-16 08:14:00 -07:00
erwincoumans
f517b03534 Expose pushProfileTimer / pop ProfileTimer in PhysicsClient API to benchmark Python parts of PyBullet.
reduce 'm_cooldownTime' from 1000 microseconds to 100 microseconds (overhead in raycast is too large)
If needed, we can expose this cooldown time.
Replace malloc by btAlignedObjectArray (going through Bullet's memory allocator)
2018-06-16 06:19:49 -07:00
Erwin Coumans
fbbd675ed6 expose PyBullet API to wakeup/put objects to sleep, enable/disable deactivation
fix wakeup -> reset deactivation clock
2018-06-15 21:26:26 -07:00
Erwin Coumans
134beaf8dc fix uninitialized m_companionId in btMultiBody (only happens if sleeping is enabled) 2018-06-05 16:40:41 -07:00
erwincoumans
e721a9cdf5 revert testing changes 2018-06-01 22:02:17 -07:00
erwincoumans
54ddbad29f remove printf 2018-06-01 21:56:34 -07:00
erwincoumans
92579f9196 Merge branch 'master' of https://github.com/erwincoumans/bullet3
# Conflicts:
#	examples/SharedMemory/PhysicsServerCommandProcessor.cpp
2018-06-01 09:35:15 -07:00
erwincoumans
ec4b3505a4 fix fixed constraint between btMultiBody and btRigidBody 2018-05-29 16:49:07 -07:00
Lunkhound
4254837170 solvers: remove erroneous 'break' statement that can occur with incorrectly flagged objects; also added asserts to warn when incorrectly flagged objects are detected 2018-05-12 19:54:39 -07:00
Lunkhound
8d5cd1c324 constraint solvers: fix crash for collision-bodies with incorrect flags 2018-05-11 17:47:08 -07:00
Lunkhound
ded33f3e7e parallel solver: remove bad assert 2018-05-06 23:39:01 -07:00
Teemu Patana
cfa3a6d2aa Fixed a collision check bug with CCD 2018-05-02 20:22:12 +03:00
Erwin Coumans
988d78cb61 enable btMultiBodyGearConstraint positional error correction
fix multibody debug drawing of joint frames
2018-05-01 17:40:26 -07:00
erwincoumans
391b0e4061 Merge pull request #1588 from GaborPuhr/Fix-#1582
Fix for #1582
2018-04-12 13:32:51 -07:00
Ju-Hyung Lee
00affd62ac Fix to support different kind of wheel axis 2018-04-04 12:31:52 +09:00
Erwin Coumans
6856334d48 fixes: make argument names in header and cpp the same 2018-03-27 16:54:41 -07:00
erwincoumans
fafa939d33 Merge pull request #1579 from lunkhound/parallel-solver-wip3
Multithreaded constraint solver
2018-03-26 17:11:05 -07:00
Lunkhound
e526e48df8 parallel solver: slightly overallocate to reduce how often allocation is needed 2018-03-13 04:19:02 -07:00
Lunkhound
eec478709a parallel solver: small tweaks and fixes 2018-03-06 02:43:59 -08:00
Lunkhound
45fd4acf6e dynamicsWorldMt: make island mgr aware of whether a parallel solver is present and make handoff from parallel solver to solver-pool more explicit 2018-03-05 20:05:38 -08:00
a
86ca7dc2d1 Fix for #1567 2018-03-05 23:25:25 +01:00
a
2348c6ba0a Fix for #1582 2018-03-05 23:05:22 +01:00
Lunkhound
06690e542b fix compile error for GCC 2018-02-27 00:30:45 -08:00
Lunkhound
b8720f2161 parallel solver: various changes
- threading: adding btSequentialImpulseConstraintSolverMt
 - task scheduler: added parallelSum so that parallel solver can compute residuals
 - CommonRigidBodyMTBase: add slider for solver least squares residual and allow multithreading without needing OpenMP, TBB, or PPL
 - taskScheduler: don't wait for workers to sleep/signal at the end of each parallel block
 - parallel solver: convertContacts split into an allocContactConstraints and setupContactConstraints stage, the latter of which is done in parallel
 - parallel solver: rolling friction is now interleaved along with normal friction
 - parallel solver: batchified split impulse solving + some cleanup
 - parallel solver: sorting batches from largest to smallest
 - parallel solver: added parallel batch creation
 - parallel solver: added warmstartingWriteBackContacts func + other cleanup
 - task scheduler: truncate low bits to preserve determinism with parallelSum
 - parallel solver: reducing dynamic mem allocs and trying to parallelize more of the batch setup
 - parallel solver: parallelize updating constraint batch ids for merging
 - parallel solver: adding debug visualization
 - task scheduler: make TBB task scheduler parallelSum deterministic
 - parallel solver: split batch gen code into separate file; allow selection of batch gen method
 - task scheduler: add sleepWorkerThreadsHint() at end of simulation
 - parallel solver: added grain size per phase
 - task Scheduler: fix for strange threading issue; also no need for main thread to wait for workers to sleep
 - base constraint solver: break out joint setup into separate function for profiling/overriding
 - parallel solver: allow different batching method for contacts vs joints
 - base constraint solver: add convertJoint and convertBodies to make it possible to parallelize joint and body conversion
 - parallel solver: convert joints and bodies in parallel now
 - parallel solver: speed up batch creation with run-length encoding
 - parallel solver: batch gen: run-length expansion in parallel; collect constraint info in parallel
 - parallel solver: adding spatial grid batching method
 - parallel solver: enhancements to spatial grid batching
 - sequential solver: moving code for writing back into functions that derived classes can call
 - parallel solver: do write back of bodies and joints in parallel
 - parallel solver: removed all batching methods except for spatial grid (others were ineffective)
 - parallel solver: added 2D or 3D grid batching options; and a bit of cleanup
 - move btDefaultTaskScheduler into LinearMath project
2018-02-26 22:47:33 -08:00
Erwin Coumans
508550c5e9 fix premake build for linux, thanks to @consultit
See also issue #1538
2018-02-09 18:46:26 -08:00
CuriousRubick
ecfdd07f19 early break if single object sleeping 2018-01-26 10:31:00 -06:00