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
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
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
Erwin Coumans
e3ee9e5b2e
fix Mac OSX build, due to conflict empty #define __global and STL
2014-01-26 12:08: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
ec4292ad75
add basic test texture
2014-01-17 22:19:12 -08:00
Erwin Coumans
edb0c72166
enable MPR OpenCL for Mac OSX
2014-01-16 14:24:18 -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
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
12dd0daebc
prepare for Bullet 2 demo collection
2013-12-19 22:14:37 -08:00
erwin coumans
9ebef9552b
implement 'new contact reduction' kernel on CPU , for debugging
2013-12-14 10:54:25 -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
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
erwincoumans
472614772f
expose some more settings as command-line parameters:
...
[--disable_shadowmap] [--shadowmap_size=int] [--shadowmap_resolution=<int>] [--use_jacobi] [--use_uniform_grid]
2013-11-11 22:20:21 -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
8f3051fdf1
add ImplicitCloth demo, by Stan Melax
...
add SimpleOpenGL3App, used in ImplicitCloth demo. The Bullet 3.x demos should use this as a template, it will clean up some of the mess.
2013-11-09 12:12:33 -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
9d96c24bee
fix a compile error in the debug/testing particles kernel
2013-11-04 23:46:03 -08:00
erwincoumans
8faac34801
move ExplititEuler cloth solver to its own file, so it can be replaced by PDB, implicit euler etc
...
add wireframe toggle ('w' key)
add --paused command-line option to start simulation in paused mode
render cloth using drawPoints method
2013-09-06 18:09:35 -07:00
erwincoumans
181a323631
move b3RaycastInfo.h so it can be used without OpenCL dependency
...
add b3Assert to make sure m_maxShapeCapacityInBytes is not exceeded in GLInstancingRenderer
prepare for CpuSoftClothDemo
2013-09-02 22:31:48 -07:00
erwincoumans
0ccb6922a8
more work towards CPU version
2013-08-30 08:06:46 -07:00
erwincoumans
ad8d0e32f4
expose 2 new command-line options [--disable_cached_cl_kernels] [--load_cl_kernels_from_disk]
...
on Windows (_WIN32) debug output goes to BOTH console and Visual Studio output log window.
2013-08-26 21:58:55 -07:00
erwincoumans
d32629dbe2
add the option to load a set of AABB's from a file, see PairBench
...
You can use the following command-line arguments:
App_Bullet*.exe --selected_demo=10 --cl_platform=1 --pair_benchmark_file=64006GPUAABBs.txt --benchmark
2013-08-23 17:55:28 -07:00
erwin coumans
f12fe0237b
Merge branch 'master' of https://github.com/erwincoumans/bullet3
2013-08-22 23:16:02 -07:00
erwin coumans
2c019d579f
reduce memory allocation, lack of GPU memory totally destroys performance on my GTX 650M on the Macbook retina
...
add some keys to toggle gui drawing and shadows
2013-08-22 23:15:37 -07:00
Erwin Coumans
74948ede54
fix Linux build
2013-08-22 17:49:59 -07:00
Erwin Coumans
d860e7f51a
fix Mac OSX build (compound-compound still broken on OSX)
...
remove operator= from b3Vector3 to make it POD/Plane Old Data
2013-08-20 12:45:05 -07: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
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
erwincoumans
338118b3c6
expose the number of frame that the benchmark mode runs as commandline parameter:
...
for example --max_framecount=1000
2013-07-30 18:00:14 -07:00
erwincoumans
1c0fc6bc2d
report when compound pair capacity is exceeded (and avoid crash)
...
add tetrahedron, reorganized demos
2013-07-30 17:00:50 -07:00