Commit Graph

55 Commits

Author SHA1 Message Date
Erwin Coumans
c0c4c8ba3f fix many warnings
remove btMultiSapBroadphase.*
make collisionFilterGroup/collisionFilterMark int (instead of short int)
2017-01-15 22:26:11 -08:00
erwincoumans
01d14f538a fix some out-of-bounds error in the OpenCL rigid body pipeline
re-enable an OpenCL/gpu rigid body example (box-box stack)
2015-05-01 21:34:27 -07:00
Erwin Coumans
4af9c5a4c9 remove some warnings 2014-08-21 13:32:32 -07:00
Jack Andersen
d4fd695d56 Compile fix for parallelLinearBvh.cl on OS X Intel HD 5000 2014-07-11 14:11:11 -10:00
Jackson Lee
26bcff31f7 Add overlapping pairs validation to PairBench. 2014-03-19 22:35:23 -07:00
Jackson Lee
b709d6beeb Clean up plbvhCalculateOverlappingPairs kernel.
Also fix overlapping pair generation with triangle mesh.
(Currently, large/concave AABBs must be the first entry in a pair.)
2014-03-14 13:55:22 -07:00
Jackson Lee
f324e66f86 Add access to overlapping pairs b3OpenCLArray. 2014-03-13 21:27:15 -07:00
Jackson Lee
19b194e8fe Fix PLBVH symmetry optimization for calculateOverlappingPairs(). 2014-03-13 19:22:05 -07:00
Jackson Lee
bb0102d79b Add PLBVH documentation/slides. 2014-03-13 13:52:49 -07:00
Jackson Lee
1b85dad6b4 Fix PLBVH raycast when only 1 small AABB is added to the tree. 2014-03-11 17:43:29 -07:00
Jackson Lee
db02ced606 Clean up PLBVH construction, add comments. 2014-03-11 14:13:09 -07:00
Jackson Lee
038364ccdd Merge various commits into a single commit.
Commits after:
2014-03-03 Draft PLBVH construction using binary radix tree.
f19f853685

