JOS JOS Compositor

3D

3D in JOS: USD basics

JOS's 3D is built on USD (Universal Scene Description). Objects are nodes: cards, primitives, cameras, lights and whole USD files. A Scene node gathers them, and a Scene inside a Scene is a group with its own transform. RenderScene renders the result with a Hydra renderer into ordinary image channels for compositing.

Your scene files are never written to. Every change made in JOS (a light, a material, a hidden prim, a moved object) lives in the comp. It is applied over the files as a layer of its own, and it goes into a file only when you export with WriteUSD.

How 3D nodes connect

3D nodes pass data, not images, along their wires: a scene, a camera or a material. You can't plug them into an image input. A Dot carries them like it carries images.

A typical tree:

ReadUSD ───┐
Card ──────┤
Light3D ───┼─ Scene ─┐
Camera3D ──┘         ├─ RenderScene ─ (comp as usual)
Camera3D ────────────┘

The nodes

Node What it does
ReadUSD Opens a USD file as one object of the scene. time offset shifts the file's time against the comp's frames. Moves and materials you give the file's prims (in the 3D view or the Outliner) are stored on it, and they animate like any setting.
Scene Gathers objects (any number of inputs). A Scene inside a Scene is a group, moved by its translate, rotate, scale and pivot.
Card An image on a card, one unit wide, as tall as the image's aspect makes it. img is the picture, mat a Material.
Cube, Sphere, Cylinder, Cone, Torus Primitives, with Nuke's knobs (rows, columns, radius...). img is the texture, mat a Material.
Camera3D A camera with Nuke's knobs: translate, rotate, focal length, apertures, near and far. The 3D view can drive it (Lock). Its img inputs are image planes: the picture fills its gate at distance, with opacity, scale and offset; connecting one adds another (img2, img3...).
Light3D A light: distant, sphere, spot (Nuke's cone angle, penumbra and falloff), rect, disk or dome (with an HDR or EXR image). Colour, intensity, exposure, shadows, and light and shadow linking.
Material An OpenPBR material (MaterialX): see Materials. Its img inputs take comp images.
RenderScene Renders a scene through a camera into image channels. See below.
Project3D Projects an image through a camera onto a render (its position pass), with occlusion.
WriteUSD Writes a new USD file that layers your changes over the source files: the scene's tree as the Outliner shows it, cards and primitives, lights, materials (textures beside the file), prim moves and settings, the camera (keyed every frame), tracked points, splats and volumes. Use a .abc name to write only the camera and points as Alembic.
FocalFinder A camera from vanishing lines on a still frame: see FocalFinder.
CameraTracker Solves a camera from the plate. Track, Solve and Create Camera3D are in its panel.
PositionToPoints, DepthToPoints, PointCloudGenerator Point clouds from a position pass, a depth pass and a camera, or a CameraTracker's solve. They show in the 3D view and export with WriteUSD.
ReLight Relights an image from its normal and position passes with Light3Ds.

RenderScene

RenderScene turns a scene into pictures for the comp. Connect a scene and a camera. Without a camera node, it uses the scene camera named in camera, else the scene's first camera, else a three-quarter view.

It renders at the project format and proxy level, and only the region you are looking at.

Output channels

Channels Content
R G B A Colour, premultiplied
depth.Z 1 / distance
P.X P.Y P.Z World position
N.X N.Y N.Z World normal
forward.u/v, backward.u/v Motion vectors in pixels (with motion vectors on)
CryptoObject00... A Cryptomatte of prim paths (with object IDs on)

Holdouts set in the Outliner are cut out of colour and alpha but keep depth, position and normal, so they still hide what's behind them.

Project3D

Project3D projects img through the camera on its camera input onto the render on its render input. Connect the scene to its scene input too: with occlusion on, what the projector can't see stays black instead of smearing behind objects. crop leaves black what falls outside the projector's frame. A plate without alpha projects opaque.

Colour

Not yet