DubiousEngine  0.2.0
Simple Game Engine
Dubious::Physics::Arena::Collision_solver_settings Struct Reference

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
 

Detailed Description

Collision solver settings.

Settings specific to collision detection.

Member Enumeration Documentation

Enumerator
SINGLE_THREADED 
MULTI_THREADED 
OPENCL 

Member Data Documentation

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


The documentation for this struct was generated from the following file: