Concept

Depth buffer — where it appears

One depth stored per sample of a rendered frame. It is enough for hidden-surface removal and not enough for anything that integrates over an aperture, because at an occluding edge the honest answer is two surfaces and what a pupil can see past one of them.

Named by 4 essays across 2 fields — each of them below, with the objects they name alongside it.

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.

pipeline · Zbuffer
-0.10000.1002.5057.5010depth reported from the stepped disparity (m)height reported for each image row (m)the floor as it is35 platesspacing 3.9 cm → 1.95 mslope 1.997

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

depth · Disparity
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.

pipeline · Zbuffer
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.

pipeline · Shadowmap

Named alongside it

The objects these essays reach for when they reach for this one.

instrument limitCamera matrixOcclusionQuantisationApertureBaselineCircle of confusionClip spaceConditioningConvolutionDemonstrationDepth uncertainty

All concepts