John Payne John Payne

Real-Time Volumetric Clouds, Houdini 20 plus Unreal Engine 5.3

Unreal Clouds, John Wade Payne, 2024

Rendering 3D volumetric clouds has always been expensive in CGI. Older solutions involved rendering 3D clouds as a still and then populating those stills as 2D cards in a 3D scene. But what if you have a shot with parallax that gives that trick away? What if the Director wants to change the camera or lighting in the shot? You may have other volumes you need to render in 3D, like explosions or smoke and the last thing you need is to re-render the clouds.

Well I have some good news...

Unreal Engine 5.3 now supports vbd's (voxel data base) a widely used format for storing volumetric data. It was developed by Ken Museth, Peter Cucka, Mihai Aldén, and David Hill at DreamWorks animation. Unreal’s implementation now allows for the creation of real-time realistic volumetric effects such as clouds, smoke, fire, and fog. But the stock volume materials included with Unreal Engine are limited. What if you need fine control over the look and shape of those volumes?

Enter Houdini 20, which has shipped with a completely new cloud system. Individual cumulus style clouds can be sculpted using primitive spheres while an entire 3D sky volume can be generated with a Sky Box. Houdini can then write out those volumes as vdb's to be imported into Unreal Engine 5.3.

Houdini's cloud shape generator SOP

Houdini's Sky Box SOP, Open GL shading

What’s even better is Houdini’s PDG toolset can be used to automate the generation of multiple cloud shapes with different seed values. A TOPS network can render a thumbnail of that cloud, export each cloud as a separate vdb and then combine those individual thumbnails into a contact sheet.

Contact sheet rendered with Houdini's Top network utilizing Imagmagick

Creative Directors can then easily choose from possibly 100’s of candidates for the hero clouds in a shot. The real power of Houdini and Unreal is the ability to tweak the look of those clouds in real-time. Whether it’s adjusting the position of the sun in a shot or enhancing an existing HDR backdrop with 3D clouds, Unreal Engine provides stunning results in real-time.

Volumetric cloud material in Unreal 5.3 using my own custom shader

Images rendered with a single RTX 3090

While Unreal Engine is primarily designed for games, the new Lighting technology “Lumen”, offers real time rendering fast approaching the quality of GPU renderers like “Octane” and “Red Shift”. Lumen is Unreal Engine 5's fully dynamic global illumination and reflections system, rendering "diffuse inter-reflection with infinite bounces and indirect specular reflections in large environments".

Real-time volume clouds in a shot from "Caribbean Dreaming" John Wade Payne 2024

Unreal 5 can render sequences in 16 bit linear .exr with multi-sampling antialiasing. And though this is not quite real-time, with my 1920 x 1080 frames taking about 3 seconds each with 32 samples, it's still blazing fast. Psyop’s Cryptomatte plug-in is also available for Unreal and works perfectly, allowing for the color correction of specific elements in the scene.

Color correcting the .exr sequence with embedded object ID's using Davinci Resolve Fusion

For cinematic environmental and effects shots, the combination of Houdini and Unreal offers quick iterations and the possibility of real time interactive sessions with clients and creative directors. Using Houdini’s PDG tool-set and Unreal, visual effects designers will be able to quickly present a variety of different volume simulations, with different looks and lighting setups. Games, VR and Ar using Unreal will also benefit from Houdini’s industry leading volumetric tool-set, with more realistic fog smoke, clouds and fire. The ability to render volumes in real-time with this level of this quality is truly groundbreaking.

Unreal Engine 5, not just for games anymore…

Check out Houdini 20’s new cloud tools:

https://www.sidefx.com/docs/houdini/news/20/clouds.html

More information on OpenVDB:

https://www.openvdb.org/

Unreal Engine 5.3, importing vdb's:

https://dev.epicgames.com/community/learning/tutorials/4Vyj/import-vdbs-into-unreal-engine-5

Read More
John Payne John Payne

Pixel peeping Houdini’s new Karma renderer

3D assets from Adam Swab

Now that Houdini’s new Karma renderer is out of Beta I wanted to see what it could do. Working through Adam Swab’s fantastic Houdini Solaris workshop gave me a chance to test it on a sample shot and I was impressed by Karma’s speed and quality. Working through Adam Swab’s fantastic Houdini Solaris workshop gave me a chance to test it on a sample shot and I was impressed by Karma’s speed and quality.

https://youtu.be/Tvj2XklNEX4?si=7HfZFij3BzMQdqWt

I wanted to see how Karma might compare to Arnold so I converted the materialX standard surface shaders to HtoA 6.2.5.0 and rendered with the same samples to see what the render times would be like.  Here are the results using Karma XPU, CPU and HtoA, rendered 1280 x 1280, on a AMD Ryzen 3970X (32 core) with a single NVIDIA RTX 3090.

Karma CPU

Karma XPU

Arnold 6.0

Karma CPU with Optix Denoiser

Karma XPU with Optix Denoiser

Karma CPU comes in at 1:16 a frame versus HtoA’s 1:36 and looks great.  Even better is that Karma’s XPU (GPU renderer) clocks in at blistering 0:38 and is virtually identical to the CPU renderer.    SideFx has made tremendous strides with the release of Houdini 20, Solaris and Karma.

Technical notes:

I’m lighting using OCIO ACEScg with a “ACES 1.0 SDR Video” view transform.  This comes standard now in Houdini 20.  The motion blur is vector based and gives a nice result. I love that the Karma’s Denoiser is a one click affair. I noticed that the specular IOR fresnel roll off was different between the material X shader and HtoA’s standard surface shader using similar settings.

Read More