Fireflies caused by the sun from the Physical Sky
This scene consists of a boat model on a plane that represents the sea. Both models have Standard shaders assigned to them. As you can see in the image above, there are many 'fireflies' in this scene. In this situation, they are caused by the bright sun disc from the Physical Sky shader that is connected to a SkyDome light. This kind of noise is difficult to remove by simply increasing the number of samples in the Render Settings. However, there are several ways to overcome this type of noise. We will work through some of these methods below.
We can instantly tell that they are coming from two places:
- The boat's shader, which has some specularity.
- The sea's shader which has some reflectivity.
When rendering out these AOVs the fireflies are clearly visible:
In some situations, increasing the Specular Roughness may help to reduce fireflies as it is effectively creating a larger, softer specular hi-light. Increasing the Specular Roughness of the Standard shader that is assigned to the boat reduces the number of fireflies. However, in this instance, there are still some fireflies evident when using this method.
Due to the almost mirror like surface of the sea shader we are getting extremely high glossy values reflected from the sun onto the glossy sea surface. These high glossy values are very difficult to sample and therefore, in this situation, increasing the number of Glossy Samples does not help to eliminate the fireflies.
A better method is to assign a simpler shader for glossy and diffuse rays using a rayswitch shader.
- Assign a RaySwitch shader to the boat.
- Connect a Standard shader to the diffuse and glossy rays of the RaySwitch shader. Make sure that the Specular Weight is set to 0. This will force glossy and diffuse rays to not evaluate the specular component of the shader, which is the source of the firelies.
- Connect the boat's Standard shader (with Specular Weight) to the remaining attributes (camera, reflection, refraction and shadow).
When we look at the AOVs we can see that the fireflies are not visible:
The images below show the effect clamping has on the fireflies. A value of 1 eliminates the fireflies completely, however it also removes any dynamic range from the render.
An .ass file is available here.