test commit using svn

This commit is contained in:
erwincoumans
2014-01-14 09:37:28 -08:00
parent ca86e135de
commit d128552803

View File

@@ -1,108 +1,110 @@
Bullet 3.x GPU rigid body pipeline using OpenCL. Bullet 3.x GPU rigid body pipeline using OpenCL.
Note that the Bullet 2.x svn repository from http://bullet.googlecode.com Note that the Bullet 2.x svn repository from http://bullet.googlecode.com
is being merged into this repository. is being merged into this repository.
1) The old Bullet2 demos are moved from ObsoleteDemos to AllBullet2Demos 1) The old Bullet2 demos are moved from ObsoleteDemos to AllBullet2Demos
2) A new Bullet 3 API is created 2) A new Bullet 3 API is created
3) All Bullet2 functionality is added to Bullet 3 3) All Bullet2 functionality is added to Bullet 3
Until this is done, you can use the Demos3/BasicGpuDemo/b3GpuDynamicsWorld Until this is done, you can use the Demos3/BasicGpuDemo/b3GpuDynamicsWorld
or explore the Demos3/GpuDemos to check out Bullet 3. or explore the Demos3/GpuDemos to check out Bullet 3.
The entire collision detection and rigid body dynamics is executed on the GPU. You can still use svn or svn externals using the github git repository: use svn co https://github.com/erwincoumans/bullet3/trunk
Requirements: The entire collision detection and rigid body dynamics is executed on the GPU.
A high-end desktop GPU, such as an AMD Radeon 7970 or NVIDIA GTX 680 or similar.
We succesfully tested the software under Windows, Linux and Mac OSX. Requirements:
The software currently doesn't work on OpenCL CPU devices. It might run A high-end desktop GPU, such as an AMD Radeon 7970 or NVIDIA GTX 680 or similar.
on a laptop GPU but performance is likely not very good. We succesfully tested the software under Windows, Linux and Mac OSX.
The software currently doesn't work on OpenCL CPU devices. It might run
on a laptop GPU but performance is likely not very good.
License
All source code files are licensed under the permissive zlib license
(http://opensource.org/licenses/Zlib) unless marked differently in a particular folder/file. License
All source code files are licensed under the permissive zlib license
(http://opensource.org/licenses/Zlib) unless marked differently in a particular folder/file.
Build instructions:
Windows: Build instructions:
Click on build3/vs2010.bat and open build3/vs2010/0MySolution.sln
Windows:
Linux and Mac OSX gnu make Click on build3/vs2010.bat and open build3/vs2010/0MySolution.sln
In a terminal type:
Linux and Mac OSX gnu make
cd build3 In a terminal type:
Dependend on your system (Linux 32bit, 64bit or Mac OSX) use one of the following lines cd build3
./premake4_linux gmake
./premake4_linux64 gmake Dependend on your system (Linux 32bit, 64bit or Mac OSX) use one of the following lines
./premake4_osx gmake ./premake4_linux gmake
./premake4_linux64 gmake
Then ./premake4_osx gmake
cd gmake Then
make
cd gmake
Mac OSX Xcode make
Click on build3/xcode4.command or in a terminal window execute
./premake_osx xcode4 Mac OSX Xcode
Click on build3/xcode4.command or in a terminal window execute
Usage: ./premake_osx xcode4
The main demo executable will be located in the bin folder. Usage:
The demo starts with App_Bullet3_OpenCL_Demos_*
The main demo executable will be located in the bin folder.
You can just run it though a terminal/command prompt, or by clicking it. The demo starts with App_Bullet3_OpenCL_Demos_*
You can just run it though a terminal/command prompt, or by clicking it.
There are some command-line options, you can see using the --help option. For example, this will perform a benchmark writing to some files:
./App_Bullet3_OpenCL_Demos_clew_gmake --benchmark There are some command-line options, you can see using the --help option. For example, this will perform a benchmark writing to some files:
[--selected_demo=<int>] Start with a selected demo ./App_Bullet3_OpenCL_Demos_clew_gmake --benchmark
[--benchmark] Run benchmark and export results to file
[--maxFrameCount=<int>] Run the benchmark for <int> frames [--selected_demo=<int>] Start with a selected demo
[--dump_timings] Print the profile timings to console [--benchmark] Run benchmark and export results to file
[--cl_device=<int>] Choose a certain OpenCL device [--maxFrameCount=<int>] Run the benchmark for <int> frames
[--cl_platform=<int>] Choose a certain OpenCL platform [--dump_timings] Print the profile timings to console
[--disable_cached_cl_kernels] Disable loading cached binary OpenCL kernels [--cl_device=<int>] Choose a certain OpenCL device
[--x_dim=<int>] Change default demo settings (x,y,z) [--cl_platform=<int>] Choose a certain OpenCL platform
[--pair_benchmark_file=<filename>] Load AABB's from disk for the PairBench [--disable_cached_cl_kernels] Disable loading cached binary OpenCL kernels
[--no_instanced_collision_shapes] Disable collision shape instancing (for tests) [--x_dim=<int>] Change default demo settings (x,y,z)
[--no_shadow_map] Disable shadowmap rendering [--pair_benchmark_file=<filename>] Load AABB's from disk for the PairBench
[--shadowmap_resolution=<int>] Change the resolution of the shadowmap [--no_instanced_collision_shapes] Disable collision shape instancing (for tests)
[--shadowmap_size=<int>] Change the worldspace size of the shadowmap [--no_shadow_map] Disable shadowmap rendering
[--use_uniform_grid] Use uniform grid broadphase (no all scenes work) [--shadowmap_resolution=<int>] Change the resolution of the shadowmap
[--use_jacobi] Use GPU parallel Jacobi solver (instead of PGS) [--shadowmap_size=<int>] Change the worldspace size of the shadowmap
[--use_large_batches] Use a different strategy for the constrains solver [--use_uniform_grid] Use uniform grid broadphase (no all scenes work)
[--debug_kernel_launch] Show debug info at start/end of each kernel launch [--use_jacobi] Use GPU parallel Jacobi solver (instead of PGS)
[--use_dbvt] Use the CPU dynamic BVH tree broadphase [--use_large_batches] Use a different strategy for the constrains solver
[--allow_opencl_cpu] Allow to use an OpenCL CPU device [--debug_kernel_launch] Show debug info at start/end of each kernel launch
[--use_dbvt] Use the CPU dynamic BVH tree broadphase
[--allow_opencl_cpu] Allow to use an OpenCL CPU device
You can use mouse picking to grab objects. When holding the ALT of CONTROL key, you have Maya style camera mouse controls.
Press F1 to create a screenshot. Hit ESCAPE to exit the demo app.
You can use mouse picking to grab objects. When holding the ALT of CONTROL key, you have Maya style camera mouse controls.
Press F1 to create a screenshot. Hit ESCAPE to exit the demo app.
Bullet 3.x only implements a small set of collision shapes and constraints:
Static plane Bullet 3.x only implements a small set of collision shapes and constraints:
Static concave triangle mesh
Sphere Static plane
Convex Polyhedron Static concave triangle mesh
Compound of Convex Polyhedra Sphere
Convex Polyhedron
Bullet 3.x uses the separating axis test (SAT) between convex polyhedra, testing all vertex - face and edge - edge combinations. For performance it is best to keep the number of edges in a convex polyhedron low, using simple shapes such as a tetrahedron or a box. Compound of Convex Polyhedra
The constraint solver currently supports two constraints: Bullet 3.x uses the separating axis test (SAT) between convex polyhedra, testing all vertex - face and edge - edge combinations. For performance it is best to keep the number of edges in a convex polyhedron low, using simple shapes such as a tetrahedron or a box.
point to point constraint (ball-socket The constraint solver currently supports two constraints:
fixed constraint
point to point constraint (ball-socket
It can be extended to other constraint types. The constraint solver uses the same algorithm as Bullet 2.x. fixed constraint
It is possibly to try out Bullet 3.x using the Bullet 2.x API, using the b3GpuDynamicsWorld bridge: It can be extended to other constraint types. The constraint solver uses the same algorithm as Bullet 2.x.
Copy the source code of both versions in the same location, and click on build3/vs2010_bullet2gpu.bat to generate Visual Studio project files.
It is possibly to try out Bullet 3.x using the Bullet 2.x API, using the b3GpuDynamicsWorld bridge:
See docs folder for further information. Copy the source code of both versions in the same location, and click on build3/vs2010_bullet2gpu.bat to generate Visual Studio project files.
See docs folder for further information.