Commit Graph

173 Commits

Author SHA1 Message Date
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
310d31f3d5 tweaks to demos, add middle-mouse support, 2013-07-21 00:36:00 -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
3beae80a73 prepare for GPU fixed constraint (not done yet) 2013-07-16 19:05:07 -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
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
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
erwincoumans
282e19171f fix Linux version of ConstraintDemo 2013-07-09 14:41:56 -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
b18e03d737 work towards GPU joint solver (non-contact constraints), not working yet. 2013-07-06 13:11:13 -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
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
erwincoumans
898f423f95 fix linux build 2013-07-01 09:45:12 -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
1d61530233 fix typo in premake file 2013-06-20 18:07:05 -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
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
erwincoumans
221a8cf463 move binary to bin folder 2013-06-19 15:03:29 -07:00
erwincoumans
7561e6a4f9 move build to build3 to avoid naming conflict with Bullet 2.x
fix build error in BasicGpuDemo
Thanks to joen66 for the report here:
https://github.com/erwincoumans/bullet3/issues/5
2013-06-19 14:54:28 -07:00
erwincoumans
596cc95163 move files to correct location (case sensitive issue)
w
2013-06-19 14:35:16 -07:00
erwin coumans
481d54967f Fixes in raycast (against sphere), point 2 point constraint
Picking test works, holding shift in App_BasicGpuDemo_*
2013-06-18 19:33:45 -07:00
erwincoumans
9a92eecf10 allow larger amount of rigid bodies, dynamically increase b3Config limits
avoid crashes in instancing renderer if instance maximum is exceeded.
2013-06-17 17:05:01 -07:00
erwincoumans
561a44e5d8 Try to avoid crashes if memory allocations fail
Deal with cases exceeding allocations of bodies/shapes above the limits set in b3Config
(work-in-progress )
2013-06-17 15:55:41 -07:00
erwincoumans
e179d5882e Merge branch 'master' of https://github.com/erwincoumans/bullet3 2013-06-17 13:47:41 -07:00
erwincoumans
161c48d331 work-in-progress Bullet 3.x GPU raytest
work-in-progress P2P constraint for b3GpuDynamicsWorld
2013-06-17 13:47:35 -07:00
erwin coumans
31282ab85e don't crash if the maximum number of pairs is exceeded, but report an error using b3Error 2013-06-17 13:23:41 -07:00
erwincoumans
02a858e7c1 pass in b3Config 2013-06-08 11:32:29 -07:00
erwin coumans
100449d76f faster scene construction when not using instancing (avoid copy individual vertices/shapes to GPU, but do it afterwards in a batch), copy GPU data in 'writeAllBodiesToGpu' method
add option --no_instanced_collision_shapes, this only applies to the 2 benchmark screnes at the moment
always use the user specified b3Config file, so the settings can be set at runtime, not just at compile time
adjust default constants in b3Config (needs more tweaking, ideally at run-time)
2013-06-08 11:08:44 -07:00
erwin coumans
3f10082aa3 add missing rayCast kernel 2013-06-07 20:47:47 -07:00
Erwin Coumans
afecad3ee4 Implemented b3OpenCLUtils::setCachePath
Also made kernel caching work on Mac OSX (and likely Linux, needs testing before enabling)
2013-06-07 15:04:46 -07:00
erwincoumans
9fe48d887d b3GpuDynamicsWorld improvements:
apply forces
copy linear/angular velocity every frame at the CPU side, initial velocity works now
hook up setGravity
Note: the 'stepSimulation' for GPU only simulates a single simulation frame.
2013-06-06 22:01:06 -07:00
erwincoumans
74bdccc2cf fix Linux build (tested on Ubuntu 12.10, 32bit) 2013-06-05 08:51:13 -07:00
Erwin Coumans
b36eba864f start with box-plane for benchmarking 2013-06-04 05:28:01 -07:00
erwin coumans
ff3c79b900 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2013-06-03 17:58:15 -07:00
Erwin Coumans
a9d4184e2d fix Mac version of cloth rendering 2013-06-03 17:35:31 -07:00
erwin coumans
76b0d7697a Added b3Printf, b3Warning and b3Error that can be re-routed to custom handlers.
See in src/Bullet3Common/b3Logging.h for details
2013-06-03 13:10:27 -07:00
erwin coumans
a886a978b7 add preliminary GPU ray cast (brute-force slow, only against sphere, allocates OpenCL buffers at every cast) 2013-05-28 18:39:53 -07:00
Erwin Coumans
f55473d586 GpuRaytraceScene work-in-progress, CPU only at the moment. 2013-05-27 00:42:28 -07:00
Erwin Coumans
a3559b3c92 add preliminary ray tracing test (ray-sphere placeholder on CPU) 2013-05-25 01:45:43 -07:00
Erwin Coumans
a92223890f improve Mac OSX/Unix benchmark 2013-05-23 20:38:27 -07:00
Erwin Coumans
c8b979e7ef Merge branch 'master' of https://github.com/erwincoumans/bullet3 2013-05-23 19:15:28 -07:00
Erwin Coumans
3a7f821a76 use monastry mesh 2013-05-23 19:15:07 -07:00
Erwin Coumans
084bc4ec32 improve the benchmark mode, with 2 files (csv and details) 2013-05-23 18:34:39 -07:00
erwincoumans
6bfa60c365 tweak demo a bit and add 'exit' to X11 window 2013-05-23 10:23:08 -07:00
erwincoumans
a2553cbdad only fclose(f) a file once, to avoid a crash on Linux 2013-05-23 09:54:54 -07:00
erwincoumans
98a877a80d enable alignment macros for Linux 2013-05-22 17:59:13 -07:00
erwincoumans
ee5195d3e8 fix padding issue under Linux (where b3Vector3 is not 16-byte aligned)
w
2013-05-22 17:46:47 -07:00
erwincoumans
4266717dff fix GpuGuiInitialize premake build files
w
2013-05-20 18:09:02 -07:00
erwincoumans
29e70b2802 Add option to use clew to manually open the OpenCL dynamic library
fix Linux build of App_Bullet3_OpenCL_Demos. Unfortunately the simulation doesn't work properly, need to fix it
(and add unit tests)
2013-05-20 17:58:19 -07:00
erwin coumans
4877a2af8a enable CPU joint (non-contact) constraint solver in GPU rigid body pipeline
small change to BasicGpuDemo
2013-05-08 15:55:02 -07:00
erwincoumans
25fe5f4a77 prepare for GPU cloth/softbody 2013-05-06 18:35:34 -07:00
erwin coumans
1185de51d5 experiment with first-level batching using object index instead of spatial hash in uniform grid (to avoid tuning average object size for uniform grid) 2013-05-03 01:14:34 -07:00
erwin coumans
6ee9eb9bb5 fix bug in assignment of contact constraints to solver grid (always use dynamic body to determine constraint assignment, otherwise write conflicts can occur)
implement CPU version of narrowphase convex collision, for comparison/debug purposes
start towards cpu/gpu sync, for adding/removing bodies (work in progress)
2013-05-02 09:49:16 -07:00
erwincoumans
de17d6044c add missing premake file 2013-05-01 10:14:37 -07:00
erwincoumans
e999903c15 resolve some naming conflicts between Bullet 3.x and Bullet 2.x
add BasicGpuDemo that bridges Bullet 2.x and Bullet 3.x (still preliminary/crashing/instable)
2013-04-30 18:17:44 -07:00
erwincoumans
3ac332f3a7 reorder files, in preparation for Bullet 3 -> Bullet 2 merge 2013-04-29 19:04:08 -07:00