Viewport Camera
Position and orient a 3D camera in the scene.
What it does
Viewport Camera places a 3D camera in the scene and renders what it sees. Position, orientation and projection (perspective or orthographic) define the view. The Texture output is a live render-to-image capture from that camera, separate from the main interactive viewport.
Focal Length and a choice of fisheye models cover ultra-wide fields of view. Lens Effects add space curvature, perspective inversion and two authorable curves.
When to use it
A 3D camera to render from, with its own position, aim and lens.
A second view of the scene: a mirror, a security-camera shot, a reflection. Wire the Texture output wherever an image is expected.
Wide-angle or fisheye distortion, via Lens Model.
Stylised, non-physical lenses, via Curvature, Perspective Inversion, or the Magnification / Custom Lens curves.
Flat, non-foreshortened views such as blueprints and UI-style renders, via Orthographic projection.
| Parameter | Type | Default | What it does |
|---|---|---|---|
mode | String | "Free" | Free: orbit/look freely (rotation drives aim). Target: lock the look-at onto a target point. FPS: WASD + mouse-look. One of: Free, Target, FPS. |
position | Vec3 | (0, 0, 5) | Camera position in 3D space |
rotation | Vec3 | (0, 0, 0) | Orientation (pitch X, yaw Y, roll Z) in degrees |
target | Vec3 | (0, 0, 0) | Look-at target position |
projection | String | "Perspective" | Perspective: 3D depth. Orthographic: flat/2D, no depth foreshortening. One of: Perspective, Orthographic. |
focal_length | Number | 28 | Focal length in mm (36mm full-frame equivalent). Lower = wider angle, higher = more telephoto. |
lens_model | String | "Rectilinear" | Lens projection model. Rectilinear keeps straight lines straight. Fisheye models allow ultra-wide FOV with characteristic distortion. One of: Rectilinear, Equidistant Fisheye, Equisolid Fisheye, Stereographic Fisheye, Orthographic Fisheye. |
curvature | Number | 0 | Space curvature. Negative: hyperbolic (space expands at distance). Positive: spherical (space wraps, distant objects enlarged). |
perspective_inversion | Number | 0 | 0: normal perspective. 0.5: orthographic-like. 1: reverse perspective (far objects appear larger). |
magnification_curve | Curve | 2D Curve | Depth→scale curve. X: normalized depth (near→far). Y: scale multiplier (1 = normal, >1 far-bigger, <1 far-smaller). Leave unauthored for normal perspective. |
lens_radial_curve | Curve | 2D Curve | Custom radial lens curve (X: normalized field angle, Y: normalized image radius). Bends rays through your own lens — real-time. |
ortho_height | Number | 10 | Viewport height in world units |
near_clip | Number | 0.100 | Near clipping plane distance |
far_clip | Number | 1000 | Far clipping plane distance |
fps_speed | Number | 5 | Movement speed in world units per second |
capture_width | Number | 512 | Capture texture width in pixels |
capture_height | Number | 512 | Capture texture height in pixels |
Gotchas
Rotation steers the camera in Free and FPS modes only. In Target mode the camera aims at the Target point and Rotation is hidden.
Curvature is a signed amount from -1 to 1, not a physical value. It is mapped so small movements near the middle give fine control and the ends reach a strongly bent look. Negative bends space outward (hyperbolic), positive wraps it, so distant objects enlarge.
The Magnification curve overrides Perspective Inversion whenever it has been authored (edited from its default flat line). Clear the curve to return to the slider.
The frustum guide drawn in the viewport reflects Perspective Inversion and the fisheye lens shape, but not a custom Magnification or Custom Lens curve. With either curve authored, the render is correct and the guide's frustum shape is not.
Worked example
Add a Viewport Camera. Set Position and Rotation, or switch Mode to Target and set a look-at point, to frame the shot.
Pick Perspective for normal depth or Orthographic for a flat view. Adjust Focal Length or Ortho Height to fit the scene in frame.
For a wide establishing shot, switch Lens Model to one of the Fisheye options.
Wire the Texture output into a Layer or Composite to use this camera's view as an image elsewhere in the graph.
For a stylised look, open Lens Effects and dial in Curvature, or author the Magnification / Custom Lens curves. Edits update in real time.