The collection

Every essay — page 13

Page 13 of 18, continuing through the fields in the same order.

What survives Constructing a view Where to stand Surfaces that are not flat The other systems Light and mirrors Mirrors that are not cameras Measuring from one picture Through water and glass The real instrument The second eye What a pair is for Many pictures at once The eye that moves Systems that kept the measure What each system gave up What a machine computes The rectangle behind the lens The second projection Drawn confidently

The other systems

Isometric, oblique, elevation. Not perspective done badly by people who had not worked it out yet, but a different answer to a different question — and the difference is measurable.

orthographicaspect 1.0000cavalieraspect 1.4142a camera, 37° off axisaspect 1.2593correct from 7 cm, at 160 mm widecentres 4e-14 / 3e-13 / 2.17 px

The ball a drawing does not draw round

An orthographic drawing of a sphere is a circle wherever the sphere is, and its centre is the image of the sphere's centre, exactly. A cavalier oblique drawing of the same sphere is an ellipse of aspect exactly √2 — and the drawing office reaches for a circle template. One formula covers both and the camera as well, and only the camera moves the centre.

5 figures
a flat plate · best view0a bent plate · best view0.1224a dished plate · best view0.2298a bent plate · along its generators0patches wrapping 29°dished / bent = 1.878

No view draws a curved plate true

The auxiliary view is descriptive geometry's answer to a foreshortened plane — turn until the plane is parallel to the paper and it draws at true shape. A bent plate has no such direction and a dished one has none twice over: the best view of the first is out by 1 − cos w and the best of the second by 1 − cos²w, worse by exactly 1 + cos w, because its normals need two parameters rather than one.

8 figures
00.2500.5000.7501-1-0.50000.5001across the plate, from one edge to the otherdrawn length of a unit of surfacealong the generatorsround the benda plate bent through 57°one ruler in one direction

The drawing and the development

A bent plate gets two flat pictures on the same sheet and each is exact in what the other loses. The parallel drawing keeps the generators at one scale and stretches the arc over a factor; the development keeps every length on the surface and keeps nothing of the shape in space. Neither is the plate and the pair of them is.

8 figures
one platethe otherthe hingedrawn at 94.3° · reads as 100.0° or 86.6°an orthographic drawing of a foldtwo readings, 13.4° apart

A drawn fold has a phantom

A Necker cube has two readings and so does a drawn fold, and the fold's second reading is not the supplement of the first. The drawing fixes each plate edge's component in the picture and leaves its component along the ray free up to a sign; a reflection identifies two of the four sign pairs, so there are exactly two plates — and a hundred-degree fold reads as eighty-seven as well.

8 figures
frontierthe transfer joins points 1.414 R apartone ball, two outlinesmeeting in exactly two points

Two outlines are two curves

The whole method of multiview drawing is the transfer line — a feature at a position in the front view is at the same position along that axis in the top view. On a flat-faced solid the feature is a vertex and the rule is exact. On a ball the two views draw two different great circles, meeting in exactly two points, and the transfer line joins places that are √2 radii apart.

8 figures
no single viewpoint — the rays miss by no distance at all — the rays are parallel13 of 21 faces

A picture with no eye

The anamorph field measured which parts of an object one eye can paint, and every finding in it is about a point. A parallel projection has no such point, so the same questions have a different shape — and the two that change are the dimension of the answer and the map onto each face. The one that does not change is occlusion, which is routinely assumed away.

8 figures
no single viewpoint — the rays miss by no distance at all — the rays are parallel3e-14 px of movement

Nothing moves along the direction

A part slid four metres toward the reader along the direction an isometric drawing projects along keeps its drawn place to a ten-thousandth of a pixel, and the same slide seen from a station point moves it forty-four. An exploded drawing is not an approximation that works because the parts do not move far — it is an identity, and it is why cutaways are drawn in parallel systems.

8 figures
face 15.75×1.00× parallelface 21.41×1.00× parallelface 31.34×1.00× parallelface 41.13×1.00× parallelface 51.05×1.00× parallelface 61.03×1.00× parallelface 71.00×1.00× parallelface 81.00×1.00× parallelthe spread of scale within one faceparallel: 1.000000×

One face, one scale

A design carried from a point onto a flat face varies in scale by nearly six across that one face; the same design carried along a direction varies by 1.000000000. The stretch is reported here as the two singular values of the local map rather than as one directional difference, which is the honest form and which the previous round owed.

5 figures
-1.50-1-0.50000.50011.5022.50how far back the eye stands, in object radii (log₁₀)how far a mark lands from where the direction puts it, in metres (log₁₀)one design samplethe faces settlethe marks settlea seating rake, from a point and from a direction3 radii against 34

Two distances to infinity

A parallel projection is the limit of a perspective one, and the limit arrives twice. Which faces get painted settles within three object radii, because a face is either round the back or it is not; where each mark lands falls like one over the distance and is still out at thirty-four. Far enough away has two answers an order of magnitude apart.

