multiresolution analysis for surfaces of arbitrary topological type michael lounsbery michael...

43
Multiresolution Analysis for Multiresolution Analysis for Surfaces of Arbitrary Surfaces of Arbitrary Topological Type Topological Type Michael Lounsbery Michael Lounsbery Alias | wavefront Alias | wavefront Tony DeRose Tony DeRose Pixar Pixar Joe Warren Joe Warren Rice University Rice University

Upload: hugo-hart

Post on 17-Dec-2015

222 views

Category:

Documents


4 download

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

Simple wavelet exampleSimple wavelet example

Simple wavelet exampleSimple wavelet example

Simple wavelet exampleSimple wavelet example

Simple wavelet exampleSimple wavelet example

Simple wavelet exampleSimple wavelet example

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

Wavelets on surfacesWavelets on surfaces

Wavelets: subdivision run Wavelets: subdivision run backwardsbackwards

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

Scaling functionsScaling functions

RMRM

xXxXxS

kk

kkkk

1100

1100

::

)()()(

)(xS

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

Constructing waveletsConstructing wavelets

)(1 xk

0V

Constructing waveletsConstructing wavelets

)(0 xk )(1 xk

0V

Constructing waveletsConstructing wavelets

)(0 xk )(1 xk

0V)(ˆ0 xk

Constructing waveletsConstructing wavelets

)(0 xk )(1 xk

0V)(ˆ0 xk

)(ˆ)( 01 xx kk

Constructing waveletsConstructing wavelets

11 )( Vxk

Constructing waveletsConstructing wavelets

00 )(ˆ Vxk

11 )( Vxk

Constructing waveletsConstructing wavelets

)(ˆ)()( 010 xxx kkk Our wavelet:Our wavelet:

Localized approximation of Localized approximation of waveletswavelets

)(0 xk

)(xlocal

)(xtrunc

0V

Wavelet decomposition of Wavelet decomposition of surfacessurfaces

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