Creating Normal Maps from Photos: Photometric Stereo

What is Photometric Stereo?

Photometric stereo is a technique that reconstructs surface normals by analyzing how a surface reflects light from multiple directions. By photographing an object under different lighting angles while keeping the camera stationary, we can calculate the surface orientation at each pixel.

This method produces exceptionally accurate normal maps that capture subtle surface details often missed by other techniques.

Why Use Photos Instead of Height Maps?

Advantages

  • Captures real materials: Authentic texture detail from physical objects
  • Includes micro-details: Surface variation too fine to model manually
  • Better edge definition: Sharper transitions between surface angles
  • No manual sculpting: Automates what would take hours in 3D software

When to Use This Method

Ideal for:

  • Scanning real-world materials (brick, fabric, stone, wood)
  • Creating texture libraries from physical samples
  • Matching existing props or environments
  • Organic surfaces with complex detail

Equipment Requirements

Minimal Setup

Camera:

  • Any digital camera or smartphone
  • Fixed position (use tripod)
  • Manual exposure control preferred

Lighting:

  • 4 identical light sources (LED panels, flashlights, or softboxes)
  • Positioned at: top, bottom, left, right
  • Equal distance from subject
  • Same intensity across all angles

Subject:

  • Matte or semi-matte finish (avoid mirrors or glass)
  • Textured surface for best results
  • Fixed position between shots

Shooting Process

Step 1: Setup

Camera Setup:
├─ Mount on tripod
├─ Frame subject to fill frame
├─ Set manual exposure
├─ Disable auto-white balance
└─ Use RAW format if possible

Position lights at 45° angle from subject, approximately:

  • 1-2 feet away for small objects
  • 3-4 feet for larger surfaces

Step 2: Capture Sequence

Take 4 photos with only ONE light active per shot:

  1. Top Light Only (light from above)
  2. Right Light Only (light from right)
  3. Bottom Light Only (light from below)
  4. Left Light Only (light from left)

Critical: Camera and subject must remain perfectly still across all 4 shots.

Step 3: Verify Captures

Check that:

  • All images have identical framing
  • Exposure is consistent
  • Each light direction is clearly different
  • No unwanted shadows from other angles

Processing the Photos

Upload to Normal Map Generator

  1. Select "Photo Method" mode
  2. Upload 4 images in order: above → right → bottom → left
  3. Tool automatically analyzes lighting direction
  4. Calculates surface normals from brightness variation

Optimization Controls

Strength: Amplifies subtle surface detail

  • Lower (0.3-0.5): Gentle undulations, fabric
  • Medium (0.5-0.8): Standard surfaces, wood, stone
  • Higher (0.8-1.0): Sharp detail, concrete, metal

Blur/Smoothing: Reduces noise from photo grain

  • Helps with: High ISO photos, uneven lighting, sensor noise
  • Balance: Too much removes fine detail

Level Adjustment: Sets baseline surface orientation

  • Use if output appears inverted or overly dark

Common Issues and Solutions

Problem: Inconsistent Lighting

Symptoms: Patchy or incorrect normals
Causes:

  • Lights at different intensities
  • Varying distances from subject
  • Ambient light contamination

Solutions:

  • Measure light distances with tape
  • Use identical bulb wattages
  • Shoot in darkened room
  • Take exposure bracketed sets if needed

Problem: Motion Between Shots

Symptoms: Blurred or offset normal details
Causes:

  • Camera shake
  • Subject movement
  • Tripod instability

Solutions:

  • Use remote shutter release or timer
  • Secure subject firmly
  • Weight tripod for stability
  • Shoot multiple sets and pick best

Problem: Overexposed Highlights

Symptoms: Lost detail in bright areas
Causes:

  • Lights too close
  • Reflective surface areas
  • Incorrect exposure settings

Solutions:

  • Increase light distance
  • Reduce light intensity or camera ISO
  • Use exposure compensation (-1 to -2 stops)
  • Apply polarizing filter for reflective materials

Advanced Techniques

6-Light Setup

For even more accurate results, add two additional lights:

  • Front-Top (45° above and in front)
  • Front-Bottom (45° below and in front)

This captures more surface angle variation and reduces ambiguity in flat areas.

HDR Photometric Stereo

Combine multiple exposures per lighting direction:

Per Light Direction:
├─ Underexposed (-2 stops)
├─ Normal exposure
└─ Overexposed (+2 stops)

Merge to HDR, then process each direction. Captures full detail range from dark crevices to bright highlights.

Texture Separation

After generating the normal map, you can extract:

  1. Albedo: Average the 4 photos (removes directional lighting)
  2. AO: Analyze shadowing in crevices
  3. Roughness: Derive from specular variation across angles

Material-Specific Tips

Fabric and Cloth

  • Use diffused lighting to avoid hot spots
  • Increase smoothing to handle weave patterns
  • Shoot slightly underexposed to retain thread detail

Stone and Concrete

  • Sharp lighting for clear shadows in pits
  • Minimal smoothing to preserve grain
  • Consider 6-light setup for complex surfaces

Wood Grain

  • Light from multiple angles reveals grain direction
  • Medium strength settings work best
  • Watch for specular reflections from finish/varnish

Metal (Brushed/Textured)

  • Extremely challenging due to specularity
  • Use cross-polarized filters if available
  • Focus on matte metal finishes
  • May need manual cleanup in areas of specular highlights

Exporting for Production

Once processed:

  1. Review in 3D Preview: Rotate model to check all angles
  2. Adjust Tiling: Ensure edges match if creating seamless texture
  3. Export Resolution: Match source photo resolution
  4. Format: PNG for web, TIFF for film/VFX pipelines

Workflow Integration

Photometric stereo fits into larger pipelines:

Photo Capture

Normal Map Generation

├─→ Import to Substance Painter (bake to 3D model)
├─→ Use in Photoshop (overlay on albedo)
├─→ Direct engine import (Unity/Unreal)
└─→ Combine with other PBR maps

Conclusion

Photometric stereo provides unmatched quality for capturing real-world surface detail. While it requires more initial setup than using height maps, the results are worth the effort for:

  • Character skin and clothing
  • Environment materials (walls, floors, props)
  • Product visualization
  • VFX texture libraries

With practice, you can capture a complete texture set in under 15 minutes, from camera setup through final normal map export.

The key is consistency: fixed camera, controlled lighting, and careful attention to shadows across all four directional photos.