Guide

Ghosts in a camera lens: find them, rank them, and see what a coating is worth

A three-element camera lens with a bright source just outside the frame. Rank the reflections still landing on the sensor, then add the housing and coat the glass, and measure what each of the two was worth. Nine steps in the Illumination Analyzer, every number from our own runs.

Point a camera just off the sun and you get more than the picture. A bright source outside the frame still puts light on the sensor, by reflecting twice inside the glass, by skimming a rim, by bouncing off the sensor and back off a lens face. That light is not an aberration and it does not sharpen with a better design. Engineers call it stray light; the part of it that reflects an even number of times still forms an image, and that is a ghost. In a real lens it sets the contrast floor, and Fresnel reflection at an uncoated surface is what feeds it.

This guide takes one lens through a sequence of runs and reads what each one changed. It finds two different problems and buys a different fix for each.

What you get at the end

A ranked table of the paths that put light on the sensor, with an error bar on each row; the fraction of the sensor's light that is not the picture, under two kinds of illumination; and a measured answer, for each of them, to "what should I spend money on" — for this lens, not for lenses in general.

Importing a design as a lens prescription is a Plus feature; running the audit on the server and coating an imported element are Illumination Analyzer Pro. Every number, table and picture on this page is from our own runs, and you can read all of them without an account.

Step 1

Import the lens

Import the triplet from Designing a camera triplet, start to finish — a 100.13 mm f/4.5 lens in three catalog glasses, N-PSK53, LLF1 and TAF1 — and the Analyzer offers to build the rest of the camera around it: a source, a sensor, and a housing in three parts. Any prescription you have saved from the Ray-Optics Designer works the same way.

An imported prescription carries glass and curvature and nothing about the metal around it, so everything that is not the lens is something you choose. What each derived number comes from.

The import reports three elements, each of them coatable and none of them cemented. That matters in step 8: a cemented pair cannot take a coating between its glasses, and this lens has no such pair.

How to do this in Illumination Analyzer
Where.
Design ▾ → Import from a lens design….
What to set.
Pick the saved triplet, then accept the offer.
What you should see.
The dialog names the stop twice — Aperture stop, the surface the record names, and Stop annulus, what the mapping made of it. They are one thing seen from two sides.

The imported lens

Three elements on the axis, at the clear semi-diameters the record states.

The guide’s own run
The three elements of the imported triplet, in section through the long axis of the sensor, drawn at the clear semi-diameters the prescription states. Each drawing in this guide carries the previous one in a light weight and draws what changed at full weight.

Step 2

Run the lens bare

Give the sensor a 5 % reflectance, because a real sensor is a mirror at that level, and run.

Of the light the source emits, 42.2 % reaches the sensor. Almost all of it is the picture: the image lands in 2 cells of 10,880, and 1.47 % of what arrives is not the image.

Every uncoated glass-air surface reflects between 4 and 8 % of the light that hits it, so a six-surface lens has fifteen ways for light to arrive after reflecting twice.

That 1.47 % is the whole subject of the guide. It is small, it is never zero, and the rest of these steps are about where it comes from and what makes it smaller.

How to do this in Illumination Analyzer
Where.
The sensor element's property panel.
What to set.
Property Mirror, Reflectance ρ 0.05. Then Run.
What you should see.
16,000 rays in 16 batches, about a minute on the server, and a single bright spot under Irradiance.

The bench the first run traces

The source, the lens, the aperture stop and the sensor.

The guide’s own run
The lens from the previous drawing, now with everything the first run needs around it: the source disk on the left, facing straight down the axis, the aperture stop between the second and third elements, and the sensor on the right. The axis runs left to right; the transverse scale is the same as the long one, so the angles are true.

Step 3

Take the aperture stop out, and put it back

Untick the stop and run. The stop is part of the lens design — it is what gives the lens its f-number and its pupil — and it is also a piece of metal that absorbs light. Those are two different jobs, and the only way to see the second one is to take the first one away.

The sensor reading goes up 69.6 % on axis.

An aperture stop enforces the clear aperture a prescription declares, and glass keeps transmitting past it.

The measurement says exactly that. With the stop in, the widest ray that forms the image crosses its plane at 10.037 mm, against a hole of 10.072 mm — it rides the edge. Take the stop out and the glass keeps transmitting to 11.061 mm, the edge of the blank, and the image gains 6.6 % of light the design never allowed for. That is what makes the f-number a real number rather than a nominal one.

