Working with Cameras in the New 3D System

To work with cameras in the New 3D System, you have several options as an artist.

You can use the Camera node to create a new camera, or bring in camera data from a file or from your scene. When Live Read is enabled, this passes camera data (either USD or Alembic) into Nuke, allows you to work with it and then injects it as a new USD camera prim via Output Prim Path. You can then easily connect a USD camera prim to any node that has a cam input that is expecting an Axis op node, such as ScanlineRender. While the data is read only, updates are more efficient and knobs can be linked via expressions.

See Using the Camera Node section below.

If you are bringing in a scene with a camera already in it, you can use the GeoEditCamera node to edit an existing USD camera.

See Editing USD Cameras section below.

Note:  You can also create cameras via GeoEditCamera, but these are USD cameras with the USD schema and don't have the ability to connect to all Nuke nodes with a cam input.

Using the Camera Node

Creating a Camera

If you wish to create a new camera in your scene, start by adding a Camera node.

Cameras can then be connected to any node with a cam input, such as ScanlineRender. The camera connected to the ScanlineRender node is the camera used for rendering.

Bringing Data In

To bring existing camera data into the node, you can load a camera from file or from prim path:

To load from a file, go to the Import/Export tab, and check to enable the Import From File knob. This allows you to then load a camera from a USD or Alembic file.

To use an existing camera prim, use the Source Prim knob and pick from your scene.

Bringing data into the Camera node allows you to connect that camera to any node in Nuke with a cam input, such as ScanlineRender. The camera connected to the ScanlineRender node is the camera used for rendering.

Using the Camera

Once the camera is created and any data is brought in, the Camera node allows you to work with it and make any edits in Nuke.

Xform Extract Options

When importing camera data, you may be importing a camera which has transformation data on the camera prim itself, but also has transformation data on the Xforms that the camera lives under. These knobs allow you to determine how you work with that data.

Note:  An “Xform” prim stores transformation data that applies to its child prims.

Parent Xform Sync contains the parent transformation data i.e. that extra Axis inside the Camera properties and will automatically update the transformation values based on changes of transformation in the stage. For example, if you move the entire scene using a GeoTransform, these values will be updated while the Cameras local transformation values stay the same. By unchecking this you can break that connection and moving the scene no longer also moves the camera but you still have the transformation data from before the desync baked into the knob values.

Local Xform Sync allows you to sync or desync the local transformation data. When enabled this essentially just loads an imported camera’s transformation and animation data into the local transformation knobs. Whereas disabling this allows you to edit these values yourself, so if you have a camera that you’ve imported with animation data, you can desync the values and then move the camera as you need on a per frame basis. Essentially you have the ability to directly edit the camera’s transformation data.

Combine With Parent If enabled the parent prim xform is combined (concatened) with the local prim xform and placed in the local-xform TRS knobs. When not enabled the parent prim xform is extracted separately and placed in the local parent xform TRS knobs, while the local prim xform is extracted and placed in the local axis xform TRS knobs.

Rotations Euler Filter checks for possible euler flips in the decomposed rotation curves, and removes them.

For more about transformations, see Transformations in 3D Scenes.

Other Operations

You may also wish to use the Projection options when working with cameras. To read more about projections, see Projections in the New 3D System.

To find constrain options, these are on the Position tab. To learn about constraining, see Constraining Prims.

Note:  Full controls and descriptions can be found in the Node Reference Guide - Camera.

Camera Data

You can push a Camera created in Nuke to your USD stage using the Output Prim Path. This creates a duplicate camera that is a USD prim in your stage under a path you have chosen in the Output Prim Path. If this path is left blank, it will create one for you when the camera is connected via GeoScene, and will be named [CameraName]_Inject by default.

Camera injected into stage:

If you have the Live Read knob enabled, any updates you make to the Camera knobs will be updated live and there is no need to manually export it. The Camera node is then able to be connected to other nodes where you want to use that data via a cam input such as ScanlineRender.

Editing USD Cameras

To directly edit a USD camera prim that has been imported into your stage, you can use GeoEditCamera node.

1.   Add a GeoEditCamera node downstream of your imported USD stage.
2.   By default the GeoEditCamera node is set to Edit in the Mode, and All Cameras in the Mask, meaning that any camera imported from your GeoImport will be targeted. You can also use the pick menu to verify which camera is targeted and change this if needed.
3.   The Set From Prim button can be used to get the values of the imported camera and set the knobs to these.
4.   You can then override values if needed. For example, you can use the camera locator in the Viewer with transform handles and snap menu to transform directly in the node. See more at Using Transformation Tools.

Note:  When working with this node (and others in the 3D system) you may see some knobs greyed out with with the icon to the left. This is because the Authoring mode is set to 'No Change' by default. Directly interacting with the knob automatically updates it to ‘Set’ mode and allows you to continue editing as usual. Learn more about Authoring Modes.

Tip:  You can also constrain a camera within the stage using the axis input of the GeoEditCamera and the Axis node. See Using Axis Node in Your Scene.

Tip:  In your scene you can include both USD cameras and Nuke “Axis op” cameras. If further cameras are needed in your scene you can still add new Camera nodes and connect them to ScanlineRender.

Cameras in the Viewer

Both imported USD Cameras and Axis op Cameras have locators in the Viewer to allow you adjust positioning and see your scene in context.

You can also look through cameras in the 3D Viewer. See Look Through Camera.