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.
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
| Feature | What it does | Page |
|---|---|---|
| SMAA 1x | Spatial morphological anti-aliasing, compute shader | Anti-Aliasing |
| SMAA TX2 | SMAA plus a two-frame temporal blend, inspired by CryEngine 3's SMAA TX2 | Anti-Aliasing |
| RCAS | Optional AMD FidelityFX sharpening after SMAA TX2 | Anti-Aliasing |
| Screen Space Shadows | Bend Studio style contact shadows, per-material thickness and depth bias | Screen Space Shadows |
| Hybrid SDF GI | Distance-field GI with placed probe volumes, surfel cache, optional final gather | Global Illumination |
| Shader Precompilation | Compiles pipeline states (PSOs) on first start, with a progress screen | System |
| Loading Screens | Startup black screen and a loading screen that shows what it is waiting for | System |
| Developer Menu | In-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
- Copy the
XFSDK_Lightfolder into your project'sPluginsfolder (or install it from Fab). - Enable XFSDK Light in Edit › Plugins and restart the editor.
- 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.
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
| Module | Type | Purpose |
|---|---|---|
XFSDK_Render | Runtime | SMAA, SMAA TX2, RCAS, screen space shadows, Hybrid SDF GI, GI volumes |
XFSDK_System | Runtime | Startup flow and the developer menu |
XFSDK_Shader_Precompilation | Runtime | First-start PSO precompilation |
XFSDK_Loading_Screen | Runtime | Loading screen manager |
XFSDK_Startup_Loading_Screen | Client | Black screen while the engine starts |
XFSDK_Light_Runtime | Runtime | Blueprint helpers for console variables |
XFSDK_Light_Editor | Editor | Toolbar menu and the engine shader patch |
XFSDK_Core | Runtime | Shared utilities |
Blueprint helpers
XFSDK Light Blueprint library (any Blueprint):
| Node | Description |
|---|---|
| Set XFSDK Bool / Float / Int | Sets a console variable by name, e.g. xl_sss_enable. Use it from settings menus. |
| Get XFSDK Bool / Float / Int | Reads a console variable by name. |
| Reset XFSDK CVars | Resets every console variable whose name starts with the given prefix, e.g. xl_sss_. |
| Open Project Settings Window | Editor 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.