Dynamic lights on Mobile

It’s on the roadmap if you scroll way to the bottom of the “Rendering” category, but it’s still listed as “Wishlist/Backlog”. So it is on the radar, but no active development for the foreseeable future.

Setting up the vertex lights is probably your best bet for now. They are relatively cheap, but you will get interpolation artefacts if your geometry is too low poly. You will have to set the light locations as shader parameters up from Blueprints/C++, but then you can access them easily in your material. You could process all the static objects for the closest lights on level load, and set up collision volumes to activate/deactivate lights for dynamic objects (or just brute force compare all dynamics objects with lights per tick if there aren’t too many). You can use a static switch to compile multiple versions of your shader for every number of extra lights you want to support (from 0 to 4 maybe) so you don’t need to waste instructions calculating unassigned lights.

Once you have your light positions there’s also nothing stopping you from doing simple per-pixel lighting in your material with a normal map–just an extra dot product per-pixel. Of course, this is quite a bit of extra work for a mobile GPU on top of the regular UE4 shading so you’d probably have to use this selectively–maybe only on the main character or special objects.

Processing the light positions yourself and assigning them to shader parameters manually seems to be the only way to do it until they update the mobile renderer. Dynamic lighting should be entirely possible as long you keep an eye on your shader instruction count especially if you’re targeting higher end devices.