With the stop out there is a second row, and it has no path at all: light that reaches the sensor without touching a single optical surface, 1.2 % of what arrives. It appears only on axis. With the source off to the side the geometry closes it, and it is absent from the ranked list entirely.

And the stop is the hardest-working piece of metal in the camera. Put it back, look at where the emitted light ends up rather than at the sensor, and the stop absorbs 41.4 % of the emitted watt on its own. There is a cleaner way to see what that means. The stop's own outer edge reaches out to 28.2 mm; shrink it to 14.2 mm and it absorbs 8.8 points less of the watt — and the sensor reading is identical to the last bit. Eight per cent of the light, intercepted, none of which was ever going to the sensor. That is the whole idea of a baffle in two numbers, and it is worth holding on to, because the housing, when it arrives, has to earn its place against this one.

Put the stop back before going on. Every number after this has it in.

How to do this in Illumination Analyzer
Where.
The imported lens's panel.
What to set.
Untick Stop as its own element, run, then tick Add the aperture stop as an element.
What you should see.
Unticking re-imports the lens without the annulus and reveals the second row, which puts it back at the lens's own slot. Ticking that row clears the removal in the same edit: the two controls are one decision.

The aperture stop

Two radii, and they do two different jobs.

The guide’s own run
10.07 mm — the hole28.24 mm — the rim
Nothing is added here. The aperture stop is drawn forward out of the bench, with both of its radii marked: the inner one is the hole that sets the f-number, and the outer one is the rim of a piece of metal that absorbs light. Six rays here. Five of them form the image and pass inside the hole, the widest riding its edge. The sixth is from the run with the stop taken out: it crosses the stop’s plane outside the hole, and it ends there because with the stop in, that is where the metal absorbs it. The next drawing is about a ray that clears that rim.

Step 4

Change the source to a scene

Swap the source for one that fills the frame and run. Every run so far has used a single collimated beam, which is a laboratory source: one direction, like a star. A camera points at a scene, and a scene fills the field. The tool calls it a **Lambertian rectangle** — a flat panel that emits in every direction, which is what a lit scene does.

A single beam down the axis can only illuminate what is on the axis; a scene illuminates the inside of the tube.

Now open the energy ledger. Every arrival is filed under the sequence of surfaces it touched, and the table ranks those sequences by the power each delivers. Under a scene the ranked list has a very short story to tell: the top row is the picture, and the second row has no path at all.

A ghost is named by its path: the list of things it touched, in the order it touched them. How a path is named.

That second row is light reaching the sensor having touched nothing at all — straight past the glass, down the inside of the barrel — like the row the stop revealed in step 3, but a different one, and this time it is nine tenths of the problem. It is more than 90 % of the non-image light, and the row below it is fifty times smaller.

This is the number to write down: the contrast floor, how much non-image light sits on top of the picture. Right now it is 12 %. Twelve per cent of the picture's brightness, laid over the picture, from nothing but a lit panel in front of an unhoused lens.

How much of the light this list accounts for, and why the bars are wider

The list keeps the 4,096 strongest sequences and sweeps the remainder into one row at the bottom, printed everything else. On this run that last row is 0.043 % of the light, so the ranking is not in doubt — but the list is the strongest few thousand paths, not all of them, and the page says so rather than implying otherwise. A scene is also expensive to trace: it emits into a whole hemisphere from a meter in front of the lens, so fewer than one ray in 8,000 lands on the sensor at all. Our run traced 20,000,000 rays, the largest single run the server will take at one wavelength, and collected 2,346 arrivals in the picture. That is why this step's error bars are wider than the earlier ones — the picture is known to 2.0 % and the row under it to 6.6 %, against a few tenths of a percent in the runs before.

How to do this in Illumination Analyzer
Where.
The source's panel, then Energy ledger.
What to set.
Change the source to Lambertian rectangle, set Position (m) to 0, 0, -1, Half-edge u (m) to 0.1798 and Half-edge v (m) to 0.1198. Then Run.
What you should see.
A ranked table whose second row carries no path at all.

The source is a panel now

Wider than the camera it is pointed at, and the standoff is compressed here.

The guide’s own run
the panel, 360 mm1 m, compressedthe rim, 28.2 mmthe ray, 30.4 mm
The collimated disk is gone. The source is now a panel 360 mm across, a meter in front of a lens 22 mm across; the standoff is compressed here, the widths are not. One ray from out near the panel’s edge clears the stop’s outer rim — 28 mm out, wider than the glass — and reaches the sensor, having touched nothing. That is the row the ranked list puts second.

