top of page

Biased vs Unbiased Render

In this subject, we will try to explain an advanced and complex topic. If you like to watch pictures, paint kids books and easily get bored from reading I recommend you to leave quietly.


Today, it is impossible to imitate the exact behavior of light in nature, in terms of processing power. Many behaviors and attributes such as Reflection, Refraction, IOR, TIR, SSS, energy transfers (radiance) that we mentioned before can be physically programmed in a way that is close to nature. But in such a case, it can take years to render a 1px² area. Counless reflections of light, changing quantity and qualities in every reflection will render even the quantum processors as null. So, normally it is impossible to execute any lighting process. However... At this point, the matter of Predictable vs Accurate that we mentioned before comes up again.

Based on the impossibility of obtaining Accurate results in the behavior of light, scientists have developed some basic algorithms, functions and rules, shortcuts! that will yield predictable, satisfying results with the available resources and the processing power. Although these are based on the laws of nature, they are essentially reduction-based rules, so that the expected result can be obtained efficiently. We can simply exemplify this reduction as follows:

  • Instead of calculating individual paths, countless reflections, and energy transfers of photons, rays, light beams calculated with a cumulative view.

  • Instead of being calculated in countless times, reflection is calculated to the point where it no longer makes a difference in our perception. In other words, the number of reflections of the light can be limited.

  • The calculation of qualities and quantities that will not make a difference in our perception can be prevented.

  • Expensive behaviours that are irrelevant to our scene, such as Caustics, may not be taken into account.


  • In Indirect Illumination, "Contact Shadows" that result of the falloff of the light and/or result of the low light can be rapidly calculated based on polygonal proximity and interpolation, which is called "Ambient Occlusion".



This situation, which we describe in a simple way, is called biased rendering. When we look at under the hood, to the core, every render engine works biased.


So what is this biased vs unbiased fight? Basically you are welcome to think this problem as "more biased vs less-biased". More shotcuts, reductions vs less..


Now, lets try to explain "more-biased" rendering model with a very specific example from old and gold and good render engine, the Mental Ray! It is ceased to sales by 2017 unfortunately. This example will also provide understanding of "less-biased" method.


The ones from the Mental Ray era know well, there was a technique called Final Gathering that drove us crazy in animations. This technique was basically used to improve the Global Illuminaton calculation by sending extra rays to the scene.

In many scenes where we need to use Indirect Illumination but not Global Illumination, we mostly just used Final Gathering which provided nice Indirect Illumination.

The biggest problem with the Final Gather technique was the flicker, the flickering of the shadows in the animation. The root cause of this problem was none other than using more-biased method, "interpolation". Lets dive into the details: Final Gathering picks up a given color or color from the Dome Map (hdri) and fires rays to the scene based on given Sample value. More sample more rays. The rays sent to the scene are often will not be enough compared to the nature. Trying to pushing Sample value to the limits would create a render without an end. This is the point where "Interpolation" steps in. So how it works?


Giving a value to the Interpolation means giving a "merge radius". Interpolation merges/blurs every ray within that radius and as a result we will have clusters of shadow and light instead of random points, pixels (remember sample=ray count). With those clusters come together we will have relatively smooth shadow and light areas.


Now mind that, since every ray randomly fired and randomly gathered in areas, there won't be homogeneous distribution of rays, which means every single cluster will have different shading density, different toning, tint whatever.


At first sight it might look smooth but you would notice shading problem in a single frame. Single frame is okay. Now imagine the next frame, second one!


With different, random rays, merges, clusters calculating in every frame will make shading of every single frame different from another, which will cause crazy splotchy flickering in animation. This was an old issue of more biased/predictable method.

But make no mistake! Final Gathering had an unbiased method under the hood but because of the cost, it is not stated or recommended clearly. This method was simply zeroing out the Interpolation value which also known as "Brute Force"! If there is no radius, there is no merge, no splotches of clusters, no different shading areas. At least not in macro scale!