Are merged into a single commit; this includes:
03-10 Remove single launch build AABB kernel.
03-10 Add kernels for setting PLBVH AABBs using distance from root.
03-10 Use faster morton code, remove convertChildNodeFormat kernel.
03-09 Add duplicate morton code handling to binary radix construct.
03-09 Remove slower PLBVH constructors.
03-08 Add binary radix tree construct using binary search.
03-06 Remove slowest PLBVH constructor, fix implicit construct AABB.
03-04 Test various optimizations for PLBVH binary radix tree construct.
2014-03-10 15:33:47 -07:00
Jackson Lee
f19f853685 Draft PLBVH construction using binary radix tree. 2014-03-03 14:33:53 -08:00
Jackson Lee
4dcd52c090 Add only small AABBs to PLBVH, add large AABB support. 2014-02-26 15:38:59 -08:00
Jackson Lee
28da87dfc7 Split PLBVH files into .h/.cpp.
Also move PLBVH binary tree construction into separate function.
2014-02-26 15:20:12 -08:00
Jackson Lee
fe12ad9c9b Fix PLBVH with 0/1 nodes, fix optimized ray-AABB intersect. 2014-02-26 14:56:43 -08:00
Jackson Lee
c782f4976c Various minor PLBVH related changes.
-Use most significant bit instead of negative for internal nodes.
-Explicitly store root node index, so that it does not have to be 0.
-Check the root node first in PLBVH traversal.
-Fix rigid body clipping in RaytracedShadowDemo.
2014-02-24 23:50:20 -08:00
Jackson Lee
e4fbd5332d Accelerate GPU raycaster with PLBVH. 2014-02-23 20:40:58 -08:00
Jackson Lee
e955192971 Fix PLBVH reduction kernels, simplify nodes per level calculation.
Also calculate index ranges for each internal node.
2014-02-19 21:49:30 -08:00
Jackson Lee
7f0e361fa0 Use merged AABB to calculate grid cell size for PLBVH. 2014-02-18 19:59:05 -08:00
Jackson Lee
b7b7356af8 Draft Parallel Linear BVH Broadphase. 2014-02-18 19:23:25 -08:00
erwincoumans
122ceacb6d move OpenCL initialization for the unit tests in a shared header file, and support some basic command-line arguments
--cl_device=1 --cl_platform=1 --allow_opencl_cpu
add chaindemo, test for mass ratios
restore sleeping/activation mode in featherstone demo
Use _VARIADIC_MAX=10 to avoid Google Test issues with Visual Studio 2012, thanks to Mobeen for the report
Enable verbose printf for unit tests
2014-02-11 10:33:00 -08:00
erwincoumans
863ac2c477 add unit tests for OpenCL kernel compilation for all Bullet 3 kernels (using GoogleTest) 2014-01-31 20:41:13 -08:00
erwincoumans
31998c8e7d minor issues (don't use \n in B3_PROFILE, and don't report timing inaccuracy in console 2014-01-29 15:25:36 -08:00
erwincoumans
3e8b183587 Avoid breaking up the clipHullHull kernel, it ruins performance. Unfortunately, Mac OSX still requires it.
Use indices instead of copies for small/large aabbs in broadphase (grid / sap)
2014-01-29 15:20:20 -08:00
erwincoumans
ff051f87aa replace 'copy' step of large/small Aabbs by indices 2014-01-29 12:52:31 -08:00
erwin coumans
33ebebd1c9 allow PairBenchmark to select broadphase type, with cpu brute-force, gpu brute-force etc
fix issue in PairBench, related to index offset
allow to add a large AABB in PairBench, to see the effect on the broadphase pair search performance
2014-01-28 17:11:56 -08:00
Erwin Coumans
71f0537c6e add Bullet 2.x constraint solver tests for hinge, with large mass ratio
experiment with Midi controls in PairBenchmark to tune variables (will move it into a utility class, so every demo can easier use it in the future)
fix issue with broadphase, not initializing all pairs properly at pair array overflow
2014-01-28 10:25:04 -08:00
erwincoumans
7cdda65822 Experimenting with GUI in PairBench, still preliminary. Goal is to make it easier to add variables that can be tuned using GUI/gwen
Pre-compile PairBench OpenCL kernel
2014-01-26 11:27:20 -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
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
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
erwincoumans
677722bba3 support compound versus compound collision shape acceleration on GPU, using aabb tree versus aabb tree.
Remove constructor from b3Vector3,  to make it a POD type, so it can go into a union (and more compatible with OpenCL float4)
Use b3MakeVector3 instead of constructor
Share some code between C++ and GPU in a shared file: see b3TransformAabb2 in src/Bullet3Collision/BroadPhaseCollision/shared/b3Aabb.h
Improve PairBench a bit, show timings and #overlapping pairs.
Increase shadowmap default size to 8192x8192 (hope the GPU supports it)
2013-08-20 03:19:59 -07:00
erwin coumans
b32ae0c75c move some files to shared folders
use b3Aabb for compound vs compound on host (for testing, towards BVH)
2013-08-14 17:48:12 -07:00
erwincoumans
3bf003ace1 change lcpp Lua preprocessor, to keep #defines and comments, remove empty lines
remove duplicate data in b3Contact4 (now in btContact4Data shared between CPU/C++ and OpenCL)
OpenCL kernels use #include "Bullet3Collision/NarrowPhaseCollision/shared/b3Contact4Data.h"
Increase number of batches back to 250 (from 50), need to fix this hard coded number (see https://github.com/erwincoumans/bullet3/issues/12)
Work towards GJK/EPA, in addition to SAT/clipping (early on)
2013-08-08 12:24:09 -07:00
erwincoumans
906415429c added (and stripped) a simple C/C++ preprocessor (written in Lua), so the stringifier can handle the #include directive,
and embed the included files directly in the stringified files.
We need this, because we start sharing struct definitions and code between C/C++ and OpenCL (and potentially other languages)
preprocessor is from http://github.com/willsteel/lcpp
2013-08-01 21:05:19 -07:00
erwincoumans
34de49d8a4 add gjk/epa (host only), possibly improve convex-convex with many edge-edge tests
more preparation towards persistent/incremental contact cache
2013-07-31 23:22:43 -07:00
erwincoumans
7992ff816b use int4 for broadphase pair, it allows to store persistent information in the future
(contact cache, applied impulse/warm starting info etc)
2013-07-31 09:58:15 -07:00
erwin coumans
2793a174c6 added fracture scene .bullet file (doesn't work well yet)
added tetrahedral mesh test scene
expose b3Config as member variable for demos.
move a 'glFlush' out of the innerloop (render performance)
SSE -> SSE2 in premake
fix crash in broadphase (when no aabb's exist)
2013-07-30 12:37:16 -07:00
erwincoumans
c05c4b00bb fix linux build
w
2013-07-21 08:43:45 -07:00
erwin coumans
310d31f3d5 tweaks to demos, add middle-mouse support, 2013-07-21 00:36:00 -07:00
erwin coumans
5991eef749 add GPU incremental 3d sap (not enabled by default) 2013-07-20 21:16:24 -07:00
Erwin Coumans
71a31fbf49 kernel breaks on Mac OSX, so disable it on __APPLE__ 2013-07-13 00:21:56 -07:00
erwin coumans
4b293130bd Merge branch 'master' of https://github.com/erwincoumans/bullet3 2013-07-12 20:46:49 -07:00
erwin coumans
061f7173b8 compute best axis on host and OpenCL for 1-axis SAP, based on best variance 2013-07-12 20:46:43 -07:00
erwin coumans
0fcdd290f5 remove dynamic OpenCL allocations at run-time 2013-07-12 16:00:25 -07:00