benelot / minemonics

(Alpha Stage, work in progress) An open-source 3D virtual creature evolution simulator built in OGRE rendering engine in C++ to experiment with emergent gait-periodicity in evolved creatures on unknown terrain.
29 stars 5 forks source link

Add OpenCL support for the simulator via Bullet3. #105

Open benelot opened 9 years ago

benelot commented 9 years ago

(This might have changed in the future:

Usage

The demo executables will be located in the bin folder. The Bullet 2 demo starts with App_AllBullet2Demos* The Bullet 3 demo starts with App_Bullet3_OpenCLDemos*

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 [--selected_demo=] Start with a selected demo
[--benchmark] Run benchmark and export results to file
[--maxFrameCount=] Run the benchmark for frames
[--dump_timings] Print the profile timings to console
[--cl_device=] Choose a certain OpenCL device
[--cl_platform=] Choose a certain OpenCL platform
[--disable_cached_cl_kernels] Disable loading cached binary OpenCL kernels
[--x_dim=] Change default demo settings (x,y,z)
[--pair_benchmark_file=] Load AABB's from disk for the PairBench
[--no_instanced_collision_shapes] Disable collision shape instancing (for tests)
[--no_shadow_map] Disable shadowmap rendering
[--shadowmap_resolution=] Change the resolution of the shadowmap
[--shadowmap_size=] Change the worldspace size of the shadowmap
[--use_uniform_grid] Use uniform grid broadphase (no all scenes work)
[--use_jacobi] Use GPU parallel Jacobi solver (instead of PGS)
[--use_large_batches] Use a different strategy for the constrains solver
[--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
)

benelot commented 9 years ago

According to Erwin Coumans, this is very far from ready and also not cross-platform at all. Postpone this or discard completely.