Recently Ryan Lintott and I went to a VRay training seminar by the man himself Vladimir Koylazo (one of the makers of VRay) who went through a number of facets of VRay including a step by step way of breaking down your render settings into logical steps to get the best combination of quality and speed. I thought this was just too gooder process not to share so have decided to put together the following tutorial taking people through these steps he explained so VRay will hopefully become less complicated, and so you can better critique what is happening within your scenes.
The real core of this is every scene is different and has different requirements in terms of detail resolution and Global Illumination. There are many settings posted on the web (I have done a few myself) outlining suitable settings for VRay, and much debate over which setting is best. The truth is it changes from scene to scene and although there are definitely some standards you could stick to (we have reasonably successfully in the past years at Squint Opera) if you really want quality shadow detail while remaining at a quick render time, it makes sense to progress through a more analytical approach where you can critique each step of the way.
Below I will go over the most common set up of using Irradiance Map and Light Cache, which is recommended most of the time, and then baked out. Remember for animation Brute force and Light Cache is recommended, by both Vladimir and Francesco Legrenzi (wrote the very excellent resource “VRay: The Complete Guide”)
So here are the steps:
BASIC APPROACH
In order to break up your scene use the following approach:
Set a standard DMC value > Test Light Cache > Test Irradiance Map > Customise detail level in DMC
The scene I am using was made by a colleague Nic Hamilton for testing purposes and has a combination of direct/ bounce light and broad/ fine detail. It can be downloaded here. It is set up in linear space, but don’t press sRGB in the VRay frame buffer as the gamma 2.2 is already baked in within the colour mapping.
NOTES on WHOLE PROCESS
- This process is resolution dependant. These settings are quite high as it is only a 720 res image. Same visual principles apply to bigger images, but expect your values to reduce somewhat.
- Many of the settings I have used here are quite high as it is a simple scene in terms of materials and lighting. More complex lighting and materials will mean increased render times and you will have to compromise further on these render settings.
- This scene uses linear workflow. You might to visit the link here to set up so it looks like mine (ignore the EXR stuff in that tutorial).
- This might be a little complicated for beginner users; but see how you go!
SET A STANDARD DMC VALUE
Initially set the defaults of DMC as in the image below.

The highlighted value links to these 2 under the settings tab where the adaptive amount controls how adaptively the samples will apply over surfaces, i.e. 1 is fully adaptive and will place the samples as wide as it can across large surafces, and 0 will put samples very close to one another and take longer to render. Leave these as they are below:

We will come back later and set this using the colour theshold.
TEST LIGHT CACHE
Next set your primary and secondary bounces to light cache and set subdivs etc and interp samples to the following:

Where we set the subdivs fairly low, the sample size to fairly big (for this test 720 res image) and most importantly the interp samples to 1, so there is no blurring between the samples and we can explicitly see what is going on.
Hit render and you should get something like this:
So what are you looking for? This is the key! See how the samples are quite big? This means they will miss out detail, and light samples will stretch too far across surfaces, and even bleed right through walls (light leaks). So in this instance they are a bit too small. So why, you ask, don’t we set it really small and catch all the detail? Well because of noise. Try setting the sample size to 0.001 and see what it looks like. You can see how this result, even with move subdivs and blurred with the interp samples will create a noisy solution? Try 0.02 and you should get something like this:
This is a fairly good size. It’ll cover most shadow detail in a general way, apart from maybe the shadows on the rear wall, but any smaller and we might introduce more noise. Figure out the compromise.
Now let’s up the subdivs. Each time VRay sends out a “ray” from the camera it hits a surface and makes a sphere of the sample size and subdivides that sphere into a number of ray calculations; the more subdivisions the better quality the solution as it is calculating more samples. See it as also checking out it’s neighbours colouring and then using that to colour itself.
Up the subdivs in 500 increments up to 2000 and see what you get. See the difference in smoothing of the samples colours and the corresponding render times going up? Again pick where you think is good, but 2000 is pretty OK so far.
Now try changing the light cache from “screen” to “world” and change the sample size to 0.2m (keeping 200 subdivs). You should get the following result:
See how I am now getting more samples on the back wall, as it is now dividing up the samples into 0.2 metre samples. For this scene this might be a better solution as I don’t have much in the background, it’s an interior scene, and it also might bring out some shadow detail in the pool at the back of the image.
Now we have this solution, save it out so we don’t have to calculate it when testing other things and save a huge amount of render time. Do this by hitting “save” and save as say LC:

