Experimenting with Lighting in Unreal Engine 4

Eugenia Lysa shared an extensive breakdown of the latest lighting study and showed us how to set up various lighting scenarios.

Introduction

Hi everyone! My name is Eugenia Lysa and I am an Environment Artist. I’ve previously worked for Cold Symmetry Studio on their Mortal Shell game and currently work as an Environment Artist for Wargaming.

I got into environment art not that long ago after participating in one of the art contests. At that time I had already been working as a Concept Artist for environments and once decided to enter the competition (Vaati Vidya’s ‘Imagining Unseen Lands of Dark Souls’) where we had to create the environment for the famous “Dark Souls” franchise. As I got to designing the environment, I understood that it would be so much more interesting to present my work through the actual game space than concept art and still shots. This led me to learn Unreal Engine and as soon as I opened and moved around a couple of assets on the level I understood that this is what I like and what I want to study further on.

Doing environments requires lots of cross-discipline knowledge from both artistic and technical sides. So far I’ve been focusing on storytelling, 3D, level art, and technical specs to know how to operate with shaders and recently started learning lighting – and, oh boy, it is a whole new exciting universe with lots of challenges.

After almost half a year of lighting self-training in my personal projects, I decided to enter the Lighting in Unreal Engine course by Smirnov School to get some mentorship from Vyacheslav Bushuev as his environment lighting is really good and on-point.

So here is a small breakdown of my recent work The Village.

Setting Up the Project

The assignment was to light one of our personal UE4 outdoor scenes: find the lighting references and practice day, dusk, night, and foggy lighting scenarios based on these references with the help of dynamic lighting.

We didn’t have that much time for the task, so I decided to create a small scene with a village and use free Quixel assets to save some time. The small village was a good compromise between something not too intricate or too long to build but useful for lighting study at the same time. Dwelling on the classical "Village" attributes was quite fun! I decided that I would use the houses, fences, forest, and the mountains as the key elements that would form the composition and then add other entities to enhance the mood of the lighting: the church, the scarecrow, wheat fields, piles of logs, crows, etc.

First I made a simple greybox environment to run around and see if that layout works for the third-person game and to try out the best camera position for still shots. 

Already at this stage, I set up the first entities for lighting. First I added Directional Light, turned down the intensity value, and turned on the Atmosphere Sun Light option so that the sun would interact with the atmosphere and generate a disc on the sky. Then I added the Sky Light, Exponential Height Fog, and Atmospheric Fog. I didn’t change anything in their values since I wanted kind of a clear canvas to create my lighting from.

Last for this stage was adding the Post Process Volume – checked the Infinite Extent checkbox and immediately tacked the exposure values – locked the Min and Max Brightness. I didn’t add any skybox at this stage, since that is pretty unnecessary at this point. At this point, I also turned on Mesh Distance Field Generation in the Project Settings and added the Sphere reflection capture for the future.

Even though the blockout at this stage was pretty rough, I was satisfied with the general composition since I knew where my focal point for my still shot would be, the scale was satisfactory and the space for running around was OK as well.

After that, I created the landscape, sculpted it, and added foliage. The landscape material that I used here is a Frankenstein with a long history. I combined it out of different nodes and material functions from YouTube tutorials, Reddit threads, and also textures and static meshes (for landscape grass types) that I got from Brushify - Unreal Engine Level Design and Environment toolkit. I also used distance meshes from the same very kit and placed them on top of the landscape to get that mountainous vibe. 

Then I made a quick set dressing pass by combining together different assets from the Quixel Medieval kit and the other Megascans meshes. I also added the Cine Camera Actor and defined the camera position that I’d use for capturing the still shots.

In the end, I got this generic village result that I used as the main core for the project that I will light and dress further on.

The first step to lighting creation was to find references. I didn’t even expect that to be such a challenge (especially for sunset) – most of the photos on Google are so heavily edited that you get an extremely unrealistic version of sunset and daylight.

This is what you get when you type "sunset" in Google – everything is oversaturated and has too much of contrast to it:

Day Scenarios

The first day scenario was a nice and calm day in a good village. This scenario actually required these sorts of ‘oversaturated’ references. Together with them I actually added a brief list of stuff I needed to add to enhance the feeling:

This was a really interesting challenge for me since most of the environments I do are gloomy and really dark. And this was the reason why I chose that as one of the lighting scenarios.

