Single-photo material workspace
Local image processing

Photo → Crop / perspective → Lighting → Height → Normal → Export

Upload material photo

Generated brick material with a broad lighting gradient; no external photograph.

generated-brick-material.png · 768 × 768
Original photo and selection
Corner coordinates (%)

Drag the four handles, use arrow keys (Shift for larger steps), or enter coordinates below. Perspective handles must remain clockwise and convex. Output aspect defaults to average edge lengths; choose square for a known square surface.

Top left
Top right
Bottom right
Bottom left
Edited height interpretation
Edited height interpretation
Tangent-space normal map
Tangent-space normal map

Image-derived estimate. Pigment, shadows and highlights can become false relief. Inspect the plane under moving light.

Open in Seamless Normal Map Generator

Export the prepared height PNG, then load it in the seamless tool to make the scalar tileable before generating final normals.

Controls
Lighting correction

Fine favors grain and weave; broad retains larger joints. Neither measures object curvature.

Reduces broad gradients. Dark and bright tone suppression is heuristic; it cannot identify shadows or recover clipped detail.

Height interpretation
Advanced height controls

Treat brightness as editable pseudo-height. Denoise radius is in pixels at a 1024 px reference size.

Normal controls
Processing locally… · Live preview: 0 × 0 · Export crop: 768 × 768

Normal Map from Photo

Create a normal map from photo evidence by preparing one material photograph, reducing broad lighting, and editing a height interpretation. Inspect the estimated relief on a lit plane before exporting a tangent-space normal map. Your image stays in your browser.

How to Get Started with a Material Photo

Upload a JPEG, PNG, WebP, or BMP of a relatively flat material, or try the generated brick sample. Select a useful region with free or square crop. Use four-corner perspective for a wall photographed at an angle. Start with a material preset, compare the corrected scalar with the original, and adjust detail scale. Move the preview light to check mortar, pores, or weave. Choose the destination Y convention and download lossless PNG.

What Does a Normal Map from Photo Mean?

A normal map from photo is an editable interpretation of visible tonal detail, encoded as local surface directions. This workspace first prepares a material crop rather than immediately treating the entire camera frame as height. The resulting tangent-space normal changes shading on an existing mesh. It does not add geometry, alter the silhouette, reproduce deep cavities, or tell you the thickness of a photographed object.

Why a Single Photo Does Not Contain True Depth

One RGB photograph mixes pigment, illumination, shadows, specular highlights, exposure, camera response, lens effects, perspective, and geometry. A dark stripe may be paint rather than a groove. A bright spot may reflect a lamp rather than indicate a raised grain. There is no unique separation from one image. The tool derives pseudo-height and suppresses broad illumination; it cannot measure real depth or recover accurate geometry from arbitrary photographs.

Choose a Suitable Material Photo

Brick, stone, concrete, wood, fabric, leather, plaster, and ground work best when the useful region is approximately planar and its small details are sharp. A phone camera is suitable: hold it close to perpendicular, use diffuse light, keep focus and exposure stable, and avoid portrait blur or heavy sharpening. Crop out plants, objects, deep cracks, and cast shadows. A matte stone face is easier to interpret than polished marble with a reflected window.

Crop and Correct Perspective

Select a rectangular region for free crop or use the square preset for texture authoring. Four-corner mode maps a convex planar region to a rectangle using a projective transform. Place the handles on corresponding corners, in clockwise order. Crossing or nearly collapsed selections are rejected. Keyboard arrows and coordinate fields provide alternatives to dragging. The default output proportion comes from average photographed edge lengths, not a recovered physical aspect ratio; choose square when the real region is square. Curved surfaces and lens distortion require other preparation.

Reduce Broad Lighting Before Estimating Relief

A wall that is brighter on one side can turn into a virtual slope when brightness directly drives normals. Lighting correction estimates a smooth low-frequency field in log luminance and reduces its contribution before height editing. Low, Medium, and High progressively suppress broad illumination; Off keeps that contribution. Compare the corrected scalar with the prepared crop. High correction can also remove real broad relief and create edge halos, so choose the lowest setting that addresses the photographed gradient.

Handle Shadows and Highlights Carefully

Shadow suppression reduces the contribution of very dark tones; highlight suppression reduces strong bright tones. These are compact tonal heuristics, not semantic shadow detection or physical reflectance separation. Photographed shadows can otherwise become dents, while glossy highlights become bumps. Clipped white pixels contain no recoverable grain, and blocked dark regions contain little useful information. If suppression flattens real dark mortar or bright thread, reduce it or choose a better crop. Retaking the photo is often more effective.

Choose the Right Detail Scale

