Following the amazing experience I had during the Unreal Fellowship early 2023, I decided that one of my goals for the rest of the year had to be improving my realtime 3d lighting skills, and practicing them more regularly. Great lighting can save a mediocre environment, but bad lighting can also ruin a great environment. Therefore I signed up for Maria Yue’s “Lighting for Games in UE5” boot camp in the Spring 2023 term at Vertex School, with live sessions from Harid Taskin. The course focuses on lighting theory and exterior and interior lighting with Lumen in Unreal Engine 5.
This post shows the results of the first ‘exterior’ assignment of that course, using the “Northwoods Old Western Town” environment (built by Dekogon Studios). We had to come up with two different time-of-day lighting scenarios, following a reference board we had to build first. To present our work, we had to use the same three camera angles for each scenario.
Scenario 1: golden hour
For the first scenario the action-adventure game ‘Red Dead Redemption’ inspired me to go for golden hour lighting. With golden hour lighting the sun is low in the sky and creates a warm glowy effect. The lighting is soft, diffused and with little contrast, the lighting ratio is very low. Shadows are long and soft. On top of that my game reference had varying saturation levels between sky and foreground.
For my approach to light this environment I decided to embrace the concept of Auto Exposure, that until now I had always avoided using. I started with looking for interesting camera angles, compositions and angles for the sun. Then for setting up the exposure and lighting, I was most attracted to the workflow of using physical values that you can lookup and measure. They can give you a really good starting point. For setting up the basic sun to sky ratio I created a lighting validation layer with a pure white plane and sphere, that’s really handy for measuring the sun- and skylight intensity values with the Auto Exposure Histogram, making it easier to dial in the correct lighting ratio. With the volumetric fog in place as well to add more realism, I played with all the values in a second pass to refine the mood to match better with my reference. In this stage I also went back to the Post Process Volume to give it a small exposure range around the physical starting value to make the same lighting setup work for both bright and shaded areas. The images below are high resolution screenshots directly from engine without any additional color grading in an external application.
Scenario 2: HIGH NOON
For the second scenario classic western movies inspired me to go for high noon lighting. With high noon lighting the sun is high in the sky at the hottest time of day. The lighting is harsh with little diffuse and high contrast. In direct sunlight the lighting ratio is high. Shadows are short and hard. On top of that classic western movie colors are desaturated with a slight sepia tone.
For this scenario I created a separate sublevel to make it easy to switch between lighting scenarios. Then I followed a similar approach as described above for the first scenario. Apart from using different parameter values, the only difference in approach is that I used a LUT, created in Photoshop, to desaturate the final look and add a bit of sepia tone to it. The images below are high resolution screenshots directly from engine.
CLosing words
My main take away from this assignment is that Auto Exposure is actually a really powerful tool for lighting a realtime environment, when used correctly. The realization that exposure and lighting do not affect each other, was a real eye opener for me. What I mean by this is that changing the exposure range doesn’t change the lighting itself (so you’ll measure the same values), but it does change how much light your camera or viewport receives from the lighting. Using this strategy for lighting your environment with a single setup, you don’t have to worry about lighting at all anymore when dropping in a new camera, because the Auto Exposure controls how the camera perceives the lighting.
In the next post I’ll show the results of the second ‘interior’ assignment of the “Lighting for Games in UE5” course.