Codrut Bolborojan shared his thoughts on creating realistic CG-clouds.
My name is Codrut Bolborojan and I live in the beautiful city of Timisoara, Romania. At first, I want to mention that I took directly SideFX Houdini path from 0 ground. All the work/RND/projects are done using Houdini and rendered with Redshift, Mantra, and Arnold. Throughout the projects, I am responsible mostly for, let say, the technical part, while rendering is something I am still learning. However, Houdini is endless, and the learning never stops.
Here are some renders for some projects I really love.
Bottom line, I do freelance work in Houdini, mainly particles sims and smoke sims – user-ready setups, and I am available for collaboration or projects. As a next interest area of the focus for me would be 3D integration (integrating all mentioned effects in real footage for a film). I hope that I can share later on some awesome results with similar quality as the Hero Clouds project.
I will not go forward without mentioning extraordinary people that helped me and are contributing a lot in order to teach others: Saber Jlassi, whom I consider my friend and mentor, and Saul Espinosa – great technical details from “A to Z”.
I am still learning a lot, and I know a little bit about other 3D applications. But from what I am seeing so far in this industry (info, tutorials, RND, new releases), I am planning on sticking with Houdini for a very long time, hopefully, forever. You can do everything with Houdini – oh well, I need to use camera tracking outside of Houdini for my upcoming project, maybe will see this tool in Houdini as well in the future.
The additional strength is that if you want to improve your time management and increase the overall work effectiveness, then Houdini is the right way. I will put together some very useful tutorials links at the end of the article, which I consider “100% must watch no matter what”.
As when I started, it was 3 years ago, when I did some research about some CG explosions and I came across some amazing renders. It was Houdini, then I was starting to “investigate”, what is Houdini. I have read a lot in the forums and articles, where people were complaining that Houdini is node-based, 180 turn from the other apps out there like 3dsmax, Cinema4, etc., needs years of a steep learning curve and so on. Considering this and seeing prior the renders, I considered that this is the app for me, so I jumped in. I can confirm that indeed at the beginning it is quite hard to follow the logic, but after several months, all made perfect sense. After 3 years I am still finding difficult some parts, but everything comes like a glove for the things I experienced.
As a conclusion, I am very happy that I chose Houdini. The community is also great, and this makes it even better. Congratulations, Houdini Team.
Gathering the Reference
Indeed, the clouds are awesome. You can also take a look at them in the Gumroad VDB Clouds Pack Link.
What I want to mention before is that I always look with a very critical eye on my projects, especially, that we are surrounded daily with impressive renders all over the CG environment. I always loved, how these clouds look in real life. In the beginning, I was not able to get so close as I was lacking experience. Now, I must say that this project iteration looks the way I wanted it to look when I was first starting doing VDB clouds inside Houdini. For me, this might be the endpoint for individual clouds procedural generation. These clouds are very detailed and very realistic cumulonimbus type of clouds. When I have more free time, I will go for a scene setup of course.
When I started building the clouds, I was gathering lots of reference picture from the web, but also I was taking pictures while traveling. In the beginning, I was skipping this part of gathering reference data, but over the time, I realized that this is a very important step when doing CG, as it will help you avoid making mistakes such as scale, positioning, transforming over the time, etc. Once again, my advice is that never ever skip getting reference pictures/footage related to your upcoming projects.
As for the goal, you already know I wanted the clouds to look realistic. I have done in the past some stratus clouds but after this, I wanted to create cumulus clouds. I call them “Heroclouds”, btw I forgot to mention that if you are doing clouds, you should check these links.
The Cloud Generation in Houdini
Houdini is magic, indeed. I would say that I have built custom solvers to generate this type of clouds (stratus and cumulonimbus). The process for stratus clouds is the following: generate base shapes, apply multiple noise layers and then vary the density throughout the cloud. After these steps, we will low res render hundreds of clouds and, then, we will eyeball the nicer ones. After this, we will high res render the best ones.
The trick is to know how each node affects the geometry (in this case the VDB volume). It is very important to have in mind, how all the Houdini noise types look and estimate how it will affect the volumes. Anyhow you need to spend a lot of type “playing” with the parameter until you have the right look. In my opinion, if you don’t already have the assets or previous projects, it will take a lot of time and is very important – parameter tweaking. So don’t be discouraged.
As for the cumulonimbus type, I think one of the most important parts is the source density, which can have different form and, then, of course, you will get different results. The simulation doesn’t need to be that complex (I over complicated a bit, but it is not 100% necessary). Here is the same, wedge the parameters and scout for the nicer ones. I forgot to mention that I was not using the inbuilt tools. You can achieve, I guess, nice clouds with these tools, but somehow I felt more comfortable trying to have it like described earlier.
As an additional tip, try to combine the simulation with sop noises in order to get the more interesting shape and brake the doll areas of the clouds. You can affect the entire cloud or sample just some areas of the initial cloud, where you want to apply the noise.
Some Extra Tips
I think that partly I covered this question earlier, but, nevertheless, here are some additional details. The shape is just a geometry variation. You can art directed easily and modify the final look, accordingly. As for the color for me, the HDRI was having a big impact on the final look. Then, you need to play with the parameters in the shader: density, scattering, shadows, etc. In the end, it is a matter of adjusting the values, until you are close to the reference image. If you are talking about complexity, you can see that the clouds have no doll areas. I would say that this is an important part of being a complex cloud. However, if you’ve analyzed real clouds, you know for sure that there are some crazy awesome shapes out there. To achieve an interesting cloud, in my opinion, you should have the following: high res version/high voxel count, interesting HDRI for env light and, of course, interesting shape. The high res voxel count is needed in order to capture as many details as possible. This can vary based on distance from the camera and needs to be balanced, accordingly.
For volumes, I really love Mantra and Arnold. As mentioned already in the introduction, I am not doing so many renderings. When I do, I use Redshift (especially for particles), but, for volumes, I prefer Arnold or Mantra. At the moment I am not able to achieve the same look in Mantra as in Arnold and vice versa. Here are some examples of Mantra and Arnold.
To be honest, I didn’t do any custom crazy stuff in the shading. I was using standard fireball shader for mantra and volume collector for Arnold, where I played with the parameters. As a conclusion, I would not say one is the best, and the others are not good. You need to do it with the renderer, which works best for you: maybe you have at your disposal a CPU farm and then you can easily iterate with Mantra. Maybe you like more the look Arnold is giving. Maybe you have time only for Redshift renders…Maybe, maybe. You need to make the right choice, which will work for your project.
Optimizing the clouds for games
I lack the experience for this topic, but I assume, we can down res our high res clouds until we are not seeing the details anymore. Also, some mipmapping techniques would help. I would try also to render individually the clouds and offset 2D images in 3D space. This might work based on the camera position.
Here are some progressive dow res clouds (going from 0.01 to 0.1 voxel size). We can see that the speed is decreasing quite a lot for the last one, but we are losing quality.
For this topic, I am interesting hearing other opinions from more experienced artists.