Fine uses a smaller illumination field to favor concrete pores, leather grain, or fabric weave. Medium balances local grain and material features. Broad retains larger stone structure and brick joints by separating illumination at a larger radius. The scale changes actual processing, not only preview zoom. Larger material relief and broad illumination can occupy similar frequencies, so inspect both. A normal map from photograph should describe intended surface texture rather than amplify whole-object curvature or camera lighting.

Material Presets: Brick, Stone, Wood, Fabric, and More

Brick, Stone, Concrete, Wood, Fabric, Leather, Ground, and Generic provide editable starting settings for correction scale, denoise, detail recovery, contrast, and normal strength. Selecting a preset does not detect the material or certify its shape. Wood grain may be mostly pigment; a fabric weave may be smaller than the camera resolves. Adjust the starting point for your particular crop and target texel density. Changing a control keeps the result editable and marks the settings as custom.

Edit Height and Normal Strength

Choose luminance or one RGB channel when it better isolates structure. Black and white points, gamma, contrast, denoise, detail recovery, and height inversion edit one shared scalar interpretation. Denoise can reduce compression noise before Sobel or Scharr gradients are computed; excessive blur erases useful detail. Normal strength scales the sideways components, while Level retains the outward Z contribution. Vectors are normalized and encoded as data without color gamma. Transparent source pixels are composited over neutral gray; exported material normals are opaque.

OpenGL vs. DirectX Y Convention

G Y+ and G Y− select opposite green-channel directions, commonly called OpenGL-style and DirectX-style. Pick the setting expected by the destination material and verify it there with an asymmetric groove and a moving light. A purple thumbnail cannot identify the convention. The browser preview compensates for the selected encoding so the interpreted relief remains consistent. Import the PNG as normal/vector data rather than an sRGB color texture, and inspect compression and mipmaps in the final renderer.

When to Use Height or Four-Light Capture Instead

Use the generic Image to Normal Map workspace for digital textures, illustrations, scans, or other color images that do not need this photo preparation. If pixels already represent relative elevation, start with Height Map to Normal Map. For four aligned photos taken with a fixed camera and top, bottom, left, and right illumination, use Four-Light Photo to Normal Map. That route uses directional evidence from opposing captures; this single-photo tool estimates tonal relief. Use a calibrated capture or true height scan when physical accuracy matters.

Make the Result Tileable

Cropping a square does not make its edges seamless. Export the prepared height PNG and open the Seamless Normal Map Generator, then load that scalar there. Blend or edit the scalar boundaries and generate wrap-aware normals from the repaired height. This avoids treating RGB vector colors as ordinary height. Inspect repeated tiles for duplicated joints and soft borders. The handoff uses exported files processed locally; it does not place image data in a URL or upload the photograph.

Who Uses Material Photo Estimates

Game artists can prototype brickwork, environment artists can test rock or plaster, and visualization artists can explore photographed wood or leather. Technical artists can compare channel choices and conventions before engine import. A normal map from brick photo may be useful for a distant wall even when its mortar depth is unknown. Keep the original, settings, and source permissions with the asset. Use the estimate when a visually checked approximation is appropriate, and measured or baked data when the project requires it.

Common Problems and Practical Limits

If the surface leans toward the original lamp, increase correction or use a more even capture. If mortar becomes swollen, inspect height inversion before increasing strength. If weave shimmers, reduce recovery and strength at the target size. If seams persist, inspect scalar boundaries in the seamless tool. Live previews are bounded in resolution; export recomputes the selected region from original pixels and displays its dimensions. Strong perspective still stretches weakly resolved detail. Moving-light inspection is diagnostic evidence, not proof of physical accuracy.

FAQ

Can I create a normal map from one photo?

Yes, as an image-derived estimate. Crop a planar material, reduce broad illumination, edit pseudo-height, and inspect the normal under changing light. One photo cannot uniquely separate pigment, light, and geometry.

Why do shadows become dents and highlights become bumps?

Tonal height interpretation assigns darker and brighter values different elevations. Suppression weakens extreme tones, but cannot tell painted marks from shadows or restore clipped highlights.

Should I photograph the surface straight-on?

Prefer a near-perpendicular, focused capture under diffuse illumination. Four-corner correction handles a planar perspective skew; it cannot flatten curved geometry or repair lens distortion. A phone camera can work well under these conditions.

Is this the same as four-light photo capture?

No. This workspace uses one material photograph and editable tonal estimation. The four-light route requires aligned top, bottom, left, and right captures and derives direction from opposing-light differences.

How do I make the normal map from photo seamless?

Download the prepared height PNG, load it into the seamless workspace, repair and inspect the scalar edges, and regenerate normals with wrap-aware sampling. Check the repeating preview before final export.

Which Y convention should I choose?

Choose G Y+ or G Y− to match your destination's normal import settings. Verify with recognizable relief under vertical light movement; the engine name and overall purple color alone are insufficient.