360 likes | 606 Views
Horizon Map Capture. H. Rushmeier, L. Balmelli, F. Bernardini. IBM TJ Watson Research Center. OVERVIEW. I. Why Capture Horizon Maps? II. Capture & Processing Under Ideal Conditions III. Dealing with Real World Data IV. Some Example Maps. I. Why Capture Horizon Maps?. General Problem:
E N D
Horizon Map Capture H. Rushmeier, L. Balmelli, F. Bernardini IBM TJ Watson Research Center
OVERVIEW I. Why Capture Horizon Maps? II. Capture & Processing Under Ideal Conditions III. Dealing with Real World Data IV. Some Example Maps
I. Why Capture Horizon Maps? General Problem: How do we capture and represent existing objects ?
I. Why Capture Horizon Maps? Image maps used to represent object detail: Textures: colors View Dependent Textures: changing colors Normals: relit details Surface Light Fields: all light from object geometry + map
I. Why Capture Horizon Maps? Goal: Add captured cast shadows to normals maps to represent more lighting effects Retain ability to edit Store data in a form that is fast to render
I. Why Capture Horizon Maps? Attached versus Cast Shadows:
I. Why Capture Horizon Maps? Efficient representation of cast shadows: Horizon Maps (Max ’88) hardware rendering (Sloan & Cohen, ’00, Kautz et al. ’00)
I. Why Capture Horizon Maps? Simple Hardware Set Up
I. Why Capture Horizon Maps? Use Photometric Stereo to Compute Normals Discard lightest and darkest values at each pixel, solve: Li dot N,p = Gi,p L = Light source direction, light i N = Surface normal at p Gi,p = Gray scale, image I, pixel p
I. Why Capture Horizon Maps? Why not reconstruct surface from normals? Discontinuities: Outliers: Results are by integration: Effect of one bad normal spreads across image
I. Why Capture Horizon Maps? Why not reconstruct surface from normals? Error in L dot N smaller than error in height.
I. Why Capture Horizon Maps? Why not reconstruct surface from normals?
I. Why Capture Horizon Maps? shadows from reconstructed heights captured
II. Capture and Processing Under Ideal Conditions 1. Identify regions of cast shadow
II. Capture and Processing Under Ideal Conditions 2. Identify height of ridge casting the shadow
II. Capture and Processing Under Ideal Conditions Ridge height exact for sharp bumps only
II. Capture and Processing Under Ideal Conditions Differentiate between bumps and grooves
II. Capture and Processing Under Ideal Conditions 3. Compute horizon map for each pixel by marching in light direction for each pixel until ridge encountered Compute angle q ridge height h known find distance from pixel to ridge in
III. Dealing With Real World Data Correcting for Finite Light Locations
III. Dealing With Real World Data Shadows aren’t really black – analyze histograms No spike at zero “shadow”
III. Dealing With Real World Data Computing ridge locations: Identifying types of shadow edges Jaggy edge can cause pixel parallel to be misclassified as the “end” of the shadow
III. Dealing With Real World Data Computing Ridge locations:Combining, smoothing data
IV. Some Example Maps captured corrected for finite light
IV. Some Example Maps cast shadows relit normals
IV. Some Example Maps horizon map reconstructed image
IV. Some Example Maps Editing layers horizon map colors normals ridges Except for horizon maps, no pixel contains lighting information from other pixels. New horizon maps can be generated from edited ridges
IV. Some Example Maps copy delete cyan blue yellow
IV. Some Example Maps copy delete cyan blue yellow