Splotches, Blotches and Light Noise "Oh My"

Also available as PDF

I've been meaning to write this blog for some time now, and I finally find myself with two days left in the year, and a house full of family (twenty-one people - "Oh My" indeed!). Sounds like the perfect excuse to hide away in my home office and write this blog entry.

I'll try to present some scenarios where splotches and blotches can occur and what steps can be taken to eliminate them from your renderings. To better understand what causes them, I'll begin with a short explanation on how Luxology's Global Illumination (GI) works.

There are two GI methods that can be used with MicroStation: Irradiance Caching or Monte Carlo. With Irradiance Caching (the default method), the render engine takes accurate samples for a portion of the pixels in the image then blends between them, producing the best combination of performance and quality. Monte Carlo methods sample every pixel at a reduced quality, frequently resulting in a grainier image.

To reiterate, the simplest way to think about Monte Carlo vs. Irradiance Caching is as follows:

Monte Carlo uses a lower quality (fewer rays) sample at every single pixel.

Irradiance Caching uses higher quality (more rays) samples at some pixels and blends them together.

Because of the way the Monte Carlo method operates, there will be significant variance from one pixel to the next - this is what can cause the grainy effect. Monte Carlo renderings must combat the grain effect by increasing the number of rays per sample, sacrificing render performance in the process.

On the other hand, Irradiance Caching will cause the variance to be spread between samples, possibly resulting in splotches when there aren't enough samples. Irradiance Caching offers a variety of options for improving quality while avoiding an increase in rendering time, either by increasing the number of rays used, firing additional rays selectively in problematic areas (also known as supersampling), or increasing the number of samples required to create blend (also known as interpolation values).

Now that you understand these basic terms and concepts, let's look at some real-life examples and the measures we can take to improve them.

Splotchy Test Case

In the following scene, point lights are located in recessed cut areas in the ceiling and, as you can see, rendering them generates a number of splotches. Using a white material for everything in the scene makes it easier to spot the defects or blotches - once these issues are sorted out, I'll add more realistic materials.


Rendered with default "Interior Good" render setup

In this case, the delivered "Interior Good" setup creates an image that doesn't live up to its name, likely leading you to try "Interior Better/Best/Extreme". Unfortunately, this is a case where none of these render setups will solve our problem (as illustrated below).


Rendered with "Interior Good" on the left and "Interior Extreme" on the right

As you can plainly see, even when going from "Interior Good" to "Interior Extreme" and adding in 8 additional bounces of light and 256 irradiance rays, the image still has a good number of artifacts left over. Unfortunately, it also took roughly twice as long to render.

What can we do to improve this? Maybe just use a lot more irradiance rays? That seems like it should help - let's give it a shot... we'll try 2 bounces and 2000 irradiance rays.


Rendered with 2 bounces and 2000 irradiance rays

Well, that didn't help either - looks like adding more rays isn't the answer either. At this point most users would be pretty confused and they would be wisely posting a test case to the Be Communities Visualization forum where they would either get help or advice.

Here's how I would figure this one out from that point: I know that the problem is coming the point lights because they are my only light sources. A potential clue is that this splotchy light noise is commonly seen where a glow material is used and the glow is only seen in a small portion of the view.

Could it be that the point lights being placed into the recesses in the ceiling are causing a similar effect? After some tweaking, I found that this was exactly the problem. By switching to spot lights, I focused the light in my scene downward out of the recess. While spot lights are directional, point lights shoot light in all directions and force a lot of light into the recess creating a concentrated pocket of indirect light.

However, don't let this stop you from using point lights in these situations - we just need to create a special material and attach it to the recess surfaces to prevent this indirect glow light effect. In order to fix our problem, we only need to switch off Visible to Indirect Rays in the Expert tab of Material Editor.



In the image above, you can see that turning off Visible to Indirect Rays for just the recessed portion and not the ceiling surface caused the blotches to be eliminated when rendering with the default "Interior Good" render setup.

Now that the blotches have been cleaned up, let's apply some better materials to make it look like a finished room - we'll even throw in a glow map to simulate a flourescent light in the corner.


Caustic Splotches

Another possible cause of splotches is indirect caustics. Caustics are light effects that can be highly reflective or refractive. A reflective caustic can occur when light comes into contact with highly specular and reflective objects and is bounced off in concentrated beams. A good example of a reflection caustic would be sunlight bouncing off a mirror or glass.

