UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RewindData.cpp File Reference

Namespaces

namespace  Chaos
 

Macros

#define REWIND_DESYNC   0
 

Enumerations

enum class  Chaos::EResimFrameValidation : int32 { Chaos::FullValidation = 0 , Chaos::IslandValidation = 1 , Chaos::TriggerParticleValidation = 2 }
 

Functions

bool Chaos::SimWritablePropsMayChange (const TGeometryParticleHandle< FReal, 3 > &Handle)
 

Variables

bool Chaos::bCVarRewindDataOptimization = true
 
FAutoConsoleVariableRef Chaos::CVarRewindDataOptimization (TEXT("p.Resim.RewindDataOptimization"), bCVarRewindDataOptimization, TEXT("Default value for RewinData optimization, note that this can be overridden at runtime by API calls. Effect: Only alter the minimum required properties during a resim for particles not marked for FullResim and only cache data during the PrePushData phase and lower memory allocation for the history cache to 1/3 of non-optimized flow."))
 
CHAOS_API bool Chaos::bResimAllowRewindToResimulatedFrames = true
 
FAutoConsoleVariableRef Chaos::CVarResimAllowRewindToResimulatedFrames (TEXT("p.Resim.AllowRewindToResimulatedFrames"), bResimAllowRewindToResimulatedFrames, TEXT("Allow rewinding back to a frame that was previously part of a resimulation. If a resimulation is performed between frame 100-110, allow a new resim from 105-115 if needed, else next resim will be able to start from frame 111."))
 
CHAOS_API float Chaos::ResimAllowRewindToResimulatedFramesOverlapPercent = 1.0f
 
FAutoConsoleVariableRef Chaos::CVarResimAllowRewindToResimulatedFramesOverlapPercent (TEXT("p.Resim.AllowRewindToResimulatedFrames.OverlapPercent"), ResimAllowRewindToResimulatedFramesOverlapPercent, TEXT("Value in percent as a multiplier, 0.3 = 30%. When p.Resim.AllowRewindToResimulatedFrames is true, this sets how many frames of overlap we allow when rewinding back past a previous resimulation. If a resimulation is performed between frame 100-110 (10 frames), 30% overlap would allow 3 frames to get resimulated again, i.e. we would be allowed to rewind back to frame 107 again if we need to."))
 
CHAOS_API int32 Chaos::SkipDesyncTest = 0
 
FAutoConsoleVariableRef Chaos::CVarSkipDesyncTest (TEXT("p.SkipDesyncTest"), SkipDesyncTest, TEXT("Skips hard desync test, this means all particles will assume to be clean except spawning at different times. This is useful for a perf lower bound, not actually correct"))
 
CHAOS_API int32 Chaos::ResimFrameValidation = static_cast<int32>(EResimFrameValidation::IslandValidation)
 
FAutoConsoleVariableRef Chaos::CVarResimFrameValidationLeniency (TEXT("p.Resim.ResimFrameValidation"), ResimFrameValidation, TEXT("0 = no leniency, all dirty particles need a valid target. 1 = Island leniency, all particles in resim islands need a valid target. 2 = Full leniency, only the particle triggering the resim need a valid target."))
 
CHAOS_API bool Chaos::bResimIncompleteHistory = true
 
FAutoConsoleVariableRef Chaos::CVarResimIncompleteHistory (TEXT("p.Resim.IncompleteHistory"), bResimIncompleteHistory, TEXT("If a valid resim frame can't be found, use the requested resim frame and perform a resimulation with incomplete data."))
 
CHAOS_API bool Chaos::bFindValidInputHistory = true
 
FAutoConsoleVariableRef Chaos::CVarResimFindValidInputHistory (TEXT("p.Resim.FindValidInputHistory"), bFindValidInputHistory, TEXT("If the particle that needs resimulation has custom input history, find a valid resim frame where inputs are available."))
 
CHAOS_API bool Chaos::bFindValidStateHistory = true
 
FAutoConsoleVariableRef Chaos::CVarResimFindValidStateHistory (TEXT("p.Resim.FindValidStateHistory"), bFindValidStateHistory, TEXT("If the particle that needs resimulation has custom state history, find a valid resim frame where states are available."))
 
CHAOS_API bool Chaos::bUseParticleResimAsFollowerDuringTargetValidation = false
 
FAutoConsoleVariableRef Chaos::CVarUseParticleResimAsFollowerDuringTargetValidation (TEXT("p.Resim.UseParticleResimAsFollowerDuringTargetValidation"), bUseParticleResimAsFollowerDuringTargetValidation, TEXT("If disabled, do not use the particle's ResimAsFollower flag when trying to find a valid resim frame."))
 
CHAOS_API int32 Chaos::InterpolateTargetGaps = 5
 
FAutoConsoleVariableRef Chaos::CVarResimInterpolateTargetGaps (TEXT("p.Resim.InterpolateTargetGaps"), InterpolateTargetGaps, TEXT("How many frame gaps in replicated targets we should fill by interpolating between the previous and the new target received. Value in max number of frames to interpolate, deactivate by setting to 0."))
 

Macro Definition Documentation

◆ REWIND_DESYNC

#define REWIND_DESYNC   0