Self-Illumination versus direct lighting

Last updated 2019/01/04

The problem

Every 3D artist who is using downloaded 3rd party assets has probably come across a plethora of problems like render artifacts, massive increase in render times or excessive noise that seem to pop up for no reason and have somehow appeared after merging a blender into the scene. There are plenty of things that could go wrong; one of the most typical setup issues, however, is the incorrect use of self-illumination.

The cause

We've got two teapots. The left one is regular geometry with a self-illumination shader on it. No direct light is emitted from this object. The right teapot is a mesh light - in this case, a VrayLight (but the details are dependent on the renderer). So the right teapot is appearing in the direct lighting pass whereas the light of the left teapot is appearing in the global illumination pass. So far we can't really see any difference in our image. Both seem to do the same thing.

Left: self-illumination, right: direct lighting

This, however, changes dramatically when we shrink the teapots and adjust the emission to compensate for the smaller surface area. The left self-illumination teapot produces a horrible mess of noise whereas the right direct lighting teapot looks as smooth as we expected.

Left: self-illumination, right: direct lighting

Analysis

The issue here is that the self-illumination is sampled by global illumination rays. GI rays are not targeting the teapot specifically. They are fired in all directions equally. The smaller the teapot, the smaller the chance to hit it.
The direct lighting teapot, however, is sampled by shadow rays that are aimed specifically at the light sources, so we always hit the teapot (or a shadow casting object in front of it). The smaller chance of hitting the self-illumination teapot manifests in noise.

global illumination sampling of self-illumination objects

direct lighting sampling

The main takeaway here is to use self-illumination only for dimly glowing objects. The higher the intensity the more noise you will get. Any glowing object that is sufficiently bright should be either using direct lighting (depending on the renderer) or be excluded from global illumination to prevent noise.
There are differences in the handling of self-illumination in different render engines, so make sure you check the documentation of the software you are using.