Scene Pick

Pick and query 3D scene objects at a screen position.

What it does

Scene Pick places a draggable crosshair on the viewport and reports what the renderer holds at that pixel: rendered colour, the world-space position and surface normal of whatever sits under it, camera-space depth, texture coordinate, and whether the pick hit geometry or empty background.

Drag the crosshair, or drive U and V numerically, and every output updates as the scene renders. The values are the render pipeline's own results, not a separate calculation.

When to use it

ParameterTypeDefault
uNumber0.500
vNumber0.500
labelString""
colorColorrgba(0.20, 0.80, 1.00, 1.00)

Gotchas

U and V are normalised screen coordinates, 0 at left and top, 1 at right and bottom, not pixels. The crosshair position is resolution-independent.

Did Hit reads 1.0 on geometry and 0.0 on empty background. It is a flag, not a percentage.

Label and Color affect only how the crosshair is drawn in the viewport. Neither feeds the data outputs.

The values come from the render pipeline's own readback, so they update only while the scene is actively rendering. With the viewport not cooking, the outputs can lag behind a moved crosshair.

Worked example

  1. Add a Scene Pick and drag its crosshair over the point to inspect.

  2. Read Position and Normal off the outputs for where that point sits in world space and which way it faces.

  3. Wire Did Hit into an Expression or condition to branch on whether the point landed on geometry or background.

  4. Nudge U and V numerically for pixel-precise repositioning instead of dragging.

See also

Viewport · Annotation · Scene values