You see, when you disable Interpolation, merging, you have to push sample value too much in order to get your scene filled with enough rays. When you push it too much render time will be unbearable and yet it will introduce another type of flickering which is "grain/noise"! Yes, if there is no merging, every single pixel will have different value in every frame and you have your grain/noise flickering. In some cases this was more bearable than splotchy flicker of Interpolation.


Old times. Technological methods have improved a lot now. The involvement of the GPU led to a marginal revolution in rendering. But this example is the essence of biased and unbiased rendering.


If you have followed so far, I assume that you have a basic understanding of biased-unbiased. Let's start to see the similarities and differences between the two methods.

B VS UB


Biased Render


  • Instead of rigidly modeling the physics of light, it uses a variety of shortcuts and methods. There is no need to calculate every pixel.

  • These shortcuts speeds up the rendering process. It gives the user much more control over the light.

  • Render times can be predicted clearly and consistently.

  • Ideal for realtime applications and games.

  • With some tweaking it may give a satisfying result of unbiased render.

Typical parameters of the Biased rendering engine are:

Light Bounce Definition : Contolling reflection count of rays.

Cache : Calculations are stored in memory to speed up complex light models.

Adaptive Sampling : In a non uniform scene, rays can be focused on specific areas. Like the areas uses more light sources which will need more samples.

Caustics : It is preferable whether the expensive Caustic effect is calculated or not.

Firefly Reduction: Relevant rays can be restricted to prevent extreme point flares that can occur randomly in glossy reflections which is called firefly.


Unbiased Render


  • It doesn't use heavy shortcuts like Biased.

  • It gives results closer to the definition of Accurate.

  • It gives less control to the user.

  • It can produce outstanding render quality and realism.

  • It might be a bit slow compared to Biased.


Let's not forget what we said at the beginning. Both are ultimately biased renders. Therefore, the result given by both is physically "inaccurate" but visually "predictable".

Many unbiased render engines also use their own shortcuts, but they are hardcoded, that is, embedded in the engine and not left to the user. Apart from that, you can see the typical parameters of biased rendering in an unbiased render engine. But an unbiased rendering engine never leaves the user as diverse and as much control as biased. This is due to both its nature and its trick.

Chaos Group, the manufacturer of Vray, a hybrid rendering engine, has an article on the subject and the following paragraph in the article is noteworthy:

Long story short: if you are doing true scientific physical calculations and have a ton of computational power and time, unbiased may serve you well. If you are interested in rendering physically plausible images in a reasonable amount of time, biased solutions will get you there faster. Chances are you are already doing this no matter what rendering engine you are using.

As you see clearly, Chaos Group fires a rocket to the unbiased render engines by leaning to the biased nature of all render engines we mentioned.


Some unbiased render engines are :

  • Arion

  • Arnold

  • Cycles

  • Indigo Renderer

  • Kerkythea (Hybrid)

  • LuxRender

  • Mantra

  • Maxwell Render

  • Mental Ray (Optional)

  • Octane Render (GPU)

  • VRay (Optional)


  • The resulting quality is 99.99% dependent on the user's knowledge and skill.

  • In my own experience, biased Redshift is a fast rendering engine, while unbiased Octane gives more realistic results than Redshift. You may need to tweak Redshift a bit more to get the same realism.

  • Arnold successfully gives the feeling of unbiased with its quality. It is the choice of many large production companies.

  • Houdini's render engine Mantra is similar but slow.

  • Mental Ray is no more...

  • If you are using CPU rendering, VRay may be your second choice for its quality. The first, of course, is Arnold.

  • Maxwell is good in quality but slow. The new GPU version can push Octane and Redshift.

Final of the final is that, do not ignore the possibility of this distinction is unnecessary and absurd depending on the work you do. As a matter of fact, after writing so much, I don't feel like I've not wasted my time.

Stay safe.



233 views0 comments

Recent Posts

See All

Comentarios


bottom of page