Another day scenario that was interesting to recreate was mode dark and very foggy:

And the last scenario – stormy skies before the rain – this one was all about dramatism and that heavy contrast of bright landscape and dark skies:

First things first – set dressing and evening out the base color values. I added some flowers and more saturated grass material, stones, bricks of the ground, and some other assets to the bright day version and more dry grass and ‘worn-out’ assets to the other two versions and made sure that each scene has something that adds to its atmosphere:

As you can see the Albedo values are all over the place and we need to fix this. In the Unlit View mode I evened out all of the textures that were too bright or had too much contrast to them:

I started with the abovementioned base level with generic lighting. The first thing I added was the skybox with HDRI _ a simple BP_Sky_Simple. I used the same HDRI with softer clouds for the first two scenarios and the one with more vivid cumulonimbus clouds – for the one before the storm.

I tried to find HDRIs that would already be dark or bright enough. Of course, we could tweak a bit of Brightness and Contrast here and there by tweaking blueprint values but the result would be a bit less satisfactory than if we tweaked the texture itself.

These are the settings I used for the Bright Day sky sphere. As you see – just tweaked the contrast a bit and rotated the sphere so that the sun on the HDRI matched the sun:

Then I did a couple of things to Directional Light – set the sun intensity to 2 lux and the temperature to ~5100 Kelvin. I prefer not to tweak the light color unless it is really necessary and like to use the temperature system more, since it is very accurate:

After that, I set the correct value for DistanceField Shadow Distance and turned up the Contact Shadow Length parameter – in my case, it makes a huge difference to the picture.

I continued working on the render – Exponential Height Fog in particular. For the bright day scenario I just slightly tweaked some of the values to make the whole picture match with the sky.

For the foggy day, I scaled the Fog Density parameter and left Fog Inscattering Color in the light spectrum while for the stormy lighting I made the Fog Inscattering Color darker. Just look at how much difference one this parameter can make:

After setting up the values I was happy with, rebuilding reflection captures, and scene recapturing (in the skylight panel) I proceeded to post-process volume tweaks. The main goal was to try to build lighting with as few Post Process Volume tweaks as I could so that the amount of changes here is really tiny.

All of the values that have been changed within the Post Process Volume are the following ones:

Dusk Scenario

For the Dusk scenario, I used the same pipeline. First – references search. I took a couple of references from the Last of Us and Resident Evil VIII and some of them from Photobash, they really have a great selection of photos not only for matte painting but for lighting as well. 

Then – checking the base color values so that they are not too bright or have too much contrast to them.

The main thing that differed from the Daylight study was more meticulous work with Directional Light itself – finding the ‘right sunset colour’ was challenging and took some time but eventually turned out quite well. Here are the Directional Light settings that I used:

Next – additional set dressing! I had a lot of fun with this one – assembling an old church from wooden planks and placing a wheat field and the scarecrow added to the atmosphere and was so much fun to play with:

At this stage I also added a couple of simple fog cards behind the house to make it stick out a bit more:

With Dusk lighting I also tweaked Light Shaft Bloom and a bit of the Light Shaft Occlusion since this type of lighting is dramatic and I wanted the light beams to be more visible:

Last but not least – a couple of Post Process Volume tweaks. As I said, in this study, my goal was to use as few Post Process Volume changes as possible, so the only things that were changed there were vignettes, bloom parameters, and some minor color grading changes.

Foggy Scenario

First things first – reference search and finding out what else can be made to enhance this gloomy mood.

In the beginning, I started painting the landscape with mud and foliage – replacing generic trees with dry ones and adding more types of dry vegetation all over the scene to make sure the place looks a bit more gloomy and less neat in a way.

And crows – quite an important attribute of a gloomy place. I placed quite a lot of them on the fences and the dry trees not only for the silhouette’s sake but also to leave the player with a feeling that they all are watching you as you roam through this gloomy place. 

After I became satisfied with the flora and fauna, I continued with the lighting.

As usual – first I double-checked if my base color values were not too bright. Then I dealt with Directional Light and Sky Light – set the value of 0.5 lux to the ‘Sun’ and increased a tiny bit the intensity scale value for Sky Light:

For the SkyBox I used the HDRI with high-contrast clouds so that we could be the bits of them through fog here and there.

