Skip to main content

XFSDK Light

XFSDK Light is a rendering plugin for Unreal Engine 5.8. It gives you anti-aliasing, contact shadows and dynamic global illumination that look good without TAA or TSR, plus the startup tooling a shipped game needs: first-start shader precompilation, loading screens and an in-game developer menu.

Renamed in 3.0

X Framework Light (UEF / uEx) is now XFSDK Light. Console variables use the xl_ prefix instead of rEx.. See What changed in 3.0 before upgrading a 2.x project.

Why this plugin​

Unreal's modern pipeline assumes a temporal upscaler. With TAA/TSR off you lose anti-aliasing, and many effects that rely on temporal accumulation turn noisy. XFSDK Light is built for projects that want a sharp, stable image at native resolution:

  • SMAA and SMAA TX2 for anti-aliasing with no temporal smear, or only a light two-frame blend.
  • Screen space shadows based on Bend Studio's technique, for contact and micro shadows that shadow maps miss.
  • Hybrid SDF GI, a software global illumination that runs on the global distance field and does not need hardware ray tracing.

GI, loading screens, and PSO prewarming share their underlying implementations with XFSDK Core. The SMAA and Bend-style screen-space shadow implementations in Light are separate from those in Core. Light remains available for supported stock Unreal Engine projects; Core requires Unreal Engine X.

Every rendering feature is compute based, works with the deferred renderer and is switched on with a console variable, so you can enable only what you need.

Features​

FeatureWhat it doesPage
SMAA 1xSpatial morphological anti-aliasing, compute shaderAnti-Aliasing
SMAA TX2SMAA plus a two-frame temporal blend, inspired by CryEngine 3's SMAA TX2Anti-Aliasing
RCASOptional AMD FidelityFX sharpening after SMAA TX2Anti-Aliasing
Screen Space ShadowsBend Studio style contact shadows, per-material thickness and depth biasScreen Space Shadows
Hybrid SDF GIDistance-field GI with placed probe volumes, surfel cache, optional final gatherGlobal Illumination
Shader PrecompilationCompiles pipeline states (PSOs) on first start, with a progress screenSystem
Loading ScreensStartup black screen and a loading screen that shows what it is waiting forSystem
Developer MenuIn-game ImGui menu for every setting (Development builds)System

Requirements​

  • Unreal Engine 5.8, Windows, DirectX 12 (SM6) or DirectX 11 (SM5).
  • Deferred shading. Substrate off for the per-material shadow data.
  • For Hybrid SDF GI: Generate Mesh Distance Fields on, and r.DynamicGlobalIlluminationMethod=3 (Plugin).
  • Optional: the TBImGui plugin for the developer menu.

Installation​

  1. Copy the XFSDK_Light folder into your project's Plugins folder (or install it from Fab).
  2. Enable XFSDK Light in Edit › Plugins and restart the editor.
  3. Pick the features you want below. Nothing renders differently until you turn a feature on.

Quick start​

Add the lines you need to Config/DefaultEngine.ini:

[/Script/Engine.RendererSettings]
; Required by XFSDK anti-aliasing: the engine's own AA stays off
r.AntiAliasingMethod=0
; Required by Hybrid SDF GI
r.DynamicGlobalIlluminationMethod=3
r.GenerateMeshDistanceFields=True

[SystemSettings]
; Render at native resolution (see the note below)
r.ScreenPercentage.Default.Desktop.Mode=0
r.ScreenPercentage.Default=100
; SMAA 2TX
xl_smaa_mode=2
; Screen space shadows
xl_sss_enable=1
; Hybrid SDF GI
xl_gi_method=2

Then:

  • For GI, place one or more XFSDK GI Volume actors around your playable area. See Global Illumination.
  • For shader precompilation and loading screens, set the maps and widgets in Project Settings. See System.
Screen percentage

Unreal's default desktop setting lowers the render resolution with the display resolution (about 73% at 1080p and 60% at 1440p) and expects TSR to rebuild the detail. Without TSR the image looks pixelated. SMAA TX2 forces 100% on its own; for SMAA 1x or no AA, add the two r.ScreenPercentage.Default lines above.

Plugin modules​

ModuleTypePurpose
XFSDK_RenderRuntimeSMAA, SMAA TX2, RCAS, screen space shadows, Hybrid SDF GI, GI volumes
XFSDK_SystemRuntimeStartup flow and the developer menu
XFSDK_Shader_PrecompilationRuntimeFirst-start PSO precompilation
XFSDK_Loading_ScreenRuntimeLoading screen manager
XFSDK_Startup_Loading_ScreenClientBlack screen while the engine starts
XFSDK_Light_RuntimeRuntimeBlueprint helpers for console variables
XFSDK_Light_EditorEditorToolbar menu and the engine shader patch
XFSDK_CoreRuntimeShared utilities

Blueprint helpers​

XFSDK Light Blueprint library (any Blueprint):

NodeDescription
Set XFSDK Bool / Float / IntSets a console variable by name, e.g. xl_sss_enable. Use it from settings menus.
Get XFSDK Bool / Float / IntReads a console variable by name.
Reset XFSDK CVarsResets every console variable whose name starts with the given prefix, e.g. xl_sss_.
Open Project Settings WindowEditor utility: opens a Project Settings section.

What changed in 3.0​

Renamed

  • X Framework Light / UEF / uEx → XFSDK Light. Console variables rEx.* → xl_*.
  • Loading screen console variables CommonLoadingScreen.* → xl_common_loading_screen_*.

New

  • Hybrid SDF GI (xl_gi_method 2): distance-field GI with placed, bakeable probe volumes and an optional final gather based on DOOM: The Dark Ages (SIGGRAPH 2025).
  • SMAA TX2 with optional RCAS sharpening.
  • Screen space shadows: per-material thickness, depth bias for flat materials, multi-light, and a "remove direct light" composite mode.
  • Shader precompilation now compiles pipeline states for meshes and Niagara systems, and reruns after a GPU or driver change.
  • Loading screen status text ("Loading Showcase", "Compiling shaders (12 remaining)").

Removed

  • Light Propagation Volume (LPV): replaced by Hybrid SDF GI.
  • SSIL: Hybrid SDF GI covers indirect light.
  • ShaderWorks (Scene.AllLightParams).
  • Filmic Temporal Filter: replaced by SMAA 2TX.
  • NIS sharpen / NIS scaler: use RCAS.
  • SMAA S2x (forward MSAA 2x).

Planned​

  • Hardware ray-traced GI. xl_gi_method 1 (Hybrid RT GI) is reserved for a hardware ray tracing version of the GI, using the same GI volumes and final gather with ray-traced instead of distance-field rays.
  • Loading screen restructure. The loading screen module will be reorganized. Settings and Blueprint names on the System page may change.

Support​