Share

Input and output data from files

As an alternative to inputting and outputting geometries to the host scene, you can input and output files. This is useful, for example, for caching or rendering on a farm. In addition to Bifrost's object format, there are read_* and write_* nodes for several standard formats.

The format to use depends on the type of geometry:

  • Use the Bifrost binary object format (.bob) for any type of geometry in Bifrost. However, it can only be read by the Bifrost graph.
  • Use Alembic (.abc) for mesh geometry.
  • Use OpenVDB (.vdb) for volumes or points.
  • Use Field3d (.f3d) for volumes.
  • Use PDC (.pdc) for points.
Tip:

You can also try the file_cache node. This node can read and write .bob, .abc, or .vdb based on the extension.

Note that:

  • At least one output of the file node must be directly or indirectly connected to the output of the top level of the graph.
  • You can use the output from the time node to connect to the frame input. In some cases, you may need to convert the frame value from float to int using to_int, or convert frame_step to a frame rate using one_over.
  • To include frame numbers in file names, use the token #. Use multiple characters for frame padding, for example, #### for 0001, 0002, etc. You can also use @ instead of #.
  • When specifying properties to include, you can either list them explicitly or enter * for all.
  • Directories must exist already.

Writing files using batch execution

Batch execution lets you write out cache and other files without the risk of accidentally overwriting them. This process uses the write_state job port, which is managed by Bifrost and set to true during batch execution.

It requires some preparation in your graph:

  • If you are using file_cache nodes, set their mode to the new Write State Mode.
  • If you are using write_* nodes, use if nodes to execute them only when the output of write_state is true.

save files to disk when write_state is true

To write files using batch execution:

  1. Choose Edit > Batch Execute.
  2. Specify the time range.
  3. Click Execute. The write_state job port is temporarily set to true while the files are being written.

specify the time range for batch execution

You can cancel batch execution in progress by choosing Edit > Cancel Batch Execute.

Warning:

Note that wedge_cache nodes always write during batch execution so be careful if there are any wedge_cache nodes in your graph.

Was this information helpful?