A French technical artist talks working on jaw-dropping clouds.
Hi everyone, my name is Camelia Slimani, I am a French technical artist. After graduating with a bachelor degree in Sciences and Industrial Technologies (Electronic Engineering), I studied art and programming in two different schools: a DUT named “Métiers de l’Image et de l’Internet” (MMI) in Bobigny, then a Master “Arts et Technologies de l’Image” (ATI) at Paris VIII University, which is a 3D French public school in Saint-Denis.
Eight months ago I started working as Pipeline Technical Director at Brunch Studio, based in Paris. My role includes developing tools through determining the best technical solution for each need. As a developer, I work on all projects in the studio. One recent highlight was contributing to the creation of volumetric clouds on a short movie that will soon be out.
Could you talk about the way you are approaching the creation of the volumetric clouds for your projects? What should developers remember about clouds if they want to model them for their projects ?
Clouds are for me an exciting subject which opens doors to many areas like meteorology, physics, optics, art – not to mention computer graphics for animation movies or video games. This wide variety of factors leads a lot of researchers and artists to think about the best way to reproduce this natural phenomenon.
Being obsessed with creating photorealistic and volumetric clouds, I’ve been doing a lot of research and experimentation for almost two years. I started with some tests in Houdini thanks to an online tutorial shared by SideFX, which explained all the steps to create volumetric clouds with the Cloud FX Tool.
All of these skills are practiced as part of my studies on some group projects like a 360° project, rendered with Arnold in Maya, where we are above clouds with mountains, trees, dragons and everything is seen from a VR headset. We just have 3 weeks to do this project. The first reflex to generate clouds was to make a script in Python which takes some pattern of clouds on scene and instantiated it on a grid. Based on the subdivisions of the grid and parameters which will be used to vary the local position and the space between each cloud, I tried to avoid the repetitive side of clouds.
Everything in this project was presented to TeamTO – an animated studio based in Paris – for an internship, which was how I defined my subject. The goal of this internship was to think about the integration of Houdini in the practices of the Research and Development (R&D). After the hard work, in the end I realized how this subject requires more thorough studies, which is why I decided to make it a research subject for the last year of my Master’s degree.
Tests done during my internship at TeamTo
After all of this research and experimentation, I now have a good grasp of what works (and what doesn’t) with volumetric clouds. I tested different techniques but, in my opinion, a cloud’s shape is more realistic if it’s aspherical and non-smooth. However, the look, the edges, the aerial aspect, the differences in density and many other parameters are not matters to be neglected. To repeat a slogan of mine, observation is the basis of everything. A cloud isn’t just a volume on which we add noise, you need to work on all the details.
On the technically side, clouds can be scripted in many languages like C++, GLSL, OpenCL for example. It’s a good solution if someone wants to do it totally procedurally. For people who are a little bit curious, Inigo Quilez made a shader using WebGL on ShaderToy, which uses raymarching and level of detail (LOD) for faster rendering. My goal is to obtain photo-realistic volumetric clouds in real-time which can be easily adapted by needs.
You’re using Houdini for the clouds production. Why do you choose this particular software? How does the whole production process look like in this case?
Indeed, I searched for a faster way to create clouds. Based on a model, I transform it to a volume (VDB) thanks to the Cloud node. I add two other things: Cloud Noise to add details by deforming the volume and Cloud Light to colorize and illuminate it. The Cloud node manages density, quality of the volume and many other optional features. The Cloud Noise is able to apply deformation to the volume, this is the most important step to have a cloud like appearance. The Advect tab adds additional noise offset to the main noise in order to create finer details. In most cases, I use the Cloud Light node to have an idea of the final look of the clouds.
Once the clouds are done comes rendering step. It is possible to render clouds in default render engines, thus, after assigning the shader Cloud to your geometry, all the parameters of the Cloud Light node will be taken into account. Rendering clouds on another software is possible by exporting the volume in VDB. OpenVDB is a file format which saves all voxels data composing on the volume.
The image above is the final result of a shot of my last student project “Avec moi” rendered in Guerilla Render. The lighting of volumetric elements can be done in different ways, like RGB Lighting which needs to composite your image after rendered. Or in a classical lighting, so you don’t absolutely need to do compositing.
At TeamTo, on the cloudscape showed before, I used the technique of RGB Lights, but I really wanted to be closer to the natural/physical lighting system of a cloud. So for this project I decided to render clouds and have the final result at the same step. I just used one directional light (corresponding to the sun) and a second light, which is the same as the first one, with pinkish-orange color and more diffuse.
Could you discuss how the procedural technology helps you during the production? What are the advantages that Houdini give you with your designs?
Creating volumetric clouds is not linear, that means when you work on the cloud effect, it is possible that you have to modify the shape in input. The simple task of having the result volume in real-time when I am modifying or deforming the geometry is very interesting and saves me a lot of precious time. It is possible to work on a low volume quality and when the result is pleasant you just have to increase the quality. Instead of just waiting after each modifications, you can work and change whatever you want without losing time and energy. I think It’s really important to not be limited by the software or tools.
How do you approach the creation of such complex entities as clouds?
In my experience, the more you observe clouds the better the result. My process shows you don’t have to be an expert in modeling to have interesting details. The geometry and the deformed volume are complementary, so it’s not necessary to have the perfect geometry. For example, Peng Zhang did amazing work with volumetric clouds rendered in Houdini. We can see that the shapes are totally deformed and not smooth. Also, we can refer to the famous quote written by Mandelbrot: “Clouds are not spheres, mountains are not cones, coastlines are not circles, and bark is not smooth, nor does lightning travel in a straight line”. I am surprised because I really think the same.
For me, a cloud is a natural element which is great and beautiful to see. The “feeling” or “vibe” is very important.
The most efficient way to make clouds is to choose the best technique depending on your needs. A professional matte painter advised me to make them in a matte if:
- camera is not too close
- there isn’t collision with object
- the camera doesn’t go through it
But I am sure, however, with the actual technological progress we can imagine to have full volumetric clouds in a project, like Pixar did in the movie “The Good Dinosaur” with their incredible volumetric clouds. That’s why I really want to do a PhD thesis on this subject.