summaryrefslogtreecommitdiff
path: root/modules/bullet
AgeCommit message (Collapse)Author
2019-05-02Merge pull request #27415 from aqnuep/kinematicbody_fixesRémi Verschelde
KinematicBody performance and quality improvements
2019-04-30SCons: Always use env.Prepend for CPPPATHRémi Verschelde
Include paths are processed from left to right, so we use Prepend to ensure that paths to bundled thirdparty files will have precedence over system paths (e.g. `/usr/include` should have lowest priority).
2019-04-30Merge pull request #27371 from ShyRed/fixdisabled2dcollisionsRémi Verschelde
Allow adding disabled shapes
2019-04-24SCons: Review uses of CCFLAGS, CXXFLAGS and CPPFLAGSRémi Verschelde
Many contributors (me included) did not fully understand what CCFLAGS, CXXFLAGS and CPPFLAGS refer to exactly, and were thus not using them in the way they are intended to be. As per the SCons manual: https://www.scons.org/doc/HTML/scons-user/apa.html - CCFLAGS: General options that are passed to the C and C++ compilers. - CFLAGS: General options that are passed to the C compiler (C only; not C++). - CXXFLAGS: General options that are passed to the C++ compiler. By default, this includes the value of $CCFLAGS, so that setting $CCFLAGS affects both C and C++ compilation. - CPPFLAGS: User-specified C preprocessor options. These will be included in any command that uses the C preprocessor, including not just compilation of C and C++ source files [...], but also [...] Fortran [...] and [...] assembly language source file[s]. TL;DR: Compiler options go to CCFLAGS, unless they must be restricted to either C (CFLAGS) or C++ (CXXFLAGS). Preprocessor defines go to CPPFLAGS.
2019-04-23Allow adding disabled shapesShyRed
Adds the ability to directly add disabled shapes to a collision object. Before this commit a shape has always been assumed to be enabled and had to be disabled in an extra step.
2019-04-23Revert "Implemented terrain raycast acceleration"Rémi Verschelde
2019-04-23Merge pull request #25543 from Zylann/optimize_bullet_heightfield_raycast2Hein-Pieter van Braam
Implemented terrain raycast acceleration
2019-04-23Merge pull request #27730 from ShyRed/fix3dphyscansleepHein-Pieter van Braam
Fix missing re-activation of bullet physics sleep feature
2019-04-19doc: Drop unused <demos> tagRémi Verschelde
2019-04-06Fix missing re-activation of bullet physics sleep featureShyRed
Adds the missing option of re-enabling the sleep feature in bullet physics once a body had the sleep feature disabled.
2019-04-04Fix wrong heights data used to compute min and max heightsMarc Gilleron
2019-04-01doc: Bump version to 3.2Rémi Verschelde
2019-03-27KinematicBody performance and quality improvementsDaniel Rakos
With this change finally one can use compound collisions (like those created by Gridmaps) without serious performance issues. The previous KinematicBody code for Bullet was practically doing a whole bunch of unnecessary calculations. Gridmaps with fairly large octant sizes (in my case 32) can get up to 10000x speedup with this change (literally!). I expect the FPS demo to get a fair speedup as well. List of fixes and improvements: - Fixed a general bug in move_and_slide that affects both GodotPhysics and Bullet, where ray shapes would be ignored unless the stop_on_slope parameter is disabled. Not sure where that came from, but looking at the 2D physics code it was obvious there's a difference. - Enabled the dynamic AABB tree that Bullet uses to allow broadphase collision tests against individual shapes of compound shapes. This is crucial to get good performance with Gridmaps and in general improves the performance whenever a KinematicBody collides with compound collision shapes. - Added code to the broadphase collision detection code used by the Bullet module for KinematicBodies to also do broadphase on the sub-shapes of compound collision shapes. This is possible thanks to the dynamic AABB tree that was previously disabled and it's the change that provides the biggest performance boost. - Now broadphase test is only done once per KinematicBody in Bullet instead of once per each of its shapes which was completely unnecessary. - Fixed the way how the ray separation results are populated in Bullet which was completely broken previously, overwriting previous results and similar non-sense. - Fixed ray shapes for good now. Previously the margin set in the editor was not respected at all, and the KinematicBody code for ray separation was complete bogus, thus all previous attempts to fix it were mislead. - Fixed an obvious bug also in GodotPhysics where an out-of-bounds index was used in the ray result array. There are a whole set of other problems with the KinematicBody code of Bullet which cost performance and may cause unexpected behavior, but those are not addressed in this change (need to keep it "simple"). Not sure whether this fixes any outstanding Github issues but I wouldn't be surprised.
2019-02-22Revert "Optimized area check"Rémi Verschelde
2019-02-21Fix warnings seen with -Wignored-qualifiers.marxin
2019-02-21Merge pull request #26111 from AndreaCatania/areaoptiRémi Verschelde
Optimized area check
2019-02-21Optimized area checkAndrea Catania
2019-02-20Fix RayShape collision jitter when used with a RigidBodyDaniel Rakos
Scaling the depth was the wrong solution for the KinematicBody jitter because it causes jitter with RigidBody. Instead scale the margin that is ignored to allow KinematicBody to still pick up the ray shape in the kinematic test when the shape is just at margin distance from another one. This solution does not cause jitter with either KinematicBody or RigidBody.
2019-02-19Merge pull request #25788 from aqnuep/rayshape_fixRémi Verschelde
Fix RayShape collision when used with a KinematicBody (Bullet Physics)
2019-02-19Fix RayShape collision when used with a KinematicBody (Bullet Physics)Daniel Rakos
- Added code handling non-compound collision to recover_from_penetration_ray() which is now needed due to the optimization avoiding the use of compound collisions when only a single collision shape is used. - Removed arbitrary margin applied in the collision algorithm of RayShapes which causes jittered movement. For lack of a better replacement and for lack of any explanation on why it has been introduced, it's now using the shape's margin property instead which is small enough to not show visible jitter. - Tried to get rid of inconsistent uses of the collision margin. - Removed hack from GodotDeepPenetrationContactResultCallback::addContactPoint for RayShape collision as it's no longer needed as the collision algorithm of RayShapes correctly calculates the contact normal for a while now. Fixes #25227.
2019-02-18Merge pull request #26014 from AndreaCatania/bugfixRémi Verschelde
Fixed area collision report with concave
2019-02-18Fixed area collision report with concaveAndrea Catania
2019-02-18Merge pull request #26011 from AndreaCatania/bugfixRémi Verschelde
Added support to scale areas, fixes #23448
2019-02-18Added support to scale areasAndrea Catania
2019-02-12Merge pull request #25481 from hpvb/fix-ubsan-asan-reportsRémi Verschelde
Fix many asan and ubsan reported issues
2019-02-09[Core] Rename Matrix3 file to BasisAaron Franke
The code already referred to "Basis", it's just the file name that was different for some reason.
2019-02-08Disable BT_DEBUG, works around #25476 and #25431Daniel Abbott
2019-02-01Implemented terrain raycast acceleration using Bresenham traversal and 1 ↵Marc Gilleron
level of chunks
2019-01-30Avoid inertia calculation for empty shape - BulletAndrea Catania
2019-01-30Fix many asan and ubsan reported issuesHein-Pieter van Braam
This allows most demos to run without any ubsan or asan errors. There are still some things in thirdpart/ and some things in AudioServer that needs a look but this fixes a lot of issues. This should help debug less obvious issues, hopefully. This fixes #25217 and fixes #25218
2019-01-28Fixed Rigidbody first frame center spawnAndrea Catania
2019-01-27Bullet: Enable BT_DEBUG on debug buildsRémi Verschelde
Fixes #25301.
2019-01-21Fixed area overlaps if not moveAndrea Catania
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-12-27Fix size in HeightMapShapeBullet::set_dataRémi Verschelde
2018-12-22`GodotRestInfoContactResultCallback::addSingleResult` now returns normalDaniel Abbott
`PhysicsDirectSpaceState.get_rest_info()` now provides normals in result Addresses issue 24558
2018-12-09Merge pull request #20745 from Zylann/heightmap_from_imageRémi Verschelde
Allow to create a heightmap collision shape from an image
2018-11-28Merge pull request #23994 from AndreaCatania/precRémi Verschelde
Added function to control 6DOF precision
2018-11-27Added function to control 6DOF precisionAndrea Catania
2018-11-26Add more max-checking to physics queriesFlorian Jung
Fixes some out-of-bounds problems when there are more collisions than have been requested for. This extends what has been done in 444b8471a3. Fixes godotengine/godot#23990
2018-11-22Improved algorithm that check collisionAndrea Catania
2018-11-17Merge pull request #23668 from sdfgeoff/fix_angular_constraintsRémi Verschelde
Exposing more of bullets 6DOF spring constraints
2018-11-16Fix some undefined behaviour in Bullet module.Ibrahn Sahir
Nulling mainShape when it's deleted to avoid double free. Initialising vector in inertia calculation to work around bug in bullet.
2018-11-16-Make sure monitorable cant be flipped while flushing queries, fixes #17330Juan Linietsky
-Also added set_deferred, this was missing.
2018-11-13Added angular restitutionGeoffrey Irons
Adding angular and linear springs Added getters
2018-10-08Fix multi-statement macro call not being covered.J08nY
2018-10-07Optimitzed area overlap checksAndrea Catania
2018-10-06Improved code that handles collision shapes, fixes #21945Andrea Catania
2018-10-05Improved trimesh stabilityAndrea Catania
2018-10-05Removed wrong equal vertex thresold to GJK solverAndrea Catania