Skip to main content
Rendering artifactTemporal Rendering

TSR Ghosting

Trace afterimages and trails back to TSR inputs, velocity, translucency, or history rejection.

TSRanti-aliasingmotion vectorsreprojectiontranslucency

What you're seeing

Moving objects, silhouettes, or newly revealed backgrounds retain detail from earlier frames.

Likely causes

  • Motion vectors are missing, incorrect, or do not match the visible motion.
  • A translucent object renders After Depth of Field without useful velocity data.
  • World Position Offset cannot reproduce its previous-frame position.
  • Opaque pixel animation is being stabilized as if it were unwanted flicker.

Check in this order

  1. 01Switch to another anti-aliasing method or disable anti-aliasing long enough to confirm that TSR introduces the trail.
  2. 02Open Temporal Upscaler I/O. If the trail exists in an input, find the earlier pass that introduced it.
  3. 03Inspect motion vectors and previous-frame reprojection for the affected object.
  4. 04Inspect TSR history rejection, then follow the matching WPO, translucency, or pixel-animation entry.

Views and commands

Temporal Upscaler I/O

Show VisualizeTemporalUpscaler

Shows the inputs and outputs used by the active temporal upscaler.

TSR visualization

Show VisualizeTSR

Shows TSR history rejection, disocclusion, and related diagnostic views.

Motion vectors

Show VisualizeMotionBlur

Draws velocity arrows so direction and coverage can be checked.

Previous-frame reprojection

Show VisualizeReprojection

Highlights pixels whose reprojected details do not align.

GPU dump

DumpGPU

Captures render passes when the artifact already exists in a TSR input.

Epic documentation

Related guides

Unreal Directive is free and ad-free.

If it saved you time, you can help keep it that way.

Donate