Skip to main content

vArrayCameraProjection

Project 3D world-space point arrays to 2D screen coordinates — the mandatory bridge between every vArray generator and vArrayShapeRender.

BeginnerMograph / ArrayArrayScriptValJSON
vArrayCameraProjection node

vArrayCameraProjection takes a 3D vArray point table and projects it to screen-space XY coordinates using a configurable virtual camera with position, rotation, scale, and field-of-view controls. It is the required intermediate node between any point generator and vArrayShapeRender — no render pipeline is complete without it.

Parameters​

ParameterTypeDefaultDescription
X OffsetFloat0Horizontal position of the virtual camera in world space. Pans the projected output left or right.
Y OffsetFloat0Vertical position of the virtual camera in world space. Pans the projected output up or down.
Z OffsetFloat1.0Camera distance from the point cloud. This is the primary scale control — increase to zoom out, decrease to zoom in. Most impactful parameter for initial framing.
X RotationFloat0Rotates the camera around the X axis (tilt). Animatable for pitch sweeps through 3D point clouds.
Y RotationFloat0Rotates the camera around the Y axis (pan). Animate to orbit around a 3D array.
+6 more parameters
ParameterTypeDefaultDescription
Z RotationFloat0Rotates the camera around the Z axis (roll). Spins the entire projected output around the screen centre.
Lock X/YCheckboxOnWhen enabled, X Scale controls both horizontal and vertical scale uniformly. Disable to stretch or squeeze the projected output independently on each axis.
X ScaleFloat1.0Uniform scale of the projected output when Lock X/Y is on. Acts as horizontal-only scale when unlocked.
Field of viewFloat90.0Camera field of view in degrees. Lower values flatten perspective towards orthographic projection; higher values exaggerate depth foreshortening on 3D arrays.
Show InputCheckboxOnReveals the ArrayA input port on the node. Required to receive the 3D point array from upstream generators.
Array AArray—Primary 3D point array input. Connect the output of any vArray generator or modifier here.
Read the full description

vArrayCameraProjection is the perspective engine of the vArray pipeline. Every point generator — vArrayPointsOnCircle, vArrayPointsOnArc, vArrayPointsOnGrid, vArrayCreateMinMax, vArrayFromOBJ — outputs a 3D coordinate table in world space. vArrayShapeRender needs 2D screen-space XY pairs. CameraProjection is the node that does the conversion, applying a full virtual camera transform between the two. Without it, nothing renders correctly.

The camera is defined by three transform groups: Translate (X/Y/Z position), Rotate (X/Y/Z rotation in degrees), and Scale (X, with Lock X/Y maintaining aspect ratio). The Z Translate value is the most critical — it controls camera distance from the point cloud and has the largest effect on the apparent size and spread of the projected output. The Field of View control (default 90°) adjusts perspective distortion: lower values produce a flatter, more orthographic look; higher values produce exaggerated foreshortening on 3D arrays.

Because CameraProjection is parameterised with standard Fusion controls, all transform values are fully animatable. Keyframe the Z Translate to push in on a point cloud, or animate Y Rotation to orbit around a 3D point array — the screen-space coordinates update every frame and flow directly into ShapeRender. The Lock X/Y checkbox constrains X and Y scale together when scaling; the X Scale parameter acts as a uniform scale when locked. For flat 2D layouts (circle, arc, grid) with no 3D depth, leave the default transform values and just adjust Z Translate to fit the output to frame.

Example Connections​

vArrayPointsOnCircle.Output -> vArrayCameraProjection.ArrayA
vArrayCameraProjection.Output -> vArrayShapeRender.ArrayPoint
Background.Output -> vArrayShapeRender.Input