Commit Graph
171 Commits
Author SHA1 Message Date
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 999c5ff766 fix Mac OSX version of preparation of AllBullet2Demo collection 2013-12-19 22:23:50 -08:00
erwin coumans 12dd0daebc prepare for Bullet 2 demo collection 2013-12-19 22:14:37 -08:00
erwin coumans 69e5454d18 Add the old Bullet 2.x obsolete demos, and CMake buildsystem files, and gradually move them to newer Bullet 3.x structure
Use statically linked freeglut, instead of dynamic glut for the obsolete Bullet 2.x demos
Add the 'reset' method to b3GpuDynamicsWorld, and use it in the BasicGpuDemo (pretty slow in debug mode, use release mode)
Don't crash in btCollisionWorld, if there is no collision dispatcher
2013-12-19 12:40:59 -08:00
erwin coumans 9ebef9552b implement 'new contact reduction' kernel on CPU , for debugging 2013-12-14 10:54:25 -08:00
Erwin Coumans 33889a3dc9 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2013-12-13 08:40:18 -08:00
Erwin Coumans f9c22b61af fix Mac OSX build 2013-12-13 08:40:05 -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 ba2ba28a89 add Bullet 2.x CPU FeatherstoneMultiBodyDemo 2013-12-09 14:16:51 -08:00
erwin coumans 9379c7fb8c enable mouse picking for BasicDemo (will move it to a shared code part soon) 2013-12-07 11:19:57 -08:00
erwincoumans 30a6fe705f remove obsolete executables, prettify Bullet 2.x CPU BasicDemo a little bit. 2013-12-06 18:11:04 -08:00
erwincoumans fca6d11381 created new Bullet 2 CPU BasicDemo, using the OpenGL 3 rendering. I will add picking soon. Hold ctrl/alt + mouse to move/zoom camera
remove reference to btGImpact (it is removed now)
2013-12-06 17:48:58 -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 6b5921b1b3 added a basic test for SimpleOpenGL3 2013-11-09 13:09:11 -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
erwin coumans fcd5541b04 fix BasicGpuDemo compilation 2013-09-17 14:46:11 -07:00
erwincoumans 01d62b12bb adjust velocity after solving PBD springs/links 2013-09-06 23:18:14 -07:00
erwincoumans 40acf922e3 add Thomas Jacobsen / position based dynamics cloth constraint solver 2013-09-06 19:50:58 -07: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
erwin coumans b79146c7fa add simple place holder for cloth simulation 2013-09-03 15:09:12 -07:00
erwincoumans b1bab032b1 add CpuSoftBodyDemo (empty placeholder) 2013-09-03 08:48:27 -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
erwin coumans a6d9cf382f more work towards cpu pipeline, sharing OpenCL kernel code 2013-08-30 16:30:22 -07:00
erwincoumans 0ccb6922a8 more work towards CPU version 2013-08-30 08:06:46 -07:00
erwin coumans f3c764102f add new files 2013-08-28 08:53:54 -07:00
erwin coumans c901767b77 add RenderDemo to CpuDemo. 2013-08-28 08:51:20 -07:00
erwincoumans 412ddacee6 prepare towards CPU version of rigid body pipeline 2013-08-27 20:16:51 -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