Rain Yan walked us through the process of creating atmospheric cinematic lighting in Unreal Engine 5 with multiple scenarios, inspired by feudal Japanese architecture and the four seasons, while sharing his favorite plug-ins.
About This Breakdown
In this breakdown, you will learn the process of creating atmospheric cinematic lighting in Unreal Engine 5 with multiple scenarios. We will cover every step from environment selection, reference gathering, and engine setup to master lighting, shot lighting, ACES rendering, and post-color grading in DaVinci Resolve. Along the way, I will share with you some of my favorite plug-ins to use in UE5 for lighting.
I will be breaking down two distinct workflows I used in this project. The first uses the default Unreal Engine 5 lighting actors and a custom skybox, which I will walk us through in the context of the daytime lighting scenario (I also used this workflow for the foggy lighting scenario). The second is a new workflow I tried out involving the Sky Creator plug-in. I used this method to create the lantern dawn and snowy lighting scenarios.
Without further ado, let's begin!
Introduction
Hey there! I'm Rain Yan, but you can also call me by my Chinese name, Xiaocong. I am currently a lighting intern at miHoYo working on Genshin Impact at the time of writing. Last summer, I also interned at Insomniac Games, where I got the lucky opportunity to work on Marvel’s Spider-Man 2 and see it ship!
Growing up, I was that kid glued to video games after school. Besides obsessing over the mechanics and the lores within, the art and graphics were what really hooked me. Some of my all-time favorites – Ori and the Blind Forest, The Dark Souls trilogy, Hollow Knight, NieR: Automata, Death Stranding, and recently, Elden Ring – left such a mark on me, both visually and creatively. As excited as I was to continue through the explorations, I also became that person who just had to pause mid-game sometimes to take screenshots of the gorgeous scenes:
Dark Souls 3
NieR: Automata
NieR: Automata
When I started college, I thought I'd try to become a programmer (classic, right?). I was studying mainly CS but just couldn't resist signing up for some art classes on the side – drawing, design, 3D modeling, photography, film production, you name it. Yet, in time, these "for fun" classes totally changed the game for me. I rediscovered my love for art – but this time actually getting involved and creating them – something I always thought I was just not talented enough to do or I was way too late to start.
Then came a huge turning point: Unreal Engine 5 dropped, and there was a huge buzz on the internet that led me to catch wind. I remember watching the Lumen lighting demo set in the desert cave and just being hugely impressed. I thought I had to try it out for myself and downloaded the engine with the free Megascans Abandoned Apartment environment. I remember just spending hours and hours being super excited just messing around with the different lighting actors and tweaking all the parameters to figure out what they do. Sure, my early attempts were... a bit rough (let's not talk about the pitch-black areas or the weird DOF choices), but man, I loved the freedom of all the lighting controls and was so proud of what I was able to make back then. Here are some of those early screenshots, don't judge too harshly:
Project Inspiration & Environment Selection
For this lighting project, after coming back from a trip to Japan last winter, I was really inspired by the peaceful beauty of feudal Japanese architecture intertwined with the natural landscapes. There's something so serene about the atmosphere, and I wanted to capture exactly that romantic charm in this project. My goal was to reimagine those ethereal atmospheres while also diving a bit deeper into the cinematic lighting and rendering workflow using the Sequencer with shot-by-shot-based setups.
For the environment, I ended up choosing Meshingun Studio's Feudal Japan pack from Unreal Marketplace. Not only did it match my vision for the setting, but it was also excellently crafted. The high-res textures, detailed foliage, and diversity in material types will add an extra level of interest to the lit scene. It is also optimized and Nanite and Lumen compatible. It runs really well on my 3070 laptop! Here are some screenshots taken by the seller:
Collecting References
Before starting on the lighting, I researched Pinterest, ArtStation, and FilmGrab for references for settings and environments with similar feudal Japanese/Asian styles and influences. While lighting references can literally come from anything and in any place, I found that references of similar settings proved more useful and efficient, as they gave me a more geographically and culturally accurate idea of both the material properties and the natural and artificial lighting in the region. Of course, if you are unable to find many culture/region-specific references, feel free to branch out into other types of references!
For this piece, I was able to gather different feudal Japan-inspired concept art paintings and photographs that captured different moods, lighting conditions, and color palettes that I was interested in recreating. In the end, I narrowed down and organized the references into categories for potential lighting scenarios:
All four master lighting scenarios together came to me as if they were representing the four seasons: the festive Lunar New Year spring, the serene cloudy summer, the mysterious foggy autumn, and the ethereal snowy winter. Hence, I ended up going with the theme of seasons for this piece.
Indoor references were also collected accordingly, mostly focused on interesting lighting designs and material look references. I really wanted to capture the natural lighting look of the sun coming through the window and casting volumetrics. The polished wooden floor's specular reflection was also very interesting to me.
UE5 Project Settings Setup
Before we start lighting, we need to ensure the correct settings are enabled in our engine for proper and optimal Lumen support. In Project Settings, make sure that Lumen is set as the Dynamic Global Illumination Method and Virtual Shadow Maps is selected. Also make sure that Nanite is enabled in both project settings and supported meshes to optimize for performance.
If you have a supported NVIDIA RTX card, you can select Support Hardware Ray Tracing and Use Hardware Ray Tracing when available. This will produce higher quality GI and reflection compared to the default software ray tracing that uses signed distance fields. You can also change the ray lighting mode from Surface Cache to Hit Lighting for Reflections for the highest Lumen reflection quality.
Old Lighting & Environment Cleanup
Let's do a round of cleanup first before we start relighting for the environment. First, let's make sure that Nanite is enabled for the project and our meshes. Note that some environment packs may have models that are not supported yet by Nanite, in these cases just disable Nanite for such models. Use the nanite triangle debug view for a sanity check:
Afterward, proceed to delete all the existing default lighting actors. Since we are not using baked lighting, to ensure our map is not using any pre-baked lightmaps, we will tick off Force No Precomputed Lighting in World Settings and do a lighting build to get rid of any potential baked lightmaps. After this step, go to Lit view. If the view is pitch black throughout the map, then we should be good to start lighting!
To create our different lighting scenarios, I like to use the Levels feature in order to develop the lighting scenarios modularly and then load them on/off later easily. Essentially, we can just create a new level for each lighting scenario! The coloring features on the right can also help you visualize each lighting scenario better according to their color palette.
Summer Day Master Lighting Breakdown
Reference Analysis
These are the two main references I was inspired by going for this lighting scenario. I really liked the intentional sunlights falling on the architecture and the clouded dark foreground. Overall, not only do they look compositionally interesting, the high contrast key lights also serve as really good focal points and visual guidance to the viewer. Furthermore, the cloud shadowing created a very smooth and natural gradient transition between lit and shaded areas, delivering a very painterly look, which I am a huge fan of.
I was thinking of changing the time of day from the references, however, since we already have two other near-dawn time lighting scenarios. Instead, I was thinking of playing around with a late afternoon summer type of look with a bright cyan sky.
Sun Angle
Following the reference, we start by defining the angle of the sunlight. The reference gives us a good starting point, but we are free to take some artistic freedom here in exploring different shapes of shadow and light to create a good composition based on our environment.
I ended up settling with this for the blockout. The goal was to make sure that the foreground is shadowed, and that the architectures are clearly showcased with a good depth and contrast. The current look is obviously insufficient and quite different from that painterly look in the reference, but we can make some improvements to the light falloff using a light function!
Cloud Shadowing Lighting Function
For the next step, I applied a cloud shadowing light function onto the directional light, which is a mask to distribute the directional light only in certain areas. This creates a nice and cheap fake cloud shadow effect while giving us control to direct the viewer's focus.
The Blueprint I used is a very simple yet flexible BP I learned from the CGMA lighting course with Peter Tran. The BP itself essentially just blends two cloud textures and has a few simple parameters to tweak to adjust the sizes of the clouds and the edges. It also has nice motion features that offset the cloud mask with time, creating a nice illusion of clouds moving.
For actual use in the scene, I usually just start with playing with the sizes of the clouds first and then just tweak the offset until I get a desired look.
Custom Matte-Painted Skybox & Skylight Adjustments
Now, with the directional light blocked out, we are one step closer to the painterly look we want. Now, let’s add in a skylight and a matte-paint skybox. For the skybox, I have always been a big fan of Velarion's works on UE Marketplace – another thing I picked up from Peter during CGMA!
I ended up choosing this one after browsing. I really love the natural look of the clouds, and the colors of the sky give me a vibe of a serene summer scenery:
With the skybox, we can tweak the intensity and contrast and also play with the rotation for better composition purposes. Afterwards, we can add in skylight and proceed with a scene capture. Afterward, we can start tweaking the intensity and color of the sunlight and skylight to get a balanced, desired result. I intentionally kept the skylight relatively dark to maintain the foreground shadowing and create a better contrast. Note that as we add volumetric fog later the value of the overall scene will only further increase.
Volumetric Exponential Height Fog & Screen Space Fog Scattering Plug-in
In my experience, volumetric fog has been one of the most important parts in creating atmosphere and depth to our scenes. If done well, it can grant a really natural look and get rid of the "game-like" feel.
To help with this even further, I highly recommend the Screen Space Fog Scattering plug-in created by Dmitry Karpukhin. It's a shader that works on top of exponential height fog and simulates the soft light scattering and diffusion within the fog. It works especially well in scenes with denser fog, but even just using a bit can make most scenes look more natural.
The plug-in works really well out of the box. The intensity of the fog depends on the exponential height fog actor. That said, there are some separate useful console commands I tend to use to push the look in the direction I like.
r.SSFS (0/1): essentially just turns the SSFS effect on or off.
r.SSFS.Radius (recommended from 0.8-0.99): the diffusion radius while staying on the same height fog intensity.
r.SSFS.VolumetricFogILSIntensity (recommended from 1-8): the intensity of volumetric light scattering.
Here is our result combining volumetric fog with SSFS using all default values but a r.SSFS.VolumetricFogILSIntensity of 2.5:
Looks a lot more natural already!
Fog Cards
In the next step, to push for the depth separation further, I would like to add some fog cards in the background to separate out the main subjects. They are a great way to add some interesting textures to our scenes while boosting the atmosphere. For this shot, I distributed some throughout with very low opacity at different "layers" to create different separations:
Post-Processing Volume Setup
After this step I usually like to get into doing some post adjustments. To begin, we can add some bloom. This time, I used high convolution bloom with the default kernel. I really like the innate soft diffusion effect that comes with it. I think the resultant imagery had a more dreamy atmosphere like that of the reference. Of course, we can get more of this in the post in DaVinci, but having a good base to start from here is great! By further dropping down the pre filter min as a threshold for the highlight, we can have something pretty nice.
I also like to increase the vignette a bit to help increase the contrast even further and draw the viewer's eye closer to the center focal point.
Fill Lighting: Faking GI
This step usually involves scattering some fill lights around the scenes to help lift up the unnatural dark spots in our scenes and create smoother light and shadow transitions. The fill lights also serve as our intentional bounce lights to increase the lackluster GI effect in some areas.
Material Specular Highlights
This step really involves adding another layer of interest to our focal point by highlighting specific areas. In this case, I really love the gold plated material on the architecture and how light interacts with it.
I added numerous more point lights around the edges of the roof tops positioned in a way such that the light reflects some beautiful bright highlights:
Here is our final look for the master lighting and this landscape shot. We will leave it be for now and conduct the final post effects and color grading later:
Spring Lantern Dawn Master Lighting with Sky Creator Breakdown
Next, I want to briefly cover a different lighting workflow I tried out, this time using Sky Creator, which was also made by Dmitry and published on the Marketplace. It is a highly art-directable and customizable integrated lighting solution that deals with sky and volumetric cloud creation and weather. I decided to create the sky for the spring lantern lighting scenario using it.
Reference Analysis
These are the set of references that inspired me to create the scene. I especially loved the purplish ambient past sunset with the warm lantern lights as the accent. I did want to change the sky to be more interesting, however, given that the snow time lighting scenario also has a similarly plain sky. And that's where Sky Creator comes in to help with creating the volumetric cloud!
Introduction to Sky Creator
In author Dmitry's words, the Sky Creator is "an extensive tool[set] to control dynamic weather and time of day using realistic volumetric clouds, atmosphere, and visual effects."
To put it simply, Sky Creator is a smart Blueprint that integrates the following actors in Unreal while exposing all the important parameters in these actors for us to tweak. To start, just drag the BP into the scene, and we should have something to start with.
There are two places for us to change settings to create our unique lighting scenario. One is in the unique feature of a Weather Preset. Essentially, it itself is a modular lighting scenario that contains all the key parameters regarding the following lighting and FX actors. We can then save/load these presets into our Sky Creator for different lighting scenarios.
The other place is in the Detailed panel of the Sky Creator Blueprint. Note that there are large overlaps for the sections of actors between here and the Weather Preset. However, the settings here are generally more high-level and serve to fine-tune or control the lighting scenario-specific settings in our selected Weather Preset. There are also performance and optimization-related settings to control the lighting and volumetric quality:
Volumetric Cloud Creation
Now, onto creating the stylized volumetric cloud. I blocked out the scenes first with a very low sun angle, casting only partially towards the top of the clouds. The rest of the scenes are illuminated by the ambient skylight and the lantern emissions, making the clouds and sky one of the key focal points of the scene.
The Weather Preset I started with intentionally had these very voluminous bodies, and they are great with this sun angle. I really liked the semi-stylized look and the gradient on the cloud created with this sun angle. It reminded me of animated works from Ghibli and Makoto Shinkai.
Then comes tweaking the clouds further. In the volumetric cloud section in the Details tab (left), the main settings I changed are the cloud map offset and the bottom altitude and max height. The offset is especially important due to the random nature of the noise-based cloud generation. On the other hand, the volumetric cloud settings in the Weather Preset (right) mostly have to do with fine-tuning the noise of the clouds to change the clouds' shapes and distributions. Feel free to play around with these until you find a good composition you like!
Lantern Emissives & Fill Lights
One important tip here is to try to break the uniformity of the emissions by instancing materials of slightly shifted intensity and hue, as it is in the case of real life where artificial lights like this are rarely ever exactly the same. The imperfection makes the look a lot more natural.
On the other hand, I made sure to compensate for the lack of emission contribution by manually adding point lights around the bigger chunks of lanterns. Notice how big of a difference it made in making the lantern's light more natural.
Spot Highlights
Finally, I wanted to direct some attention back to the architecture. This involved using a few intentionally-placed painterly spotlights to create these gradient highlights. They serve to create contrast and depth in the building, thereby drawing more attention to them. I also absolutely love the stylized painter's brush look to them.
Shot Lighting with Sequencer
Cinematic Photography Time
After the last step, we are mostly done with defining the look for the master lighting scenario for the whole level. Now, it is the fun time to fly around and discover interesting areas around the scene and work on framing for shots and creating detailed lighting for them. Pretend that you are a photographer/DoP visiting the set!
Key takeaway: focus on having one theme/purpose for one shot, be it a subject, a mood, or a story! This is crucial towards eliminating visual redundancy and also helps you not to get lost amidst all the objects and details.
For the cameras, I decided to use cinematic cameras with full-frame sensors and a 2:35 to 1 widescreen cinemascope format for a more cinematic look. I also lowered the Min FStop in the Lens Settings so that we can use a bigger aperture for more dramatic depth-of-field effects:
Composition Tips
Here I will be breaking down the composition idea I had for the master shot.
For the master shot, the goal is to showcase the environment and its major theme with a beauty impression shot. As such, I decided to go with a wide shot using a focal length of 20 to capture more things into the frame. While we can have a lot of objects in our scene, we still need to stay true to the idea of having "one main thing" for our shot. Here is where composition comes into play!
Notice with a wide shot like this the perspective distortion effect is also quite obvious. This actually becomes a great composition tool for us to draw the user's eye towards the vanishing point of our choice. In this case, I want to direct the viewer's attention to the main building in the distance, and composition is absolutely one of our weapons to do that!
Additionally, in terms of the lanterns, I also have set dressed and adjusted them in a way such that they create a nice guiding "Z" line that leads the viewer ultimately to the main building:
Moreover, for designing this shot, I broke it down into different layers, clearly separating the main building with a foreground and background. The main building itself sits in the midground as the center of balance:
Shot-based Lighting Setup with Sequencer
Borrowing the workflows from animation and film. Shot lighting initially inherits directly from master lighting, but we can freely tweak our lighting based on the specific shot. For example, we can rotate the directional light or skybox, we can tweak the lighting properties, and we can even add or remove lights just for that shot!
Sure, if you just have a few cameras in your scene, you can perhaps just put down on a spreadsheet all the things you changed and record the before and after values to change them for your render (I definitely did this before).
However, for a bigger production, we need to achieve this efficiently and save all the per-shot-based lighting changes without having to change the settings back and forth in a very risky manner. This is where the Sequencer comes in! Essentially, we can think of a sequence as a composition of shots and any specific properties we want to attach to that shot.
For example, for this lion shot here. Here is my Sequencer setup:
These are the following actors I have added/changed. I changed the snow properties in Sky Creator for this shot for the snow to look more befitting for a closeup; I added in one key light and two fill lights that will only spawn in for this shot (notice the lightning icon). I also adjusted the skylight and other fill lights' intensities:
Indoor Lighting Tips
As for lighting indoor scenes and shots, the process remains largely the same. For the daytime scenes, I leaned towards a natural lighting design by angling the sunlight to shine through the windows, casting volumetrics. In comparison, the lantern lighting scenario was driven by diffused warm artificial light. Another major focus was using reflections to bring attention to the meticulous details and edge wear of the materials. Using Hit Lighting for Reflections in Lumen's project settings allowed for much better results compared to the surface-cached default look. If performance is a top priority for your project, also consider switching to Screen-Space Reflection in the Indoor Post Process Volume:
Movie Render Queue – ACES Rendering Settings
After setting up the Sequencer with our shots, we can proceed to send them to the movie render queue for rendering. Here, I will attach the ACES rendering settings I have been using for a long time. I won't be diving into the ACES color management workflow too much here, but you can check out William Faucher's ACES Rendering video on YouTube.
This setup is flexible for both still rendering and cinematic rendering. All we have to do is change the shot duration in Sequencer and adjust the camera transform keying if needed. For example, if you want to render out a still instead, simply change the shot duration to 1 frame. Similarly, you can also increase the anti-aliasing temporal sample count to something higher like 128 for better AA. On the other hand, for video, if you want faster rendering time, you can drop the temporal countdown to 16!
Important Console Commands
r.tonemapper.sharpen 2.0: this is a command I usually use both for MVQ or high-res screenshot to output a sharper image. I like to use a high value like 2 since I usually have quite a bit of diffusion bloom going on, and some sharpening can help balance out the diffusion effect by enhancing the texture details that were lost.
r.SSFS.VolumetricFogILSIntensity [value]: as mentioned previously during the screen space fog scattering section, this command can be used to enhance the volumetric scattering effect for the plug-in, use a value according to your taste here! Remember you need to put it in the movie render queue setting. Just typing the console command in the engine will only make them show up in the viewport!
Post Processes & Color Grading in DaVinci Resolve
After rendering out the .EXR sequence/still, we can proceed to import them into DaVinci Resolve for further post processes and color grading.
For my workflow in DaVinci, I personally like to keep things relatively simple and not mess with the colors too much, as I usually would like to achieve most of the colors with lighting alone and some simple adjustments in the post-process volume.
However, here I will share some important nodes I usually like to add!
White Balance
White balancing helps to alter the overall color temperature of the scene, this is usually the first thing I check for the render to make it feel more natural. It can also help with neutralizing the white objects in the scene. You can also tweak it for stylistic purposes.
Curve
I usually do a simple curve adjustment second by just pushing the highlight a bit more and lowering the shadow regions to increase the contrast even further.
HDR Detail Adjustment
Leveraging our .exr format, we can perform precise HDR color grading and adjustment separated by the categories of black, dark, shadow, light, highlight, and specular. They are in the order of increasing thresholds. We can tweak the colors, exposure, and saturation of each category as we see fit, essentially letting us fine-tune the image to our desires.
Diffusion Lens Filter Simulation
As a photographer, I personally am a big fan of diffusion lens filters. They help create a very diffused and soft look to your images by distributing the light more evenly across the sensor. By pushing it, you can get a very atmospheric, ethereal look to your pictures.
To simulate this effect for our digital renders, in DaVinci Resolve, you can play around with DaVinci’s glow node or create a kernel yourself. However, I personally have been a fan of the Scatter plug-in, which has multiple real-world diffusion lens filter-inspired models to apply. Hollywood Black Magic and Black Pro-Mist are two of my favorite models, the former offers a glow more on the edges between highlight and shadow whereas the latter offers a more overall diffused look. Feel free to play with the different models as you'd like for the piece you are creating.
Vignette
Vignette helps with drawing our attention to the center by casting a black gradient overlay. In DaVinci, you will have control over the shape of the overlay itself. Personally, I like to use the mask tool combined with a curve adjustment that drops the shadows a bit more:
Film Grain
For the final touch, usually, I like to play around with adding film grain. The film grain is the optical texture of processed photographic film. While noises such as film grain generally are perceived as an artifact due to their history and association with the film, it is now more of an obsession for any cinematographer to deliver that nostalgic, textured look. Many films that are shot digitally will still undergo the process of grain simulation to add back the filmic feel to it.
For CG, we usually will be adding a grain overlay or something more complicated like a grain simulator. This layer of imperfection not only helps us break the "CG feel" better but also seeks to add that last bit of cinematic touch to our shots. This is especially important for rendered videos compared to still images, as a good grain sim is generated differently per frame instead of being a static overlay.
Not sponsored, but my personal favorite plug-in has been FilmConvert Nitrate. It also features a range of film stock for your choice and have exposed many different settings for you to play around with such as Film Chroma and Film Luma. These can be thought of as essentially LUT or filters. However, if your goal is just to add the grain itself without modifying the grading, you can just not use the chroma and luma of the film stock.
Outro & Future Works
This is the end!
Thank you for taking this journey with me, learning to create cinematic lighting in Unreal Engine 5! I personally really enjoyed writing this article reflecting on my process and what I’ve learned, and I hope you have learned something of value from it.
For my next couple of works, I want to continue studying cinematography and focus on improving my character lighting skills. I also would love to try out more stylized lighting pieces, especially given my new role at miHoYo. Since it's quite different from translating a stylized 2D concept art into the world of PBR Lighting, I look forward to learning everything I can and honing my craft during my time here. It will be a lot to learn, but I think it will be really fun.