Commit Graph
100 Commits
Author SHA1 Message Date
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 e20cb22832 share more data structures and code between OpenCL and C/C++ on CPU:
move the setConstraint4/b3ConvertConstraint4 to shared code.
2013-11-07 12:46: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 82a6855f9e fix OSX build 2013-11-05 14:09:35 -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 e2accf82a0 update readme.txt with some basic Bullet 3.x information 2013-09-09 09:02:38 -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
erwincoumans d0faea90f9 Merge branch 'master' of https://github.com/erwincoumans/bullet3
Conflicts:
	btgui/OpenGLWindow/GLInstancingRenderer.cpp
2013-09-06 14:34:47 -07:00
erwincoumans 8bee4ed64d replace doc with SIGGRAPH version 2013-09-06 14:33:18 -07:00
erwincoumans ef42c17143 add drawPoint/drawLine (both slow) and drawPoints (faster) to GLInstancingRenderer, with GLSL shaders 2013-09-06 12:05:56 -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
erwincoumans d0da37f3dd Merge pull request #14 from mgerhardy/master
* fixed small readme.txt error
2013-09-02 04:41:54 -07:00
erwincoumans 5a1d0d8170 more work towards shared CPU/OpenCL codebase 2013-08-30 21:38:04 -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 87639bca60 Update readme.txt
shorten command-line parameter explanation and remove non-functional parameters
2013-08-26 22:25:02 -07:00
erwincoumans 44f4f2c6dd Update readme.txt
Add some explanation of command-line parameters for App_Bullet3_OpenCL_Demos_* and a reference to http://www.multithreadingandvfx.org/course_notes
2013-08-26 22:20:48 -07:00
erwincoumans c25b24267f Update readme.txt
add some explanation of command-line parameters for App_Bullet3_OpenCL_Demos_* and a reference to http://www.multithreadingandvfx.org/course_notes
2013-08-26 22:18:55 -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 96994d3dd5 fix typo in b3Vector3 2013-08-22 23:25:00 -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
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 41ba48b10d fix compound-compound tree/tree collision on the host side (still need to implement it for all cases, and on GPU/OpenCL) 2013-08-16 10:33:38 -07:00
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
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 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 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
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
erwin coumans c4375a09e4 added GPU joint solver for non-contact constraints. Only point 2 point version for now, will add some other constraints soon (changes are very local) 2013-07-09 10:46:47 -07:00
erwin coumans b8d5cecfe3 joint (non-contact constraint) solver iterations is now working on GPU, but overall slower because of data copy.
Will move joint setup to GPU, and then some benefit should be visible.
Don't use 64 alignment, it causes data structures size mismatch between cpu and gpu
2013-07-06 14:11:32 -07:00
erwin coumans 3ca4d68f3e added jointSolver.cl/h (not working yet) 2013-07-06 13:20:34 -07:00
erwin coumans b18e03d737 work towards GPU joint solver (non-contact constraints), not working yet. 2013-07-06 13:11:13 -07:00
erwin coumans 3a6e1ccff4 work towards GPU joint solver (non-contact constraints), not working yet. 2013-07-06 13:08:58 -07:00
erwin coumans 01e5472f9f add b3FixedConstraint, with less memory footprint than b3Generic6DofConstraint, and easier to port to OpenCL.
remove the 'obsolete' part of b3Generic6DofConstraint and b3Point2PointConstraint
2013-07-06 00:44:06 -07:00
erwin coumans 956c3fc267 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2013-07-02 21:13:54 -07:00
erwin coumans 28f6e0fbd3 towards GPU joint (non-contact) constraint solving. The ConstraintDemo shows that CPU performance is very good, so not much performance win is to be expected. 2013-07-02 21:13:42 -07:00
erwin coumans 72042f3094 add basic constraint demo 2013-07-02 11:07:50 -07:00
erwin coumans 0f78c696b5 GWEN improvement: allow to navigate TreeControl and ComboBox using the cursor keys 2013-07-01 23:43:49 -07:00
erwin coumans 6d6ef5d3dc fixed many memory leaks
added working shadows, using basic shadow mapping
2013-06-30 23:19:14 -07:00
erwin coumans f2cc840c31 move shaders to .glsl files and stringify to .h file.
add crude screenshot facility (using F1 key), it can also be used for debugging
start with shadows using shadowmap, not working yet
add experimental 'ignore' body index in raycast, using b3HitInfo.m_m_hitResult2
2013-06-28 14:10:23 -07:00
erwin coumans bb723f9fd1 remove some un-used data from b3Generic6DofConstraint
add GLRenderToTexture helper class
enable OpenGLTrueTypeFont test
2013-06-26 16:09:40 -07:00
erwincoumans e39af46403 fix ray-convex header file 2013-06-20 16:41:11 -07:00
erwincoumans d935eb2520 fixes in ray-convex for GPU 2013-06-20 16:27:36 -07:00
erwincoumans 47403c7e6f Merge branch 'master' of https://github.com/erwincoumans/bullet3 2013-06-20 12:55:35 -07:00
erwin coumans 92f2f330df fix OpenCL kernel: NVIDIA crashes in clBuildProgram and AMD reports an error 'irreducable flow detected" ?!?
ray-convex works on GPU
2013-06-20 11:50:19 -07:00
erwin coumans 330bf3ea09 start implementing ray-convex on GPU (work-in-progress) 2013-06-20 11:33:00 -07:00
erwin coumans c959f32d7e added b3Clock/b3Quickprof files 2013-06-20 10:14:21 -07:00
erwin coumans 531af1b394 add ray-convex CPU implementation, make CPU raytest default for now
tweak/increase the b3Config values again, so it works better on the Macbook Retina GPU.
2013-06-20 00:29:09 -07:00
erwin coumans a69ba48de4 Move b3Quickprof.* from Bullet 3.x src folder to btgui/Timing
The Bullet 3.x B3_PROFILE can be customized using b3SetCustomEnterProfileZoneFunc/b3SetCustomLeaveProfileZoneFunc defined in Bullet3Common/b3Logging,
so you can hook Bullet 3.x up to your profiler of choice.
The Demos3/BasicGpuDemo will show the Bullet 3.x timings inside the Bullet 2.x btQuickprof profiler.
2013-06-19 22:08:03 -07:00
Erwin Coumans 7d79555f50 only disable fastscan in radix sort for __APPLE__, this should improve Linux performance (previously it went through the slower path under Linux) 2013-06-19 23:18:17 -07:00
Erwin Coumans fa4394c378 remove bullet2.patch, the file is not necessary anymore.
You can use Bullet 3.x standalone, or you can use Bullet3+Bullet2 by checking out the source code of both repositories at the same location,
and then use premake --bullet2gpu gmake (or vs2010, xcode4) to generate the combined project, with App_BasicGpuDemo_* test app.
2013-06-19 23:14:02 -07:00