The ranked list under the scene

Two rows and a cliff. Pick a row and the run's own rays for it are drawn below, arriving from the panel a meter in front of the lens and outside the frame.

The guide’s own run

on the sensor

0.00009015 W

signatures kept

4,096 of 4,096

Ray paths to this detector — sensor

Every distinct path this run traced to the detector, ranked by power, with the uncertainty on each. Rows whose error bars overlap are not separable by this run.

PathPower (W)σArrivals
element 0-1 Telement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 T2T 2T 3T 3T 4T 4T8.045e-5± 1.635e-62346
direct (no surface events)8.950e-6± 5.911e-7179
element 0-1 Telement 0-1 Telement 2-3 Relement 0-1 Relement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 T2T 2T 3R 2R 3T 3T 4T 4T1.914e-7± 4.322e-91886
element 0-1 Telement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 Relement 4-5 Relement 4-5 T2T 2T 3T 3T 4T 4R 4R 4T1.179e-7± 4.732e-9562
element 0-1 Telement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 Tsensor Melement 4-5 Telement 4-5 Relement 4-5 T2T 2T 3T 3T 4T 4T 1M 4T 4R 4T6.624e-8± 2.770e-9581
element 0-1 Telement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 Relement 4-5 Telement 2-3 Telement 2-3 Telement 0-1 Telement 0-1 Relement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 T2T 2T 3T 3T 4T 4R 4T 3T 3T 2T 2R 2T 3T 3T 4T 4T6.070e-8± 2.519e-9648

This run kept the first 4096 distinct paths it met. Everything after that is collected in the one row below, with its power — nothing is dropped.

Step 5

Add the housing

Tick the front ring, the barrel and the sensor shroud together and run.

The second row is gone. Not smaller — absent from all 4,096 rows. The housing removes more than 90 % of the non-image light, and the contrast floor goes from 12 % without the housing to 0.87 % with it.

A baffle cannot stop light that was never going to arrive; it earns its place on the light that was.

That is the whole case for a lens barrel in one comparison, and it is worth seeing why it worked here when the stop in step 3 did so much of the work already. The stop closes the hole the light goes through. The barrel and the shroud close the space beside it — and under a scene, the space beside it is where nine tenths of the problem was coming from.

And once they are in, the stop's outer rim stops mattering at all: shrink it back to the barrel's radius and the sensor does not change by a single bit. That is step 3's two-number result again, with the housing now doing the intercepting.

How to do this in Illumination Analyzer
Where.
The import offer's Housing group.
What to set.
Tick the front ring, the barrel and the sensor shroud together, then Run.
What you should see.
In Energy ledger, the row with no path has left the table.

The camera, closed up

The front ring, the barrel and the sensor shroud.

The guide’s own run
The same bench with the three housing parts at full weight: a ring across the front, the barrel along the lens, and the cone that shrouds the sensor. The three rays are the path the previous step’s list ranked second: light from the panel that reached the sensor having touched nothing, passing wide of the stop’s rim. The housing closes exactly that space, which is why that row is absent from this run. There is no source disk in this drawing — since the previous step the light comes from the panel, a meter in front of the lens and outside the frame, which is where these three enter from. Everything the reader has already met is carried behind them.

Step 6

Give the housing a real finish

Give the housing a real finish and run it twice. So far the walls have been perfect absorbers, which is the conservative default and not a material you can buy.

Bare machined aluminum — a specular metal wall, reflectance 0.916 at 550 nm — raises the non-image light by more than a factor of four. Blackened aluminum — anodized, reflecting 11 % of what hits it — raises it by 5 %. Perfect black, bare metal, and the honest black in between.

A wall that does not absorb does not stop being in the way; it becomes a second source.

What bare metal does is not what you might expect. It does not block anything a black wall does not block — an absorber is strictly the more removing of the two. What it does is add paths: the metal wall puts new sequences into the ranked list led by the sensor shroud, the cone right in front of the sensor, and the barrel appears in the top rows for the first time in the whole guide. Blackening is not about stopping light. It is about not re-emitting it.

And the honest black costs something measurable, but only just: a real anodized wall is 5 % worse than the perfect absorber the tool assumes by default, a figure this run knows to within 2 points. Small, and it is the difference between a model and a finish.

