ReadGeo
Imports geometry from a specified location. You can read in:
• Alembic (.abc) files containing meshes or point clouds. The mesh's vertices, normals, UVs, and vertex colors are read on a per frame basis or at the first frame. Materials and textures are not read in. Any cameras in the file are passed to Camera nodes.
For more information on Alembic, see http://code.google.com/p/alembic/
• FBX (.fbx) files containing meshes or point clouds. The mesh's vertices, normals, UVs, and vertex colors are read on a per frame basis or at the first frame. Materials and textures are not read in. Any cameras in the file are passed to Camera nodes.
• OBJ (.obj) files
• USD (
For more information on USD, see https://graphics.pixar.com/usd/docs/index.html
See also WriteGeo.
Inputs and Controls
Connection Type |
Connection Name |
Function |
Input |
img |
The texture to project on to the imported geometry. |
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
ReadGeo Tab |
|||
file |
file |
none |
Enter the file path and file name or use the folder icon to browse to the required location. Reading .abc and .usd files containing more than one object displays a scenegraph load dialog that allows you to create separate ReadGeo nodes from parents in the scenegraph. See Importing ABC Meshes and Point Clouds or Importing USD Meshes and Point Clouds for more information. |
Localization Policy |
localizationPolicy |
from auto-localize path |
Sets the local file caching behavior. Copies of the files are stored in a specified local folder for faster access times: • on - the files are cached, regardless of location, as long as the limit to (GB) limit is not breached. • from auto-localize path - the files are cached if they reside in the auto-localize from directory, as long as the limit to (GB) limit is not breached. • on demand - only localize these source clips when you manually update them. See Localizing Files for Better Performance for more information. • off - the files are never cached, regardless of location. |
Update |
updateLocalization |
N/A |
When this ReadGeo node is set to Localization Policy > on demand, click Update to manually localize the files from the source files. |
reload |
reload |
N/A |
Click to reload the geometry from disk, overwriting any changes. |
frame range
|
range_first |
1 |
Sets the start frame for the frame range displayed in the Viewer when the frame slider range is set to Input. This can be used to display the offset used in the TimeOffset node. |
range_last |
1 |
Sets the end frame for the frame range displayed in the Viewer when the frame slider range is set to Input. This can be used to display the offset used in the TimeOffset node. |
|
display |
display |
textured |
Adjust the display characteristics of the object. These settings don’t affect the render output of the scene; these are for display purposes only in the 3D Viewer. • off - hides the 3D geometry object. • wireframe - displays only the outlines of the object’s geometry. • solid - displays all geometry with a solid color. • solid+wireframe - displays the geometry as solid color with the object’s geometry outlines. • textured - displays only the surface texture. • textured+wireframe - displays the wireframe plus the surface texture. |
selectable |
selectable |
enabled |
When enabled, you can make selections as normal in the Viewer. When disabled, points cannot be selected or changed. |
render |
render_mode |
textured |
Sets how the object will render. This control is independent from the display selection, but has the same settings. |
cast shadow |
cast_shadow |
enabled |
When enabled, the object can cast shadows. |
receive shadow |
receive_shadow |
enabled |
When enabled, and a material shader has been added to the geometry, the object can receive shadows. |
Transform Tab |
|||
|
file_menu |
N/A |
Select to import or export a channel file: • Import chan file - import a channel file and transform the object according to the transformation data in the channel file. Channel files contain a set of Cartesian coordinates for every frame of animation in a given shot. You can create and export them using Nuke or 3D tracking software, such as 3D-Equalizer, Maya, or Boujou. • Export chan file - export the translation parameters that you’ve applied to the object as a channel file. This is a useful method of sharing setups between artists. |
|
snap_menu |
N/A |
• Match selection position - the object is snapped to a new position depending on the points selected. • Match selection position, orientation - the object is snapped to a new position and orientation depending on the points selected. • Match selection position, orientation, size - the object is snapped to a new position, orientation, and size depending on the points selected. |
transform order |
xform_order |
SRT |
Sets the operation order for scale (S), rotation (R), and translation (T). The possible operation combinations are SRT, STR, RST, RTS, TSR, TRS. |
rotation order |
rot_order |
ZXY |
Sets the order of rotation. The possible axial combinations are ZXY, XYZ, XZY, YXZ, YZX, ZXY, ZYX. |
translate |
translate |
0, 0, 0 |
Lets you translate the object along the x, y, and z axes. You can also adjust translate values by clicking and dragging the object in the 3D Viewer. |
rotate |
rotate |
0, 0, 0 |
Lets you rotate the object around the x, y, and z axes. you can adjust rotate values by holding down Ctrl/Cmd and dragging in the 3D Viewer. |
scale |
scaling |
1, 1, 1 |
Lets you scale the object on the x, y, and z axes. |
uniform scale |
uniform_scale |
1 |
Lets you scale the object simultaneously on the x, y, and z axes. |
skew |
skew |
0, 0, 0 |
Lets you skew the object on the x, y, and z axes. |
pivot |
pivot |
0, 0, 0 |
When you make changes to a 3D object’s position, scaling, skewing, and rotation, these occur from the location of the object’s origin point or pivot. The pivot x, y, and z controls allow you to offset the pivot point and move it anywhere you like - you can even move it outside of the object. Subsequent transformations applied will then occur relative to the new pivot point location. You can also hold down Ctrl/Cmd+Alt and drag the pivot point to a new location in the 3D Viewer. |
Local matrix |
|||
specify matrix |
useMatrix |
N/A |
Enable this to specify matrix values for the object you’re transforming as an alternative to setting transform, scale, skew and pivot values above. |
matrix |
matrix |
N/A |
The matrix displays values from the object’s transform, rotate, scale, skew, and pivot controls. Check specify matrix and copy or drag-and-drop matrix values from another object to apply those values, for example, if you wanted to align objects in a scene. |
ABC
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
ABC Options - These controls are only shown if you have imported an .abc file. |
|||
read on each frame |
read_on_each_frame |
enabled |
When enabled, ReadGeo bakes each object's transform into the mesh points and preserves the animation. This should be enabled for animated objects. |
sub frame |
sub_frame |
enabled |
When enabled, objects are read on sub frames which can be used to render motion blur. Tip: Disable sub frame for faster UI interaction. |
lock frame |
lock_frame |
1 |
When read on each frame is disabled, the object is read at this frame. |
frame rate |
frame_rate |
24 |
The frame rate (frames per second) to use to sample the animation. |
render points as |
point_render_mode |
point clouds |
Determines how point primitives are rendered: • point clouds - Render primitives as Nuke point clouds. • particles - Render primitives as Nuke particles. |
use geometry colors |
use_geometry_colors |
disabled |
When enabled, apply geometry color attributes read from .abc files and apply them to the Nuke geometry. Note: Disabling use geometry colors can cause differences in rendered output when compared to previous versions of Nuke. If this occurs, enable use geometry colors in the ReadGeo properties panel. |
Scenegraph Tab |
|||
scene view |
scene_view |
N/A |
Displays the mesh nodes in the scene. The point cloud nodes are not listed. By default, only meshes imported into this ReadGeo node are shown. To view all meshes that exist in the Alembic file, enable view entire scenegraph. The Load icons on the left indicate the state of each item in the list: • A gray dot - The item isn’t loaded into this ReadGeo node or is hidden. • An orange bar - The item is loaded into this ReadGeo node, and is a child of a parent item somewhere further up the tree. This icon turns gray if you select the item in the list. Click the Load icons to show and hide the selected item and its children. |
view entire scenegraph |
all_objects |
disabled |
When disabled, only meshes imported into this ReadGeo node are shown. When enabled, all meshes that exist in the Alembic file are displayed. This allows you to show or hide imported items by clicking on the icons on the left. Alternatively, you can choose select or deselect from the right-click menu. To select or deselect multiple items, press Ctrl/Cmd or Shift while clicking them. |
FBX
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
FBX Options - These controls are only shown if you have imported an .fbx file. |
|||
animation stack |
fbx_take_name |
dependent on file |
The take you want to use from the .fbx file. FBX supports multiple takes in one file. Usually, one of the takes is a default take with no animation. |
node name |
fbx_node_name |
dependent on file |
The mesh node you want to import from the .fbx file. Point cloud nodes are not listed. |
frame rate |
frame_rate |
24 |
The frame rate (frames per second) to use to sample the animation curves. To use this rate rather than the one defined in the FBX file, check use frame rate. |
use frame rate |
use_frame_rate |
disabled |
When enabled, the frame rate defined above is used to sample the animation curves. When disabled, the frame rate defined in the .fbx file is used to sample the animation curves. |
object type |
object_type |
Mesh |
Select the object type: • Mesh - Import a single mesh or all the meshes (or NURBS curves/patch surfaces converted to meshes) from the .fbx file. • Point Cloud - Import a point cloud from the .fbx file. |
all objects |
all_objects |
disabled |
When enabled, ReadGeo imports all the meshes in the .fbx file rather than just one. This overrides whatever you have selected under node name. |
read on each frame |
read_on_each_frame |
enabled |
When enabled, ReadGeo bakes each object's transform into the mesh points and preserves the animation. This should be enabled for animated objects. |
read transform from file |
read_from_file |
enabled |
When enabled, transform properties are imported from the .fbx file and, while you can view them and use them in expressions, you cannot modify them. Whenever you reload the script, the transform properties are re-read from the .fbx file to ensure they match the file content. When disabled, you can modify the transform properties imported from the .fbx file using the transform controls, and your changes are kept even if the script is reloaded. Note that geometry data is always read from the FBX file. |
OBJ
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
OBJ Options - These controls are only shown if you have imported an .obj file. |
|||
update mode |
update_mode |
all |
Sets the update mode for the OBJ geometry: • all - loads all geometry groups for each frame. • point-cloud - loads only point and point attributes group data at each frame. The primitives frame control specifies which frame in the sequence contains the primitive and vertex attribute group data. |
primitives frame |
full_geometry_frame |
1 |
When update mode is set to point-cloud, sets which frame in the sequence contains the primitive and vertex attribute group data. |
read texture w coord |
read_texture_w_coord |
enabled |
When enabled, w coordinates are read along with uv coordinates, where present. Tip: Occasionally, w values contain garbage, so you may want to disable this control to use a value of 1 instead. |
USD
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
USD Options - These controls are only shown if you have imported a .usd or .usda file. |
|||
read on each frame |
read_on_each_frame |
enabled |
When enabled, ReadGeo bakes each object's transform into the mesh points and preserves the animation. Note: read on each frame should be enabled for animated objects. |
Scenegraph Tab |
|||
scene view |
scene_graph |
N/A |
Displays all items in the file, including currently unsupported items such as cameras. The Load column displays the state of each item in the file: Note: Grayed-out items are currently unsupported. • A gray dot - The item isn’t loaded into this ReadGeo node or is hidden. • An orange bar - The item is loaded into this ReadGeo node, and is a child of a parent item somewhere further up the tree. This icon turns gray if you select the item in the list. • A broken orange bar - The item is partially loaded, meaning that some children of the item are not loaded. You can show or hide imported items by clicking on the icons in the Load column. Alternatively, you can choose select or deselect from the right-click menu. The Type column displays at a glance what the file contains, such as meshes and cameras. Note: By default, only items imported into this ReadGeo node are shown. To view all items that exist in the USD file, enable view entire scenegraph. |
view entire scenegraph |
all_objects |
disabled |
When disabled, only items imported into this ReadGeo node are shown. When enabled, all meshes that exist in the USD file are displayed. This allows you to show or hide imported items by clicking on the icons on the left. Alternatively, you can choose select or deselect from the right-click menu. To select or deselect multiple items, press Ctrl/Cmd or Shift while clicking them. |
Step-by-Step Guides
Importing ABC Meshes and Point Clouds
Importing Geometry and Point Clouds from FBX Files
Importing Geometry from OBJ Files
Importing Items from USD Files
Video Tutorials
3D Workspace Overview from Foundry on Vimeo.
Nuke is not limited to a 2D space, in fact, it has a complete 3D environment built right in. For example, here is a 3D ship and a 3D sphere. In order to see the 3D environment, go to the View menu where it says 2D and switch that to 3D, and there’s the environment. In order to change the view, which is the default camera, you can use the Alt or your Option key, along with your mouse buttons. For example, Alt and left mouse button scrolls, Alt and middle mouse button zooms, and Alt and right mouse button orbits.
Let’s see what we have in the scene. There is a 3D Camera, a Spotlight, a Point light, a primitive Sphere, an imported spaceship, and a large primitive Card in the background. Let’s take a look at the node network, and you can see what we need to make a 3D scene happen. The node with the most connections is the Scene node. The Scene node groups together lights and geometry in order to pass them on to a render node. In order to render the scene so it becomes 2D, you need to have some sort of render node. In this case, there is a ScanlineRender node. Connected to the ScanlineRender is a 3D Camera. Connected to the Scene node are two lights - there is the Spotlight and the Point light. If I open up the properties on the Spotlight, you can see common options like color and intensity and, in the case of the Spotlight, cone angle. There are also two pieces of primitive geometry here - there is the Sphere and the Card. This will be a good time to note that 3D nodes have a rounded, pill-like shape, as opposed to the rectangular 2D nodes.
You can create a light or a primitive piece of geometry through the 3D menu. You can make your Point or your Spot, plus a Direct and a few specialized lights, like the one that’s called Light, which you can use to import lights from other programs, like Maya. There is also the Geometry menu, which has the primitives such as Card, or other shapes, like Cube and Cylinder. You can transform lights and geometry. For example, if I open up the Sphere, you will see there is a translate, rotate, and scale property. Once this is open, you will also see there is a transform handle. If you click+drag the handle along the axis, you can move it in that direction, for example, Y. Of course, you can also enter values into the properties panel. Lights also have their own set of transforms. Now, one new feature is the fact that lights can cast shadows right here in the 3D environment. For example, if I go to the Spotlight and go to the Shadows tab, you will see there is a place to click on cast shadows. Let’s go back to the 2D view. You can see the shadow of the Sphere right here on the spaceship. Now, aside from shadows of course, you can animate all of these properties. You can animate the light, changing over time, as well as the geometry. There are also animation buttons beside all of these properties. You can key these as you would any other node inside Nuke.
You will notice that the two pieces of geometry have shaders connected to their img pipes. These are necessary for the surfaces to be lit correctly. The Sphere has a Phong, which is similar to the one you might have in a program like Maya. The Card has an Emission shader, which has the emissive component or the ambient color component. Now, in terms of the spaceship, it has to be imported through a ReadGeo node. ReadGeo node has a place to bring in the file, and this supports .fbx files, or .obj files, or alembic files, .abc. If there is animation in the file, Nuke will recognize it. For example, with the .fbx file, it might have multiple takes. Nuke will recognize that and you can choose the animation take. So, if I go back to the 3D view, scrub the timeline, and we will see the ship is pre-animated, and this animation was created in Maya. There is also a material connected to the img pipe of the ReadGeo. Now, because the UV texture space came through the .fbx file, in order to map the geometry, you just need to bring in the texture bitmaps through Read nodes, and connect to a shader. For example, here is the diffuse map connected through the mapD, or map diffuse. There is a specular map connected through the mapS, or map specular. Lets go back to the 2D view.
Now, if anything is animated, you can also activate motion blur. To do that, you go to the render node and, for example, with the ScanlineRender, go to the MultiSample tab and change samples to a higher number like 8. At that point, the motion blur will appear, as you can see right here. The higher the samples number, the higher the quality.
So, there is a brief introduction to Nuke’s 3D environment. Keep in mind that any node you need to create for this you can find through the 3D node menu. This includes all your shaders, geometry, lights, Scene nodes, and cameras. Aside from animating lights and geometry, you are also free to animate cameras. They have their own set of transforms. In any case, I would suggest exploring this component of Nuke.