Adam Nield did a detailed breakdown of the lighting in his newest Unreal Engine 4 scene.
Adam Nield did a detailed breakdown of the lighting in his newest Unreal Engine 4 scene.
My name is Adam Nield, I’m a freelance environment and prop artist from Manchester who just finished a year working in a virtual reality production company near London. I was responsible for asset management and performed as a lead environment artist on certain projects. Prior to that I was a games art graduate from the University of Hertfordshire. My future goal is to direct cinematic games and craft stories that push the games medium further.
For the time being, while I’m developing my skills and enjoying my personal life, I like to take ideas and environments which appeal to me and try and make them my own. I have an interest in relatively simple real-world items which are usually overlooked – taking them and giving them a personality and emotion is something that appeals to me. This gas station being one of them. I didn’t want to go down the cliché route of putting it the usual post-apocalyptic setting because I think there’s a beauty in something that’s used and occupied – it allows you to play with the reality of the scene a and raise questions in the viewer’s head that allows their imagination to run wild.
The Electric Nightcrawler
I began planning this scene quite a while ago. The initial idea formed as a VR games pitch late last year. I set out by creating a moodboard of the general feel for the project using Pinterest, which is where most my projects start out.
Developing the Mood & Atmosphere
When I start to produce my projects, be it a single asset or an entire scene it’s essential to not get bogged down in the small details. The term “Iterate fast and release often” is thrown around in programming, and the same applies to artwork.
Even from the absolute beginning of the project the layout, tone & mood for the scene were put in place as quickly as possible. In the image below you can see all the elements present in the final output already apparent. Overall it’s messy, rough around the edges, and most importantly – completely open to change, every single asset in the image was later replaced down the line as the scene progressed.
But before I go any further – it’s worth asking why I’m making the choices I make – I’m not going in blind when I produce something – so what influences the mood of the scene?
As previously mentioned, the pinterest board I created was one of the places I frequently visited to get reference from. The images served as a moodboard for the creation process. I would choose a piece I liked from each of them, and slowly start piecing together a scene, if it didn’t work – I’d cut it.
In the above image for example, the gas pumps are completely different to the final result, this is because over the course of creating the station, concepts and ideas quickly began to develop that suited the scene better. Always be open to changing something if you can, even if that means completely ripping out certain finished elements – they can always be used another time.
The chosen architecture wasn’t working with the chosen atmosphere, something had to change.
Changes like this can be costly in terms of time, so if something isn’t working, but you have another idea that might take up a large portion of your time, how can you test it will work?
The answer is to block it in. Grab Unreal 4’s standard cube, cylinder or sphere and place it within the scene, you’ll quickly see if the idea works or not.
The same applies both to assets and to lighting, after adjusting the architecture and adding lights, things needed balancing.
It’s around the time I have all the potential light sources in place that I start working more in depth with the lighting setup as this allows me to develop the lighting in conjunction with the props.
Once everything is in place, it’s really a case of constant iteration and improvement. I find it really helpful to render out images from Unreal and continuously compare their progress. One thing that’s essential is to always keep looking at your references and adjusting your piece based off what you see.
Constant iteration and adjustments to my lights lead me to this point, I was happy – but there was still a lot not working.
Certain elements in my scene were washing it out and creating an image with a lack of contrast. Constant returns to my reference showed that the fog isn’t nearly as strong, the lights were a more prominent feature and that everything around the station quickly falls away into darkness.
It’s after making these observations that I applied it to the scene, I’ll go into more detail about balancing lights and contrast in a moment.
After this point the adjustments to the lighting became more subtle.
Balancing Contrast & Light
Now the scene is heading in the right direction, there a few things I use to constantly refine in order to push values further. One incredibly useful piece I picked up along the way was a tutorial about tonemapping on Polycount by Alireza which goes in depth about balancing materials, surface detail and adjusting your white balance so the values aren’t as washed out.
In UE4 if you colour pick your white values in a completely blank scene, they’ll come in at 209,209,209. This clamp on your white levels doesn’t give you enough tonal range to really play with the white values in your scene. Alireza provides a lookup table which gives your tonal range more flexibility. More details and an in-depth tutorial going through the process can be found on this thread.
The whites on the left image are more interesting due to the greater range provided by the LUT.
There are a lot of ways you increase contrast throughout your scene. The obvious way is purely through your usage of light. People are naturally drawn towards elements of the scene with contrast in them. It’s apparent for literally everything in the world, the bright yellow colour of a McDonalds sign directly contrasts with the environment around it, you might be thinking it’s because of its colour, while partially correct (and colour does play a role in composition) contrast always comes first.
In fact, there’s a direct hierarchy of what influences a user’s eyes in films & games. This was presented in a class years ago by Martin Bowman, a lecturer at the University of Hertfordshire.
Martin Bowman © 2010 email@example.com University of Hertfordshire
Which element(s) of this picture draw your eye first?
There are a few exceptions to the hierarchy however, everything is overridden in the presence of nudity and text in your native language.
Testing your scene
Something I practice when I’m struggling lighting a scene is to bring it into photoshop and use the curves tool to play with the scene’s contrast. Usually I stick to the presets provided in photoshop, as they do a pretty good job of adjusting it quickly.
While the adjustments are subtle, they have a huge impact on the values in the scene.
You might question why I do changes like this in Photoshop instead of directly on the post process volume inside unreal – the simple answer is if you turn off layer visibility of the adjustment layers you can quickly see what effect it’s had on your scene, much faster than in Unreal. The changes are relatively easy to translate across to Unreal if you just retrace your steps inside the post processing volume.
Lighting the Scene
When I’m creating a scene, usually from the outset I’ll know which elements of the scene are going to produce the main lights; this is a great base to work from.
One rule of thumb I generally follow when I’m lighting scenes is to avoid un-necessary fill lights where possible and try to light the scene entirely based off objects that exist in the scene. This sounds straightforward but there’s multiple occasions I’ve seen work that’s lit with no justification as to where the light is coming from.
After every light has been set up it’s usually a case of constant iteration and adjustments until you’re happy with the results.
Volumetrics & Bloom
With the recent 4.16 update to Unreal 4, Epic added tools for volumetric lighting, this adds a huge amount of atmospheric additions to play with, whereas previously you would have to use a transparent plane to create volumetrics, it’s now entirely real-time.
By default Volumetric Fog is turned off, it can be enabled in the Exponential Height Fog under “Volumetric Fog” There are various controls within the height fog you can adjust to suit your liking.
The two elements I mostly used in this scene were Scattering Distribution & Extinction Scale.
Scattering Distribution controls how much light scatters in various directions.
Extinction Scale controls how much light particles absorb (Similar to moisture in the air)
Other parts of the tool are really up to what you want to use, you can change the view distance as well as make the fog slightly emissive. My best bit of advice would be to grab a random scene (either one you’ve made or a free content example) and just play around with the values yourself.
The current limitations of volumetric lighting is they’re limited to stationary & movable lights only. The lights which cast volumetrics in the scene are the four spotlights in the gas station and the one dynamic skylight. The size of the scene allows me that flexibility but in most circumstances this would probably be unacceptable.
One of the key elements of lighting a scene is lightmap density, in the same way you need a consistent texel density, it’s essential your assets have a consistent lightmap density too. Unreal makes this incredibly easy to balance.
Clicking this allows you to lookdev your lightmaps
The lightmap density for the gas station.
The reason we pay attention to lightmaps in a scene is the same reason we pay attention to texel density – for consistency. If your scene doesn’t balance your lightmaps well enough, it will look odd in certain places. Less important areas, areas which don’t have large value changes, or are far away from the camera can have a lower resolution. Everything else needs to be pretty consistent.
The lightmap resolution for an object can be adjusted underneath the “static mesh settings” in the object viewer, adjusting the number here will update in realtime in the viewport.
Overall it was an incredibly enjoyable project to work on, it was nice to work solidly on a project without political overhead of offices stepping in the way, as well as having complete creative control over my work. I feel like I’ve moved towards defining my personal style and developing certain skills further. Hopefully next time I can further flesh out this world and slowly start to build a greater environment for people to enjoy.
For more of my work, you can check out my portfolio. The project can be found on Arstation as well. I’m currently gearing up to move to Montreal in Autumn, as well as starting up a small freelancing gig between that.
The scene should be available on the Unreal Marketplace & my CGTrader account in the next couple of weeks.
Thanks for reading!