Andrew Prince provided a detailed breakdown of his awesome Lighting Studies in UE4: working with natural light, adjusting color and temperature, playing with the angle and much more!
Hello, My name is Andrew Prince. I am from Simi Valley, CA, currently working at Whitemoon Dreams as a Lead Artist. I graduated from The Art Institute of CA in Santa Monica back in 2008 and have been in the game industry ever since. Right out of school I landed a job at EA working on a first-person shooter that was based in the Command & Conquer universe (unfortunately it was canceled). Shortly after in 2009 I took a position at Whitemoon Dreams where we have shipped Warmachine Tactics for PC & Starblood Arena for PSVR. I have also done Freelance work creating props for Bioshock Infinite, Star Wars the Old Republic and ESPN Sports Science segments.
Goals of the Project
My UE4 Lighting Studies project was all about creating really quick scenes (10 hours or less) that would allow me to study lighting & UE4’s Lightmass more in-depth. My main goals were:
1. Make sure that if in a game the scene would run at the frame rate (mostly static lights and not out of control lightmap sizes)
2. Achieve a final look where I could use the lighting to be the focus of the scene
3. Use simple shapes with tiling textures so I could generate these scenes quickly and spend most of my time focusing on lighting.
Since I wanted to study lighting more in-depth I started off gathering a bunch of reference material which followed my 3 main points above. I gathered images from movies with great cinematography and real-life architecture that I could find on Google. I picked scenes that were simple but looked amazing due to how the lighting came into their space and/or shot. This would allow me to focus more on how to achieve the same kind of lighting and not have to model props for hours at a time. Finding scenes to mimic like these along with using simple shapes inside of UE4 were the key decisions that would allow me to achieve these scenes quickly.
Working with Maya
For the most part, the reference I chose to use had the following: flat walls (planes & cubes), pillars (boxes/cubes) and one scene had a rounded shape to the wall (cylinders). Being that these scenes were simple (modeling wise) all I had to do was grab a UE4 plane or Cube and drag them into the scene. I would then scale them on the grid and use them as modular pieces to make walls, floors, ceilings, and simple pillars/beams. I used Maya on a couple of scenes for simple beams that needed a bevel on the edge (simple cubes with a bevel). In the colorful yellow scene, I used Maya to make the modular cylinder shapes for the walls and ceiling/floor (a simple cylinder on the grid which was inverted, given some depth and cut up into ¼ size for modularity). Using these simple primitives on the grid in UE4 allowed me to change up the scene rapidly to get an interesting look and keep my focus on the lighting. In some cases, I would start off composing the scene exactly like the reference only to find myself running with one or two main points of the scene (such as a wall with holes in them for light) and changing up the area to be a bit more interesting using the modularity of the meshes for speed.
Less is More
I love the saying “Less is More”. In many facets of life, this is true including scenes in Unreal. With good composition and lighting, you don’t really need an enormous scene with hundreds or thousands of props and or lights to achieve a great look. This rule of thumb is exactly what I sent out to achieve as it would help me to create the layouts quickly and allow me to spend most of my time focusing more on lighting and the settings within Lightmass.
Before I even started on these scenes I made sure to find a reference that had minimal elements, interesting lighting, and good composition so that I could study them and try to mimic a similar look inside of Unreal. In most cases the references main light was from the sun which allowed bright light to fill in the scene. This created nice global illumination and shadows which helped with the composition. For this type of look, I knew a directional light would work great so that’s what I started out with. The directional light in UE4 works great if you need to simulate a sun or moon as the main light source and you can attach it to the atmospheric fog to get a bright daytime effect in the sky.
In some cases, you could use a spotlight for the sun or moon so that you can keep the light source local and customize it to your liking but for these scenes, a directional light worked best for me.
Most of these scenes did not take a ton of lights to achieve the look I was going for. For instance, my light setup in the scene below is composed of 1 main light source (a directional light), a skylight for some ambient light, an Atmospheric Fog node to add the atmosphere in the sky, one Box Reflection Capture, a post process volume and a lightmass importance volume. In some cases, I will add point/spot lights to act as artificial bounce lights (if the GI that was generated didn’t light up specific areas like I had hoped).
In the colorful yellow scene, I used a large mesh which had “Use Emissive for Static Lighting” set on it along with only 4 spotlights to achieve the final look in that scene. If you want to generate light from a mesh that is emissive, the option “Use Emissive for Static Lighting” works great and can sometimes generate all the lights you need for a specific area. All you need to do to make this work is add an emissive material to a static mesh, click on the option for “Use Emissive for Static Lighting”, make sure to encompass your scene with a lightmass importance volume and then bake your lights. The amount of light that gets generated from your mesh is controlled by the intensity of your emissive material.
Natural Environment Light
For the most part, the scenes I chose to create had natural light (a sun/moon) coming in from the outside. The only other scene that was different was the colorful yellow scene which was lit (in my opinion) from a LED cylindrical light that spans the entire room. It all comes back to gathering good reference and really studying it to see how the image was created. The scene doesn’t always have to mimic the reference 1-1 but to achieve a render that looks correct you should know how / why the reference looks the way it does and how light reacts with certain surfaces.
For these scenes, I studied the reference for a while. I looked at the angle of the sun and how it made the scene more interesting based on the angle of the shadows it created. I looked at how much bounce lighting was being generated, I looked to see if there was more than 1 source of light coming into the room, I looked at how light interacted with the different elements etc.
This, in my opinion, is the best way to achieve the type of look you are striving for. Study your reference for as long as you need before diving in and throwing lights into your scene. If your reference has light coming from the sun, start off with a directional light. If your reference has light coming from a lamp, start off with a spotlight etc. Keep it simple, to begin with, and get your main light source acting the way you would like before adding more and more lights to your scene.
Here are some reference images that I found (and used) that had great lighting in a simple scene. (The scenes below are from“Church of the Light” by Tadao Ando, “Light Motif” by Frederic Bonpapa, and “Shadows of the Sun” photo by Nathan Rupert).
Temperature & Color
A lot of the images I chose to create had a reference that was in black and white. I wanted some color in my scenes. I also wanted to have the bounce light spread color around my scene to show what would happen in a real-life situation. Again, for the most part, the sun was my main light source. In the scene below, I wanted the sun to give off a warm feeling but also be bright. For this reason, I went with an off-white warmer color (in the yellow range). This along with the brightness set to 20 allowed for a lot of light to enter the scene. The light then bounces around hitting the orange stucco texture and spreads the color onto the concrete walls which then gives the final look of the scene.
In my night time scene, the directional light was set to a cooler color (desaturated blue-green). This allowed me to get more of a night time feel. In this scene, I also went with UE4’s volumetric light setting (found in the height fog) to give it more of a foggy night kind of mood.
Before I finish off a scene I will run the image through a compositing program such as Davinci Resolve to generate a LUT map. In Davinci Resolve I will play around with the overall color, the contrast, the saturation & the brightness to get the final look. Once this is completed I will export the LUT map into UE4 and plug it into the post process volume. This along with the camera’s exposure setting in the post process volume are the two main elements that I tweak to get the final look in my scenes.
Here you can see a before and after shot. The first image is without the LUT map and with the default camera exposure setting at 0. The second image is with the LUT map applied and the exposure set to 2.75. As you can see with just the cameras exposure and a LUT map you can get a more final look at your scene.
In my opinion, it is true that good lighting can only go as far as your scenes textures and materials. If your materials don’t have the correct roughness or metallic values, you might find yourself tweaking your lighting non-stop to gain a feel to your scene that you just aren’t able to achieve. If your materials are set up correctly light will bounce, reflect and refract the way it should thus giving you a great look in a shorter amount of time.
Since I wanted these scenes to be fast and I didn’t want to spend a long-time modeling or texturing objects I chose to utilize Textures.com and Megascans for the textures you see in my scenes. These came pre-made with all the correct maps (Albedo, Normals, Height, AO, Roughness and Metallic Maps). For my scenes, I chose a couple simple concretes and a stucco texture which is what was used in all the scenes. With textures.com you will need to set up your own material within UE4 but with Megascans, you can use their Bridge app to export your textures and it will set up a material for you. This made creating these scenes really quick.
In the two scenes that I had the emissive value generate light. I created a super simplistic emissive material using just a color and an intensity value. As mentioned above, boosting this value will increase or decrease the amount of light that is generated after you bake your scene. Using emissive as light sources will only generate static lighting and it will be baked into your lightmaps. This means that characters and dynamic objects will not receive shadows from these lights. This was not my concern in this project, so it worked out well for my scenes.
Shadows & Light Angle
Another way I got my scene to be more interesting was to play around with the angle of the main light source. I would rotate the main light source in an interesting way until I generated more interesting shadows. This made my scenes look a lot better. Here is the same scene with a good and bad angle from the main light source.
I also generated more interesting light and shadows by playing with the skylight parameters. Here in this scene, I boosted my skylight to allow for more light to enter from the openings. Here you can see the difference when the setting is higher and lower.
In the end, the light angle and skylight settings can make or break a scene. I noticed this right off the bat in the reference I gathered. Almost all the images had really interesting light and shadows.
After I set up my entire scene I will start playing around with what makes Lightmass bakes turn into magic. In my world settings in UE4, I would start to tweak the Lightmass settings until I got the light bouncing correctly and the shadows the way I liked. In these settings I would change the Static Lighting Level Scale, Num of Indirect Lighting Bounces, Num Sky Lighting Bounces, Indirect Lighting Quality & Indirect Lighting Smoothness. Honing in these settings does wonders to Lightmass bakes.
Adjusting the Static Lighting Level Scale will allow your shadows to become more precise as it will increase the number of volume lighting samples contained in your scene. Changing the Num Indirect Lighting Bounces changes how many bounces your indirect lighting will have. Changing the Num Sky Lighting Bounces changes the number of bounces that come from your skylight. Changing the Indirect Lighting Quality will raise or lower the quality of your indirect lighting (I set this in line with my Static Lighting Level Scale. If my Static Lighting Level Scale is set to 0.2 I set my Indirect Lighting Quality to 5. If my static Lighting Level Scale is set to 0.1 I set my Indirect Lighting Quality to 10. I try to get a value of 1 If I multiply my Static Lighting Level Scale by my Indirect Lighting Quality. This was taught by Epic Games in order to get the best quality out of your bakes).
Here you can see the difference when you leave these settings to default VS changing them to get a more precise look and better quality.
A couple of the main problems that I ran into when creating these scenes were:
1. Really bright splotches of light where the bounce lighting was really intense2. Splotchy, dark or unseen shadows
3. Being able to spot the modular pieces after a bake.
My first problem (really bright splotches of light where the bounce lighting was really intense) would get created simply from increasing my main light sources “Indirect Lighting Intensity” to too high of a value. The look would in some instances work but I would notice areas that were extremely bright and did not look right. In order to combat this, I lowered the Indirect Lighting Intensity way down on my main light source and would either raise the Global Illumination Indirect Lighting Intensity in the post process settings or raise the exposure value in the post process. I really had to play with all the tools that I had in the bag when it came to solving problems such as this.
The second problem I would have (splotchy, dark or unseen shadows) ended up being the lightmap resolution. Sometimes something as easy as the lightmap resolution on your static meshes can be overlooked and you end up spending more time tweaking settings and re-baking than noticing a simple solution. This simply required raising the lightmap size for each object that was causing a problem. I had to be careful here because raising the quality of a lightmap will not only raise the baking times but will also increase the amount of memory that would need to be stored on the disc should this be going into a game.
The last problem that I encountered (being able to spot the modular pieces after a bake) was corrected quickly by lowering the Static Lighting level Scale in the lightmass settings before running the final light bake. Sometimes I have encountered this problem because the lightmap UVs on an object are not snapped to the grid and or having overlapping lightmap UVs. Once these were checked I found out it was just the quality of the light bake and its settings. Raising the lightmap resolution in conjunction with lowering the Static Lighting Level Scale can help hide these as well.
I hope that gave a good insight into how I created these scenes and I you liked the renders. You can view more images from these studies here.
Finally, I would like to give a shout out to two amazing lighting artists that I gained a significant amount of knowledge from by spending a great deal of time studying and listening to interviews and or tutorials with them. These two guys are Boon Cotter and Jeremy Vickery. I suggest anyone who wants to learn lighting techniques to look these guys up and watch everything you can where they share their knowledge if you would like to get more into lighting.