Title: Texture-Mapping Progressive Meshes
1Texture-MappingProgressive Meshes
SIGGRAPH 2001
Pedro V. SanderSteven J. Gortler
John SnyderHugues Hoppe
Harvard University
Microsoft Research
2Texture-MappingProgressive Meshes
SIGGRAPH 2001
Pedro V. SanderSteven J. Gortler
John SnyderHugues Hoppe
Harvard University
Microsoft Research
369,000faces
15,000faces
600faces
progressive mesh
469,000faces
15,000faces
600faces
progressive mesh
600faces
simplified mesh normal mapConveys detail of
original geometry
5Texture mapping
Authoring map a texture image onto a surface
6Texture mapping
Authoring map a texture image onto a surface
7Our problem
- Sample the surface signal into a texture (e.g.
normal, displacement, BRDF, ) - Goals
- single texture for entire PM sequence
- quality metrics
- minimize appearance changes over PM
- efficiently distribute the texture samples
demo
8Our problem
- Sample the surface signal into a texture (e.g.
normal, displacement, BRDF, ) - Goals
- single texture for entire PM sequence
- quality metrics
- minimize appearance changes over PM
- efficiently distribute the texture samples
9Simple approach chart-per-face
Soucy 96, Cignoni 98, Sander 00
500 faces
atlas of 500 triangles
- Define texture for single-LOD mesh.
- Cannot use texture for any simpler mesh!
10Our approach multi-face charts
- Partition mesh into charts.
- Simplify respecting chart topology. Cohen 98
- Same texture still applicable.
11Chart constraint 1Faces cannot span chart
boundaries
12Chart constraint 2Texture boundaries must be
straight
fine mesh
coarse mesh
texture map
13Our problem
- Sample the surface signal into a texture (e.g.
normal, displacement, BRDF, ) - Goals
- single texture for entire PM sequence
- quality metrics
- minimize appearance changes over PM
- efficiently distribute the texture samples
14Parametrization quality metrics
- (1) Minimize texture deviation
(stricter than geometric error)
Cohen et al 98
demo
15Parametrization quality metrics
- (2) Minimize texture stretch
undersampling
high stretch ?
low stretch ?
2D texture
16Parametrization quality metrics
- (2) Minimize texture stretch
blurring
high stretch ?
low stretch ?
17Contributions Texture mapping PMs
- Chartification algorithm (considers
simplification quality) - Texture stretch metric (penalizes
undersampling) - Parametrization algorithm (minimizes stretch)
- PM optimization
18Approach
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
19Approach
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
20Approach
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
21Approach
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
22Approach
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
23Approach
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
24Approach
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
25Approach
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
26Approach
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
27Approach Details
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
28Partition chart merging
- Assign each face to its own region.
- Merge regions in greedy fashion based on
- planarity distance2 to best-fitting plane
- compactness perimeter length2
- Preserves mesh connectivity.
- Maillot 93, Eck 95, Lee 98, Garland 01
29Partition boundary straightening
- Improves parametrization (boundary will be
straight in texture domain)
30Approach Details
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
31Parametrization
2D texture domain
surface in 3D
32Parametrization
2D texture domain
surface in 3D
- length-preserving (isometric) ? G 1
- angle-preserving (conformal) ? G
- area-preserving ? G 1
33Stretch-minimizing parametrization
2D texture domain
surface in 3D
L8(T) G L2(T) v(?2 G2)/2
34Stretch-minimization algorithm
demo
- Start with uniform parametrization.
- Perform several optimization iterations
- for each vertex, try random line searches.
35Parametrization example
36Comparison
Conformal parametrization ( MIPS, Floater) L2
2.28 L? 10.07
L2 stretch minimization L2 1.22 L? 2.13
37Comparison
Uniform parametrization L2 2.60 L? 12.52
L2 stretch minimization L2 1.22 L? 2.13
38Comparison
Area-preserving parametrization L2 1.57 L?
4.19
L2 stretch minimization L2 1.22 L? 2.13
39Example of stretch minimization
demo
ignoring stretch
minimizing stretch
40Approach Details
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
- Half-edge collapses ordered by deviation
- Constrained simplification
41Approach Details
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
42Parametrization optimization
- Min ?M in PM stretch(M) deviation(M)
- Improves deviation over entire range.
- Improves stretch at coarser LODs(stretch was
ignored during simplification).
43Approach Details
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
44Pack chart polygons
- NP-Hard problem.
- We designed a heuristic.
45Packing Heuristic
- Calculate the minimum bounding rectangle.
- Rotate chart to make rectangle vertical.
46Chart placement
- Sort chart rectangles by height.
- Sequentially place left-to-right and
right-to-left.
Igarashi 01
47Approach Details
(1) partition original mesh into charts(2)
parametrize charts(3) resize chart polygons(4)
simplify mesh(5) optimize parametrization(6)
pack chart polygons(7) sample texture images
mipmap artifacts!
48Results(Measurements)
- Scale charts to meet low-stretch requirement.
- Stretch efficiency3D surface area / 2D chart
area - Packing efficiency2D chart area / texture domain
area - Texture efficiencystretch efficiency packing
efficiency3D area / texture domain area
/
/
/
49Results
- Efficiencies on fine meshes
Models bunny parasaur horse hand
faces in Mn 69,630 43,866 96,956 60,856
charts 75 75 120 60
uniform param. stretch efficiency 0.63 0.003 0.61 0.11
our stretch efficiency 0.84 0.63 0.80 0.68
packing efficiency 0.67 0.63 0.70 0.62
texture efficiency 0.56 0.40 0.56 0.42
50Results across PM
stretch
deviation
demo
51Demos
demo
demo
52Summary
- Automatic PM parametrization scheme.
- Optimizes both deviation and stretch.
- Novel stretch metric prevents undersampling at
all locations and in all directions. - Robust parametrization algorithm.
53Future work
- Use hierarchical parametrization.
- Constrain anisotropy.
- Consider content of texture signal.
- Address mip-mapping problems.