Studying Lighting Techniques in UE4 – Sergio Graña
Hi, my name is Sergio Graña and I am a Junior Lighting Artist from Barcelona, Spain.
I have always been interested in videogame cinematics and cinematography, so that is why I decided to become a lighting artist. In the past, I have worked as a light and compositing artist for TV animation.
I studied Animation at La Salle Universitat Ramon LLull in Barcelona, where I chose lighting as my specialization, I would like to give a big thanks to my great lighting teacher and mentor, Sancho Albano.
About the Project
I started these couple projects with one main goal in mind: to learn lighting in Unreal Engine 4 and expand my reel with real-time work so that I could apply for videogame and real-time cinematics jobs in the future.
The main objective was to focus on lighting and post-processing in order to be able to produce finished pieces quicker so I mainly used already made environments as a base for the projects.
The intention was to push my works further and produce high-quality images that could prove my lighting skills using real-time software. I want to thank the original creators of the environments, Richard Vinci and Dekogon Studios as their amazing work allowed me to produce these scenes.
As mentioned before the approach taken for these projects was to use Kit Bashing in order to create the scenes without having to build them from scratch. In the London Street project, I used extra assets from other projects from the Epic Games store.
Epic Games free example scenes contain a lot of useful assets that can be used for set dressing.
One example would be the leaf piles I used to give the floor more variety in the London Street scene or the trees used for the exterior in the Abandoned Train environment.
After completing the London Street project I wanted to make another scene where I could challenge myself by creating a more customized level design.
I wanted the level to contain vegetation so I could explore Megascans but keeping it an interior scene so it would be more self-contained and smaller in scale. In the end, I went for an abandoned environment so I could combine vegetation with a closed space that allowed me to focus on detail and composition.
The use of the live link tool in Quixel’s Bridge, allowed me to instantly bring assets into Unreal wit automatically set up shaders and LODs. With the use of Mixer I was able to create new textures for downloaded assets, allowing me to give them a more worn outlook by adding things like moss and dirt layers.
It’s intuitive and its procedural masking tools make Mixer a very versatile and easy to use software. I recommend checking Quixel YouTube’s channel as it has great tutorials on how to use it.
One of the first things I tend to do once I have the basic blocking of the scene is trying to find interesting camera angles so that I can build the final scene from there. A very useful tool for this is the bookmarks in the viewport editor. Establishing the camera angle early on allows for shot-based set dressing, which leads to better and tighter composition.
One of the most useful techniques that can be used to add variety to surfaces and break their clean polished look, is the use of decals.
I collected different decals from different projects and downloaded some extra ones from Megascans. Leak decals were especially useful to give a more organic and grungy look to the environment making it look as it was abandoned a long time ago.
There were other more general changes that had to be applied to the original assets like increasing the roughness intensity of some of the surfaces in the train like the metal poles. Vertex painting was heavily used through the scene to add visual variety and giving a look of decay.
The ground material used in the section covered by vegetation was created by combining one of the base materials that came with the scene with a soil surface from Megascans.
The first scene was a relighting project focused on trying to achieve the mood of a rainy/overcast London day. The first step before starting the project was to gather references in order to set a general goal of the direction and quality I wanted to achieve with the scene.
Once I started the actual lighting I tended not to look at the references to much, going for more of an iterative process.
The main goal was to light the scene without the use of clear directional light to better represent the overcast look but without making the lighting look flat. The key is to start with a simple setup of the lowest number of lights possible in order to define the main source of light, in this case, the sky.
Once the basic setup is established the next step is to use fill and bounce lights to give more complexity to the lighting and making it look less flat. One example where the top lights used to exaggerate the light decay from the sky or the fill spotlights created to add highlights in the reflective wet floor.
When using light mapping, it is important to modify the number of light bounces and indirect lighting quality options in the World Settings menu.
This can improve the quality of the baked global illumination although modifying options like the static Lighting Level Scale value will also greatly increase the baking times.
Fog was an essential part of this scene in order to achieve the mood intended from the beginning.
The use of exponential height fog helped to give a sense of depth to the scene, making the background more separated from the rest of the image.
The goal for the second project wast to create a fully dynamic lit scene without any baked lightmaps. The use of movable lights, including the skylight, allowed the use of distance fields to create real-time softer shadows and DFAO.
The intention of the scene was to give it a natural lighting look that reflected the color bleeding from the surrounding environment, giving the impression that the train was covered by thick nature.
Again, the process started by establishing the basic blocking first, in this case, the key light was set to come from the door opening, drawing attention to the center of the scene. Fill lights were added to exaggerate the skylight coming through the windows. Extra lights were used to fill in the darkest spots and to add rim lighting around the main flowers.
Unreal’s Post Process Volume tools, allow to give a scene the finishing touches that can greatly improve the image quality. I usually turn off auto exposure so I can better tone the image.
The color correction and grading tools are very useful to push the image further, making it punchier. I like to add some chromatic aberration too, but I try to keep it subtle a not pushing it too far.
Unreal’s default grain it’s not very realistic, so I tend to use a custom made film grain filter as a post-process material that affects primarily the darker areas of the image.
Finally, I add sharpness to the image by adding another custom made post-process material. If the image is still looking a little blurry, I combine the post process material with the console command r.Tonemapper.Sharpen.
Captures and Sequences
There is two main ways I use to capture images and videos from Unreal. The first is by increasing the Screen Percentage to 200 and then taking a High-Resolution screenshot with a size multiplier of 2.
Bigger values tend to crash the scene. This is not only useful to create finalized images but also to take progress screenshots. The second is by using cine cameras and rendering through the sequence editor.
This way I can render an EXR sequence in order to create videos. When doing this it is important to adjust the Engine Scalability settings to get better quality or tone down some options to avoid crashes.
The making of these scenes has been extremely educational. I have learnt a lot about how to do lighting and post-processing in a real-time engine. Some of the main lessons I have learnt is to always keep pushing your project forward, going too far if necessary, and then toning it down.
It is also very useful to take captures during the making of the scene to see a progress comparison, this helps to compare the before and after and makes decision-making easier. It is advisable to keep light simple at the beginning and add complexity progressively when the main blocking has been established.
Finally, asking for feedback or looking back at references is a good idea when stuck.