What is a volumetric cloud in UE4? It’s a primitive with some cloud texture on it? How does it work

Volumetric clouds have 3 dimensions, not like regular cloud solutions such as skyboxes or HDRIs, which are 2d images.

There are several ways you could try to create a volumetric cloud, but in my research I used Ryan Brucks’s method of raytracing a volume texture.

This method is also inspired by the Guerilla’s paper on the subject.

It uses a custom raymarcher and in-engine generated pseudo-3D textures.

The raymarcher steps from the camera through a primitive (in this case a box) and samples the value of the 3D noise texture to build up an alpha, this alpha is then used to calculate lighting

In your research you’ve used a lot of the stuff from Guerilla’s presentation. Can you talk about the core points?

The paper by Guerilla’s Andrew Schneider definitely was the main inspiration for my research project. They describe the entire thinking process of how they got the results they wanted and why they did it that way.

Basically, most of the techniques they tried with Houdini were way too heavy for in-game use, so they ended up using a raymarcher, and custom layered noises and gradients to build up the different types of clouds, as well as color-ID maps to spawn different types throughout the map. They used a lot of math and real-world variables such as humidity and temperature to try and make their system as realistic as possible.

I think it was interesting for me to try and follow the path they took. To see what kind of problems they ran into, and how they got around them.

What way do you achieve the volume here?

These are the results of the raymarching shader with different volume-textures as input. Since UE4 doesn’t support true 3D textures, a workaround is used. The volume gets sliced vertically, and the slices are stored as frames in a SubUV texture.