Tom Duchamp, Department of Mathematics
Werner Stuetzle, Department of Statistics
University of Washington
Previous and current members of UW 3D Photography group :
G. Arden , D. Azuma, A. Certain, B. Curless, T. DeRose, T. Duchamp, M. Eck, H. Hoppe, H.
Jin, M. Lounsbery, J.A. McDonald, J. Popovic, K. Pulli, D. Salesin, S. Seitz, W. Stuetzle, D.
Wood
Funded by NSF and industry contributions.
Most of the research published in a series of Siggraph papers.
Prepared for MGA Workshop III: Multiscale structures in the analysis of High-Dimensional Data,
UCLA, October 25 -2 9, 2004
Outline of talk
• What is 3D Photography, and what is it good for ?
• Sensors
• Modeling 2D manifolds by subdivision surfaces
• Parametrization and multiresolution analysis of meshes
• Surface light fields
• (Smoothing on 2D manifolds)
• Conclusions
1. What is 3D Photography and what is it good for ?
Technology aimed at
• capturing
• viewing
• manipulating digital representations of shape and visual appearance of 3D objects.
Could have large impact because 3D photographs can be
• stored and transmitted digitally,
• viewed on CRTs,
• used in computer simulations,
• manipulated and edited in software, and
• used as templates for making electronic or physical copies
Modeling humans
• Anthropometry
• Create data base of body shapes for garment sizing
• Mass customization of clothing
• Virtual dressing room
• Avatars
Scan of lower body
(Textile and Clothing Technology
Corp.)
Fitted template
(Dimension curves drawn in yellow)
Full body scan
(Cyberware)
Modeling artifacts
• Archival
• Quantitative analysis
• Virtual museums
Image courtesy of Marc Levoy and the
Digital Michelangelo project
Left: Photo of David’s head
Right: Rendition of digital model
(1mm spatial resolution, 4 million polygons)
Modeling artifacts Images courtesy of Marc Rioux and the
Canadian National Research Council
Nicaraguan stone figurine
Painted Mallard duck
Modeling architecture
• Virtual walk-throughs and walkarounds
• Real estate advertising
• Trying virtual furniture
Left image: Paul Debevec, Camillo Taylor,
Jitendra Malik (Berkely)
Right image: Chris Haley (Berkeley)
Model of Berkeley Campanile Model of interior with artificial lighting
Modeling environments
• Virtual walk-throughs and walk arounds
• Urban planning
Two renditions of model of MIT campus
(Seth Teller, MIT)
2. Sensors
Need to acquire data on shape and “color”
Simplest idea for shape: Active light scanner using triangulation
Cyberware scanner
Scanner output
Laser spot on object allows matching of image points in the cameras
A more substantial engineering effort:
The Cyberware Full Body Scanner
“Color” acquisition
Through digital photography
Need to register images to geometry
Watch out!
“Color” can mean:
• RGB value for each surface point
• RBG value for each surface point and viewing direction
• BRDF (allows re-lighting)
Will return to this point later
Output of sensing process
• 1,000’s to 1,000,000’s of surface points which we assemble into triangular mesh
• Collection of ~700 images taken from different directions
Mesh generated from fish scans
Interlude: What does 3D photography have to do with this workshop?
• We estimate manifolds from data – 2D, but complex geometry and topology.
• We use multi-resolution representation of shape and “color”.
• We estimate radiance – a function on surface with values in function space.
For every surface point we have function that assigns RGB values to directions.
How did we come to work on this problem?
Earlier methodological work (with Trevor Hastie) on principal curves – find a curve that “goes through the middle of a data set.”
Theoretical work on principal curves and surfaces using calculus of variations.
Where might principal surfaces be useful??
3. Modeling shape
Why not stick with meshes ?
• Real world objects are often smooth or piecewise smooth
• Modeling a smooth object by a mesh requires lots of small faces
• Want more parsimonious representation
Fitted mesh
Sensor data Fitted subdivision surface
Subdivision surfaces
(Catmull – Clark, Loop)
Defined by limiting process, starting with control mesh (bottom left)
Split each face into four (right)
Reposition vertices by local averaging
Repeat the process
Remarks
• Limiting position of each vertex is weighted mean of control vertices.
• Important question: what choices of weights produce smooth limiting surface ?
• Averaging rules can be modified to allow for sharp edges, creases, and corners (below)
• Fitting subdivision surface to data requires solving nonlinear least squares problem.
4. Parametrization and multiresolution analysis of meshes
Idea:
Decompose mesh into simple “base mesh” (few faces) and sequence of correction terms of decreasing magnitude
Motivation:
• Compression
• Progressive transmission
• Level-of-detail control
- Rendering time ~ number of triangles
- No need to render detail if screen area is small
Full resolution
70K faces
LoD control
38K - 4.5K - 1.9K faces
Procedure
(“computational differential geometry”)
• Partition mesh into triangular regions, each homeomorphic to a disk
• Create a triangular “base mesh”, associating a triangle with each of the regions
• Construct a piecewise linear homeomorphism from each region to the corresponding base mesh face
• Now we have representation of original as vector-valued function over the base mesh
• Natural multi-resolution sequence of spaces of PL functions on base mesh induced by 1-to-4 splits of triangles.
• (Lot of work…)
PL homeomorphism
Texture mapping
• Homeomorphism allows us to transfer color from original mesh to base mesh
• This in turn allows us to efficiently color low resolution approximations (using texture mapping hardware)
• Texture can cover up imperfections in geometry
Mesh doesn’t much look like face, but…
What would it look like without texture ?
PL homeomorphism
What we would see if we walked around the object
Thanks for your interest
Naïve idea: Associate color with direction of reflected light
Better idea: Associate color with direction of incoming light.
Higher coherence between points on surface
Lumisphere can be easily obtained by reflecting around normal.
Naïve idea: Associate color with direction of reflected light
Better idea: Associate color with direction of incoming light.
Higher coherence between points on surface
Lumisphere can be easily obtained by reflecting around normal.
Before
After
Median values Specular Result
Reconstruction: 129,000 faces
Memory for reconstruction: 2.5 MB
Base mesh: 199 faces
Re-mesh (4x subdivided): 51,000 faces
Memory for re-mesh: 1 MB
Memory with view-dependence: 7.5 MB
Pointwise faired:
Memory = 177 MB
FQ (2000 codewords)
Memory = 3.4 MB
PFA (dimension 3)
Memory = 2.5 MB
PFA (dimension 5)
Memory = 2.9 MB
RMS error = 9
RMS error = 23
RMS error = 24
RMS error = ?
For PFA dimension 3…
Direction mesh: 11 KB
Normal maps: 680 KB
Median maps: 680 KB
Index maps: 455 KB
Weight maps: 680 KB
Codebook: 3 KB
Geometry w/o view dependence: <1 MB
Geometry w/ view dependence: 7.5 MB
Rendering platform: 550 MHz PIII, linux, Mesa
Rendering performance: 6-7 fps (typical)
Data acquisition (ii)
Take photographs
Camera positions Stanford Spherical Gantry