Art Director Andy Goralczyk explains the lighting and rendering process for one of Sprite Fright's key images... which also became the cover of a 3D World special edition on Blender. To get the most from this follow along, download Andy's source file here.
Ellie is the main character from our current film project Sprite Fright. We set out to depict her first encounter with a Sprite, the film’s cute forest creatures. This serves two purposes: 1) we create a "personality pose" to inform the character design and 2) we help fine-tune the final look and feel of the film.
The result is a true team effort among many artists at our studio. The initial idea came from director Matthew Luhn, who worked with storyboard artist Dirk van Dulmen on a couple of concepts for the overall layout. These were refined by co-director Hjalti Hjalmarsson. In the meantime production designer Ricky Nierva supervised sculpting wizard Julien Kaspar to create a unified look for the character sculpts.
Pablo Fournier, character animator at our studio, posed Ellie and the Sprite according to the concept. Julien carried out pose refinements using Blender’s sculpting tools following paint-over suggestions from concept artist Vivien Lulkowski. Shading artist Simon Thommes created some impressive procedural materials for all objects, and finally it was my job to give the image a clear and appealing lighting scheme.
Being at the end of such a production pipeline puts a lot of responsibility in the hands of the lighting artist. Good lighting helps make all the previous steps shine while maintaining clarity and storytelling. In this tutorial we learn how to work with lights in Blender’s Cycles render engine to illuminate a typical character-centric shot in one of our films.
Before we start any render, let’s first adjust the Cycles settings for an optimal, relatively speedy render. We don’t need a high degree of fidelity in the bounce light since we’re going to “cheat” a lot. In the Light Paths tab under Max Bounces, set the total to three and Transparency to 32. In the Clamping subcategory, leave direct light at 0.00 and ensure that Indirect Light is at 10.00. Disable Refractive and Reflective Caustics and set Filter Glossy to 1.00.
In the Sampling tab, set Render to 200 and cap Viewport at 100. Check Denoising for Render and Viewport and set them both to OpenImageDenoise. We are going to take advantage of Blender’s real-time denoising capabilities to get a clearer image while we’re adjusting the lighting. Set Start Sample to one (this parameter sets the minimum samples after which denoising kicks in). Lastly, make sure that the Filmic View Transform is enabled under Colour Management.
Split your main viewport vertically and turn the lower half into a Shader Editor. Then, split the top half in two again. Keep one side as Camera View and switch Overlays off. This way we can isolate parts of our image using Border Rendering without having to preview the entire image at once all the time. Removing Overlays helps clean up the clutter of non-renderable helper objects like Armatures and Empties. We want to be able to read the composition unobscured. Set the shading method of this viewport to Rendered.
It is very hard to start lighting from a blank slate in complete darkness. As the environment we are depicting is outdoors, we need a basic fill light to give us a good base. In the Shader Editor, turn Shader Type to World. By default, there should be a Background node attached to the World Output with a grey colour and a Strength of 1.00. Add a new Environment Texture node and choose a forest based HDRI background. This is going to give us very subtle variation in the diffuse and glossy reflections of the materials.
We do not want the HDRI to show up in the background of our render: having a photorealistic background would interfere with our cartoon style. Add a Mix Shader node and another Background node. Connect the existing Background to the first input of the Mix Shader and the new Background to the second. Add a new node of type Light Path and connect Is Camera Ray with the Factor input of the Mix Shader. This gives us independent control of what the camera sees and what lights the scene.
Add a Color Mix node and connect its output to the second Background Colour input. Connect the forest HDRI with Color1 of the Mix node. Choose a dark blue directly in the RGB selector of Color2. By tweaking the Mix Factor we can dial in the right mixture between the forest HDRI and a flat, more simple looking colour. Make sure that your forest HDRI does not contain any sharp details or recognizable forms like people. Having soft, simple highlights should add enough interest to our scene.
Let’s add our first light! We want to establish a clear direction for the strongest light source first. Add a light source of type Sun to your scene. Its position does not matter, but the orientation is important. Move it slightly above the scene so you can clearly see its rotation. For character "beauty" lighting, the easiest approach is to light from the front of the face, but never from the camera’s angle. Rotate the sun so it lights the character’s face from an angle, while making sure it does not look too flat.
In its Object Data properties, set the colour of the sun to R: 1.0, G: 0.5 and B: 0.08. This should give it a warm and saturated yellow. Set the strength parameter to a value of 20.00 and its angle value to eight degrees. Angle influences the softness of the sun’s shadow. While a value of eight degrees is not physically accurate, it makes the shadows more pleasing and less sharp. Make sure that Cast Shadow and Multiple Importance are checked.
In a forest, sunlight is never completely uniform. With all those millions of leaves and tree branches, there’s a lot of interplay between light and shadows. For the purpose of having Ellie pop from the background, we place her in a brighter spot of forest. By using blocker objects we can purposefully craft darker and brighter areas and help emphasize the light on her.
Our first blocker will cast shadows on the ground and mimic the sunlight coming through leaves. Add a Mesh Plane above our scene and scale it to cover the entire area.
With the main blocker selected, enter Edit Mode and make sure its main face is selected. Subdivide it five times, then turn on Face Selection and hit ALT+A to deselect all. Go to the Select menu in the viewport header and choose Select Random. In the Tool Settings, adjust the percentage to 30%. Now delete the randomly selected faces by pressing X, and choose "faces" from the menu. Tweak the amount of faces to your liking to control the sunlight’s shadows. In the Modifier properties, add a Subsurf Modifier with a render level of two.
Right now the blocker would show up in the render. Additionally, we have to make its material completely black in order to not bounce light into our scene. In the shader editor, add a new material to the blocker object. Delete the Principled BSDF. Add a Diffuse BSDF and a Transparent BSDF, merge the two with a Mix Shader node into the Material Output. Make the colour of the Diffuse BSDF black. Next, add a Light Path node and connect its Camera output to the Factor input of the Mix Shader node.
It’s a good idea to separate character lighting from environment lighting. This gives us more freedom to adjust lighting angles independently. While doing that, it’s important to keep the colours of both more-or-less synced. Add a new light of type Area. In the Object Data properties, set its Shape to Disk and size to 0.7 metres. Set its Power to 55 watts and colour similar to the sunlight, albeit a tad more saturated. Disk Areas will be our main light type as they yield very pleasant, soft shadows.
We place the Area Light a bit further away from our characters, facing Ellie head on. Currently, the main sunlight is shining more from the back. With this light we will slightly favour the camera-facing side of the characters, lighting Ellie’s face relatively flatly while still following the general direction of sunlight. A deviation of around 30-40 degrees around the Z axis is fine.
The characters need a colder fill light to balance their skin tones. This will also add some subtle colour shifting in the core shadows (which makes the lighting less rigid). Add another Disk Area light, this time with a colour of R 0.10, G: 0.35 and B 1.00. It’s a slightly purple blue, which fits better into an evening/afternoon colour scheme. Make its Power 45 watts and give it a generous size of 1.4 metres (around the full head-to-toe length of the character). Aim it at Ellie in between the sun and key Area angle.
Now we need to ensure that Ellie and the Sprite are separated enough from the background so that their silhouettes read clearly. Character separation is usually achieved with rim lighting. You can place Rim Lights either favouring the Key direction or from the opposite angle. With our first Rim, we will favour the sunlight. Duplicate the Key Light and rotate it, so it shines at our characters from behind. Leave its size at 0.7 metres, but change Power to 43 watts.
We need to make sure that the second Rim Light is still motivated by the sunlight, so we’ll treat it as a bounce that happens when the sun hits the ground underneath Ellie. Place a Disk Area with a size of 0.7 metres and power of 10 W behind the character’s head, slightly favouring an upwards angle. Choose a colour of around R: 1.000, G: 0.40, and B: 0.03 which will result in a slightly more yellow orange tone.
For achieving maximum appeal, avoid sharp shadows and extremely dark parts in the middle of the face. Add another Disk Area with a size of 0.1 metres and a power of 100 mW. This is extremely subtle, but it will help us soften the terminator around the cheekbones. Position it close to your character’s jawline. By slowly dialling in the intensity we make sure that it looks deliberate. It should very subtly soften the face without brightening it too much from below.
The Sprite’s face is currently lost in shadow. Add another Disk Area light and position it close to the Sprite’s face. Make it very small, around 0.05 metres. Set its colour close to your character’s skin tone, in this case R: 0.47, G: 0.30 and B: 0.15. Set its power to 180 mW. We are trying to create the illusion of light bouncing from Ellie’s face and brightening up the Sprite. Be careful to not make it too strong; it should still feel like it’s motivated by the scene.
Duplicate the Sprite’s key and rotate it around their face on the Z axis. We want to aim it more from the camera’s direction. Colour it in the same tone as Ellie’s fill, a purple blue. Set its power to 40 mW. This will even out the warm key and balance the greenish skin tone of the Sprite, softening up the facial features and adding a slight bit more emphasis on the face in general. Tweak the ratio between key and fill so it looks natural.
We are going to use some blockers to darken the corners of our image. This could be done as a post-processing vignette. However, depending on the situation a post effect can often look fake in the highlights. Add two Mesh Planes between the character’s feet and the camera (as shown in the screenshot). Assign the Blocker material we created in step 11 (Blocker Material) to them. Ensure that they are not too close to the ground, as their shadows will be too sharp. A distance of 0.2 metres above the ground mesh should be good.
To create the illusion of light shafts we won’t resort to physically accurate volume rendering. For a movie this is too time-consuming to render. Add a Mesh Cube in the center of your scene and rotate it so that its local Z axis is aligned with the sun’s rotation. Add a new material to the cube in the Shader Editor, remove the Principled BSDF and add an Emission shader node. Connect its output directly to the Material Output’s Volume socket.
Set the Emission Colour to a light blue, shading the volume in a tone complementary to Ellie’s skin. This will help lift her from the background. Add a Texture Coordinate node, a Noise Texture, a ColourRamp and a Math node set to Multiply. Connect their sockets with the Emission node as shown in the screenshot and enter the values shown. Set the Noise to 2D: this will project it along the cube’s local Z axis resulting in streaks that resemble light shafts. Move the black handle of the ColourRamp closer toward the white one and set the multiplier node to 0.070.
As Ellie’s hair is quite dark, we need to create a little more interest in it. Add another round Area light with a size of 0.8 metres. Set its colour to a light blue and its power to 45 watts. Position it above and slightly behind the character’s head, shining slightly into the direction of the camera. This should give us some subtle blue reflections in the hair. In the Object Property’s Visibility tab, uncheck Diffuse to exclude the light from that particular shading pass.
Before we start the final render, we should tidy up the scene a bit. Select all your lights and hit M in the viewport. Click Create New and name the new collection "Lights." Repeat the same for all the blocker objects by moving them to a new collection called "Blockers." Having a good and consistent naming scheme pays off when working with a bigger team and you will be able to make sense of your old files more easily. Once you are happy with your lighting set-up, press F12 to render.
Some general advice to keep in mind while you work.
Even in practical filming the best lighting requires a great amount of cheating and does not always have to be rooted in reality. The lighting should feel motivated by the scenery, but above all it’s the emotion that counts.
To make characters pop, make sure that their face is the screen area with the highest contrast relative to the rest of the frame. Keep the background behind the character’s head lower in contrast to avoid clutter.
Finding the right light values can be tricky and often needs experimentation. It’s a good start to halve or double a value and then slowly approach the right strength in rough quarters and thirds of the initial intensity.
The transition between light and shadow is called the Terminator. If there is more than one light, the darkest area forms the Core Shadow. For maximum appeal, avoid placing them both right in the center of the face.
Note: This tutorial originally appeared in issue 268 of 3D World.
holy wow
Fantastico !!
thanks for sharing andy
Hi @Andy Goralczyk, thank you for this great post! I have a question about color management settings, why use "filmic" instead of "standard"? To my knowledge, standard displays the actual color we choose for our materials and filmic seems to desaturate the colors, yet a lot of people enjoy using filmic. Additionally, is there a way to achieve the same color we see in standard in filmic? I texture some of my models using standard, and I was wondering if I can achieve the same result in filmic. Thank you!
And I purchased the magazine back in Jan 2021 too :)
Thank you Andy.
Nice, awesome, I got new idea to create cloud shadows, I was making like take transparent texture, that, makes lot repetition
I bought a back copy of 3D World just for that image! Thank you very much for releasing both the file and a tutorial on it. :D
Love the in depth blog, very very powerful!
Awesome deep dive! Thank you, Andy! :)
Join to leave a comment.