Skip to end of metadata
Go to start of metadata

Pool caustics in Arion v2.5.0 and greater.
Pool caustics in Arion v2.5.0 and greater.

 

Using Arion v2.5.0 and greater, you can easily solve one of the most problematic cases for unbiased rendering: caustics through dielectrics.

In this tutorial we will see how to optimize a scene for efficient sun caustics behind a dielectric. In this case, we will focus in the particular case of underwater caustics.

All images presented on this page were rendered for just 2 minutes on a dual GTX TITAN computer.

If you render the scene above with the default path tracing sampler, this is what you get after 2 minutes:

 

Raw Path Tracing rendering after 2 minutes.
Raw Path Tracing rendering after 2 minutes.

 

As you can see, even though the Arion core manages to pickup caustic samples with regular path tracing, the render time to reach full convergence can be presumed to be too long to be practical.

The first action that can be done to improve the rendering speed in such scenario, is to switch to the Metropolis sampler (MLT) in the engine's properties:

 

The Metropolis sampler (MLT).
The Metropolis sampler (MLT).

 

This will instanly boost difficult light path performance by several orders of magnitude, at the expense of being slower for easier paths and materials like lambertians.

 

Raw MLT rendering after 2 minutes.
Raw MLT rendering after 2 minutes.

 

The result is much better now, and the render time to achieve a decent degree of convergence becomes very reasonable (This particular example is ready in about 10 minutes if you let it compute).

But we can do better by sacrificing a very small amount of physical-correctness. To do so, we will artificially increase the sun diameter.

Go to the physical sky dialog and look for the setting called Diameter. The default value is 0.53°, which is the spherical angle of the sun as seen from earth. Let's pump up this value to 1.5°, which greatly increases the chances of light paths to reach the sun ball:

 

The sun diameter setting.
The sun diameter setting.

 

This will again, greatly improve the engine's performance on those particularly difficult light paths, by providing an even cleaner image for the same render-time:

 

The pool caustics rendered with a custom sun diameter.
The pool caustics rendered with a custom sun diameter.

 

As you can see very clearly on the edge of the pool's shadow, the sun is now larger and softer. This affects everything in the scene, including the caustics, which become a tad blurrier than before.

 

This render in itself is a great achievement, but can it be even faster? Yes, it can. We can make this pool render about 3 times faster by selecting the water material and increasing its roughness value from 0% to 3%:

 

Water's material roughness
Increasing the water's roughness to 3%.

 

Thanks to Arion's bi-directionally integratable rough dielectrics, increasing the roughness by the slightnest amount improves the rendering speed by orders of magnitude:

 


Sun diameter = 1.5° and water roughness = 3%.

 

These settings (sun diameter = 1.5° and water roughness = 3%) are the maximum recommended settings to keep the visual aspect close enough to real look of water and the sun. If you can afford the computational power to use lower settings, like sun diameter = 1° and material's roughness = 2%, we encourage you to do so.

Unless it is the desired effect, try to not use too high settings. A too large sun diameter will result in much blurrier caustics, like on this render using a sun diameter of 5°:

 

Too large sun diameter.
Too large sun diameter.

 

In the same fashion, if you use a too high roughness value for the water, the caustics will get blurred and the water surface shading will look like plastic:

 

Too high roughness value.
Too high roughness value.

 

Do not hesitate to play with these two crucial settings to improve your sun caustics performance, and always try to find the ideal ratio between both to maintain image quality at the speed that suits your needs.

Finally, a tad of dispersion can be added so water displays slight color fringing as in a real swimming pool.