Nodes/WAS Node Suite v3/Three Perspective Camera
ComfyUI Node Runs on cloud

Three Perspective Camera

Point the camera, tell it where to look

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
Three Perspective Camera
  • track
  • camera
fov50.0
near0.100
far1000
position_x3.00
position_y2.00
position_z5.00
target_x0.00
target_y0.00
target_z0.00

If your scene is going to look like a photograph rather than a blueprint, this is the camera you reach for. WASThreePerspectiveCamera is the default human-eye view for the WAS Node Suite Three family: distant things smaller, lines converging, the world the way a lens sees it. It's the camera you'll have in 90% of your workflows, at least until you want orthographic for something schematic.

How it works

A perspective camera is defined by three numbers - field of view, near and far - plus two points in space: where the camera sits and what it looks at. That position/target pair is the whole game. position places the lens; target is the point it stares at, which is also the point orbit control turns around when you drag in the viewer.

The defaults are set up so that the default starting values work as a starting point: position_z of 5 frames a unit cube comfortably, fov of 50 reads natural. The tooltips spell out the range: 20 is a long lens, 90 is wide, and a position of 3, 2, 5 looks slightly down and off to the side.

The inputs that matter

  • fov - vertical field of view in degrees. 50 natural, 20 long-lens, 90 wide-angle.
  • position_x / y / z - where the camera sits, in scene units.
  • target_x / y / z - where it looks. 0, 0, 0 is the world origin; target_y 1.6 is about head height.
  • near / far - clipping range. 0.1 near suits a scene a few units across; raising it sharpens depth precision at the cost of cutting close geometry.

The optional track input is worth knowing about: wire a Three Track in and the camera aims at or follows an object instead of a fixed point, with the target values overridden. Great for keeping a moving subject centered without re-wiring the camera every frame.

Framing workflow

Here's the practical loop the Three pack is built around. Your camera position and target are starting values - drag in the Three Viewer to orbit, and you move the camera from there. The Reset Camera control in the viewer puts it back to the node's values. So the rhythm is: set a sane position/target in the node, then fine-tune interactively in the viewer, and if you've wandered too far, reset and try again. What the camera sees when you settle is what Three Render draws, because both the scene and the camera feed into Three App.

The trap

Depth precision. The far plane clips anything beyond it, but the real trap is the near plane - a scene where the camera is very close to a large floor with near at 0.1 can show z-fighting shimmer on distant surfaces. The tooltip's advice is the right instinct: if a scene is tens of units deep, don't leave near at the default forever.

Install

WASThreePerspectiveCamera ships with WAS Node Suite v3. Install through ComfyUI Manager (search WAS Node Suite v3) or:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git

Restart after. Requires ComfyUI 0.14.0+ and Python 3.10+. If the node's missing from Add Node, set features.threejs: true in <ComfyUI user dir>/was-node-suite/config.yaml and restart.

CategoryWAS Suite/Three

Inputs (10)

NameTypeDefaultDescription
fovFLOAT50.00.1–179Vertical field of view in degrees. 50.0 reads naturally, 20.0 is a long lens, 90.0 wide.
nearFLOAT0.1000.000001–1000000Nearest distance drawn. 0.1 suits a scene a few units across; raising it sharpens depth precision.
farFLOAT10000.0001–1000000000Furthest distance drawn. 1000.0 covers most scenes. Anything beyond it is clipped away.
position_xFLOAT3.00-1000000–1000000Where the camera sits along X, in scene units. 3.0 stands it off to the right.
position_yFLOAT2.00-1000000–1000000Where the camera sits along Y. 2.0 looks slightly down on a unit cube.
position_zFLOAT5.00-1000000–1000000Where the camera sits along Z. 5.0 frames a unit cube comfortably.
target_xFLOAT0.00-1000000–1000000X of the point the camera looks at, and orbits around. 0.0 is the world origin.
target_yFLOAT0.00-1000000–1000000Y of the point the camera looks at. 0.0 is the origin, 1.6 about head height.
target_zFLOAT0.00-1000000–1000000Z of the point the camera looks at, and orbits around. 0.0 is the world origin.
trackoptTHREE_TRACKAim or follow an object instead of a fixed point, from Three Track. Wired, it overrides the target below.

Outputs (1)

NameTypeDescription
cameraTHREE_CAMERAThe camera, for the camera socket on Three App.