VFX Artist Dylan Browne explained how the UE4's Elemental Demo was re-lit with Unreal Engine 5, spoke about tweaking shaders for the project, and shared some info about porting older projects to UE5.
In case you missed it
You may find these articles interesting
Hi, my name is Dylan Browne, I’m a Feature Film Visual Effects/Virtual Production Generalist at Modelfarm in Adelaide, South Australia. I’m almost entirely self-taught in Film Visual Effects and Unreal Engine. I was a Lighting Artist at Mill Film Adelaide (eventually Mr.X) for two years before jumping over to Modelfarm as a Generalist, which let me also flex my Unreal Engine skills that I had been self-teaching myself since the late Unreal Engine 3 days.
I’ve had the pleasure of working on quite a few projects in the last few years, At Mill Film/Mr.X films, including Dora and The Lost City of Gold, Finch, Love and Monsters, Mortal Kombat, and of course, Cats. At Modelfarm, I’ve worked on a few feature films, a bunch of local Virtual Production shoots, architecture, and large interactive installations.
The Idea Behind The Project
Having been using Unreal Engine 4 since its release, I have dabbled in these demos quite a few times for various reasons, like testing a new feature or plugin. I always see people posting videos on some of the old demos with a title something along the lines of "ELEMENTAL DEMO RTX MAX 8K SETTINGS", but it always has the same lighting designed for the baked lighting system of UE4, so I thought it would be fun having been a lighting artist to try and rip out almost all the lighting that was there and relight the demo taking advantage of Unreal Engine 5’s feature sets, like Lumen and Nanite, along with all the features that came along in UE4’s lifespan.
Importing the Original Scene
With these earlier demos, there are usually a lot of things that break when opening up the project in UE5 (or even later releases of UE4, for that matter). The main barrier is that most of these demos were created using the old Matinee cinematic system, which was what you would use before Sequencer came along. Thankfully, there is a plug-in included in Unreal that can convert a Matinee to a Sequence. It works fairly well, but because there were so many different ways of doing things, many of the connections break, especially material parameter tracks. So a large amount of the prep work was going through and re-adding anywhere material parameters were keyed and fixing them up by copying the keyframes from the old bugged out tracks and adding new ones, these drive things like the glowing stuff on the characters and pillars.
In addition, I went and replaced all the Cameras in the scene with the newer Cine Camera Actors for more control over a cinematic look.
The Lighting Setup
The original lighting setup is a full baked lighting scene with a Skybox, Directional Light, and many fake point lights to simulate light bounce throughout the scene and to fake light casting from the lava flows, this results in a fairly flat look by today’s standards, there were also a few moveable Spot Lights set up for per-shot lighting.
The first thing I did was to remove all of the lights that weren't physically accurate, so all those static point lights, the Skybox, and such were ripped out. Next, I made sure the remaining lights were all set to moveable with Shadows and Volumetric Shadows enabled.
I added a Sky Atmosphere, Dynamic Skylight, and Exponential Height Fog with Volumetric Fog enabled to finish the initial lighting set up, then I went and enabled Lumen for GI and reflections.
Once this was working, I set about the main meat of the project, the per-shot lighting, which involved opening up Sequencer and shot-by-shot moving and keying the per-shot Spot Lights to create a nice atmosphere lighting it as if I was working on a feature, using rims, fill, and key lighting setups. While doing this, I also reframed some shots as well, adding focus pulls and aiming for a more cinematic, dark, and almost spooky look while still taking cues from some of the original lighting.
Easily the most satisfying thing in this project was seeing all the indirect lighting from the emissive lava materials light up the environment with almost no tweaks.
For shadows, I chose to use the new VSM(Virtual Shadow Map) Shadows, which give really nice soft shadows but also very high detail at the same time.
In terms of post-processing, I switched the Bloom from Standard to Convolution Bloom and disabled lens flares, vignette, and chromatic abberation. I also re-balanced the exposure settings for each shot as this demo was originally built before the filmic tonemapper came in resulting in some underexposed shots on import.
Finally, I maxed out all the Lumen settings, and also added some higher volumetric fog settings to the EngineScalability .ini file that Epic developer Daniel Wright gave to me a while back which helps with the indirect Lumen contribution to the fog, allowing for a smoother indirect illumination form the emissive lava materials to light up the fog, giving a lot more depth to some of the shots.
I did a few shader tweaks to get the look I wanted, I went through and made sure every particle material was set to render before Depth of Field and had "Output Velocity" enabled which makes the particle write to the depth buffer and be affected by Depth of Field, giving you nice bright bokeh in shots of embers flying around and such.
The other particle materials tweak I did was to change all the emissive unlit particles to be lit by the scene instead, which feels much more realistic.
I also did some lava tweaks, I noticed in the very original Elemental Demo the lava had some crazy displacement going on, now in UE5 there is no longer GPU tessellation/displacement in the same sense, so I went and SubDivided all the lava meshes by a very large amount and then hooked up the displacement part of the shader to the World Position Offset.
Lastly, I went through and made sure all the rubble simulations got affected by indirect light and cast shadows.
Having been using UE5 since the initial early access release, there are so many great additions to the toolkit here, In terms of lighting specifically, Lumen opens the door to so much easy experimentation without having to worry about light bake times or dynamic scenes, but most importantly it is simple to understand because it is very well integrated into the way Unreal renders a scene. Nanite is another example of making things much easier for artists, although I didn’t take advantage of it in this project, not having to bake high-res meshes to low-res is a massive time saver in asset creation. There are many new features in Unreal Engine 5 but for me personally and my workplace Nanite and Lumen have been a massive timesaver in every respect.
One thing I’d absolutely love to see is a complete rewrite of the lens flare system with a more modern approach, which has been essentially the same since UE4’s release, and these days they really don’t look like a real lens flare. In addition, I think it would be very cool to have some kind of implementation of OpenSubDiv in Unreal, perhaps tying into the way Nanite works.
This project was such a fun one-day exercise that I have started doing a similar thing with all the older Epic demos and I can’t wait for what’s in store in future Unreal updates.
This content is brought to you by 80 Level in collaboration with Unreal Engine. We strive to highlight the best stories in the gamedev and art industries. You can read more Unreal Engine interviews with developers here.