Two flat-port action cameras under water: refraction-corrected field of view, stereo overlap and depth precision for any baseline, convergence angle and working distance.
Both cameras sit behind a flat window (their own lens cover, or the flat port of the dive housing). A ray at angle θw from the optical axis in water refracts to θa in air, with nw sin θw = sin θa. The lens can only accept rays up to its in-air half angle, so the in-water field of view is
Since sin θa ≤ 1, no flat-port camera can see more than 2·asin(1/nw) ≈ 97° under water, whatever its lens. The glass thickness only shifts rays sideways by a few millimetres; it does not change the angles. Each boundary ray of the image is refracted individually, which is why the in-water frustum of a wide lens has rounded corners.
Near the axis the port multiplies the focal length by nw (≈1.34), so the ground sampling distance at the centre of the frame is GSD = Z / (nw fpx), where fpx is the in-air centre focal length in pixels derived from the mode's field angles and projection model. Objects at distance Z appear at Z / nw, so a lens that focuses down to d in air focuses down to nw·d in water. Away from the axis the port adds pincushion-type distortion and lateral colour, which is why cameras must be calibrated in water, at the working distance, not in air.
A dome port whose centre of curvature sits on the entrance pupil passes every chief ray at normal incidence, so the in-air field of view, focal length and distortion are unchanged under water and there is no colour fringing from the port. The price is focus: the water–glass–air shell acts as a strong negative lens. Treating it as two spherical surfaces (outer radius R, inner radius R − t, glass index ng), the virtual image of an object at distance O from the dome centre lies at
For a thin shell this gives roughly 3 R from the glass (4 R from the centre) for an object at infinity, and closer still for nearer objects: the whole scene is compressed into a thin curved layer just outside the dome. A fixed-focus action camera with a 30–35 cm near focus therefore needs a dome of about 80–90 mm radius (a 6-inch dome is marginal, a 4-inch dome is too small) or a close-up lens, and at f/2.5–2.8 the curved virtual image leaves the frame corners soft. When the pupil is not at the centre of curvature the model traces each ray through both spherical surfaces exactly, which shows the mild distortion and field change that results.
With in-water half angle h in the plane of the baseline, baseline b and total convergence θ, each camera's footprint on a plane at distance Z spans Z·tan(h ± θ/2) either side of its own position. From this:
The 3-D view intersects the refracted frustums with the subject plane and clips the two polygons against each other, so the area and percentage shown in the tiles include the keystone effect of toe-in; the chart uses the width along the centreline, which is what the formulas above describe. Frame corners beyond the usable off-axis angle (65° by default) are folded back onto that angle before the intersection: behind a flat port nothing exceeds 49° anyway, but behind a dome a 122° fisheye reaches 80° at the corners, where the plane is seen at grazing incidence and the footprint would otherwise be a meaningless star shape.
A point seen from two cameras whose rays meet at angle γ, each ray carrying an angular uncertainty σα = σpx / (nw fpx), is located with
For parallel cameras and small γ this is the textbook σZ = Z² σd / (f b) with disparity precision σd = √2 σpx. Depth precision degrades with Z² and improves linearly with baseline and focal length. Convergence does not change γ for a given point; it only changes which points both cameras see. Values are 1-σ for a single pair; bundle adjustment over many images and tie points does better than this, but the trends hold.
Horizontal visibility V relates to the beam attenuation coefficient c by V ≈ 3.9 / c (Duntley). Image contrast falls as e−cZ; below ~25–30 % of the contrast at zero range, texture matching becomes unreliable, which is why benthic photogrammetry is usually flown at 1–3 m even in clear water.