Lighting a 3D scene is an indirect craft. You want a particular shadow across a particular wall, and what you actually do is place a light object, adjust its cone angle, move it, change its falloff, add a second light to fill, add a blocker to shape the first one, and iterate until the image approximates what you had in mind.
Painters do not work that way. They put the dark where they want the dark.
Karim Yasser, a Senior Lighting Artist at MBC Game Studio, is building a UE5 plug-in that lets you do that in-engine.
What it does
It enables artists to “paint light and shadow inside the engine, similar to 2D drawing” — in real time and non-destructively.
The toolset is explicitly borrowed from image editing:
- Paint
- Smudge
- Flatten
- Smooth
- Noise
- Gradient
- Lasso
Plus Gobo presets and Spot Light support, for both global and local lighting setups.
Currently in development, with an early access version planned for release soon and no date given.
Why the tool list is the interesting part
Look at what is in there. Smudge, Flatten and Smooth are not lighting controls; they are retouching controls. They are what you use on a raster image when the thing you have is nearly right and needs pushing.
That tells you what this is actually for: the last ten percent. The broad lighting is still done with lights. The plug-in is for the stage where a lighting artist can see exactly what is wrong — that falloff is too hard, this corner is too hot, the gradient on that wall reads wrong — and currently has to go back and negotiate with the light objects to fix it.
Gradient and Lasso are the compositional pair: define a region, ramp a value across it. That is how a matte painter or a colourist works, and it has never been available as a primitive in a real-time lighting workflow.
And Noise is the one that signals the author knows the job. Perfectly smooth lighting gradients look computer-generated. Real light through real air has structure — dust, unevenness, bounce from surfaces you did not model. A noise brush on a light contribution is exactly the thing a lighting artist reaches for in a composite and cannot do in-engine.
Non-destructive is the load-bearing word
“Non-destructively” is what separates this from baking.
You could already achieve painted lighting in Unreal by baking lightmaps, exporting them, painting on them in Photoshop, and re-importing. People do this. The problem is that the result is frozen — move anything in the scene, change the time of day, or alter a material, and your painted lighting is wrong and has to be redone from scratch.
A non-destructive layer means the paint is stored as an operation on top of the lighting, not as a replacement for it. Which in principle means it survives scene changes, can be toggled, and can be adjusted after the fact — the same relationship an adjustment layer has to a photograph.
Whether that holds up when geometry moves substantially is the question an early access build will answer, and it is the hard part.
Why a lighting artist built it
This is the part worth drawing out, because it is a pattern.
The best tools in this field are overwhelmingly built by people doing the work. Not by tools teams responding to feature requests, but by practitioners who hit the same wall often enough to go around it. We wrote this week about a VFX artist building a bubble solver from Wētā’s research, another artist feeding a space-colonization network into Pyro, and one person shipping free Web MIDI editors for four vintage synths.
The common property is that the author is the first user, and the tool is shaped by a specific frustration rather than by a product roadmap. It also means these tools tend to be opinionated, narrow, excellent at one thing, and occasionally abandoned — which is a trade worth knowing about before you build a pipeline on one.
What to watch for in early access
Does it work in a team? A painted lighting layer is a binary blob of artist intent. How it merges, how it versions, and whether two people can work on the same scene are the questions that decide whether it reaches production or stays a personal tool.
What is the runtime cost? A non-destructive paint layer has to be evaluated somewhere. If it compiles down to a texture, it is nearly free; if it is a live modifier on light contribution, it is not.
And does it survive a lighting change? The scenario that matters: art direction changes the key light’s colour and intensity after you have painted. Does the paint adapt, or does it fight?