Based on popular demand, here is a quick step-by-step tutorial to correctly setup a sequence of OpenVDB files in Unreal's Sequencer
, how to use it with the path-tracer, and how to render a high quality movie with it.
I'm really happy to see that the VFX and the offline rendering community has shown a lot of interest for this plugin,
and particularly in the pathtracer mode using the Sequencer
because it allows baking high-quality images and sequences
of images with realtime tools and realtime preview.
As a reminder, only VdbPrincipledActors
are compatible with Unreal's pathtracer.
These actors do not use Unreal materials, they use a physically based hard-coded shader with parameters
exposed directly in the VdbPrincipledComponent
.
You need to install and enable this plugin.
Import any sequence in the editor, please refer to this documentation if you don't know how to.
In this tutorial, I will use Embergen's Gasoline explosion.
I'm only importing the Density
and Temperature
grids, we will not use the Flames
grid.
The first step is to create a new VdbPrincipledActor
.
In our case,
Vdb Density
should link toembergen_gasoline_explosion_a_seq_density
Vdb Temperature
should link toembergen_gasoline_explosion_a_seq_temperature
.
In general cases, Vdb Density
is mandatory but Vdb Temperature
is optional.
Temperature will not be sampled if not defined. For example, Clouds don't use Temperature information.
Most VdbVolumeSequences
will start with an empty or very small volume on the first frame.
I recommend offseting your sequence so that you can actually see your volume.
It is configurable in the Playback
panel, with the Offset
parameter.
Once you can see your volume, you will probably notice some issues with the volume orientation.
Unreal uses a different coordinate systems than most other Digital Content Creator tools.
Your imported VDB files will probably be rotated or flipped,
use the Actor Transform
to fix orientation.
Enable your pathtracer, following Epic's instructions.
Depending on your volume type (smoke, fog, cloud etc.), tweak the rendering options available in the component,
mostly under Principled Volume
.
It is now time to create a sequence to be able to control the animation, using the Sequencer.
We can now add (Track
in Unreal terms) our VdbPrincipledActor
in the Sequencer
.
When adding a Track
on your VdbPrincipledActor
, you can simply select Tracks/Vdb Sequence
,
as explained here.
This tracked sequence will drive all Volumes sequences from your Actor.
Your Sequencer
should now be working, and you can use the timeline to browse through the animation.
Warning: There is currently an issue where changing frames in the sequencer doesn't reset the pathtracer view. I've informed Epic and they fixed it, but it's not available in the current release yet, hopefully in the next one.
To finalize the Sequence
, you need to add a Cinematic Camera
(choose the one you prefer).
Place the camera correctly in the world so that the VDB sequence fits in the frame.
I recommend using the Pilot
option to easily move the Camera and see the results live.
Then add (Track
) it to your Sequence
:
You are now ready to use and render the Sequence
.
You can now render and bake your Sequence
, for a trailer, a cinematic, a short film etc.
As always, I recommend reading the Epic documentation, especially the section that combines the MRQ with the pathtracer.
Once the plugin is activated, open the Movie Render Queue
panel, and select your Sequence
to be rendered:
For reference, I use these basic settings to bake our example Sequence
.
This is it, you can now render any sequence of OpenVDB (or NanoVDB) files in Unreal, in combination with the pathtracer.
I hope this tutorial was clear enough and will help you set up your own animations easily. I'm always happy to see what the community comes up with, so feel free to share your results on social media !