Add PhysX option for enabling enhanced determinism

This commit is contained in:
Chandler Cox
2024-07-15 16:23:49 -05:00
parent 009e1aaebb
commit d700df6afb
2 changed files with 9 additions and 1 deletions

View File

@@ -1256,6 +1256,8 @@ void* PhysicsBackend::CreateScene(const PhysicsSettings& settings)
sceneDesc.simulationEventCallback = &scenePhysX->EventsCallback;
sceneDesc.filterShader = FilterShader;
sceneDesc.bounceThresholdVelocity = settings.BounceThresholdVelocity;
if (settings.EnableEnhancedDeterminism)
sceneDesc.flags |= PxSceneFlag::eENABLE_ENHANCED_DETERMINISM;
switch (settings.SolverType)
{
case PhysicsSolverType::ProjectedGaussSeidelIterativeSolver:

View File

@@ -94,10 +94,16 @@ public:
API_FIELD(Attributes="EditorOrder(71), EditorDisplay(\"Simulation\")")
PhysicsBroadPhaseType BroadPhaseType = PhysicsBroadPhaseType::ParallelAutomaticBoxPruning;
/// <summary>
/// Enables enhanced determinism in the simulation. This has a performance impact.
/// </summary>
API_FIELD(Attributes="EditorOrder(71), EditorDisplay(\"Simulation\")")
bool EnableEnhancedDeterminism = false;
/// <summary>
/// The solver type to use in the simulation.
/// </summary>
API_FIELD(Attributes="EditorOrder(72), EditorDisplay(\"Simulation\")")
API_FIELD(Attributes="EditorOrder(73), EditorDisplay(\"Simulation\")")
PhysicsSolverType SolverType = PhysicsSolverType::ProjectedGaussSeidelIterativeSolver;
/// <summary>