Commit Graph

154 Commits

Author SHA1 Message Date
erwin coumans
58206b7962 Add preliminary support for VR/OpenVR for HTC Vive and Oculus Rift,
(Windows-only first, later Linux and OSX)
Use premake to build, use --enable_openvr flag
2016-06-30 16:03:38 -07:00
Erwin Coumans
de9bd65c19 fix compile issues 2016-05-26 19:22:26 -07:00
erwin coumans
0d50d8c73b Preliminary working version of TinyRenderer for standalone demos,
it works without OpenGL dependency now, so it runs in the cloud :-)
Add scaling support for TinyRenderer, remove some un-used normal mapping in TinyRenderer shader, expose light_dir_world,
remove accidental hard-coded path in tga write_tga_file,
Fix InverseDynamicsExampleCreateFunc, enum has to start at 0
2016-05-26 17:36:01 -07:00
Erwin Coumans
535ee33e3b fix build3/stringify.sh
fix some compile issues
2016-05-25 15:37:28 -07:00
Erwin Coumans
9bd88e5727 move some easy-to-use build files for Mac OSX, Linux and Windows
in the root directory.
2016-05-21 10:45:08 -07:00
erwin coumans
0a3efbe349 make standalone versions (console, tinyrender, opengl) of InverseDynamics/InverseDynamicsExample 2016-05-06 13:57:48 -07:00
Erwin Coumans
1d0f038aad add initial pybullet module, using the shared memory API
(for now, start the example browser in 'physics server',
then compile using premake --python option,
then run python in the bin folder (so it finds pybullet.so)
and run the test.py script in examples/pybullet folder.
The robotics shared memory C API is very suitable for this.
2016-04-30 11:18:54 -07:00
erwin coumans
03bdcc8737 patch TinyRenderer so it software-renders in an OpenGL texture, for testing
fix texture support: flip texture to make OpenGL happy (lower-left is origin)
add path prefix to .obj loader, so materials/textures are loaded ok.
2016-04-26 20:52:52 -07:00
Erwin Coumans
2cbfeb9590 run GUI on main thread for Mac OSX/__APPLE__, due to OS limitation
add b3CreateInProcessPhysicsServerAndConnectMainThread to test.c
2016-04-14 08:51:20 -07:00
Erwin Coumans
84a136534a add preliminary Android build files for Bullet
add SimpleOpenGL3 example and show how to override
keyboard, mouse, wheel, resize callbacks
2016-03-27 10:21:05 -07:00
Erwin Coumans
7d72f23711 premake: disable linking system OpenGL and X11 by default,
use dlopen to dynamically load GL/X11
2016-03-24 21:15:49 -07:00
Erwin Coumans
6bc3f94f52 add a Pendulum example that is also used as unit test.
Gold data is created by numerically solving a second-order non-linear differential equation.
(see examples/MultiBody/pendulum_gold.h)
2016-01-06 18:08:49 -08:00
Andrew Meadows
e66be7a7ef replaced spaced indentation with tabs 2015-12-03 22:00:52 -08:00
Andrew Meadows
b8f72ee56b fix bad --no-extras option for InverseDynamcis 2015-12-03 20:52:28 -08:00
Andrew Meadows
1c30453ae4 adding forgotten --no-extras build option 2015-12-03 20:49:31 -08:00
Andrew Meadows
d8b7d12707 combine checks for "ios" premake option
The "ios" option now only makes sense when action is "xcode"
2015-12-03 20:39:29 -08:00
Andrew Meadows
f385bffffb cleanup main premake script
added premake options:
  --no-demos
  --no-test
  --no-bullet3
2015-12-03 18:58:10 -08:00
Erwin Coumans
7d9365319c add InverseDynamics test/lib to premake 2015-11-17 08:26:27 -08:00
Erwin Coumans
72b68409da clang gets confused/crashes when using the same namespace,
need to look if it is a real error or clang issue
should fix Issue 520
https://github.com/bulletphysics/bullet3/issues/520
2015-11-08 13:49:37 -08:00
Erwin Coumans
6e042b1901 re-enable wireframe in PhysicsClient
inintialize variables in constructor of PhysicsClient
2015-10-30 13:24:02 -07:00
Erwin Coumans
362887987c add example/MultiThreading functions 2015-08-21 11:09:53 -07:00
erwin coumans
a5669d2ffd add a textured sphere8.obj test with obj loader
fix shaders, so that shadowed and non-shadowed are matching
fix registerGraphicsUnitSphereShape API (level of detail), support textured sphere too
add support for textured cube
add start for a Tutorial.cpp
2015-08-05 19:03:27 -07:00
erwincoumans
19c5be5646 small progress towards shared memory C-api and test.c. 2015-07-30 23:22:44 -07:00
erwin coumans
259bcb1989 mix physics client/server into a single example for easier/faster development of shared memory experiment
add premake option to choose targetdir for binaries/libraries
add simple hinge.urdf file
2015-07-15 12:57:45 -07:00
=
95eff08c51 fix 'binserver' to 'bin' for premake targetdir 2015-07-10 22:31:05 -07:00
erwincoumans
6c9ce344ea fix shadowmap crash on some Intel GPUs, see https://github.com/bulletphysics/bullet3/issues/4
remove targetdir from all libraries in premake, so it is much easier to create a separate folder for all binary+lib
transmit the serialized btMultiBody data back from server to client, after the server loads a URDF file. This includes base+link+joint names
tweak the serialization routines, so it is easier to skip pointers and to serialize directly to a shared memory buffer
also tweak the serialization code to allow to process data without 'DNA' schema data (assuming file-DNA = memory DNA)
2015-07-10 22:20:06 -07:00
erwincoumans
285ac286fa some work towards streaming Bullet data over shared memory for client/server 2015-07-09 14:04:58 -07:00
=
bc806ab68c exit gracefully and call destructor of the current active example
fflush after printf
implemented stepForward and Shutdown for the SharedMemory client/server
2015-05-29 15:04:05 -07:00
=
82576d0bee added preliminary shared memory physics client/server
fix a bug in CommonMultiBodyBase: don't use data if it hasn't been allocated
2015-05-28 16:05:24 -07:00
Erwin Coumans
dbae21ae5a prepare for some basic lua scripting example 2015-05-13 09:17:59 -07:00
Erwin Coumans
074b869a9f enable premake4 option --ios and Test_LinearMath
usage: ./premake4_osx --ios xcode4
open xcode4ios/0_Bullet3Solution.xcworkspace
2015-05-12 09:17:27 -07:00
erwin coumans
5a0b744e73 fixed premake4 issue causing the build to fail on non-Mac platforms 2015-05-06 12:05:25 -07:00
Erwin Coumans
0da584a42d allow to compile and run the ExampleBrowser on older Mac OSX versions (without OpenGL3)
using the 'NO_OPENGL3' preprocessor definition
both premake/cmake has support for this now
needs some testing
2015-05-06 10:35:14 -07:00
=
7eec0dc57d add enet for some client/server tests 2015-05-05 12:51:38 -07:00
Erwin Coumans
fcb841018a remove 'Custom' multi body demo, it has no point on its own 2015-04-29 15:02:12 -07:00
erwin coumans
27227e5e4a add SoftDemo examples
add example description for all examples (with word-wrap)
add the VoronoiFractureDemo, note that the collision are disabled after breaking constraints.
add optional GwenOpenGLTest, to make it easier to see Gwen user interface features.
2015-04-27 18:35:07 -07:00
erwin coumans
05bf86d95f added LICENSE.txt and AUTHORS.txt file
add MultiBody Custom Creation example, to show how to import data from a URDF file and fill up your own data structures.
add btMultiBody::setBaseWorldTransform method
todo: fix cmake build, this patch is premake only
2015-04-23 15:41:17 -07:00
Erwin Coumans
889cbdc0ef fixes in Mac modifier keys, remove enet/lua tests 2015-04-16 17:35:34 -07:00
erwincoumans
794c8ec064 add BspDemo.bsp data file
add sphere2.urdf
move btSpatialAlgebra into LinearMath
remove some warnings, introduce BT_ZERO, BT_ONE, BT_HALF as defines for 0.f/0., 1.f/1., 0.5f/0.5 respectively
2015-04-16 10:17:35 -07:00
Erwin Coumans
2ddd8f78c2 add option to create mp4 videos from App_AllBullet2Demos, using the
--mp4=video.mp4 note that you have to re-convert for Quicktime
ffmpeg  -f mp4 -vcodec h264 -i test.mp4 -pix_fmt yuv420p test2.mp4
add the option to display text in 3d, used in Coriolis demo
2015-03-25 14:04:26 -07:00
Erwin Coumans
b1863f7ce2 Refactored GJK, EPA and MPR as a template class, reducing/removing the dependencies
to the rest of the Bullet code base. This code will replace the original GJK/EPA
in a future commit.

Added btMprPenetration, an implementation of Minkowski Portal Refinement
by Daniel Fiser. Original MPR idea is by Gary Snethen, and the first
implementation is here: https://github.com/erwincoumans/xenocollide
It is an alternative to EPA, although computing the local penetration depth.
EPA computes the global penetration depth. In many cases, MPR is sufficient
and performs better than EPA.
2014-11-02 12:53:36 -08:00
Erwin Coumans
e314f56f9d refactor to allow various gfx backends (work-in-progress) 2014-09-23 18:27:16 -07:00
Erwin Coumans
07e2dcc749 minor cleanup of btgui/demo3 stuff, much more demo cleanup is needed
moved some files in btgui/Bullet3AppSupport
2014-09-16 12:08:24 -07:00
Erwin Coumans
0125324bd6 consolidate files into btgui/OpenGLWindow (from FontFiles/OpenGLTrueTypeFont)
consolidate stringify_linux/_osx into stringify.sh
2014-09-03 09:52:31 -07:00
Erwin Coumans (Google)
58d7a7b9d5 Merge branch 'master' of https://github.com/erwincoumans/bullet3 2014-09-01 09:21:26 -07:00
Erwin Coumans (Google)
e20c240178 make stringify_linux.sh compatible with mac osx (testing) 2014-09-01 09:17:21 -07:00
Erwin Coumans
954d488756 cmake+premake disable OpenGL 3 demos on Mac OSX versions below 10.9
See also http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=10073
Move ConstraintPhysicsSetup to Demos3/bullet3/ConstraintDemo
2014-08-22 14:41:21 -07:00
Erwin Coumans
7b28e86c7b add improved btGeneric6DofSpring2Constraint, thanks to Puhr Gabor and Tamas Umenhoffer!
improved the new demo testbed (work-in-progress)
add basic Lua demo, import URDF test, STL import, obj import
2014-08-20 16:28:16 -07:00
Erwin Coumans
d93b27f16c premake4: add option to force dynamic loading of OpenGL and X11
--force_dlopen_opengl and --force_dlopen_x11
2014-08-18 22:19:34 -07:00
Erwin Coumans
bf1bd07636 premake4 build: allow to dynamically load X11 if X11 system headers/library is missing
premake4 build: allow to dynamically load OpenGL/GLEW/glx if system headers are missing
2014-08-18 21:43:08 -07:00
erwin coumans
670576ec72 remove #include <stdbool.h> it breaks MSVC 2010
enable gtest by default when using premake, added flag without-gtest
use gtest ASSERT_EQ( expected_value, actual_value) instead of the reverse,
this fixes issue 205 (https://github.com/bulletphysics/bullet3/issues/205)
2014-08-12 12:18:32 -07:00
Erwin Coumans
ae98ffe218 add Obj and STL import demo, work on URDF import 2014-08-03 13:45:05 -07:00
Erwin Coumans
04632538ec add tinyxml, urdfdom and urdfdom_headers from https://github.com/ros/urdfdom
(removed BOOST dependency and make it compile on Windows)
2014-07-31 13:38:31 -07:00
Erwin Coumans
0c39cda57b enable png and mp4 output in SimpleOpenGL3App, see
Demos3/SimpleOpenGL3 use commandline parameter
--png_file="pngname" or
--mp4_file="video.mp4"

Thanks to http://blog.mmacklin.com/2013/06/11/real-time-video-capture-with-ffmpeg/
2014-07-29 16:58:22 -07:00
Erwin Coumans (Google)
f89d70b895 fix Linux build 2014-07-03 22:41:07 -07:00
Erwin Coumans
b438b91009 fix Mac build 2014-07-03 22:30:50 -07:00
Erwin Coumans
bae303c5da add preliminary glut replacement test for Bullet 2.x demos 2014-07-03 16:42:50 -07:00
Erwin Coumans
dca234ec02 use included glew on Linux, only if glew is not installed in /usr/include/GL/glew.h 2014-07-01 13:01:42 -07:00
Erwin Coumans
46884e0f1f update the binary premake4_osx binary, avoid the -Wl,-x flag so clang linker doesn't produce an error
ld: internal error: atom not found in symbolIndex
see http://industriousone.com/topic/how-remove-flags-ldflags
2014-05-16 16:11:59 -07:00
Erwin Coumans
d65089e8e0 cmake improvements 2014-05-15 15:39:26 -07:00
Erwin Coumans
5c1fc2e3a4 fix OpenGL detection on Linux, and re-add TTF project to premake 2014-05-14 11:03:53 -07:00
Erwin Coumans
934df75ea6 more fixes in the build, related to CMake and some error (don't delete a void* pointer!)
revert BasicDemo.cpp to original Bullet 2.82 state
2014-05-13 21:52:46 -07:00
Erwin Coumans
7cec30dede fix Linux build
optional Midi under Linux (ALSA/libasound)
2014-05-05 15:37:02 -07:00
Erwin Coumans
4996a64238 fix CMake build on Mac OSX 2014-04-28 11:11:45 -07:00
Jackson Lee
b7b7356af8 Draft Parallel Linear BVH Broadphase. 2014-02-18 19:23:25 -08:00
erwincoumans
d65cd8060a add Lua and basic Lua->C/C++ integration test, in preparation for Bullet demos setup using Lua scripts. 2014-02-05 19:39:48 -08:00
Erwin Coumans
ed12452fe6 update stringify_linux.sh and make shader filename case sensitive correct 2014-02-04 15:45:24 -08:00
Erwin Coumans
ac32af2b1c fix linux build (case sensitive folder Test -> test etc) 2014-01-31 22:40:42 -08:00
erwincoumans
863ac2c477 add unit tests for OpenCL kernel compilation for all Bullet 3 kernels (using GoogleTest) 2014-01-31 20:41:13 -08:00
Erwin Coumans
d37a40caf1 add GoogleTest gtest-1.7.0 and simple hello_gtest (preparation for unit tests) 2014-01-31 00:18:35 -08:00
erwincoumans
2901d4682e don't use the vendor OpenCL sdks (commented out in 'findOpenCL.lua' file), just use clew 2014-01-30 06:05:34 -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
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
erwincoumans
ed73bce9da Move Bullet 2.x demos in a single demo 'AllBullet2Demos', for now only BasicDemo and FeatherstoneDemo is implemented. 2014-01-05 21:58:30 -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
abeea0c8b0 add Bullet icon files 2013-12-19 12:41:36 -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
7964f2d8c1 split OpenCL kernels: fatal error C1091: compiler limit: string exceeds 65535 bytes in length 2013-12-17 12:33:38 -08:00
erwin coumans
ba2ba28a89 add Bullet 2.x CPU FeatherstoneMultiBodyDemo 2013-12-09 14:16:51 -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
ec39c2f210 Removed to bitonic sort and ios, they were not used and confuse Bram :)
http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=9570
2013-11-25 21:38:44 -08:00
erwincoumans
b0c43520e3 more work towards re-enabling grid broadphase. 2013-11-10 22:00:35 -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
ef42c17143 add drawPoint/drawLine (both slow) and drawPoints (faster) to GLInstancingRenderer, with GLSL shaders 2013-09-06 12:05:56 -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
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
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
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
erwincoumans
2f0fd80c9c enable poxix MultiThreading sample under Linux 2013-07-18 21:18:09 -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
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
erwincoumans
282e19171f fix Linux version of ConstraintDemo 2013-07-09 14:41:56 -07:00
erwin coumans
3a6e1ccff4 work towards GPU joint solver (non-contact constraints), not working yet. 2013-07-06 13:08:58 -07:00