3D lighting tips with Maya & V-Ray: a portrait scene
I will go over the methods I used to reproduce the apartment lighting scene from Blade Runner 2049. Some methods are software specific but can be done in other software as well.
I started this project by choosing a reference image; the image I chose seems to have some kind of grade which is not used in the movie. But I kind of liked it, so that's why I chose to use it as reference. I made a crop of the frame so it's more of a portrait still.
I looked through all the scenes in the movie from his apartment, to get an understanding of where the lights are in the scene. One thing you need to keep in mind when you don't have actual set data is that they can move lights around to suit the camera angle better.
For the camera I took some liberties, for the Blade Runner 2049 movie they used Zeiss Master Prime lenses. But I liked more the Panavision C series lens that was used on the Blade Runner 1982 production. So I used a 100mm lens with a 2.8 F-stop with anamorphic aperture. Which was pretty much the classic setup for all the closeup shots on the original. I used a circular aperture map connected to vrayPhysicalCamera, and I set the "Bokeh anisotrophy" to "-0.353" to make the bokeh anamorphic.
Building the apartment scene
Using the movie references I made a simple version of the wall behind her, the floor, and the roof. For the walls and roof I used a spherical projection of an HDR which I graded to have similar colors as the set. For the floor I used a tile texture which I graded to have similar color as the floor used in the movie. I used a lambert shader for the floor as you want the shadows to still be there. Otherwise you might create too much bounce light coming from the floor.
I didn't model the whole room as I used a domelight with the same HDR as the wall and roof to fill out those holes. I only used a very low intensity of 0.1on the domelight as the lights in the room will take care of most of the lighting
I used the Emily asset that the wikihuman project developed for the face. I've made my own shaders to render it with and modified the displacement and textures to remove some of the noise and garbage that comes from the scanning process. For hair I made the grooms in Yeti.
I used a free low res scan for the body, which also worked for the shirt she is wearing since it's so out of focus. It's good to have a body stand-in even if you only render a face. The reason is that the body actually reflects in the face. So if you have a white shirt for instance you will get bright reflections under the chin and eyes that is more or less visible depending on lighting conditions. If you have dark clothes you will get the opposite effect.
I placed all the scene lights that you can see from the movies reference frames. Some I ended up removing as they didn't make any difference to the final lighting. Like the kitchen lights or the lights in the hallway – also the lights pointing down near the kitchen and at the opposite wall behind her. Removing those saved me a lot of render time and the indirect lighting from the HDR was enough to fill the effect from those lights.
Two of the lights were placed to create the highlights you can see in her eyes specifically for this shot. I probably spent the most time tweaking the intensity and position for these two lights. I ended up using a ramp to make one of the lights darker towards the edge. This matched what you could see in the highlights in her eyes. If you zoom in closely you can see that one of the lights fades out. In hindsight I can see that there is a big glow around that light that you can see in the eyes of the reference that I did not match.
While you're doing your lookdev it's good to look at each light separate first before you start tweaking it with the other lights together. I use VrayRT to tweak the lights and get instant feedback of changes. I made the light behind her to the right slightly bluer in color to create a bit of color contrast in the lighting; this is not present in the reference, but I felt it added a nice touch to the final render.
The method I use for lighting is to simulate a raw plate in my render, to do this you need to push your values sometimes over 1. The highlight on her left for example has pixel values around 1.3. And if you have a bright light visible in the shot the values can go up to 10-20 depending on the light source. This way if you're working in a real production you will have an easier job matching your CG to the raw plate.
Matching the refernce
After rendering I made a simple grade in Nuke to match the reference image. In the end I did not try to match the reference as I felt I wanted to see what results I would get using my own intuition. So I stopped looking at the reference at this point and made my own grade that I used for the final image.
Grading can give your final presentation a much more realistic feel than presenting a raw render. I use the colorLookup node in Nuke to grade. Before you use it you should convert your colorspace to LOG with a "log2lin" node. Just remember to convert back to linear after.
To match the grade I look at each channel separately and try to match the contrast and pixel intensities to the reference. When you're match grading you also need to simulate effects that happen in the lens. Maybe the blue channel has more contrast and stronger grain or similar effects. I match the lensdistortion, grain, and other effects that you can see from the reference.
For this project I did not try to make it look like a movie frame completely, as I would have needed much more blur and much bigger grain to make it look like a frame cropped from a movie. I also made the final render in 5k resolution so she became very sharp and you can see all the little skin details.
ColorLookup node in Nuke
Top tip 1 - HDR treatment tips
For indoor lighting you want to remove all light source from the HDR as you only want it to cast indirect light in your scene. All lights that cast shadows needs to be made manually.
Top tip 2 - Light tips
To add more realism to your lights behavior you should add an HDR of the light you're trying to simulate. This will make all your reflections look more real, as there is nothing more unreal looking than a flat white highlight. How you crop the HDR image also effects your highlights, you can sometimes want to crop further outside the light to catch the glow around the light. This can improve reflections in the eyes. To control how diffuse or sharp the light is you want to use the "directional" attribute in the light settings.
Top tip 3 - Advanced light control
To further control lights you can use ramps. This can also be achieved with grading the HDR of course. But I find ramps to work better as I can see the results in realtime while tweaking them with vrayRT. So you connect your light HDR to the ramp and then the ramp to your light. You can also use two ramps if you want to control both the X and Y of the lights intensity.
Top tip 4 - Problems when match lighting digital humans
One of the common problems when match lighting digital humans is that it's really hard to match the highlights in the eyes and the shadows in the face at the same time. So you start by looking at the eyes and think I just match the highlights and it's done. But then you look at the face and see that all the shadows are completely different to your reference. It depends on a lot of things, that the shape of the eye lens doesn't match makes a big difference. And maybe your model has a different face shape, so you have to consider what is most important. You can cheat and split the problem with two renders which is one solution, but I usually try to find a happy middle or change the eye reflections slightly in comp.
Top tip 5 - Grading tip
You need to match each RGB channel as closely as possible, but you also want to check your grade in different exposures to see if what you’re doing is correct. So expose the image up to check shadow areas, and expose down to check that highlights have correct values.