Then I made the pass of Exponential Height Fog edits – increased the fog density, made Fog Inscattering Color darker and tinted with a bit of green and the alpha value being low: 

Then I changed the Directional Inscattering values to make sure that even with fog being quite dense, we can still see the Directional Inscattering cone. I also tried to play with Volumetric Fog by turning it on and off and experimenting with values but in the end, decided to try to achieve the needed result without it.

Last but not least – fog cards! I added some simple fog cards with material that had some slight Camera Depth Fade to it so that some of the fog would disappear as we approach it. One should use fog cards wisely since transparency of this kind can cause some performance issues but for this project I allowed myself to place a couple here and there. Look how much difference this trick makes to the scene:

Next, I made a couple of tweaks to the sky sphere by using the better fitting texture and then proceeded to Post Process Volume changing – as always nothing too drastic – returning the bloom and vignette settings to their default values and a couple of tweaks to desaturate the picture a bit more:

Night Scenario

As always – reference first. This time I focused not only on the real-world photos but more on the night lighting in games like Last of Us, Uncharted, etc since I wanted to learn how to make the night recognizable but still playable. 

And in the previous cases, I used Quixel assets to dress the night scene, based on my ‘additional enhancement’ list. First I wanted to add some generic lamps that would be used as the main light accent, but then I thought that a huge fire in the center of the village and a couple of torches on the periphery would be a more fun solution. I used fire particle systems from Quixel, adjusted them a bit in the editor, adjusted sparks and emitters to match the fire type, placed them around the scene, and added some spotlights to light the ground. I try to turn off the ‘Cast Shadows’ tick in most cases, but for one spotlight around the large fire I turned it on to get these cool cast shadows from the burning scarecrow: 

In this scenario, we have plenty of light sources and since I wanted the light from them to softly scatter around the source I turned on the Volumetric Fog and tweaked the Volumetric Scattering intensity for some of the lights.

After that, I changed Volumetric Scattering intensity for Directional Light to 0.25 to reduce the bleached effect that I got after turning on Volumetric Fog. Here is how my Settings for directional Light ended up looking:

After that I did some changes to the SkyLight as well:

I left the Fog Density value untouched and instead played with Fog Height Falloff, Fog Inscattering Color, and Directional Inscattering parameters:

And final touches – Adding a bit of Bloom, Vignetting and Color Grading to the scene:

Challenges

One of the first challenges was to find a suitable reference with realistic yet cool-looking lighting. What helped me apart from digging through tons of photos was discerning a couple of sites that I trust. The first place I go to is Photobash. Even though it is a well-known place for photo bash material, I find the lighting on their photos really great. What works as well is looking up the movies and illustrated books of photography masters.

Another challenge was getting the balance between getting the playable lighting and the one that would look nice on the still shots. There is this temptation to make everything a bit more enhanced for the still shots, but when you hit the Play button you understand that there is this thin line where you need to stop or you’ll get one of those oversaturated irritating pictures.

I also dug through many YouTube channels to learn some tips and tricks from other artists. In addition to the official Unreal Engine channel, the ones that helped me a lot are Polygon Academy, William Faucher, Ryan Manning, and Quixel channels.

Getting feedback also helped a lot – it is always great to hear the opinion of fellow artists and colleagues – they may notice some things that you didn’t even pay attention to and this makes your learning process even more productive. Special thanks to Vyacheslav Bushuev and the fellow artist Denys Nedosvintyi for their feedback!

Conclusion

I am still on my learning curve with Unreal Engine and dynamic lighting in particular and really am excited to try some new lighting featured in UE5 as well as experiment with baked lighting as well. 

These days it gets easier and easier to learn basically any skill needed for the CG industry – all you need to have is the readiness to work hard and access to the Internet.

Some of the best software (like Blender or Unreal Engine) is free and is widely used in the industry; YouTube lessons are free, Reddit advice and access to various Discord channels are also free. Even some of the best-looking assets are free (the Quixel ones, for instance, are free when used for UE).

So if you have any doubts about whether to give yourself a try in Unreal Engine or not – do it! The work is hard and the road is rocky, but the satisfaction you get from the fact that you can actually build the world you imagined is tremendous.

Eugenia Lysa, 3D Environment Artist

Interview conducted by Arti Sergeev

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more