USD-Based 3D Compositing (Beta)

We’ve added a new USD-based 3D system in Nuke allowing you to efficiently work with modern 3D scenes at scale. The new USD architecture brings Nuke’s 3D in line with modern standards and introduces a dedicated scene graph, new path and masking workflows, over 40 nodes, and new USD-based workflows.

We’ll be continuing to develop the new 3D system and, to ensure you don't lose access to any workflows you're used to, the new system will work in parallel with the classic 3D system. We want to make a Nuke that works for you which is why this is a beta feature with a dedicated forum for feedback as we want to shape the future of 3D compositing in Nuke with artist feedback at its core.

Join us to help develop the future of 3D compositing workflows in Nuke: https://community.foundry.com/discuss/nuke3d

Overview

These topics explain how to set up a 3D scene in Nuke's new 3D system and how to add objects and cameras in the 3D workspace. You’ll also see how to texture objects, transform objects and cameras, and render out scenes for use in other areas of your script.

The 3D workspace has many potential uses, such as projecting textures, deep compositing, particle systems, and pan-and-tile scenes. Pan and tile scenes with 2D image planes arranged into a curved shape, and then rendered out through an animated camera to give the illusion of a seamless environment.

Simple pan-and-tile scene.

The 3D nodes in Nuke appear as rounded shapes to differentiate them from nodes that perform 2D operations. You can mix 2D and 3D objects together in the node tree to create scenes. For example, you can texture a 3D object with a 2D clip or generator such as the Checkerboard node, or take the rendered output from a 3D scene and use it as a 2D background.

Note:  You can't mix nodes from the new 3D system and classic 3D system, though there are a few notable exceptions to this rule, like CameraTracker and DepthGenerator. New 3D system nodes are red by default and classic 3D nodes are green.

A Nuke script with 2D and new 3D nodes.

For a full list of new 3D system nodes and links to reference documentation for each node, go to New 3D System Nodes (Beta).

Improve Pipeline Flexibility with USD Python Bindings

Nuke exposes Pixar's USD Python API allowing you to manipulate USD data directly through Python, giving you greater control over how you work with USD data in Nuke and more flexibility when building your USD-based pipeline tools. The API can be used in any Python script and in Nuke’s Script Editor directly by calling:

import pxr

For more information on how to use Pixar's USD Python bindings, please refer to their official USD documentation: https://openusd.org/release/index.html

Custom USD Versions

To change or modify the USD version within Nuke, it can be accessed in its own subfolder, which has the same structure as a USD build.

Tip:  You can set an environment variable to make swapping between different USD versions with Nuke easier.

For setting up your own Custom USD version with Nuke, please reference the Readme.md in the following Nuke directory:

/source/FnUsdShim/Readme.md which is found next to the Nuke executable.