How to do this in Illumination Analyzer
Where.
Each housing part's own property panel.
What to set.
For bare metal, property Fresnel interface, then Add a layer stack with one layer, material Al, Thickness (nm) 200. For blackened metal, property Lambertian, Reflectance ρ 0.1123.
What you should see.
The metal wall adds rows led by the sensor shroud; the black wall barely moves the table.

Three walls of the same shape

What the barrel does to a ray that meets it.

The guide’s own run
Perfect blackthe wall absorbs; nothing leaves it
Blackened aluminumreflects 11 % of what hits it, mostly scattered
Bare machined aluminuma specular metal wall, reflectance 0.916 at 550 nm
The same barrel, three finishes. A perfect absorber ends the ray; the anodized wall sends a little of it back in every direction; bare metal sends nearly all of it back in one. The geometry is identical in all three — only the surface property changed, and that is what the step measures.

Step 7

Aim the source off to the side

Set the walls back to the tool's own perfect absorber — step 6 measured what a real finish costs, and from here the question is the glass — then move the source to 12° and run again. What comes back is a different problem.

The picture leaves the sensor — 12° is just outside the frame — and what is left is all stray light: 0.00103 W, a thousandth of what the source emits. The ranked list is a different shape now. There is no row without a path; the geometry closes it. Instead there are six rows within a factor of eight of each other, every one of them a sequence of reflections inside the glass. The leading row is a double reflection inside the rear element; the next is a bounce between the middle element's front and the front element's back.

A ghost reflects an even number of times, so it is still an image — just one the design never asked for.

One more thing the stop is doing, now that the source is off to the side. Take it out again here and the sensor reading is ×64 what it was: what arrives is a second, unfocused image formed by the rear element alone, from light that missed the front two, and at 12° that one path is 82 % of everything on the sensor. The stop was not only setting the f-number. Put it back.

The housing you built in steps 5 and 6 does nothing about any of them. It is still in the scene and it is not idle — it absorbs 28.7 % of the emitted watt while the stop's share falls to 17.6 %, so the three housing parts are taking real work off the stop. None of that light was reaching the sensor. Which is the whole lesson of this audit: the fix that removed nine tenths of the problem two steps ago removes none of this one, and which source you test with decides which fix you buy.

How to do this in Illumination Analyzer
Where.
Each housing part's property panel, then the source's.
What to set.
Set the three housing parts back to Absorber. Then set Aim angles (°) to 12 and press Run.
What you should see.
The picture leaves the sensor, and the table under Energy ledger fills with reflection sequences instead of one bright row.

The ranked list, and the rays behind one row

Click a row to draw the paths the run sampled for it.

The guide’s own run

on the sensor

0.001031 W

signatures kept

4,096 of 4,096

Ray paths to this detector — sensor

Every distinct path this run traced to the detector, ranked by power, with the uncertainty on each. Rows whose error bars overlap are not separable by this run.

PathPower (W)σs-polarizedArrivals
element 0-1 Telement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 Relement 4-5 Relement 4-5 T2T 2T 3T 3T 4T 4R 4R 4T3.780e-4± 5.284e-651 %2271
element 0-1 Telement 0-1 Telement 2-3 Relement 0-1 Relement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 T2T 2T 3R 2R 3T 3T 4T 4T1.973e-4± 4.332e-651 %2621
element 0-1 Telement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 Relement 4-5 Telement 2-3 Relement 4-5 Telement 4-5 T2T 2T 3T 3T 4T 4R 4T 3R 4T 4T9.290e-5± 2.113e-650 %1118
element 0-1 Telement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Relement 2-3 Relement 4-5 Telement 4-5 T2T 2T 3T 3T 4R 3R 4T 4T8.747e-5± 3.086e-651 %883
element 0-1 Telement 0-1 Telement 2-3 Telement 2-3 Relement 2-3 Telement 0-1 Telement 0-1 Relement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 T2T 2T 3T 3R 3T 2T 2R 2T 3T 3T 4T 4T6.345e-5± 1.007e-650 %1138
element 0-1 Telement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Relement 2-3 Telement 2-3 Telement 0-1 Telement 0-1 Relement 0-1 Telement 2-3 Telement 2-3 Telement 4-5 Telement 4-5 T2T 2T 3T 3T 4R 3T 3T 2T 2R 2T 3T 3T 4T 4T4.685e-5± 1.489e-650 %539
everything else4.448e-7± 6.375e-8—16343

This run kept the first 4096 distinct paths it met. Everything after that is collected in the one row below, with its power — nothing is dropped.

