No surface can be that colourful
Assumes Why blue and yellow make green and A colour that moves with the viewer.
Almost every boundary on this site is an engineering limit. A display gamut is a choice of primaries and could be widened. A lamp’s rendering is a choice of phosphors. A tolerance is a negotiated number. Each of them could be moved by somebody with a better idea.
There is one boundary here that cannot be moved by anybody, and it follows from a single inequality: a reflectance is at most 1, because a surface that returns more light than reached it is a lamp.
The claim
At any given lightness, the most saturated reflectance possible takes only the values 0 and 1 and has exactly two transitions. So the entire boundary of the set of physically possible surface colours is generated by two numbers, and it is a hard physical bound rather than a gamut.
Schrödinger’s argument for the shape is short and worth following, because it explains why the answer is so unlike a real pigment.
Why the extremes are rectangular
Suppose a reflectance produces some chromaticity at some luminance factor, and ask whether it can be made more saturated without changing the luminance.
Anywhere takes an intermediate value, there is a choice. Raising it towards 1 adds power; lowering it towards 0 removes power. If the wavelength in question is one that helps the target chromaticity, keeping it partially reflective is throwing away power that could have been kept. If it is one that hurts, keeping any of it is retaining power that could have been discarded.
So at the optimum every wavelength is either fully on or fully off — an intermediate value is always an unexploited opportunity. And since the useful wavelengths for any given chromaticity form a contiguous region of the spectrum, the optimum is a band, or the complement of a band, with exactly two transitions.
That gives the boundary as a two-parameter family. Sweep the two transition wavelengths over the whole band, keep the ones landing at the target luminance factor, and take the outer boundary of their chromaticities. Nothing else is required.
The bound shrinks towards white
The most useful thing in the whole calculation is how strongly the bound depends on lightness.
| luminance factor | area of the bound |
|---|---|
| 0.1 | 0.30988 |
| 0.3 | 0.22151 |
| 0.6 | 0.11455 |
| 0.9 | 0.02821 |
A factor of eleven, from dark to light. At there is almost no room to be colourful at all, and the reason is immediate from the argument above: to be light, a reflectance must be near 1 over most of the band; to be saturated, it must be 0 over most of the band. Those are opposite demands on the same integral, and near either extreme of lightness one of them wins.
This is the exact and general form of a trade that shows up repeatedly in this field. Mixing pigments loses light every time it is applied. A thicker absorbing path is more saturated and darker. Both are moves inside a region whose shape is set here, and neither can escape it.
It also explains something anybody who has looked at a paint fan deck will have noticed: the pale tints are all nearly neutral, and the saturated colours are all mid-toned or dark. That is not a limitation of the pigments available. There is no such thing as a very light, very saturated surface, and a fan deck’s shape is the shape of this bound.
The comparison that had to be done twice
The obvious thing to do next is compare a display gamut against the bound, and the obvious way to do it is wrong.
Drawing the sRGB primary triangle beside an optimal-colour boundary invites a direct comparison of areas. Done that way, the sRGB triangle has area 0.11205 and the surface bound at has area 0.11455 — almost exactly equal, which looks like a striking result and is a coincidence between two incommensurable quantities.
The triangle is the set of chromaticities a display can reach at some luminance. The bound is the set a surface can reach at one. Comparing them is comparing a projection with a slice, and the near-equality of those two numbers means nothing whatever.
Matched properly — asking which chromaticities the display can reach at each luminance factor — the answer is different and much more interesting:
| sRGB | Display P3 | Rec. 2020 | |
|---|---|---|---|
| 0.1 | 36% | 49% | 68% |
| 0.3 | 40% | 58% | 86% |
| 0.6 | 40% | 65% | 106% |
| 0.9 | 21% | 29% | 48% |
Three things fall out of that table.
sRGB reaches about 40% of the physically possible through the middle of the lightness range, which is a much harsher verdict than the primary triangle suggests and is the honest one.
Rec. 2020 exceeds the bound at . A Rec. 2020 display can be more colourful than any surface can be at mid lightness — 1.06 times the area — which is a strange and real property of a wide-gamut display: some of what it can show is not merely absent from any screen a viewer owns, it is absent from the physical world of objects.
Every space collapses at . No display reaches half the bound there. Light, saturated colours are hard for surfaces and hard for displays, and they are hard for the two for different reasons — the surface is bounded by and the display by its primaries’ luminances.
Why a display can exceed a surface at all
The Rec. 2020 result reads as paradoxical and is not, and the reason says something about what the two bounds are.
A surface is bounded because it can only return light that arrived. Its most saturated option is a narrow band of the illuminant at full reflectance, and the luminance of that option is fixed by how much of the illuminant’s power falls in that band. To be light as well as saturated, it would need a band that is both narrow and carries most of the power, and no illuminant is shaped that way.
A display is under no such constraint. Its primaries are emitters and their luminances are set by how much power the panel puts into them, not by what a room’s lamp happens to supply. A Rec. 2020 primary sits essentially on the spectral locus and can be driven to whatever luminance the hardware allows.
So the two bounds have different mechanisms and there is no reason for one to contain the other. A display exceeds a surface where its narrow primaries can be made bright; a surface exceeds a display where the display’s triangle simply does not reach, which happens in the cyan and deep violet regions at every lightness.
That is the useful way to read a gamut-coverage percentage. A number like “98% of Pointer’s gamut” is a claim about overlap with measured real surfaces, not about the theoretical bound, and the two questions have different answers. What a gamut costs takes the same comparison into a uniform space, where the areas above stop being misleading in the way flagged below.
Where the two comparisons coincide
The matched table can be checked against the triangle areas the essay rejects, and doing so says exactly what the naive comparison was measuring.
Multiplying the coverage percentages by the bound’s own area gives the absolute area each display reaches at each lightness:
| Y | bound | sRGB | Display P3 | Rec. 2020 | each as a share of that space’s own triangle |
|---|---|---|---|---|---|
| 0.1 | 0.30988 | 0.11156 | 0.15184 | 0.21072 | 100 % · 100 % · 99 % |
| 0.3 | 0.22151 | 0.08860 | 0.12848 | 0.19050 | 79 % · 85 % · 90 % |
| 0.6 | 0.11455 | 0.04582 | 0.07446 | 0.12142 | 41 % · 49 % · 57 % |
| 0.9 | 0.02821 | 0.00592 | 0.00818 | 0.01354 | 5 % · 5 % · 6 % |
At Y = 0.1 every space reaches its entire primary triangle, to within half a per cent — 0.11156 against sRGB’s 0.11205, 0.21072 against Rec. 2020’s 0.21187. That is a check on the whole table, since those triangle areas were computed from the published primaries and never entered the sweep.
It also identifies the error in the rejected comparison precisely. The primary triangle is not incomparable with a slice; it is the slice, in the limit of low lightness, because a display run dark can reach essentially any chromaticity inside its triangle. So drawing the triangle against the Y = 0.6 bound is not comparing a projection with a slice so much as comparing sRGB at its dark end with a surface at mid lightness — two different lightnesses, silently. The 2.2 per cent agreement is a coincidence between the sRGB triangle and a bound three quarters of the way up the lightness range.
The like-for-like version of the rejected comparison
There is a projection-against-projection number, and it is worth having because it is what the triangle comparison was reaching for.
The optimal-colour solid’s projection onto the chromaticity plane is, in the limit, the whole horseshoe: as the luminance factor falls to zero, a narrow band at any wavelength approaches that wavelength’s locus point, and the complement of a band approaches the line of purples. Computed on this collection’s own locus, the horseshoe encloses 0.33332. Against that:
| space | triangle | share of the diagram |
|---|---|---|
| sRGB | 0.11205 | 33.6 % |
| Display P3 | 0.15200 | 45.6 % |
| Rec. 2020 | 0.21187 | 63.6 % |
Those are comparable quantities — both are what is reachable at some lightness — and they are the honest headline the triangle picture supports. Rec. 2020 covers under two thirds of the diagram, which sits oddly beside its 106 per cent at Y = 0.6 and is not in conflict with it: the excess at mid lightness and the shortfall over the whole diagram are statements about different slices of the same solid.
Displays collapse twice as fast as the bound does
Every space collapses at Y = 0.9 is the table’s third reading, and the percentages understate it, because they are a ratio of two quantities that are both falling.
From Y = 0.6 to Y = 0.9 the bound itself falls by a factor of 4.1. Over the same interval sRGB’s reachable area falls by 7.7, Display P3’s by 9.1 and Rec. 2020’s by 9.0. So a display loses roughly twice as fast as the physics does, and the coverage percentage — halving from 40 to 21 — is the quotient of a nearly eightfold fall by a fourfold one.
In absolute terms all three spaces end at the same place. At Y = 0.9 every one of them reaches five or six per cent of its own primary triangle, and the ordering between them survives while the distances between them do not: 0.0059, 0.0082 and 0.0135 of a diagram whose total is a third. A wide-gamut panel buys a great deal at mid lightness and very little at the light end, and the reason is the one the essay gives for the surface — to be light, a primary mixture must be mostly the bright primary, which is the least saturated direction available.
What was computed, and how
The sweep is over transition pairs on the 5 nm grid, keeping reflectances whose luminance factor lands within a stated tolerance of the target, and taking the convex hull of their chromaticities. The tolerance is printed, and it is the reason the point counts differ between lightnesses — there are more optimal colours near the extremes because the constraint is easier to satisfy there.
The hull is a genuine convex hull, by Andrew’s monotone chain, so the boundary closes as a curve rather than being a cloud of points with a line drawn round it by eye.
Every constructed reflectance on this site is checked against it. assertNoSurfaceBeatsTheLimit takes three test reflectances, computes each one’s luminance factor, computes the bound at that lightness, and requires the chromaticity to fall inside. A bound that nothing was ever tested against would be a decoration.
The illuminant is named because the bound depends on it. An optimal colour is a reflectance and its chromaticity is the reflectance times the illuminant, integrated — so the boundary moves when the light changes. Every figure names both the illuminant and the observer, and this is a case where neither is a formality.
The bound is computed against a light, so it moves with the light, and a tungsten lamp is the other end of the range anybody measures under.
What the pictures cannot show
Nearly all of the interesting region is outside the display’s gamut, which is the point and is also a drawing problem. The bound encloses colours no screen can show, so the figures mark the unreachable region rather than filling it — this site’s second figure rule — and a reader is therefore looking at a boundary around a hatched area rather than at the colours it bounds.
A chromaticity diagram divides luminance out, and this whole essay is about luminance. Drawing a two-dimensional slice at each of four lightnesses is the honest compromise; the object being described is a three-dimensional solid, and a chromaticity diagram is a shadow of one. The solid’s shape — pointed at black, pointed at white, widest in the middle — is what the table of areas reports and what the picture cannot.
Areas on the CIE 1931 diagram are not perceptually meaningful. The diagram is famously non-uniform, so a percentage-of-area comparison overweights the green region where the diagram is stretched. The percentages in the table above are therefore relative statements between quantities measured the same way, and they are not claims about how much more colourful anything looks. What a gamut costs, measured in a uniform space, is a different essay and gets different numbers.
Drawing a wider display gamut inside the same bound prices how much of what a surface cannot be is nevertheless unreachable anyway.
Where the model stops
Non-fluorescent, opaque, non-goniochromatic surfaces. Every one of those qualifications is doing work. A fluorescent surface can have a reflectance factor above 1 at wavelengths where it emits, so it genuinely escapes the bound — which is what a brightened paper does, and it is why “whiter than white” is not marketing but a measurement. A structurally coloured surface satisfies the bound at each angle and can be outside it if the angle is unspecified.
The 5 nm grid quantises the transitions, so the computed boundary is slightly inside the true one. Finer grids move it outward marginally and do not change any conclusion here.
Convexity is assumed by taking a hull. The set of optimal colours at a fixed luminance is convex for the reason Schrödinger’s argument gives, and the hull is a construction rather than a discovery. A non-convex boundary would indicate an error rather than a physical feature.
Nothing here is about appearance. These are chromaticities and luminance factors. What a maximally saturated surface looks like depends on its surround and its adapting state, which is a different field on this site entirely.
And a surface in a scene is not a surface on a chart. Everything on this page is the reflectance of an isolated sample under a stated illuminant, measured once. Put it in a corner and the light has bounced, so what reaches the eye is rather than — and that expression can sit outside this boundary, because it is no longer a reflectance times an illuminant. The bound constrains materials, not scenes.
The generalisation
Two transferable points, and the second is the one that cost a redraw.
A bound derived from a constraint on the primitive quantity is stronger than any bound derived from current practice. is not a statement about pigments; it is conservation of energy applied to a surface. So this boundary will still be there when every pigment in use today has been replaced, which is not true of any gamut, tolerance or rendering index on this site. When a limit is wanted, it is worth asking what the primitive quantity is constrained by rather than surveying what has been achieved.
Two quantities can be nearly equal and incomparable, and the coincidence is more dangerous than a disagreement. The sRGB triangle at 0.11205 against the surface bound at 0.11455 is a 2% agreement between a projection and a slice. Had the two numbers differed by a factor of five the error would have been caught immediately; agreeing closely, it read as a finding. A suspiciously satisfying comparison deserves the same scrutiny as a suspicious one, and the check is to ask whether the two quantities are functions of the same variables. These were not: one integrates over luminance and the other fixes it.
Who found it, and when
Schrödinger worked out the optimal-colour argument in 1920, in a long paper on the theory of colour measurement written before he turned to wave mechanics. The result — that the extremes of the object-colour solid are reflectances taking only the values 0 and 1 — is his, and the reasoning is essentially the exchange argument above.
MacAdam computed the boundaries numerically in 1935, which is why they carry his name, and the computation was substantial arithmetic by hand: a sweep over transition pairs, integrated against the colour-matching functions adopted four years earlier. His two papers on the maximum visual efficiency of coloured materials are the source of the tables still cited.
Rösch had described the solid’s general shape in 1929, which is why it is sometimes the Rösch–MacAdam colour solid. The name that stuck depends on the field, and all three men are describing the same object.
Pointer’s 1980 survey is the empirical counterpart and is worth naming for contrast. He measured over four thousand real surface colours and mapped the region they actually occupy, which is substantially inside the theoretical bound — real pigments are smooth and lose a great deal to their gradual transitions. So there are two boundaries in play: what physics permits, and what chemistry has managed. The gap between them is large, and it is the one place on this page where an engineer could still make progress.
Where the ladder goes next
Two neighbours on this rung leave the material behind for the measurement. A scene has no white point shows that a single white balance cannot be right across a scene lit by two lamps, and the failure is structural rather than a matter of a better estimator. Gloss changes the measurement shows the same sample returning two different, both-correct answers depending on the instrument’s geometry.
Below, the field’s base rung is where all of it starts: a bounce is a multiplication, and everything above is a consequence of doing that more than once.
What this makes readable
Essays that name this one as a prerequisite.
Named alongside this one
Essays reaching for the same objects. Nobody chose these; they are what the index of named objects makes visible.
- A fourth primary is a design chromaticity · display gamut · gamut · primaries · standard observer
- Not every colour has a wavelength chromaticity · display gamut · gamut · primaries · standard observer
- The limits assume a pigment that switches instantly gamut · macadam limits · object-colour solid · optimal colours · reflectance
- A limit written in energy charges the reds macadam limits · object-colour solid · optimal colours · reflectance
- Rendering in three numbers chromaticity · primaries · reflectance · standard observer
- The display is an unknown display gamut · gamut · luminance · primaries
What links here
The 8 essays that link to this one and share the most of its objects, of 21 that link here.
The objects this essay names
Each one links to every other essay that touches it.
ChromaticityDisplay gamutGamutLuminanceMacadam limitsObject-colour solidOptimal coloursPrimariesReflectanceStandard observer