8 figures

What a machine computes

A renderer does not divide by depth and stop. It multiplies by a matrix and postpones the divide, clips while the points behind the eye are still finite, quantises what it kept, and lands on a grid of samples half a pixel from where the arithmetic put them. Each of those is a decision about what the picture is a projection of, and each has a number attached.

x/z, y/z — the pinholeM·p, then divide by wworst disagreement 4.0e-14 px over 8 verticescorrect from 21 cm, at 160 mm wide42° across · near 0.1 m, far 1000 m

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.

7 figures
clipped at the near planedivided without clippingdirection cosine -1.0000 — the far end is drawn 2142 px away20 grid segments, 2.4 m of them behind the eyea reversed line is not a large error, it is a different picture

What happens behind the eye

A point behind the camera has a perfectly plausible image. Dividing by a negative fourth coordinate flips both signs, so the point lands through the principal point on the far side of the frame, and a segment crossing the eye plane is drawn straight, inside the frame, and running in exactly the opposite direction — a direction cosine of −1.0000.

8 figures
00.2500.5000.7501-10123distance from the eye — log₁₀ metresfraction of the buffer's codes used uphalf the codes by 0.20 ma linear map, for comparisonnear 0.1 m, far 1000 mharmonic mean 0.20 m against arithmetic 500 m

The 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.

7 figures
one pixel is an areacentrescornersprincipal point moves0.707 pxfocal length changes by4.5e-13 pxan edge-versus-centre viewport1.303 pxa half-pixel convention is a principal-point error; an off-by-one viewport is a focal-length error8 vertices, all shifted by the same 0.7071 pxspread across marks 0.0e+0 px

A 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.

5 figures
-0.400-0.200000.2000.4000.6000.8001position across the drawn surfacehow far along the real surface, minus how far along the drawn one(√k−1)/(√k+1) = 0.5195at the page's midpoint, 40.9%depth ratio 10 : 1peak 0.5195 at s = 0.760

A 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.

5 figures
the eyenear 0.90 mfar 4.20 mfocal 740 pxprincipal 345, 210

Four 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.

8 figures
worst 1e-13 px outcorrect from 17 cm, at 160 mm wide3 × 3 tiles

A 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.

9 figures
24 kept · 26 clipped · every mark unmovedcorrect from 17 cm, at 160 mm wideclip plane tilted 18°

The 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.

9 figures
01230123the plane moved by a factor of ten to the …depth resolution, relative (powers of ten)near plane, brought infar plane, pushed out1/near − 1/farone term does all the work

One 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.

8 figures
the seat3 chords against the arccurved monitor, 3 flat pieces6.80 mm of sag · 5.50 px at the seat

A 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.

8 figures
00.2500.5000.7501-10-50510across the edge, in pixels of the picturehow much of the background reaches the sensorwhere a pinhole puts the edgethe pupilone depth per samplethe same edge, two ways of blurring it70% apart

One 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.

8 figures
0.25°0.5°10°20°45°90°0.1110angle of the span from the horizon's direction (log scale)worst texel along a 120 px span (px, log scale)80 px below the horizon160 px below the horizonparallel to the horizon: 0 pxfloor · eye 1.5 m · 60° field

Along a line of constant depth the page is affine

Stepping a texture by a constant amount per pixel is wrong across a receding floor and exactly right along any line of it that stays at one depth — and on every plane those lines run parallel to its own vanishing line. Turn a 120 px span 1° away from that direction and it is 0.79 px out; roll the camera a hundredth of a degree and a floor drawn to 30 m is out by 0.69 px on its worst scanline.

5 figures
6 vertices with w = 0 · each on its vanishing point to 7e-12 pxcorrect from 17 cm, at 160 mm wideedges extended to where their w = 0 vertex lands

A point at infinity is an ordinary vertex

Give a vertex a zero in its fourth slot and it stops being a point and becomes a direction — and the projection matrix draws it anyway, through the same multiply and the same divide, on that direction's vanishing point to seven trillionths of a pixel. Slide the eye ten metres and it does not move. Two of them bound a ground that reaches the horizon, where a ground drawn to ten kilometres stops a fifth of a pixel short.

5 figures
5710142028400.31310distance along the floor from below the eye (m, log scale)pixels one shadow-map texel spans on screen (log scale)1 pxlamp beside the eyelamp 30 m overheadlamp 40 m ahead, facing backmeasured against the closed form: 4e-91024-texel map · eye 1.7 m · 50° field

A 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.

5 figures

Through water and glass

A refracted picture is not a projection at all — its rays, continued into the water, miss each other by millimetres rather than meeting at a point. Everything the other fields rest on is measured here against the case where it fails, from the cross-ratio to Snell's window to a dome port that turns out to be an exact pinhole.