I’ve created a billboard material that reacts to light, all you have to do is pass the light vector as a parameter to the material, in my material it is the node called “DirectionalLightVector”, i’ve passed just the directional light, but the parameter could be updated in real time to the nearest light as the object moves around, and it could even have multiple light support.
Here’s a video showcasing the result:
And i’ve pasted it in BlueprintUE.com so you guys can check the node schematic and even paste it into your own materials:
Shaded Sprite or Billboard > BlueprintUE.com | PasteBin For Unreal Engine 4
Right now it only has this sphere shape, but i’m working on a way to use any normal map as a shape input, so all you’d have to do to render a 2D character like this is bake a normal map on object space from a 3D model of it, and if the character has multiple angles like in doom, you’d have to bake a normal map for each angle, and also for each frame, but i guess that’s a reasonable compromise.
As it is, it works great for celestial orbs, the moon will have dynamic lighting now! Smoke, splats, rain, projectiles, whatever has a relatively spherical shape.
I’m also working on the Specularity and Metalness parts of the shading. This will make 2D games look really awesome.
EDIT: PART 2 - testing the idea with a tree billboard: