A reliable workflow
Opposing lights encode two slope axes
Opposing-light differences provide an X and Y direction signal while their sums help reveal clipped, shadowed, or inconsistent regions.
Registration errors become false ridges
All four frames need the same crop and dimensions. Even a one-pixel camera shift can create paired edges that reconstruct as false ridges.
What prevents physical calibration
Unknown albedo, specular highlights, and non-uniform light distance keep this browser method from being calibrated photometric stereo.
Capture four frames as one controlled measurement
A photo to normal map set needs top, bottom, left, and right illumination with the camera and surface fixed. Lock focus, exposure, white balance, focal length, crop, and image dimensions. Move the light rather than the camera, keep its distance and angle as consistent as practical, and avoid ambient light that changes between frames. Matte surfaces with shallow relief work best. Glossy highlights, deep self-shadowing, translucent material, or even a one-pixel registration shift can produce false vectors in a photo to normal map reconstruction.
Read confidence as a warning, not a calibration
The four-light workspace compares opposing directions to estimate two slope components. Exposure normalization can reduce global brightness differences, and the alignment overlay helps reveal displacement between frames. Neither control turns a casual photo to normal map capture into calibrated photometric stereo: albedo, light falloff, lens response, and reflectance remain unknown. Inspect low-confidence regions, swap axes only when the capture labels are demonstrably reversed, and test the exported photo to normal map under a moving light. Reject areas dominated by clipping or specular glare rather than treating them as measured geometry.