The following examples shows real life reflection caustics - the bright spots that can be seen on the building in the photograph are coming from the sun light that is bouncing off the windows of the buildings that are on the other side of the street.

A photograph of Old Town Stockholm showing real-life reflection caustics

Refractice caustics occur where light passes through a transparent (refractive) media such as glass or liquid. A good real life example would be the patterns of light that can be seen on sunny days at the bottom of a swimming pool.


A photograph showing refractive caustics

As you can see, caustics are not just some cool rendering effect - they're really quite common and we see them every day. However, when rendering with Luxology, indirect caustics can sometimes be distracting and appear as the dreaded splotches. However, as I'll show below, you can easily control whether or not indirect caustics are rendered. As an aside, if you're looking for really high quality caustics, it's best to enable direct photon mapped caustics - this should result in realistic caustics and not troublesome light noise.

Test Case with Mirror

In the following image, I have applied a mirror material to the shape under the glow light. As you can see, I now have a little bit of light noise that was not in my previous render. These caustic blotches appear around the edge of the mirror and can also be seen as spots on the opposite wall.


An example of caustics causing blotches to appear

There are a couple of ways to get rid of this light noise. The simplest method would be to disable the caustics in our render setup by setting Indirect Caustics to none in the Render Setup dialog.


Turning off Indirect Caustics in the Render Setup Expert tab

Another option is to make it so the offending caustic-producing material does not produce any caustics. If you had some area of your scene where you still wanted to see caustics, then this is the better option. To use this method, select the caustic-producing material in Material Editor and turn off Visible to Indirect Rays in the Expert tab.


Turning off Visible to Indirect Rays in the Material Editor Expert tab

In this case, we'll turn off that setting for the mirror material, leading to the result below.



In the following images, the point lights that are used in the light fixtures located above the table were causing a blotchy render. By modifying the translucent glass material that is used for the light fixture's shades to have Visible to Indirect Rays turned off the blotches all but disappear.


Light fixture shade material visible to indirect rays on the left and not visible to indirect rays on the right

Extreme Case (Light at End of Tunnel)

You may also get splotches when rendering scenes that require several light bounces to be illuminated. Imagine a long narrow room (tunnel) with a small opening at one end for sun light. As you can guess, a high number of light bounces would be required to illuminate the opposite end of the tunnel.


Rendered with 2 bounces on the left and 5 bounces on the right


Rendered with 8 bounces on the left and 12 bounces on the right

Rendered with 20 bounces, 512 irradiance rays on the left and 20 bounces, 2000 irradiance rays (1.5 irradiance rate, 20 irradiance ratio) on right

While the above scene depicting light at the end of a tunnel is truly an extreme case for irradiance caching, you can see that the real key to getting light from one end of the tunnel to the other was the number of bounces. For my final render, I also cranked up my Irradiance Rays to 2000 from 512, Irradiance Rate from 2.5 (the default) to 1.5 and Irradiance Ratio from 6 (the default) to 20 to smooth out some of the light noise where the ceiling and floor meet the walls.

You can see that even in the last render there is some unwelcome splotchy light noise. At this point, you could crank up the irradiance rays even further to help alleviate the light noise issues, but the best bet would be to add more source lights or to use more sky lights.

In real life, we don't live in tunnels... but if we did, we'd put in more lights or sky lights. This example was created to show how the number of bounces can affect a render and to show a worst case scene for Irradiance Caching to handle. As you can see in the two images below, the right image with additional sky lights looks much better than the left and took a fraction of the time to render.


Left image: 38 minutes, 47 seconds (1 sky light, 4000 irradiance rays and 20 bounces) Right image: 1 minute, 6 seconds (8 sky lights, default "Interior Good" with 257 irradiance rays and 2 bounces)


Hall of widgets rendered with default "Interior Good" and 8 area lights

As you can see in the image above, using 8 area lights to illuminate the long narrow hallway provides very nice uniform lighting with only 2 bounces of light and 257 irradiance rays.

Summary

To avoid splotches:
  1. Turn off Visible to Indirect Rays for materials used near source lights to avoid the indirect glow effect.
  2. Turn off Indirect Caustics.
  3. Use more lights, and avoid relying on light sources that will need to bounce like those in the tunnel example.
  4. If you do have rendering issues like these and need further help, go to the Be Communities MicroStation Visualization Community.