A guide to lighting a scene in 3ds Max as worked through with a group of students developing their skills in CGI. Written by YellowDog Render Wrangler Iris Eggelmeijer
My name is Iris and I am a Render Wrangler at YellowDog. What is a Render Wrangler you might ask?
Don’t worry, you’re not the only one. Well, I am part of the team that looks at customer scenes when they are not rendering well or if the renders take longer than expected. This involves looking at Max, Maya, and C4D scenes and but also how our cloud servers are built, reading scripts, and all kinds of other non-3D related skills.
Luckily, I was trained as a 3D generalist, which basically means that whatever the issue, you must find a (creative) solution. I really enjoy doing this as no two days are the same in this job – you never have time to get bored! There are always new challenges and new skills to be learned.
This summer, I was invited to teach a class at the DO Academy. DO Academy is a place where people that work in the architectural visualisation industry can nurture and develop talent. Teaching terrifies me in some respects because as public speaking makes me nervous, but I was determined to challenge myself.
I talked about lighting a scene in 3ds Max and rendering; Do Digital supplied me with a simmple scene that we could work with as a group. This well-lit daytime scene is about to be transformed!
Image based Lighting
We went off to find an evening HDRI for the image based lighting, and I put it into the scene. Go to the rendering tab and go to environment (or press 8). I call my map ‘eveningsky’ and leave the global lighting level at 1. Let’s see what happens when we hit render.
When we render, we get a very strange background. It looks like it is all miniature tiles of the evening sky picture.
Max is set to have the texture setting default to the mapping type of 3ds Max standard. We need to change this to spherical on this occasion to get a proper result.
It is quite dark…but I do like the twilight feeling it gives us; it reminds me of 9pm on a Spring evening. Let’s add some interior lighting, and make the building seem less abandoned.
I am going to add in two lights for the upper windows; I don’t want anything fancy: just a Vraylight. I’m setting the resolution to 512 and the exposure to 30 and making it to the size of roughly a window. Render time.
We get some light from inside but I don’t like the big white squares. I would like to hide those visible lights; I just want them to emit light and not show in the render. I go into the options tab on the light and tick the box for ‘invisible’. When I do a test render, I find that the light is a lot less strong, because I am missing all those white pixels. Go ahead and raise the exposure a bit. I set mine to 50 now but you might want to do some more if you experiment.
Give the scene a story
Let’s give the building a bit of a story, of purpose. Right now, this is just a building with nothing special going on. In my mind, this an apartment building with some shops on the first floor so let’s make the first-floor windows a bit more interesting and give the scene a story. I don’t want to add any geometry in here as it will make the scene heavier and it is unnecessary. We can make it look like a store with just an image and have it light the scene at the same time.
How shall we go about this?
Again, I am going to create two Vraylights: one for each window. I size them to fit and then go to the general tab of the light. Here you will find a little box at the bottom called ‘No Map.’ If you click on this it will allow you to upload a texture. I find it easier to make the material in the material editor first as I might need to manipulate it later. I have created the texture, I link it up, and I hit render.
As you can see there is now an image in the window but it is upside down. This is probably because I turned the light 180 degree around when placing it. We could rotate the light and solve it that way or we can also change the UV coordinates of the texture. I am going to show you the latter as I think it will come in handy.
In the material editor, I select the texture and change the angle. To flip it horizontally, change the U value to 180. To flip it vertically, put the V value to 180.
If you do this, you will see that the material preview will also change so you will know that it has been turned.
When we render again, we see that the image is now the right way around and we can place a different image on the second light. I will do this in exactly the same way as before. Practice makes perfect!
Now I create a Vraylight, putting it in the correct position, create a material with the texture I want, go into the light, and hit no map. Here I select the material and turn the material 180 degree again. Once again, we render and we get the following result.
This all looks quite good but I do still think it is a tad dark. I am going to add an ambient light. There are a lot of divided opinions on ambient lighting. Some will say to avoid it as it flattens the shadows or in other words ‘makes them less intense’. Others will say that they use it for that very reason.
I like the ambient light when used in the correct way. The ambient light should never be too strong so really you should never go above 1 on this light. I try to keep the settings as low as possible as it will have a huge impact on our scene. I set mine to 0.5 exposure with a dark colour on it. If I use white then I will lose the effect of the evening scene, and I don’t want that to happen.
Render and GI Settings
Last but by no means least, render settings. I like to have my image sampler set to progressive as standard. The advantage of this sampler is that you can see an image very quickly, and then let it refine for as long as necessary whilst additional passes are being computed. This is in contrast to the Bucket image sampler, where the image is not complete until the final bucket is done.
Now you need to decide on your GI settings.
The Brute force method for computing global illumination re-computes the GI values for every single shaded point separately and independently from other points. Whilst very slow, this method is very accurate, especially if you have many small details in the scene. It also means that the render always looks the same, regardless of how many times it’s run, and even if it’s run on different machines.
The irradiance map is a collection of points in 3D space (a point cloud) along with the computed indirect illumination at those points. When an object is hit during a GI pass, V-Ray looks into the irradiance map to see if there are any points similar in position and orientation to the current one. From those already computed points, V-Ray extracts various information (i.e. if there are any objects close by, how fast the indirect illumination is varying etc). Based on that information, V-Ray decides if the indirect illumination for the current point can be adequately interpolated from the points already in the irradiance map, or not. If not, the indirect illumination for the current point is computed, and that point is stored in the irradiance map.
During the actual rendering, V-Ray uses a sophisticated interpolation method to derive an approximation of the irradiance for all surfaces in the scene. This means it’s a lot faster than brute force and the results can look great. The problem is that the results are different each time the irradiance map is calculated, which means the results can look different if rendered on different machines. If you’re going to do this, the best advice is to calculate the light map on a single machine before the render starts, and then load this pre-calculated light map onto the machines that are doing the rendering.
And that’s the end of this tutorial! It was great to be welcomed by the team at DO Digital Realities and the students at DO Academy. I look forward to seeing the renders from the next generation of talent coming through great projects like the DO Academy.