In the development of 'Around The World,' a game focused on maritime exploration, Thomas ten Cate has been refining the visual fidelity of the sky and clouds. A primary challenge involved simulating how light interacts with clouds. Using a lookup table (LUT) from the Povray renderer, ten Cate initially found that the clouds lacked the proper brightness at their base. He suspected that Povray did not simulate multiple scattering—where light bounces between particles multiple times—and confirmed this by writing a custom multithreaded recursive Monte Carlo ray tracer in Rust. The new data showed that with multiple scattering, light is distributed more uniformly, removing a 'metallic' look and making cloud bottoms appear significantly brighter and softer.

A rendering of clouds using an older lookup table showing a metallic appearance.
Clouds rendered with the original lookup table, which lacked proper multiple scattering.frozenfractal.com

This image illustrates the initial challenge where clouds lacked proper brightness and had a 'metallic' look due to the lack of multiple scattering simulation.

A rendering of clouds in the game engine with updated lighting data.
Clouds rendered with the new data, showing more uniform light distribution and softer bottoms.frozenfractal.com

This image demonstrates the improvement after implementing a custom multithreaded recursive Monte Carlo ray tracer to simulate multiple scattering.

To achieve realistic coloring, ten Cate addressed how clouds receive indirect light from the surrounding sky. In the Godot game engine, indirect light is typically sampled from environment cube maps based on a surface's normal. However, for clouds, a downward-pointing normal (towards the ground) results in little indirect light at the bottom. By tweaking the normals to point upward toward the sky, the clouds began to adopt a blueish hue from the atmosphere. This also improved sunset rendering; by mixing red direct sunlight with blue indirect sky light, the clouds achieved a pinkish hue that more accurately reflects real-world atmospheric conditions.

Several technical 'hacks' were also employed to correct rendering artifacts. To fix an unnaturally yellow horizon caused by the order of operations in the raymarch (where outscattering was applied before inscattering), ten Cate reversed the sequence to reduce excessive attenuation. Additionally, because the game's planet is 75 times smaller than Earth, the horizon curves more sharply, causing the sky shader to create a dark band where the atmosphere's density appeared to increase toward the planet's center. He corrected this by adding a small value to the vertical component of the global view vector before re-normalizing it, effectively 'pulling down' the sky to align with the physical horizon. Finally, he implemented a Filmic tone mapper with a white point of 2.0 to manage high dynamic range (HDR) values, ensuring clouds fade smoothly into the distance without becoming oversaturated.

A blue sky that fades to a distinct yellow band near the horizon.
An example of the unnaturally yellow horizon caused by the incorrect order of raymarching operations.frozenfractal.com

This image depicts the rendering artifact caused by applying outscattering before inscattering in the raymarch sequence.

A blue sky that fades to a whiteish hue near the horizon.
The corrected horizon after reversing the raymarching sequence to reduce excessive attenuation.frozenfractal.com

This image shows the fix for the yellow horizon artifact by adjusting the order of operations in the raymarch.

A scene with a sun low in the sky and a solid patch of pale yellow in the sky.
A scene showing the sky before the implementation of the Filmic tone mapper.frozenfractal.com

This image illustrates the high dynamic range issues before the Filmic tone mapper was used to manage HDR values.

A scene with a sun low in the sky and a smooth gradient near the horizon.
The final result using a Filmic tone mapper to ensure smooth transitions in the distance.frozenfractal.com

This image demonstrates the final result of the Filmic tone mapper, ensuring clouds fade smoothly without oversaturation.