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
bd5c2ff5ec
batching reports the size of the batches, and solver uses this as termination condition, giving a good speedup
2014-02-07 06:28:15 -08:00
Erwin Coumans
94db38358c
add zlib/minizip so we can load compressed data (github/git is bad in handling large binary files)
2014-02-04 13:39:55 -08:00
Erwin Coumans
e4e2cb0d39
fix alignment issue in a unit test
2014-02-04 10:36:34 -08:00
Erwin Coumans
65cfcdb9ac
improve printf/warning/error on Mac OSX
2014-01-31 15:05:13 -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
1a507cca52
remove redundant/wrong glClear
...
always initialize mpr OpenCL kernels
add a second ragdoll to the demo
2014-01-16 19:18:06 -08:00
Erwin Coumans
0ed7b5c508
adding check on low number of vertices fixes Mac OSX crash
2014-01-16 15:53:53 -08:00
Erwin Coumans
edb0c72166
enable MPR OpenCL for Mac OSX
2014-01-16 14:24:18 -08:00
Erwin Coumans
f14ec7b870
split the unitsphere search in a separate kernel, m_findSeparatingAxisUnitSphereKernel, hopefully it works on Mac OSX OpenCL now.
2014-01-16 14:19:43 -08:00
Erwin Coumans
b53cc5edb8
disable Mpr on Mac OSX (need to split the kernel again...)
2014-01-15 11:24:35 -08:00
Erwin Coumans
472a4068fc
Enable MPR by default
...
Add the contact point from MPR, in addition to SAT/clipping contacts. Added a new kernel to clear/reset the number of contacts in pairs (stored in the z component)
Always sample unit sphere directions, if there are more edge-edge combinations than unit sphere directions (162 by default)
Remember last running demo for Bullet 3 (and save it in a text file, Bullet
Enable the testFileFracture.bullet in the Bullet2FileDemo
2014-01-15 10:35:51 -08:00
erwin coumans
2e55d03fd9
more fixes towards working convex-convex, in case of (too) many edge-edge cases:
...
1) sample directions over a unit sphere and
2) add a contact, using mpr
add missing bullet.pc.cmake file (for old Bullet 2.x)
2014-01-09 16:22:34 -08:00
erwincoumans
ed73bce9da
Move Bullet 2.x demos in a single demo 'AllBullet2Demos', for now only BasicDemo and FeatherstoneDemo is implemented.
2014-01-05 21:58:30 -08:00
erwincoumans
6f9a1c0da2
disable MPR until some issues are fixed (on an NVIDIA GPU, sat axis are not properly computed, resulting in instability)
2014-01-04 21:44:53 -08:00
Erwin Coumans
5eb8fd33ad
enable MPR by default, needs more testing on various OpenCL configurations (OS, drive, GPU etc)
2014-01-04 21:33:16 -08:00
erwincoumans
271f458837
Ported Minkowski Portal Refinement mpr.c from libccd to OpenCL, for bettwe edge-edge performance (and additional contact point for degenerate/high detailed convex shapes)
...
Removed b3RigidBodyCL, replace by b3RigidBodyData and b3RigidBodyData_t shared between C++ host and OpenCL,
Same for b3InertiaCL -> b3InertiaData
2014-01-04 20:54:27 -08:00
erwin coumans
09ba86ea36
fix cpu version of findCompoundPairs, in order to fix Mac OSX OpenCL compound issues
2013-12-17 19:25:53 -08:00
Erwin Coumans
7bde13be62
fix issue (apparently closestFaceA/B can be -1, need to figure out how that can ever happen (it shouldn’t)
2013-12-17 16:50:50 -08:00
erwin coumans
7964f2d8c1
split OpenCL kernels: fatal error C1091: compiler limit: string exceeds 65535 bytes in length
2013-12-17 12:33:38 -08:00
Erwin Coumans
7e86932edf
avoid out-of-bounds issue for some OpenCL kernel, hanging Mac OSX (should not happen, need to check why)
...
split kernel for debugging
2013-12-17 10:44:41 -08:00
erwin coumans
7b55ffd237
more rewriting to get this #@!#@!&*( Mac OSX GPU to work
2013-12-16 15:23:43 -08:00
erwin coumans
1dce953d76
one more debug option for a kernel, to fix a Mac OSX issue (one more to go...)
2013-12-16 12:36:22 -08:00
erwincoumans
fc474a0e62
more debugging to fix Mac OSX OpenCL issue on certain GPUs.
2013-12-16 10:53:38 -08:00
erwin coumans
9ebef9552b
implement 'new contact reduction' kernel on CPU , for debugging
2013-12-14 10:54:25 -08:00
erwin coumans
d24b1eaae9
better host check code, to determine failing OpenCL kernels on certain (Apple) platforms
2013-12-13 13:27:00 -08:00
erwin coumans
571b14787a
implement clipFacesAndFindContactsCPU, to track down OpenCL issue on Mac OSX
2013-12-13 10:05:07 -08:00
erwin coumans
3fe969c4ee
b3Solver -> pass pointer to source instead of 0 (was left over from a debugging session), thanks to David for the report
...
Break up clipHullHullConcaveConvexKernel into multiple stages, so it might 'fit' in Apple's OpenCL implementation
Implemented bvhTraversalKernel and findConcaveSeparatingAxis on CPU (debugging, possible future CPU version)
2013-12-13 07:52:41 -08:00
erwin coumans
c155e126d0
move parts of collision pipeline to shared header files (work-in-progress)
2013-12-12 11:03:55 -08: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