Commit Graph

283 Commits

Author SHA1 Message Date
erwin coumans
58eaa609e0 added b3Aabb.h header, can be shared between C++ and OpenCL 2013-08-16 09:13:14 -07:00
erwin coumans
ef224370ab implement compound versus compound BVH acceleration (quantized tree-versus-tree, using subtrees and quantization) on host 2013-08-16 08:58:52 -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
678f634699 fix compound collision (host side) 2013-08-11 20:02:07 -07:00
erwincoumans
ac23dbc4be contact normal should point from B to A (to be consistent with Bullet 2.x)
stringify: pre-allocate bigger buffer (10MB, workaround)
2013-08-10 12:08:15 -07:00
erwincoumans
d158507c03 remove m_localPosA for now (it breaks NVIDIA OpenCL, copy of structs > 128 bytes) 2013-08-08 13:28:23 -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
46a08e3282 add missing header file, test case for sharing code between C++ / OpenCL
The headers are recursively embedded, only the necessary parts (skipping parts behind undeclared ifdefs)
2013-08-03 11:12:51 -07:00
erwincoumans
18eed5b067 further work towards sharing structures/code between C++ and OpenCL
(could break the build in C++/OpenCL)
2013-08-03 10:13:13 -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
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
erwin coumans
3ccc9680a1 add some basic build instructions and license info 2013-07-21 22:11:55 -07:00
erwin coumans
482212b702 add some basic build instructions and license info 2013-07-21 22:07:40 -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
erwincoumans
01fbe80f8f use int instead of void to avoid 64bit error 2013-07-19 07:10:38 -07:00
Erwin Coumans
415c6cd24d fix OSX Multithreading test 2013-07-18 21:21:10 -07:00
erwincoumans
2f0fd80c9c enable poxix MultiThreading sample under Linux 2013-07-18 21:18:09 -07:00
erwincoumans
12a4480d08 select different default demos 2013-07-18 17:43:51 -07:00
Erwin Coumans
0399b55e1c add modifier support for Mac 2013-07-18 17:29:27 -07:00
erwincoumans
41d0ade9d8 don't load missing test files 2013-07-18 16:31:26 -07:00
erwincoumans
392347b202 use Control or Alt under Linux for Maya style mouse control (Ubuntu hijacks Alt) 2013-07-18 16:28:41 -07:00
erwincoumans
a5b73e7c76 use Syoyo Fujita's Wavefront obj loader. made some performance improvements in debug mode for Visual Studio
use Maya style controls under Windows (need to fix Linux/OSX) use ALT+mouse to rotate, and mouse pick to pick objects
2013-07-18 15:55:38 -07:00
erwincoumans
733f9027fb Deterministic simulation for concave and compound collision shapes: added childShapeA/B to b3Contact4 + sort on them
Use tetrahedra instead of barrel for convex demo (until performance for edge-edge is improved)
Increased #overlapping pair capacity from 12 to 16 / objec
2013-07-17 22:42:50 -07:00
erwincoumans
ab125fbb6d implement GPU breakable constraints
add GPU fixed constraint
fix performance issue with concave meshes (didn't clear the number of concave-convex pairs, so it increased every frame)
2013-07-17 16:11:54 -07:00
erwincoumans
6d7d2531b5 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2013-07-16 19:05:34 -07:00
erwincoumans
3beae80a73 prepare for GPU fixed constraint (not done yet) 2013-07-16 19:05:07 -07:00
erwincoumans
b448e56a51 add basic CPU multi threading files from Bullet 2.x (still need to make it work) 2013-07-16 18:16:54 -07:00
erwincoumans
20f9e41ff0 remove some debug printf's from kernel (stringify doesn't handle it properly) 2013-07-15 10:36:02 -07:00
erwincoumans
a5d00c8219 add some clFinish for better profile timings
improved parallel batching, don't try to write for static objects,
this fixed a bug, when the hash of a static object was identical with hash of dynamic objects, causing it to be assigned a bogus 100+i batching number
The parallel batching is still not enabled, because we need to measure the batching size (todo)
2013-07-15 10:22:40 -07:00
erwincoumans
05ed1fdbcf revert to useNewBatchingKernel, the other one is broken (need to figure out why) 2013-07-15 01:06:04 -07:00
erwin coumans
cc188ca815 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2013-07-14 19:16:55 -07:00
erwin coumans
1e31073f4b made the simulation deterministic
disable 'simdwidth' optimization for determinism (need to double-check)
made the spatial batching 3D
2013-07-14 19:16:33 -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
erwin coumans
74aa499ab6 fix b3GpuDynamicsWorld 2013-07-11 11:02:10 -07:00
erwin coumans
2aad8419b7 add support for picking, using point 2 point constraint
allow to remove constraints by unique id
added tiny wavefront loader, plan to use this instead of existing slow wavefront loader
2013-07-10 00:21:23 -07:00
erwin coumans
9610b369a3 fix constraint issue with b3GpuDynamicsWorld 2013-07-09 19:32:14 -07:00
erwin coumans
a3c2456c65 introduce b3GpuSolverConstraint and fix Windows build 2013-07-09 18:03:51 -07:00
erwincoumans
282e19171f fix Linux version of ConstraintDemo 2013-07-09 14:41:56 -07:00
erwin coumans
4a0d2847c4 allow to run each part of the GPU solver on CPU, for debugging purposes 2013-07-09 13:07:34 -07:00
erwin coumans
38bfcc859b fix linux build 2013-07-09 11:36:21 -07:00
erwin coumans
bd2cd7b2a7 remove clFinish and copyToHost from GPU joint solver, performance is looking better now. 2013-07-09 11:19:16 -07:00