Partio Node

 Click here to expand Table of Contents...


Introduction

Partio is an open-source C++ library, created by the Walt Disney Animations Studio, for reading, writing and manipulating a variety of standard particle formats (GEO, BGEO, PTC, PDB, PDA). LightWave cannot support the BGEO format, but Houdini can save in the older HClassic format that LightWave will understand. To save in HClassic format, just replace the file extension in Houdini.

Node

The Partio node is simple in that it has one output and no inputs. Double-clicking on the node shows more depth:

  • Load Path - Where your particles are located.

    You should place Houdini files in your content directory's GridCache folder to ensure they can be seen by Package Scene.

  • Target - If you are using a volumetric object with the particle system, make sure it is targeted here

  • Start Frame - The frame on which to start the simulation in LightWave

  • Missing Frames - I have Hold (keep the previous frame's contents?) and Blank (leave a gap?)

  • Size - The particle size. If using a grid, it should be 1.5 times the voxel size or risk being missed

Attributes list

Using the Houdini "vocabulary" here. If you have particles from a different source, the names may be different. The fields are fairly self-explanatory with name, type, and depth. A Float 3 is three scalars, a color for instance. A Float 1 is a simple scalar.

  • position - The particle position
  • Cd - The diffuse color of the particle
  • v - Particle velocity. Can be used as a color or for post blurring, for example
  • pscale - The size of the particle

The Partio node has a single output - Particle System. To see these outputs, add an Additional > ParticleInfo node.

Because the outputs are dynamically created, if you are not seeing the outputs you expect, make sure that:

  • The ParticleInfo node is addressing the right object (double click the node to check the target)
  • The frame you are on actually has particles. It's not before or after the particles appear
  • You try stepping the frame forward and back to refresh the node, or moving the ParticleInfo node itself

Usage

Once you have exported a stream of HClassic files, you can import them into LightWave using the Partio node. To do so, add a null to an empty scene. Make the null an OpenVDB Evaluator using the Object Replacement dropdown menu. Hit the P button to edit the Evaluator's nodes. Add the Partio node, but you won't see anything until you have chosen from the following:

There are example Partio scenes in the content in OpenVDB/Partio_Node


From Particles

Size in the Partio node should be about 1.5 times the Voxel Size in the From Particles node, sometimes a little bigger. This makes sure the particle spans the voxel cube; smaller and you might not see the particle rasterized.

Using the Partio node with a From Particles node

As Particles

You can go straight from the Partio node to the OpenVDB destination node, turn on particles in the destination node and then just get particles that can be used for other purposes - such as with old-fashioned HyperVoxels.

Don't forget to turn on 'Use Legacy Volumetrics' In the Render Properties > Volumetrics tab

LightWave Volumetrics

You can also use LightWave's own Volumetric objects. Add another null called "vol". Set the vol null Primitive Type to Volumetric. Use an OpenVDB Evaluator Object Replacement in the Partio's Object Properties window. In the Node Editor, add a Partio node and bring in your Houdini HClassic files. Set the Partio node Target to the vol null.

Hook the Partio node directly to the Destination OpenVDB node. This will output a particle system. Add a new null labeled "vol" and make it a Volumetric object. Set the source item here to vol.