Because this comes up every now and again, I've decided to put this short text together and make it sticky. If you have any questions, please let me know.
In theory, an unbiased method for computing an integral (in this case the rendering equation) is method that, if you run it multiple times on the same input data (3D scene), will give you, on average, the correct result (final image), even though each individual result may be quite wrong by itself (f.e. noisy). This means that if you run the algorithm sufficiently many times and average the result, you will get a correct final image. You can imagine this as the multiple passes that the progressive sampler of V-Ray makes through the image to clean up the noise. Each individual pass is quite noisy, but when a sufficiently large number of them are averaged together, you get a final clean result.
There are no commercial renderers today that are truly unbiased in this theoretical sense. Maxwell, Arnold, Corona, V-Ray all take shortcuts to get you a usable image in a practical time frame, which makes their results biased. The shortcuts that are taken are various - f.e. suppressing light paths that cause fireflies, or limiting the number of GI bounces, or limiting the maximum ray intensity, or using some kind of GI caching, or truncating reflection/refraction rays with low contribution, or limiting the types of light paths that are calculated (i.e. ignoring GI caustics). Practically all renderers today employ a combination of these biased techniques to get you a final image.
From then on, the term "unbiased" has been somewhat corrupted in practical use. People tend to associate it with these two properties of a renderer:
a) Lack of GI caching, and by (wrong) association, lack of flickering and blotches; and to a lesser extent
b) Progressive rendering, where the image is calculated in passes, rather than in buckets;
However, the presence of these features in a renderer does not make it unbiased in a theoretical sense. Also, people tend to associate GI caching with flickering and blotches, but this is not necessarily the case. F.e. the light cache in V-Ray and the UHD cache in Corona are biased GI caching techniques, but they usually produce low or minimal flickering (although both can be made to flicker depending on the scene).
Some examples of renderers that people have become to think of as "unbiased", but which are actually biased:
*) Maxwell may suppress some lighting contributions (mostly caustics) in order to make the image cleaner with low number of samples;
*) Arnold has a limitation on the number of bounces; it doesn't do caustics by default and modifies scene materials depending on the number of reflection bounces in order to reduce the noise;
*) Corona includes a number of biased techniques: it truncates the maximum ray intensity, limits the number of GI bounces, and uses GI caching;
*) V-Ray can do a number of things too, including GI caching, truncating of maximum ray intensity, and others.
From then on, most users associate the term "unbiased" with a renderer that simply doesn't do any sort of GI caching. Let's call such renderers "user unbiased". All of the above renderers can be put in a mode that makes them "user unbiased":
*) Maxwell is such a renderer as it doesn't use GI caching;
*) Arnold is such a renderer as it doesn't use GI caching;
*) Corona can be put in such a mode by selecting "path tracing+path tracing" mode;
*) V-Ray can be put in such a mode by selecting "brute force+brute force" GI.
However, the fact that a renderer is "user unbiased" does not mean that it produces correct images in terms of GI. F.e. Maxwell will still suppress some light paths that produce fireflies; Arnold still does only a few light bounces and ignores GI caustics; Corona will still truncate ray intensity to reduce fireflies and will still do only a limited number of light bounces; V-Ray will still do only the specified number of bounces and may truncate ray intensity, among others. Most of these renderers have user-adjustable parameters that allow to control these errors in the GI solution so you can get images with various levels of correctness.
Best regards,
Vlado
In theory, an unbiased method for computing an integral (in this case the rendering equation) is method that, if you run it multiple times on the same input data (3D scene), will give you, on average, the correct result (final image), even though each individual result may be quite wrong by itself (f.e. noisy). This means that if you run the algorithm sufficiently many times and average the result, you will get a correct final image. You can imagine this as the multiple passes that the progressive sampler of V-Ray makes through the image to clean up the noise. Each individual pass is quite noisy, but when a sufficiently large number of them are averaged together, you get a final clean result.
There are no commercial renderers today that are truly unbiased in this theoretical sense. Maxwell, Arnold, Corona, V-Ray all take shortcuts to get you a usable image in a practical time frame, which makes their results biased. The shortcuts that are taken are various - f.e. suppressing light paths that cause fireflies, or limiting the number of GI bounces, or limiting the maximum ray intensity, or using some kind of GI caching, or truncating reflection/refraction rays with low contribution, or limiting the types of light paths that are calculated (i.e. ignoring GI caustics). Practically all renderers today employ a combination of these biased techniques to get you a final image.
From then on, the term "unbiased" has been somewhat corrupted in practical use. People tend to associate it with these two properties of a renderer:
a) Lack of GI caching, and by (wrong) association, lack of flickering and blotches; and to a lesser extent
b) Progressive rendering, where the image is calculated in passes, rather than in buckets;
However, the presence of these features in a renderer does not make it unbiased in a theoretical sense. Also, people tend to associate GI caching with flickering and blotches, but this is not necessarily the case. F.e. the light cache in V-Ray and the UHD cache in Corona are biased GI caching techniques, but they usually produce low or minimal flickering (although both can be made to flicker depending on the scene).
Some examples of renderers that people have become to think of as "unbiased", but which are actually biased:
*) Maxwell may suppress some lighting contributions (mostly caustics) in order to make the image cleaner with low number of samples;
*) Arnold has a limitation on the number of bounces; it doesn't do caustics by default and modifies scene materials depending on the number of reflection bounces in order to reduce the noise;
*) Corona includes a number of biased techniques: it truncates the maximum ray intensity, limits the number of GI bounces, and uses GI caching;
*) V-Ray can do a number of things too, including GI caching, truncating of maximum ray intensity, and others.
From then on, most users associate the term "unbiased" with a renderer that simply doesn't do any sort of GI caching. Let's call such renderers "user unbiased". All of the above renderers can be put in a mode that makes them "user unbiased":
*) Maxwell is such a renderer as it doesn't use GI caching;
*) Arnold is such a renderer as it doesn't use GI caching;
*) Corona can be put in such a mode by selecting "path tracing+path tracing" mode;
*) V-Ray can be put in such a mode by selecting "brute force+brute force" GI.
However, the fact that a renderer is "user unbiased" does not mean that it produces correct images in terms of GI. F.e. Maxwell will still suppress some light paths that produce fireflies; Arnold still does only a few light bounces and ignores GI caustics; Corona will still truncate ray intensity to reduce fireflies and will still do only a limited number of light bounces; V-Ray will still do only the specified number of bounces and may truncate ray intensity, among others. Most of these renderers have user-adjustable parameters that allow to control these errors in the GI solution so you can get images with various levels of correctness.
Best regards,
Vlado
Comment