Then change this to

Just remember to change it back to single frame if you change any of the light cache settings or move the camera. The only exception to this is the interp samples.
Interp samples essentially blurs this solution. So you can change this after you’ve saved out as above. Change it to about 40, or whatever looks good. Remember this does come at slight cost, the more you blur it the more you lose shadow detail. Again it’s up to you to decide.
NOTES on LIGHT CACHE
- The other thing to consider is the difference between light cache “screen” and “world”. As Vladimir said “world” is good for interior type scenes with little background detail, but is bad for massive exterior scenes as the light cache will try and sample hundreds of objects into say 0.1m (whatever you set the sample size to) in the background. This will give a noisy result and take a long time.
- Number of passes refers to the number of cores you have, and VRay will use this to send individual calculations to. Set it to the maximum number. So if you have 8 cores, then 8, or if you have hyperthreading enabled set this to 16 (like I have done). If you’re using a render farm, set it to their maximum. A simple way to tell is open task manager and click on the performance tab and see how many cpu meters you have (goto view> CPU history> one graph per CPU to see).
TEST IRRADIANCE MAP
Now change the primary to irradiance map and keep the secondary as light cache, still loading the pre-calculated map as above with 40 interp samples.
Also change the irradiance map from a preset of high initially, then to custom, and change the values like the image below. Remember set the interp samples to 1 so we can see what’s happening with the samples:

Changing the “max rate” to the same as the “min rate” lets us have a look at where the min rate is putting samples. Do a render and you should get something like this, with a blackened image with obvious white samples across the image:
Now down the max and min rates to -4 and see what happens. See how the samples move further apart? You are basically telling the irradiance map to, on areas that it can be fully adaptive, use that spacing as the minimum. Now up the max rate to -1, keeping the min rate at -4 and you should get this:
Now what are we looking for? Well now that we’ve put the max rate up, see how it’s putting samples around the areas of detail? (detail is defined by pixel contrast or threshold difference in colours) So what we want to see is it putting samples on areas of shadow/ GI detail that we want. i.e. at the bottom of chair legs, on window surrounds or perhaps grout detail on the floors.
Now try min -3 and max 0. This looks pretty good, as seen below, as I now have a good number of samples around areas I want to see shadow detail, like the bottom of the chairs, grout lines, and the samples in the open areas I’ve brought together to get a nice even spread. Look at the difference between render times as well; still acceptable at 35 seconds.
Now let’s look at what happens when we change the value “clr thresh” in the next column of numbers. This stands for colour threshhold, and tells VRay how finely to look for contrasts in colour between pixels. So at 0.1 (show as 1st image below) it will look at extremely fine/ small contrast between colours in pixels and sample up to it’s maximum rate there. You can see this is too fine, as it’s plastered the whole image with samples, and will cost us a lot of time in rendering and cause noise.
A value of 0.9 is the 2nd image. At the opposite end of the scale it is looking for high contrast of colours in pixels to put it’s samples, and is not very sensitive. You can see how it picks out major details, but detail is lost in the areas between details, or there is not very good blending between fine and course details in shadows.
Let’s stick with a value of 0.3 (default), as this is usually a good compromise, and seems to be putting the samples where we want them. Leave “nrm thresh” and “dist thresh” alone. Vladimir admitted these are kind of unnecessary levels of control.
Now turn “show samples” off, and change the “HSph subdivs” to 20. This stands for hemispherical subdivisions, and relates to (again) the rays sent out by the camera hitting and then subdividing into a number of rays off a surface. The higher the number the more rays are sent out and the higher quality the sample. So this is to do with the quality of the irradiance sample. Hit render and we get something like this:
Now try 50:
Now try 100:
What are we looking for? Well render time vs noise. The 1st was 20 secs, 2nd 30 secs and 3rd 75 secs. The 1st will probably cause a noisy result, even if we blur (interp amount) it, so clearly this is unsuitable. At 50 the samples look like a fairly even spread of colour and there are a few blothes, but these will probably even out. 100 isn’t massively better than 50, and comes with a huge cost in render time, so somewhere around 50 looks likely.
Compromises again! You decide on render time vs quality; but now you know what to look for and how to change it.
Now save out like you did with the light cache, but name it IR:


