Defined in include/PxSceneDesc.h

struct PxFrictionType

Enum for selecting the friction algorithm used for simulation.

PxFrictionType::ePATCH selects the patch friction model which typically leads to the most stable results at low solver iteration counts and is also quite inexpensive, as it uses only up to four scalar solver constraints per pair of touching objects. The patch friction model is the same basic strong friction algorithm as PhysX 3.2 and before.

PxFrictionType::eONE_DIRECTIONAL is a simplification of the Coulomb friction model, in which the friction for a given point of contact is applied in the alternating tangent directions of the contact’s normal. This simplification allows us to reduce the number of iterations required for convergence but is not as accurate as the two directional model.

PxFrictionType::eTWO_DIRECTIONAL is identical to the one directional model, but it applies friction in both tangent directions simultaneously. This hurts convergence a bit so it requires more solver iterations, but is more accurate. Like the one directional model, it is applied at every contact point, which makes it potentially more expensive than patch friction for scenarios with many contact points.

PxFrictionType::eFRICTION_COUNT is the total numer of friction models supported by the SDK.

Public Types

enum Enum


enumerator ePATCH

Select default patch-friction model.


Select one directional per-contact friction model.


Select two directional per-contact friction model.

enumerator eFRICTION_COUNT

The total number of friction models supported by the SDK.