DubiousEngine
0.2.0
Simple Game Engine
|
Collision solver settings. More...
#include <Arena.h>
Public Types | |
enum | Strategy { Strategy::SINGLE_THREADED, Strategy::MULTI_THREADED, Strategy::OPENCL } |
Public Attributes | |
float | manifold_persistent_threshold = 0.05f |
unsigned int | cl_collisions_per_thread = 100000 |
unsigned int | cl_collisions_work_group_size = 3200 |
unsigned int | mt_collisions_work_group_size = 1000 |
Strategy | strategy = Strategy::SINGLE_THREADED |
Collision solver settings.
Settings specific to collision detection.
unsigned int Dubious::Physics::Arena::Collision_solver_settings::cl_collisions_per_thread = 100000 |
After broad phase collision detection we create a vector of potentially colliding pairs. If the number of these pairs exceeds this number, the collision detection will be shunted off to a new thread. One new thread for every vector of pairs of the following size. This is specific to Collision_strategy_open_cl
unsigned int Dubious::Physics::Arena::Collision_solver_settings::cl_collisions_work_group_size = 3200 |
When using Collision_strategy_open_cl we need to know how many objects per global work group
float Dubious::Physics::Arena::Collision_solver_settings::manifold_persistent_threshold = 0.05f |
When a point is being added to the contact manifold it needs to be tested against existing points to see if it is new, or is already in the manifold. If the distance squared from an existing point to a new is less then this threshold then the new point will be considered the same as the old.
unsigned int Dubious::Physics::Arena::Collision_solver_settings::mt_collisions_work_group_size = 1000 |
When using Collision_strategy_multi_threaded we need to know how many objects per global work group
Strategy Dubious::Physics::Arena::Collision_solver_settings::strategy = Strategy::SINGLE_THREADED |
Which collision strategy should be used: SINGLE_THREADED -> Collision_strategy_simple MULTI_THREADED -> Collision_strategy_multithreaded OPENCL -> Collision_strategy_open_cl