Then change the interp samples to 20 (default). More will cost you in render time, and like light cache will blur the solution more and more and might lose you some shadow detail.
So this is our final image. It’s got good shadow/ GI detail around the chair legs on the floor and good depth throughout. Perhaps the only thing that is noticeable is the noise from the sun on the back wall. This is to do with the light quality though (and related to size multiplier) and we can get rid of this by increasing the subdivs on the sun to 16. Give it a go.
Now we have a solution to our GI.
NOTES on IRRADIANCE MAP
- This will probably be quite a high quality result (slow to render possibly for drafts), so these would be our production settings. But now we can go back to the adaptive DMC and use the colour threshold to control our quality and render time overall in the next step.
- You can use this method in animation by incrementally saving the irradiance map and light cache to files every, say 10 frames, rather than sending out single passes (use “fly-through” for light cache and “multi-frame incremental” for irradiance map). This will eliminate flicker and save you massive amounts of render time. As long as nothing moves within the scene this is the best way.
Customise detail level in DMC
The last part of this tutorial is how to set detail levels in terms of antialiasing, and use the DMC colour threshold as a global slider for quality.
If you click back into your Adaptive DMC settings you locked it using the DMC sampler. Now you could keep this as is and adjust the noise and adaptive amount in the settings tab, but you can essentially do a similiar job with the colour threshold:

So start by unticking the box above and change the “Clr thresh” to 0.1.
Also go into your render elements and add the following VRaySampleRate so you can see what is happening with the samples while also looking at your image:

Now in the VRay frame buffer you can view either the RGB image (beauty pass) or the Sample rate by changing this. We’ll be clicking backwards and forwards in this to see the relation between the samples and the quality of the image:

So now hit render using the settings above and you should get something that looks like this:
What you’re seeing in the VRaySampleRate is where it is putting samples to do the antialiasing. The lighter the blue the more samples it is putting in place. You can see this is super quick to render, so great for telling what is happening in the image overall for a draft, but we need to up the quality.
Now try a value of 0.01 in the colour threshold:
You can see there are more samples now, and the image is fairly clean. This is pretty much the default values we had before. But to get more detail in the foreground chairs we might need more samples. Put the max subdivs up to 6 and see what happens. We get something like this:
So if we keep on turning this max subdivs up then you’ll find it won’t make much of a difference to the samples. This is because the colour threshold is capping it off at a certain value. It will get to a certain quality and decide “that’s good enough” and within the colour contrast threshold between pixels.
Change the colour threshold to 0.001 and you’ll get a result like below. We can see that now it is picking up detail across the flat surfaces, and if we had a high resolution and more complex materials you would find this would make a huge difference to render times, but it would be able to pick out this type of super fine detail. So in theory we could run the max subdivs pretty high and just use this colour threshold as like a global slider of quality that slides between the min and max values.
This comes with a WARNING though! These are VERY sensitive values. Look extremely carefully at the visible quality vs render time. If the max rate is too high it might spend too long on some extremely fine details that you’ll never see. Run this as low as you can, and then you can run your colour threshold at a lower (high quality) setting. Open up these renders and have a look at the render times. The difference between the 2 above is 12 and 46 secs! And that is with little, or no visible difference, so be sensible and er on the side of speed otherwise you’ll be waiting forever for renders.
I found with this scene that 6 for the max subdivs and 0.008 for the colour threshold was about right. All compromises considered.










