Unreal Engine 5 launched with two features that Epic described as game-changing: Lumen and Nanite. Both terms appear constantly in tutorials, game announcements, and YouTube thumbnails. Both are genuinely impressive technologies. Both are also frequently misunderstood, and both have real costs that are worth understanding before you build a project around them.
This post explains what Lumen and Nanite actually do under the hood, when they make your project better, and when turning them off is the right call.
What Nanite Does
Nanite is a virtualized geometry system. The traditional problem in real-time 3D is that high-polygon geometry is expensive to render. Game artists have spent decades building level of detail systems — LODs — that swap out high-poly models for simpler versions as the camera moves away. This works but requires a lot of manual work and produces visual artifacts when models pop between LOD levels.
Nanite solves this differently. Instead of pre-baking LODs, Nanite streams and renders only the triangles that are actually visible at the current camera distance. A statue with ten million polygons does not cost ten million triangles to render. It costs as many triangles as are visible on screen at the current resolution. If the statue is small in frame, Nanite renders a few thousand triangles. If you are right next to it, Nanite renders the full detail. This happens automatically without any LOD setup.
The practical result is that you can import film-quality assets — photogrammetry scans, ZBrush sculpts, CAD data — directly into your Unreal project without retopologizing or building LODs. This is a significant time saving for environment work.
What Nanite Does Not Support
Nanite works with static opaque geometry. It does not support:
- Translucent or masked materials (foliage, glass, hair)
- Skinned meshes (character rigs, cloth simulation)
- World Position Offset in materials
- Deformable geometry
This means your characters, vegetation, and any geometry that moves or deforms is not using Nanite. It also means that material complexity still matters — Nanite is a geometry system, not a material system.
What Lumen Does
Lumen is a dynamic global illumination and reflections system. Global illumination — GI — is the way light bounces off surfaces and illuminates other surfaces indirectly. It is what makes the underside of a white table look brighter when it is on a white floor, or what makes a room lit by a single window feel full of light rather than pitch black in the corners.
Traditional real-time GI approaches involve baking lightmaps offline, which takes hours and cannot respond to dynamic lighting changes. Moving a light means rebaking. Lumen calculates GI in real time using a combination of ray tracing techniques and a representation of the scene called the Lumen Scene.
The result is that you can have fully dynamic lighting that responds correctly to environment changes. Open a door and light spills through it. Move a lamp and the room re-illuminates. Change the time of day and the light quality shifts across the whole environment. All of this without baking.
Software Lumen vs Hardware Ray Tracing
Lumen runs in two modes. Software Lumen uses a signed distance field representation of the scene and runs on any modern GPU without requiring ray tracing hardware. Hardware Ray Tracing Lumen uses the RT cores on Nvidia RTX and AMD RDNA 2 and newer GPUs and produces higher quality results, particularly for reflections and fine detail.
Software Lumen is what most projects ship with because it runs on a broader range of hardware. Hardware Lumen is available as a quality upgrade for players with capable GPUs.
The Cost of Both Systems
Lumen and Nanite are not free. They have real GPU costs that you need to account for in your project budget.
Nanite has overhead in the geometry processing pipeline. For a scene with a reasonable amount of geometry, this overhead is usually worthwhile because you eliminate the LOD transition cost and can use higher quality assets. But Nanite is not zero cost, and on lower-end hardware — or for mobile targets — it can be a problem.
Lumen is more expensive than baked lighting in terms of frame time. A scene with fully baked GI will run faster than the same scene with Lumen active. For architectural visualization and film work where you are rendering offline frames, this does not matter. For a game targeting 60 frames per second on a console, Lumen’s frame budget has to be managed carefully.
When to Turn Them Off
Turn Off Nanite When
Your project targets mobile or web. Nanite is not supported on mobile platforms. If you are building for iOS, Android, or WebGL, Nanite is not an option and you need traditional LODs.
Your scene is primarily composed of dynamic or transparent geometry. If most of your scene is vegetation, characters, or glass, Nanite provides limited benefit since none of that geometry qualifies.
You are building a fast-paced game where geometry draw call count is not your bottleneck. Nanite addresses a specific problem. If that is not your bottleneck, it is overhead without benefit.
Turn Off Lumen When
Your lighting is static and baking it is acceptable. If your environment does not change at runtime — interior architectural visualization with fixed furniture and lights — baked GI is faster to render and can look better because the bake has more time to calculate accurate light bounces.
You are targeting low-end hardware. Lumen’s performance floor is higher than baked lighting. On integrated graphics or older discrete GPUs, you will get better frame rates with baked lighting.
Your project is a fast top-down or 2D game. Lumen’s benefit is most visible in first and third person environments where the player sees complex indirect lighting interactions. In top-down or 2D contexts, the cost often exceeds the visual benefit.
VFX and Virtual Production Use Cases
For film and virtual production, both systems are compelling. Nanite lets you bring photogrammetry and film-quality assets directly into Unreal without the retopology pipeline. Lumen gives you lighting that responds to changes in real time, which is critical for in-camera VFX work where the lighting needs to match what the camera actually sees on the LED volume.
At Sinfull Studios, this combination is what makes Unreal viable for virtual production setups. The alternative — building optimized game assets and baking lighting for every shot change — would eliminate most of the speed advantage of using a real-time engine for production work.
How to Profile Whether They Are Hurting You
In Unreal, open the stat unit command by pressing the backtick key and typing stat unit. This shows your frame time broken into CPU, draw, and GPU components. If your GPU time is the bottleneck and you are running Lumen, use the command r.Lumen.Reflections.Allow 0 or disable Lumen in your project settings to see how much frame time Lumen is consuming.
For Nanite, the Nanite Visualizer is available under View Modes in the viewport. It shows you which geometry is being rendered as Nanite and at what triangle density. If you see areas with unexpectedly high triangle counts, that is where to investigate.
The Short Version
Nanite is a geometry streaming system that lets you use high-poly assets without building LODs. It works on opaque static geometry and does not work on characters, vegetation, or translucent surfaces. Turn it off for mobile projects or projects where geometry complexity is not your bottleneck.
Lumen is a dynamic global illumination system that produces realistic bounced light in real time without baking. It costs more frame time than baked lighting and is most valuable in environments with dynamic lighting or assets that cannot be baked. Turn it off for static environments, low-end hardware targets, and projects where baking is practical.
Both are genuinely excellent technologies when used for the right problems. The mistake is enabling them by default without understanding what they cost and what they buy you.
Explore the VFX, Game Dev, and Virtual Production at Sinfull Studios for more.