multiresolution analysis for surfaces of arbitrary topological type michael lounsbery michael...
TRANSCRIPT
Multiresolution Analysis for Multiresolution Analysis for Surfaces of Arbitrary Topological Surfaces of Arbitrary Topological TypeType
Michael LounsberyMichael Lounsbery Alias | wavefrontAlias | wavefront
Tony DeRoseTony DeRose PixarPixar
Joe WarrenJoe Warren Rice UniversityRice University
OverviewOverview
ApplicationsApplications Wavelets backgroundWavelets background Construction of wavelets on subdivision Construction of wavelets on subdivision
surfacessurfaces Approximation techniquesApproximation techniques Hierarchical editingHierarchical editing
Subdivision surfacesSubdivision surfaces
Each subdivision step:Each subdivision step:• SplitSplit• AverageAverage
What happens if we run it backwards?What happens if we run it backwards?
Wavelet applicationsWavelet applications
Surface compressionSurface compression
Level of detail for animationLevel of detail for animation
Multiresolution editing of 3D surfacesMultiresolution editing of 3D surfaces
Simple wavelet exampleSimple wavelet example
ScalingScaling functions:functions:
scales & scales & translatestranslates
Wavelet functions:Wavelet functions:
scales & scales & translatestranslates
)(xji
)(xji
)(2 xi )(1 xi )(0 xi
)(1 xi )(0 xi
Simple wavelet exampleSimple wavelet example
ScalingScaling functions:functions:
scales & scales & translatestranslates
Wavelet functions:Wavelet functions:
scales & scales & translatestranslates
)(xji
)(xji
)(2 xi )(1 xi )(0 xi
)(1 xi )(0 xi
Nested linear spacesNested linear spaces
Define linear spaces spanned by Define linear spaces spanned by
Hierarchy of nested spaces for scaling Hierarchy of nested spaces for scaling functionsfunctions
210 VVV
)(xjijV
OrthogonalityOrthogonality
Wavelets are defined to be Wavelets are defined to be orthogonal to the scaling functionsorthogonal to the scaling functions )(xji
)(xjk
)(xjk
jV
0)()( dxxjk
xji
Wavelet propertiesWavelet properties
Close approximationClose approximation• Least-squares property from orthogonalityLeast-squares property from orthogonality• Can rebuild exactlyCan rebuild exactly• Large coefficients match areas with more Large coefficients match areas with more
informationinformation
EfficientEfficient• Linear time decomposition and Linear time decomposition and
reconstructionreconstruction
Wavelet approximation exampleWavelet approximation example
Figure courtesy of Peter Schröder & Wim Sweldens Figure courtesy of Peter Schröder & Wim Sweldens
Wavelet applicationsWavelet applications
Data compressionData compression• FunctionsFunctions
– 1-dimensional1-dimensional– Tensor-productTensor-product
• ImagesImages
Progressive transmissionProgressive transmission• Order coefficients from greatest to least Order coefficients from greatest to least
(Certain et al. 1996)(Certain et al. 1996)
Constructing waveletsConstructing wavelets
1. Choose a scaling function1. Choose a scaling function
2. Find an inner product2. Find an inner product
3. Solve for wavelets3. Solve for wavelets
)(xji
dxxjk
xji
xjk
xji
)()()(),(
kixjk
xji
xjk
xji ,)(),(,0)(),(
)(xji
Extending wavelets to surfaces: Extending wavelets to surfaces: Why is it difficult?Why is it difficult?
Translation and scaling doesn’t workTranslation and scaling doesn’t work• Example: can’t cleanly map a grid onto a Example: can’t cleanly map a grid onto a
spheresphere
Need a more general formulationNeed a more general formulation• Nested spaces <-> refinable scaling Nested spaces <-> refinable scaling
functionsfunctions• Inner productInner product
RefinabilityRefinability
A coarse-level scaling function may be A coarse-level scaling function may be defined in terms of finer-level scaling defined in terms of finer-level scaling functionsfunctions
Surfaces of Arbitrary Surfaces of Arbitrary Topological TypeTopological Type
Explicit patching methodsExplicit patching methods• SmoothSmooth• IntegrableIntegrable• No refinabilityNo refinability
Subdivision surfacesSubdivision surfaces
Computing inner productsComputing inner products
Needed for constructing wavelets Needed for constructing wavelets orthogonal to scaling functionsorthogonal to scaling functions
For scaling functions andFor scaling functions and
Numerically compute? Numerically compute?
)(xji )(x
jk
0
)()()(),(Mx
dxxjk
xji
xjk
xji
Computing inner productsComputing inner products
is matrix of inner products at levelis matrix of inner products at level
ObservationsObservations• Recurrence relation between matricesRecurrence relation between matrices
• Finite number of distinct entries in matricesFinite number of distinct entries in matrices
Result: solve finite-sized linear system Result: solve finite-sized linear system for inner productfor inner product
11 4)( jmn
jik
jTj IISISI
)(),( xxI jk
ji
jik
jikI j
Surface approximationSurface approximation
1. Select subset of wavelet coefficients1. Select subset of wavelet coefficients
2. Add them back to the base mesh2. Add them back to the base mesh
Selection strategiesSelection strategies• All coefficients All coefficients >> • guaranteeguarantee
L
Approximating surface dataApproximating surface data
Scalar-based data is stored at verticesScalar-based data is stored at vertices• Treat different fields separatelyTreat different fields separately
– StorageStorage– DecompositionDecomposition
• ““Size” of wavelet coefficient is weighted blendSize” of wavelet coefficient is weighted blend
ExamplesExamples• 3D data: surface geometry3D data: surface geometry• Color data: Planetary mapsColor data: Planetary maps
Original: 32K trianglesOriginal: 32K triangles Reduced: 10K trianglesReduced: 10K triangles
Reduced: 4K trianglesReduced: 4K triangles Reduced: 240 trianglesReduced: 240 triangles
Reduced to Reduced to 16%16%
Original at Original at 100%100%
Color data on the sphereColor data on the sphere
Plain image Image with mesh Plain image Image with mesh lineslines
Smooth transitionsSmooth transitions
Avoids jumps in shapeAvoids jumps in shape
Smoothly blend wavelet additionsSmoothly blend wavelet additions• Linear interpolationLinear interpolation
RemeshingRemeshing
We assume simple base meshWe assume simple base mesh
Difficult to derive from arbitrary inputDifficult to derive from arbitrary input• Eck et al. (1995) addressesEck et al. (1995) addresses
Hierarchical editingHierarchical editing
Can edit at different levels of detailCan edit at different levels of detail• (Forsey & Bartels 1988, Finkelstein et al. (Forsey & Bartels 1988, Finkelstein et al.
1994)1994)
Original shape Wide-scale edit Finer-scale Original shape Wide-scale edit Finer-scale editedit
SummarySummary
Wavelets over subdivision surfacesWavelets over subdivision surfaces• Refinable scaling functionsRefinable scaling functions• Exact inner products are possibleExact inner products are possible• Locally supported waveletsLocally supported wavelets
EfficientEfficient
Many potential applicationsMany potential applications