pcbview 1.26.0 — The mask drapes
The mask drapes now
Found by a user camera move flying millimetres above a flex board: the
soldermask — and the silkscreen ink printed on it — was extruded as a
flat film at one Z, its underside on the copper's top face. Real LPI
mask conforms: over copper it rides the foil, and between traces it
drapes down onto the laminate. The flat film instead hovered a copper
thickness above the laminate wherever nothing supported it, silk
riding the hover. Invisible at normal distance; at macro range with
traced shadows the 35 µm slit reads as a dark line and every silk
stroke casts a visibly displaced shadow — the board looks like it is
delaminating.
The film is now split by the outer foil's copper and the unsupported
region sits a copper thickness lower, on the laminate where it belongs
— both sides, both importers, every render mode. The split boundary is
the copper edge inflated 20 µm (splitting exactly at the edge would
z-fight the dropped film's walls against every trace's walls — the
lesson the via barrels learnt first), and the overhang doubles as the
mask's shoulder over the trace edge. A correct side effect at close
range: traces now read as gentle raised ridges under the mask, the way
they do on a real board. Logged as fab-truth gap #5 (fixed) in
ARCHITECTURE.md.
The underside gets light
The environment's ground half was near-black — fine while "the board is
what turns" held, but the view presets and headless captures orbit the
CAMERA, so bottom views stared at a permanently unlit side (~3× darker
substrate than the top). The ground gradient is now a plausible
studio-floor bounce plus a broad, weak fill lobe opposite the sun —
environment-only, so no new shadows and no cost. Measured on an 8-layer
board: bottom substrate 62 → 98 mean green, top effectively unchanged.
The underside stays dimmer than the sunlit side on purpose.
Frame-fit covers both axes
Fit-to-view fitted the board's larger span against the vertical FOV
only, silently under-covering the horizontal axis — on a narrow
viewport a wide board clipped at the frame edges. Each axis now fits
against its own FOV and the larger distance wins. The math moved to a
pure header with no Qt/Vulkan/glm, so the geometry test suite pins it,
including the coverage identity at several aspect ratios.