The boundary belongs to the quadrature
Assumes Two ways to put a lobe on a wall, Thirty unknowns instead of six and A model is a claim about what can be known.
Two ways to put a lobe on a wall ended on a boundary rather than on a result: a patch stops being a point when the lobe is narrower than the cone it subtends, and below that the answers are not imprecise but unphysical. The first version of that solver returned a chroma of thirty-four thousand and a negative lightness at a roughness of 0.05, which is what an unresolved lobe looks like rather than what a glossy room looks like.
The boundary is quoted at a roughness of 0.15, against a patch subtending a cone of 25.8 degrees. Both numbers belong to the discretisation, and neither has been varied.
A purchase, and an expensive one
The boundary is where the quadrature stops resolving the lobe, so refining the quadrature moves it — and the reachable roughness falls as the cost to the power of a third, which makes a high-gloss finish unreachable rather than merely expensive.
- Six quadratures from 24 to 1,008 directions move the boundary from a roughness of 0.279 to 0.067, a factor of 4.2 for a factor of 42 in cost.
- The fitted exponent is −0.350: the reachable roughness falls as the cost to the power of a third, so halving it costs about seven times the work.
- Reaching a roughness of 0.01 — a polished varnish — would cost about 236 times the finest quadrature here, a quarter of a million directions.
- The boundary is the cone’s. At the quadrature used here the answer is stable until the lobe is 8.3 degrees against a cone of 25.8 — so the rule that a lobe narrower than the cone is unresolved is conservative by about a factor of three.
- The movement it is read off is a real movement: the coarsest quadrature moves the answer by 6.0 colour differences at a roughness of 0.1 and by thousandths at a matt finish.
What is being measured, and why it is not the answer
A solver that has stopped converging does not announce it. The answer it returns is a number of the right shape, and reading whether it is trustworthy from the number itself is exactly what cannot be done.
What can be done is to refine and look. A roughness whose answer moves when the sampling is refined is a roughness the model cannot report, whatever the answer happens to be — and one whose answer does not move is one where the sampling is not the limiting thing. That is a statement about the method rather than about the room, and it is why the quantity plotted throughout is a movement rather than a colour.
At a matt finish every quadrature is stable to thousandths of a colour difference. At a roughness of 0.04 the coarsest moves by several units. The curves fall steeply and then flatten, and where each crosses the tolerance drawn across it is where that quadrature stops.
The tolerance is a fifth of a colour difference, which is a choice and is stated as one. It is below what a reader could see and above the solver’s own arithmetic noise, and moving it moves every boundary together rather than changing the exponent — which is the quantity the rest of this rests on.
The other reading of the same numbers
The boundary is one thing the sweep measures and the movement is another, and the movement carries a warning the boundary does not.
A solver past its boundary does not return a large number or a flagged one. At a roughness of 0.1 the coarsest quadrature returns a colour that is six colour differences from the converged one, and it is a perfectly ordinary colour: a lightness in range, a chroma in range, a hue that means something. The only way to know is to refine and compare, and the only reason the boundary is known to exist here is that an early version of the solver went far enough past it to return a chroma of thirty-four thousand.
That is a bad way to find a boundary and it is the usual way. A model fails visibly at some distance past where it stops being right, and everything between the two is an answer nobody questions. The measurement here is the cheap version of the same discovery — one extra solve per roughness, done once — and it says the visible failure at 0.05 was the tail of a failure that began at 0.145.
A model is a claim about what can be known sets out why a stated limit belongs to a model. What this adds is that the limit has to be measured rather than noticed, because the region between “wrong” and “obviously wrong” is wide.
Where the boundary falls, and what moves it
With the boundary located by bisection rather than by inspection, it can be put against what each quadrature costs.
Twenty-four directions reach a roughness of 0.279; 32 reach 0.203; 108 reach 0.145; 256 reach 0.111; 500 reach 0.090; 1,008 reach 0.067. The solver used here evaluates 108 directions and reaches 0.145, which is where its own note put the boundary by inspection — so the inspection was right, and it was right about a number that belongs to the sampling.
Plotted on logarithmic axes the six sit on a line of slope −0.350. The reachable roughness falls as the cost to the power of about a third, which is the useful form: each halving of the roughness costs a factor of 2^(1/0.35) — about seven — in directions evaluated.
That exponent has a reason. A microfacet lobe of roughness a is about a radians wide, so resolving it needs a sampling spacing of order a; a two-dimensional quadrature over a hemisphere at spacing a needs of order a⁻² directions. That would give an exponent of −0.5, and the measured −0.35 is shallower — the quadrature is doing better than a uniform grid would, which is what a refinement scheme concentrated near the specular direction is for.
The boundary is the cone’s, and the rule is conservative
The rule the solver’s note gives is that a patch stops being a point when the lobe is narrower than the cone it subtends. That is the right rule and it is not tight.
Every boundary sits below the cone — from 16.0 degrees at the coarsest quadrature to 3.8 at the finest, against a cone of 25.8. A corner is not a wall is where the cone a patch subtends first mattered in this collection, for a different reason. At the quadrature actually used the lobe is 8.3 degrees, which is a third of the cone.
So the rule is conservative by about a factor of three at the working quadrature, and by less at a coarse one and more at a fine one. That is the sense in which the boundary is the cone’s and its exact position is the quadrature’s: the cone sets the scale — a lobe much wider than it is certainly resolved and one much narrower is certainly not — and where in between the answer stops being stable is decided by how the solver samples.
The ratio’s own trend says which half is which. If the boundary were the cone’s alone the ratio would be constant; if it were the quadrature’s alone the cone would not appear in it. It rises from 1.6 to 6.8 across the six, so both are present and neither is the whole story — which is the honest form of a limit that has a geometric cause and a computational position.
Both halves matter for reading the earlier result. The geometry is what makes a boundary exist at all, and no amount of sampling removes it, because a patch that subtends a cone cannot distinguish directions inside that cone. The sampling is what decides where it falls, and refining it buys real ground.
What a glossier finish would cost
The exponent turns the question of reachability into arithmetic.
A roughness of 0.1 is already inside the finest quadrature measured. 0.05 costs about twice it; 0.02 costs 33 times; 0.01 costs 236 times — about a quarter of a million directions, against the 108 the working solver evaluates.
The extrapolation is from the fitted exponent and it is labelled as one. It is an order of magnitude rather than a figure, and that is all it needs to be: the conclusion is that a polished varnish is out of reach rather than that it costs a particular amount.
So the honest statement about this model’s ceiling is not “gloss is expensive”. Matt, eggshell and satin finishes sit comfortably inside; a semi-gloss is reachable at a cost; a high-gloss paint or a varnish is not, and would need a different method rather than a bigger budget — one that treats the specular direction analytically instead of sampling it, which is what every renderer written for mirrors does and which this solver’s whole construction forbids, since it solves for a radiance per pair of faces. A tenth of the return arriving white is the part of the lobe that survives the restriction.
What this means for the results the solver has published
Every scene computed here with the directional solver sits at a roughness of 0.15 or above — the essay that found every scene matt is where that range was chosen — and this measurement says that was the right place to stop with 108 directions. Two things follow.
The published results are safe and the stopping point was not arbitrary. A roughness of 0.15 is 0.005 above the working quadrature’s measured boundary of 0.145, which is closer than the original inspection could have known and is on the right side.
A patch is not a scene is the neighbouring caution about a model whose unit is the wrong size; this is the same caution about a model whose sampling is.
And the ceiling can be raised for a price that is now known. Thirty unknowns instead of six established what the directional solver costs against the radiosity one it replaced; this says what a further factor buys. A room at a roughness of 0.09 — a semi-gloss — is a 500-direction solve, about five times the present one, which is an afternoon rather than a project.
What it does not buy is the case a reader would most like. A mirror-finished wall is not a hard case for this solver; it is outside it, and saying so is the honest answer rather than an apology. A model is a claim about what can be known is the standing statement of why a stated limit is part of a model rather than a defect in it.
How the boundary was located
The room is the unit cube the directional work uses throughout: a lamp in the ceiling emitting D65, two opposite walls painted with a Gaussian reflectance band, the others a neutral grey, every face carrying a microfacet lobe of the stated roughness, solved directionally in eighty-one bands.
A quadrature is a ring count and a refinement level, and its cost is taken as the ring count times the square of the refinement, which is the number of directions the solver evaluates. The movement at a roughness is the colour difference between the floor’s colour computed at that quadrature and at one half again as fine in ring and one level deeper in refinement.
The boundary is found by bisection on the roughness against a tolerance of a fifth of a colour difference, in twelve steps, with a bracket from 0.02 to 0.6; a quadrature stable at the bottom of the bracket or unstable at the top is reported as such rather than as a boundary at an end. The exponent is a least-squares fit of the log of the boundary against the log of the cost.
What this leaves out
The cone is the cube’s. A room of a different shape subtends different cones, and a long room’s end walls subtend small ones — so the same quadrature would stop at a different roughness there, and the boundary would have to be located again. What transfers is the method rather than the number.
The tolerance is a fifth of a colour difference. A tighter one moves every boundary to a rougher finish and a looser one the other way; the exponent is what the argument uses and it is insensitive to the choice, because moving the tolerance moves every point on the line together.
And the extrapolation is a power law fitted over a factor of forty in cost. Extrapolating it by another factor of two hundred is an estimate of an order of magnitude and nothing more, and it would be surprising if the exponent held exactly that far — a quadrature refined enough eventually hits the floor set by the spectral sampling and the linear solve, neither of which this measurement varies.
Still open: whether the specular direction can be taken out analytically
The exponent says sampling cannot reach a polished finish, and the way past a sampling limit is usually to stop sampling the hard part.
A microfacet lobe at low roughness is a narrow peak around the mirror direction with a broad, weak tail. The tail is what the quadrature is good at and the peak is what it is not — so a solver could integrate the peak analytically, using the fact that the reflected direction of a known incoming direction is known exactly, and sample only the remainder. That is the standard arrangement in a renderer and it has never been tried here, because this solver’s unknown is a radiance per pair of faces rather than a field, and a peak that lands between two faces has nowhere to go.
The question is whether the peak can be attributed to face pairs without sampling. For a box it probably can, because the mirror direction of one face towards another is computable in closed form and the peak’s footprint on the receiving face is an ellipse whose area is a function of the roughness. Whether the resulting split is consistent — whether the analytic peak and the sampled tail add to the same energy the full quadrature converges to — is the test, and it is the same test this essay uses: refine and watch.
If it works the ceiling moves from a roughness of 0.07 to wherever the tail’s sampling stops mattering, which is much lower. If it does not, the honest statement is that a box with faces as its unknowns cannot hold a mirror, and the next model would have to subdivide.
A limit is either the world’s or the method’s
The habit is about a number that marks where a model stops.
Such a number always has two candidate owners. It can belong to the thing being modelled — a real threshold, a physical scale, a place where the phenomenon genuinely changes — or it can belong to the model: a grid spacing, a sampling rate, a convergence tolerance. The two are reported identically, as a value and a caution, and they behave completely differently under investment.
The move is to vary the model and watch the limit. A limit that does not move is the world’s and should be stated as a result; one that moves is a purchase, and the useful thing to publish is its exponent — because an exponent turns “this model stops here” into “reaching there costs this much”, which a reader can act on.
The failure mode is to report a limit without saying which kind it is. A roughness of 0.15 read as a fact about gloss is a discouraging result about what can be modelled; read as a fact about 108 directions it is a price list.
Named alongside this one
Essays reaching for the same objects. Nobody chose these; they are what the index of named objects makes visible.
- A room is not a sphere bidirectional reflectance · gloss · microfacet · quadrature · radiosity · specular
- Where a patch stops being a point bidirectional reflectance · convergence · modelling assumption · quadrature · radiosity · specular
- A gloss finish takes colour out of the whole room bidirectional reflectance · gloss · interreflection · radiosity · specular
- A lobe takes colour out of a bounce bidirectional reflectance · interreflection · modelling assumption · radiosity · specular
- The floor is a different colour from the door bidirectional reflectance · interreflection · modelling assumption · radiosity · specular
- The solver had no slot for gloss bidirectional reflectance · interreflection · modelling assumption · radiosity · specular
What links here
Every essay whose body links to this one.
The objects this essay names
Each one links to every other essay that touches it.
Bidirectional reflectanceConvergenceGlossInterreflectionMicrofacetModel complexityModelling assumptionQuadratureRadiositySpecular