← Depth & Light

Depth & Light

Keeping the Original

One thing cannot be done, and the whole design of the last stage follows from it: the light that was already in the photograph cannot be removed. A shadow across a face at the moment of capture is not a shadow any more. It is dark pixels. There is no separating the scene from its lighting after the fact, because the photograph is the product of the two and retains no record of either on its own.

So relighting is always addition, and the question becomes what to add it to.

The Original control

At one extreme, none of the photograph's own light is kept. Only the lights you placed illuminate the scene, and anything they do not reach goes black. This gives the most control and the most convincing result where the light lands — it genuinely looks like a photograph taken in a dark studio with your lights in it — and it gives you nothing at all everywhere else. Details in the original shadows are still in the file and are not being shown.

At the other extreme, the photograph is kept as it was and your lights are added on top. Nothing is ever lost, and nothing is ever really relit either: the original lighting is still fully present, so a face lit flatly from the front stays lit flatly from the front, now with a second light on it. Two lighting schemes in one image, and the eye is good at spotting that.

The useful settings are in between, and nearer the bottom than people expect. Around a third keeps enough of the original to hold detail in the areas your lights miss, while letting the lighting you placed dominate what the photograph looks like. It works because dark-but-not-black shadows are what real photographs have; there is nearly always some bounce.

Why the control exists at all

It would be possible to choose a value, hide it, and call the whole thing automatic. The reason not to is that the right amount depends entirely on the photograph in a way no default can anticipate. A photo shot in flat, even light has little existing direction to fight, and tolerates a lot of it being kept. A photo with strong, obvious light coming from one side has a direction already, and keeping much of it means the new lighting has to argue with the old. Handing that decision to the person who can see both photographs is more honest than guessing on their behalf.

The preview is not the photograph

Everything up to this point has been happening at the size of the screen. That is a large reduction in work, and it is the only reason dragging a light can keep up with a finger. But the image that eventually gets saved is the full-resolution photograph, and it is rendered separately, once, from the same description.

Which puts one requirement on everything that came before: nothing in the lighting description may be expressed in screen pixels. Positions have to be relative to the image, sizes in proportion, distances in the scene's own terms. Any quantity that is secretly measured in display pixels produces an export that differs from the preview — usually shadows of the wrong softness, because a source specified as so many pixels across is an entirely different source at four times the resolution. The mismatch is invisible during editing and unmissable afterward, which is the worst place for it.

Compare costs nothing

Holding a button to see the photograph as it was shot is the simplest feature in the app and one of the most necessary, because judgment drifts. Twenty minutes of small adjustments leaves you with no reliable memory of where you started, and every version looks like a slight improvement on the previous one. The original is the only fixed reference, and it is already there, unmodified — showing it requires no rendering of any kind.

Getting it out, and what is left behind

Saving asks iOS for permission to add photos to the library, and add-only is the correct permission to ask for: it allows the one thing the app needs and does not grant the ability to read anything already there. An app that only ever writes should not be holding a key to the whole library.

Beyond that, the photograph is held in memory while you work on it and nowhere else. No working copy in a cache, no export folder filling up, no thumbnails left behind. Nothing to clean up, because nothing was written; nothing to leak, because nothing is stored; and the privacy claim reduces to a structural fact about the app rather than a promise about its conduct.

Where the series lands

Seven articles from a number buried in a photo file to a photograph that leaves the app. The through-line is that every stage is doing the physical thing rather than the approximate one — real distance, real orientation, real occlusion, real falloff — and that most of the work is not in the lighting model, which is old and well understood, but in the quality of the depth beneath it and in being straightforward about where that depth is a measurement and where it is a guess.