The thread: Made by something finite
The divide is postponed, not avoided
A renderer does not divide by depth. It multiplies by a four-by-four matrix that carries the depth in a fourth coordinate and divides later, and the postponement is not an optimisation — it is what makes clipping and texture interpolation possible at all. The matrix and this site's pinhole put every point on the same pixel to five parts in a hundred trillion.
What a machine computesThe precision a depth buffer has left
Depth is stored as an affine function of one over the distance, so half of a buffer's codes are spent before the harmonic mean of the near and far planes — twenty centimetres out of a kilometre. The resolution goes as the square of the distance, and the fix that works is not more bits.
The rectangle behind the lensEvery row is a different camera
A shutter that reads its rows one after another images each of them from wherever the camera was at that instant, so a frame is a stack of projections indexed by height — a handscroll with the roll running down the picture. Its rays miss their own best centre by the spread of the eye's track, at a ratio of 0.988, and a global shutter's meet to 2 × 10⁻¹⁶ m.
What a machine computesA pixel is not a point
Where the sample sits inside a pixel is a convention, and getting it wrong shifts every mark by half a pixel in each axis. What that costs can be measured by recovering the camera from the picture — the answer is a principal point exactly 0.707 px from the truth with the focal length untouched, and the other half-pixel mistake does precisely the reverse.
The rectangle behind the lensA frame is an interval
An exposure is not an instant, so a frame is an integral of projections and every moving point draws a streak. The streak is straight, because the image of a straight path is straight — and its length goes as one over the depth, so two objects at 3 m and 6 m blur by lengths in the ratio 2.000. No single kernel describes the frame.
What a machine computesA texture does not interpolate on the page
Walking across a drawn surface at a constant rate walks across the real one at a rate that changes, and the worst gap is a closed form in the depth ratio alone — 0.52 at ten to one, more than half the whole range. It is exactly the error a person makes dividing depth by eye, made by a machine, and the fix is the fourth coordinate the pipeline kept.
What a machine computesFour numbers and a window
A projection matrix is built from six numbers and one of them is not a number at all. Four sides carry the focal length and the principal point; the near and far planes move nothing a reader can see; and the bottom row, (0, 0, 1, 0), is the only place the depth divides — set it to (0, 0, 0, 1) and the same machine draws a parallel projection.
What a machine computesA tile is an off-centre frustum
Rendering a picture in tiles is exact, and the way to do it is one line of arithmetic: a tile's sides are the whole frustum's sides read at the tile's own pixel bounds. Aiming the camera at each tile instead is defensible at every step and is a different picture, out by about a tenth of a tile whatever the tile size.
The rectangle behind the lensThe sharp band is a decision
One 50 mm lens at f/2.8 focused at three metres has a sharp band half a metre deep or an unbounded one, and nothing about the optics changes between them — only how large a blur disc a reader is prepared to ignore. Every quantity usually quoted about depth of field is that acceptance restated, including the rule that a third of the band lies in front, which is true at one distance and nowhere else.
What a machine computesThe near plane can be any plane
Rewrite one row of a projection matrix and the near plane stops being perpendicular to the axis and becomes whatever plane is asked for. Every x and every y is untouched — it is the same projection of the same scene from the same eye — and the depth order is wrecked, which is a clean separation of the two things a projection matrix does.
What a pair is forWhole pixels cut space into shells
A disparity read to whole pixels can report only the depths fB/k, so a stereo pair does not measure distance on a scale — it chooses among 113 shells between half a metre and twelve, 6.7 cm apart at two metres and 1.39 m apart at ten. A level floor comes back as 35 standing plates. And a finer step and a better reading are different purchases: at a quarter pixel with a quarter pixel of matcher error the pair prints 449 depths and can tell 149 apart.
Surfaces that are not flatSix flat pictures of everything
There is one way to photograph the whole sphere and keep every straight line straight, and it is to stop using one surface. Six flat pictures at ninety degrees cover everything, each of them a perfect pinhole, and the price is paid entirely at the seams — where a straight line does not bend but kinks, by an angle that reaches 45 degrees and is exactly zero for the lines lying in the seam's own plane.
What a machine computesOne plane is nearly free
The near and far planes enter a depth buffer's precision through 1/near − 1/far, and one of those reciprocals is enormous. Pushing the far plane out by a factor of a thousand costs a tenth of a per cent; bringing the near plane in by the same factor costs a factor of a thousand — and an infinite far plane is the limit of the first rather than a separate case.
What a machine computesA curved screen is eight flat ones
A projection matrix is a plane and nothing else, so a curved display cannot be rendered — it has to be driven as several planes and assembled. The gap between chord and arc is the whole error, it goes as the square of the angle each piece spans, and the piece count therefore goes as the inverse root of the tolerance — three for eight pixels, eight for one, fifteen for a quarter.
The rectangle behind the lensThe disc and the streak
A frame integrates over the pupil and over the exposure at once. Hold the point's depth and the patch is exactly the streak of its centres with one disc slid along it, to 1.8 × 10⁻⁵ of its own width. Let it recede over the same exposure and the disc's radius falls by 3.7 along the streak, and the patch departs from any single kernel by 16 pixels.
What a machine computesOne depth per sample is not enough
A depth buffer keeps a single distance at each sample, so a post-process blur can only ask how far away the thing at this pixel is. Across an occluding edge that answer is two depths and an occlusion, and the gather it produces differs from the pupil's own integral by 70 per cent of full scale over a band eleven pixels wide.
Measuring from one pictureCounting is a measurement
A tiled floor gives its area with no reference length at all — count the tiles and multiply. The count is an integer, so it is exact wherever it can be made, which is a completely different error law from the rectifier's smooth decay. And the distance at which it fails is set by the tile's depth edge, which foreshortens as one over the depth squared, so 18.7 m for a 62 cm tile, where the across edge alone would have allowed 217.
The rectangle behind the lensTurning and travelling blur different worlds
A subject 8 m away crosses the frame at 4 m/s, and the camera keeps it sharp over a thirtieth of a second. Turn to follow it and every still thing blurs by the same 13.5 px, whatever its depth. Travel beside it and the still world blurs as one over its depth — 49 px at 2 m, 1.5 px at 64 m — while everything moving with the subject is sharp at every depth.
What a pair is forVergence moves the shells and does not respace them
Turn two eyes inward and the depths a whole-pixel reading can report stop being planes and become a family of near-circles through both eyes — the twenty-pixel shell standing at 0.74 m forty degrees aside where a parallel pair puts it at 3.82. The spacing between consecutive shells is the same to 0.07 per cent across the whole field, so vergence relabels the rays and does not sharpen them, and the resolution argument for turning the eyes in does not exist.
What a machine computesA shadow map's texels land by two distances and two cosines
A renderer finds its shadows by taking a second picture from the lamp and storing a depth in every texel. Each texel reaches the screen through the surface it falls on, and how many pixels it covers there is a closed form — two focal lengths, two distances and two cosines. From a lamp beside the eye every texel lands at 0.79 px; from a lamp 40 m ahead facing back, the same map lands texels of 8.69 px on the floor 5 m out.
Mirrors that are not camerasTwo mirrors show fewer images than they make
Two mirrors at 55° generate seventy-one images of a point and an eye between them can reach six. The count the field teaches — three hundred and sixty over the angle, less one — is out by as much as sixty-six against the orbit and never by a whole image against what a viewer standing on the bisector actually sees. It is a correct rule about the eye, quoted as a rule about the mirrors.
What a pair is forA third eye that lands on the next post
Match one post of a railing to its neighbour and the pair reports it at 19.8 metres instead of 9.0, with every test two photographs can run at the arithmetic floor. A third picture usually exposes that by hundreds of pixels — but at five azimuths in seventy-eight degrees the wrong point lands within three pixels of another post, and the third view confirms the mistake. Narrow the railing to twenty centimetres and those places cover 28 per cent of the arc.
What a pair is forThe second disparity cuts cells
A point off the plane of the eyes has a vertical disparity as well as a horizontal one, and quantising both, on an 86,400-point lattice of a room, gives 7,663 labels where one coordinate gives 179 — a count that belongs to the lattice rather than the room, as the essay after this one found. The gain is entirely vergence's — two eyes looking straight ahead have no vertical disparity at all, exactly — and it is largest where the first reading is already finest: 60.8 in the near metre and 3.7 in the far band.
What a machine computesA tilted span walks a staircase
A span along a banked floor's constant-depth direction is exact, and a renderer visits pixels rather than the span. Snapped to the grid, a 120 px span at a 20° bank costs 0.577 px where the same span along a page row costs 13.26 — twenty-three times better — and it never rises above 1.22 px at any bank. The price is bookkeeping: a band of twenty-four such spans draws 53 of its 1,368 pixels twice.