Six sequences land within a factor of eight of each other. Read the error bars before the order: rows three and four are 1.39 σ apart, which is a tie rather than a ranking — no amount of re-running separates them faster than it separates the rest.

Each drawn ray is one sampled member of a family of rays that shared this sequence of events — not the path, and not an average of them. This row delivered 2,271 arrivals; 16 of them are drawn, from the first batch.

Step 8

Coat the glass

Coat all six glass-air surfaces and run again. Those six surfaces are what feeds every row in the table.

A coating is designed against one glass and one wavelength, and this lens has three different glasses. So it takes three designs, not one: a two-layer V-coat on each element, tuned to 550 nm against that element's own index. Designing an AR coating, start to finish is the sibling guide that designs one of these; this one buys them.

glassMgF₂Ta₂O₅
Lens 1N-PSK5378.4 nm111.6 nm
Lens 2LLF174.0 nm111.6 nm
Lens 3TAF1111.9 nm13.6 nm

Run it and the stray light falls by more than a factor of 2,400, while the picture gets 45 % brighter.

A ghost reflects twice, so halving a surface's reflectance quarters the ghost it feeds.

Coat one element instead and something odd happens: the total falls by only 27 %, and fifty rows in the table get brighter. That is not a mistake. A coated first element transmits more light to everything behind it, so every ghost that does not bounce off the coated surface is fed more. Coat all three and no row rises at all — every ghost now carries two reflections and both of them are on coated glass. A partial coating moves light around; a finished one removes it.

the chainstray light at 12°against uncoated
uncoated0.00103 W—
one element, one quarter-wave0.000748 W×0.73
all three, one quarter-wave1.73 × 10⁻⁵ W×0.017
all three, V-coats4.25 × 10⁻⁷ W×0.00041

There is a picture of this, and you have to work for it. With all three elements V-coated the ghost is so weak that at the sensor's own grid not one cell collects ten rays in a 16,000-ray run, and the tool draws nothing it has not measured. Two changes fix that: coarsen the sensor to 32 × 21 bins — the same light in cells sixteen times larger — and raise the run to 320,000 rays. Then every cell of the map is measured, each to about a quarter of its own value. A stray-light run gets harder to measure exactly as the design gets better, and that is what it costs here.

The total was solid all along — it is known to 5.5 % at 16,000 rays — the three leading paths are each known to better than 10 % of their own value, and the ghost tree is now small enough to be listed completely, 639 sequences with nothing left over.

Then put the two maps side by side on one color scale, the uncoated run's, and the comparison needs no arithmetic: the coated sensor is black. Not dimmer. Black — the dimmest cell of the uncoated sensor is nineteen times the brightest cell of the coated one, so the whole coated map lives below the bottom of the scale that draws the uncoated one. What is left of the ghost only appears when the coated map is drawn to its own peak, four hundred times lower, and then it is two small spots near one edge of the frame rather than a faint copy of what was there before.

How to do this in Illumination Analyzer
Where.
The imported lens's panel: Coating — Lens 1, Lens 2 and Lens 3.
What to set.
In each, Add a layer stack, then two layers — MgF2 first, then Ta2O5 (Gao) — at that element's two thicknesses. Type or paste each thickness; do not use the arrow keys. For the map, set the sensor's Bins across u to 32 and Bins across v to 21, and Rays to 320000.
What you should see.
A table that has dropped three orders of magnitude, a picture that has not, and a map with no hatching left in it.

The coated chain

Every glass–air face of all three elements.

The guide’s own run
The dashed line on each coated face is a drawing convention, not a picture of a layer stack: the V-coat on the first element is 78.4 + 111.6 = 190 nm on a 22.12 mm lens, one part in 116,000 — at this drawing’s scale, two ten-thousandths of a pixel. Nothing here can draw a layer; what it can do is say truthfully which faces carry one. All six glass–air faces do; the live scene at the last step carries the tool’s own mark instead.

The sensor, before and after the coating

Both panels on one color scale: the uncoated run’s.

The guide’s own run
One color scale for both panels: floor 0, ceiling 6.86 × 10⁻⁶ W in a cell, the brightest cell of the uncoated map — which is the 5.335 W/m² the color bars carry. Left, the uncoated camera at 12°, 16,000 rays; right, the same camera with all three elements V-coated, 320,000 rays. Both maps are binned 32 × 21, and the median cell is known to 29.79 % of its own value on the left and 24.80 % on the right. Every cell of both maps was reached by at least ten rays, so no cell is hatched. The dimmest cell on the left is 18.87 times the brightest cell on the right: the two ranges do not overlap, and that is what makes the coated panel black. The tool clips a map down from its own peak and cannot put two runs on one ceiling, so the shared scale here is a convention of this figure — one exposure, two frames. The inset is what your own screen shows instead.

