Atmospheric and volume rendering improvements

Atmospheric and volume rendering improvements

Written Sunday 5 Jan

Recently the Indigo users Yonosoy and CTZn have been pushing the limits of Indigo in terms of procedural terrains and clouds, all rendered with Indigo's powerful and accurate atmospheric simulation.

(See the forum threads here: and here:

Something I find remarkable is that the scene file that produces the image above is just 17KB, and contains only about 40 lines of Indigo Shader Language code. Yet a very lifelike and complex image is produced.

Their work has inspired me to improve Indigo's support for volumetrics and atmosphere rendering even more.
As a result Indigo's next version will be able to render extremely complex volumes faster and more accurately than before.

As an example, this image is a test of something called pyroclastic noise, which can be used for rendering volcanoes, explosions, and cumulus clouds among other things:

This pyroclastic noise should be useful for rendering clouds. These were rendered with another technique:

Indigo renders such images in a completely unbiased way, with multiple scattering etc..

I've improved the accuracy of the atmospheric simulation in Indigo by adding ozone absorption, which lends a nice blue colour to the sky around dawn and dusk. In this render the sun is directly behind the camera. You can actually see the shadow of the earth (the dark band above the horizon). The ozone in the atmosphere preferentially absorbs the longer wavelength visible light, giving the higher elevation sky the bluish colour.

With ozone:

Without ozone:

Note that all the colours in the images above come directly from the laws of physics, and from the measured scattering and absorption profiles of atmospheric gases and particles. None of them were 'put in by hand'.

These improvements will make their way into a new Indigo beta soon, I'm looking forward to what the talented Indigo users can do with them.