BookNotesSlidesP-sets Syllabusdraft · v0.2.49.1
💬Comments welcome. To leave a note, select any text and click the note / highlight button that pops up — or open the panel with the tab at the top-right (‹). Notes are visible only inside our private review group.
Computational Photography, an AI-powered Slopendium — 35 Computational illumination
expand to📖 Full book outline1 parts · 8 chapters · 36 sections · 3 figures embedded · 1 placeholders · double-click a figure to enlarge
▸Part 35 COMPUTATIONAL ILLUMINATION⧉
<!--uid: computational-illumination-->
If you control the light as well as the camera, a whole second axis of coding opens up: vary the **illumination** — its timing, direction, spectrum, polarization, or spatial pattern — and fuse the resulting images. From flash/no-flash and multi-flash to structured light, dual photography, and robot-flown light sources, the optimized degree of freedom here is the **light itself**.
▸35.1 Flash photography⧉
35.1.1 Flash / no flash⧉
35.1.2 Ramesh's multiflash⧉
35.1.3 Removing flash artifacts⧉
35.1.4 Dark flash and covert infrared photography⧉
35.1.5 Dark flash (plus Stasi version!)⧉
▸35.2 High-speed and stroboscopic photography⧉
fig-edgerton-strobe-timeline
fig-edgerton-strobe-timeline ·
fig-motion-blur-calculator
fig-motion-blur-calculator · live motion-blur calculator: a 3-D scene (walking figure or a car) imaged by a virtual camera, the blur rendered by **temporal supersampling** (many instants across the exposure, averaged). Set resolution / sensor / focal length (35 mm-equiv) / distance / exposure, add camera-shake **rates** in rotation (pitch/yaw/roll) and translation (x/y/z) plus a subject speed; the readout gives the blur at the subject in world (cm/m/in) and screen (px / % width) units, broken down by source. A per-pixel **G-buffer** (depth + subject mask) drives exact motion-vector arrows and a blur-magnitude heatmap: the subject carries its own motion, the background only camera shake. Environment backdrops + car color picker. Static fallback is a screenshot. *3D models generated with Meshy AI.* ✅
⬜ figure not yet created
multi-strobe rep-rate freezing a motion sequence). fig-temporal-nyquist
35.2.1 Freezing motion: the microsecond strobe⧉
35.2.2 The trigger problem⧉
35.2.3 Stroboscopic multiplicity: a sequence on one frame⧉
35.2.4 Digital descendants: LED strobes and high-speed cameras⧉
▸35.3 Illumination-based matting⧉
fig-illumination-matting-prism
fig-illumination-matting-prism ·
35.3.1 The well-posed case to beat: chroma key⧉
35.3.2 The magic prism: Disney's sodium-vapor process⧉
35.3.3 Near-infrared and time-multiplexed matting⧉
35.3.4 Flash/no-flash matting: separation by falloff⧉
35.3.5 Engineering the capture instead of the prior⧉
35.3.6 The throughline: control the capture, not the prior⧉
▸35.4 Separation of direct and global illumination⧉
35.4.1 The frequency insight⧉
35.4.2 Nayar's program: programmable, structured illumination⧉
35.4.3 Toward coherent separation⧉
▸35.5 Light domes⧉
35.5.1 The reflectance field and one-light-at-a-time capture⧉
35.5.2 Relighting by linear combination⧉
35.5.3 Scaling down: tabletop LED domes⧉
35.5.4 Scaling out: the dome taken into the wild⧉
35.5.5 The found dome: the eye⧉
▸35.6 Automatic aesthetic lighting⧉
35.6.1 Computational bounce flash⧉
35.6.2 Drone lighting: flying the light into place⧉
▸35.7 Dual photography⧉
• sidebar: Yang privacy
35.7.1 Light transport as a matrix⧉
35.7.2 Helmholtz reciprocity: transpose the matrix⧉
35.7.3 The unsettling reach: privacy and seeing the unseen⧉
▸35.8 Coherent imaging⧉
35.8.1 The confocal principle: rejecting out-of-focus light⧉
35.8.2 Seeing through scattering media⧉
35.8.3 Illumination as a designed variable⧉
35.8.4 The part in one line⧉