Step 9

Take the ranked table with you

Export the ranked table. It is the deliverable: every path that put measurable light on the sensor, named by the surfaces it touched, with the power it delivered and the uncertainty on that power.

How to do this in Illumination Analyzer
Where.
Energy ledger, under the path table.
What to set.
Press Download CSV.
What you should see.
One row per path, with its power and its error bar, in the order the table ranks them.

The first lines of the download

The coated run's ranked list, as the server wrote it.

The guide’s own run
# detector: sensor
# retained 639 of cap 4096; 0 signature(s) unclassified
signature,power,sigma,arrivals,power_s,power_p
"5T 5T 6T 6R 6R 6R 6T 7T 7T",1.6279805157623866e-07,1.5503537312083677e-08,227.0,7.542541220528316e-08,8.73726393709555e-08
"5T 5T 6R 5R 6T 6T 7T 7T",1.0671577921501948e-07,5.412810482781389e-09,882.0,5.3019846827895804e-08,5.3695932387123675e-08
"5T 5T 6T 6R 6R 6T 5R 6T 6T 7T 7T",8.778344453275517e-08,6.063426232879753e-09,209.0,4.078636645554943e-08,4.699707807720574e-08
"5T 5T 6T 6R 6R 6T 7T 7T",4.0935346369038306e-08,1.2574451664478266e-08,30.0,1.995131948125487e-08,2.0984026887783437e-08
"5T 5T 6T 6R 6T 5R 6T 6T 7T 7T",2.4998549067641245e-08,7.018922217564577e-09,19.0,1.173535642285752e-08,1.3263192644783725e-08
The head of the file for the detector named sensor on the coated run: two provenance lines, the column header, and the first five of 639 retained signatures, so the whole file is 643 lines.

The finished camera

Drag to orbit, or hide the housing to see the glass. The tool's own 3D view, on the scene the last run traced.

The guide’s own scene
Loading the scene…

The lens inside the barrel, the ring across the front, the cone that shrouds the sensor — every part the earlier steps added, in one picture. The view opens where the tool opens it, so it is what you can check your own screen against; the only difference is that this frame has a fixed height where the tool gives the scene the whole tab. The coated faces carry the tool’s own mark and its legend chip; the marks on the section drawings are a drawing convention, and this one is not.

What this model does not include

Five things, and each of them would change a number above.

  1. The sensor is a 5 % mirror, flat across angle and wavelength. A real sensor has a microlens array and a cover glass, and its reflectance is neither flat nor gray.
  2. The housing is geometry with a surface property. No threads, no fasteners, no adhesive, no texture.
  3. Bulk absorption in the glass is not modeled — the catalog carries no internal-transmittance data, and the import says so on every run.
  4. Every run is monochromatic at 550 nm. Real ghosts are colored, and the color comes from the band edges of the coatings — a coating problem rather than a geometry one.
  5. A path is named by the elements it touched, not the faces. Two ghosts that reflect off different sides of the same element are one row, and the power printed for that row is their sum.

References

  • E. Fest, Stray Light Analysis and Control (SPIE Press, 2013), ch. 6. The anodized-aluminum BRDF fit — Eq. (6.1) with the coefficients of Table 6.3 — whose integrated scatter at 5° incidence is the 0.1123 this guide gives the blackened wall.
  • A. D. Rakić, "Algorithm for the determination of intrinsic optical constants of metal films: application to aluminum," Appl. Opt. 34, 4755 (1995). The aluminum the bare wall is made of.
  • L. Gao, F. Lemarchand and M. Lequime, "Exploitation of multiple incidences spectrometric measurements for thin film reverse engineering," Opt. Express 20, 15734 (2012). The Ta₂O₅ of the V-coats.
  • M. J. Dodge, "Refractive properties of magnesium fluoride," Appl. Opt. 23, 1980 (1984), ordinary ray. The MgF₂ of the V-coats and of the single-layer comparison.
  • The three glasses are catalog entries — Schott N-PSK53 and LLF1, Hoya TAF1 — and the lens itself is the one designed in Designing a camera triplet, start to finish.

Open the finished camera in Illumination Analyzer, or read how every panel and number on this page is produced in the Illumination Analyzer manual.