Package physx.physics

Enum Class PxBroadPhaseTypeEnum

java.lang.Object
java.lang.Enum<PxBroadPhaseTypeEnum>
physx.physics.PxBroadPhaseTypeEnum
All Implemented Interfaces:
Serializable, Comparable<PxBroadPhaseTypeEnum>, Constable

public enum PxBroadPhaseTypeEnum extends Enum<PxBroadPhaseTypeEnum>
Broad phase algorithm used in the simulation

eSAP is a good generic choice with great performance when many objects are sleeping. Performance can degrade significantly though, when all objects are moving, or when large numbers of objects are added to or removed from the broad phase. This algorithm does not need world bounds to be defined in order to work.

eMBP is an alternative broad phase algorithm that does not suffer from the same performance issues as eSAP when all objects are moving or when inserting large numbers of objects. However its generic performance when many objects are sleeping might be inferior to eSAP, and it requires users to define world bounds in order to work.

eABP is a revisited implementation of MBP, which automatically manages broad-phase regions. It offers the convenience of eSAP (no need to define world bounds or regions) and the performance of eMBP when a lot of objects are moving. While eSAP can remain faster when most objects are sleeping and eMBP can remain faster when it uses a large number of properly-defined regions, eABP often gives the best performance on average and the best memory usage.

ePABP is a parallel implementation of ABP. It can often be the fastest (CPU) broadphase, but it can use more memory than ABP.

eGPU is a GPU implementation of the incremental sweep and prune approach. Additionally, it uses a ABP-style initial pair generation approach to avoid large spikes when inserting shapes. It not only has the advantage of traditional SAP approch which is good for when many objects are sleeping, but due to being fully parallel, it also is great when lots of shapes are moving or for runtime pair insertion and removal. It can become a performance bottleneck if there are a very large number of shapes roughly projecting to the same values on a given axis. If the scene has a very large number of shapes in an actor, e.g. a humanoid, it is recommended to use an aggregate to represent multi-shape or multi-body actors to minimize stress placed on the broad phase.

  • Enum Constant Details

  • Field Details

    • value

      public final int value
  • Method Details

    • values

      public static PxBroadPhaseTypeEnum[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static PxBroadPhaseTypeEnum valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • forValue

      public static PxBroadPhaseTypeEnum forValue(int value)