Download - User-Guided Simplification
User-Guided Simplification
Youngihn KhoYoungihn Kho
Michael GarlandMichael GarlandUniversity of Illinois at Urbana–ChampaignUniversity of Illinois at Urbana–Champaign
Youngihn KhoYoungihn Kho
Michael GarlandMichael GarlandUniversity of Illinois at Urbana–ChampaignUniversity of Illinois at Urbana–Champaign
Surface Simplification
5,804 faces5,804 faces 780 faces780 faces
Previous simplifications
Most of previous algorithms are fully automatic• generally work well, butgenerally work well, but• weak at higher-level semanticsweak at higher-level semantics• user-guidance can improve the qualityuser-guidance can improve the quality
Semi-automatic methods• Zetaeta (Cignoni (Cignoni et alet al. ’97). ’97)
• SemisimpSemisimp (Li and Watson ’01) (Li and Watson ’01)
• User-Controlled Creation of Multiresolution User-Controlled Creation of Multiresolution MeshesMeshes
((Pojar and Pojar and Schmalstieg Schmalstieg ’03’03))
Most of previous algorithms are fully automatic• generally work well, butgenerally work well, but• weak at higher-level semanticsweak at higher-level semantics• user-guidance can improve the qualityuser-guidance can improve the quality
Semi-automatic methods• Zetaeta (Cignoni (Cignoni et alet al. ’97). ’97)
• SemisimpSemisimp (Li and Watson ’01) (Li and Watson ’01)
• User-Controlled Creation of Multiresolution User-Controlled Creation of Multiresolution MeshesMeshes
((Pojar and Pojar and Schmalstieg Schmalstieg ’03’03))
User Guidance can be Useful
We propose a user-guided simplificationWe propose a user-guided simplification• directly guide simplification processesdirectly guide simplification processes
• users freely interact at any levelusers freely interact at any level
• Built Built on top of on top of quadric-based simplification quadric-based simplification
(Garland and Heckbert ’97)(Garland and Heckbert ’97)
We propose a user-guided simplificationWe propose a user-guided simplification• directly guide simplification processesdirectly guide simplification processes
• users freely interact at any levelusers freely interact at any level
• Built Built on top of on top of quadric-based simplification quadric-based simplification
(Garland and Heckbert ’97)(Garland and Heckbert ’97)
Iterative Edge Contraction
Starting from the original model, Starting from the original model, iterativelyiteratively• rank all edges with some cost metricrank all edges with some cost metric
• contract minimum cost edgecontract minimum cost edge
• update edge costsupdate edge costs
• generate vertex treegenerate vertex tree
Starting from the original model, Starting from the original model, iterativelyiteratively• rank all edges with some cost metricrank all edges with some cost metric
• contract minimum cost edgecontract minimum cost edge
• update edge costsupdate edge costs
• generate vertex treegenerate vertex tree
Quadric-Error Metric
Given a plane, a Given a plane, a quadricquadric Q is defined as Q is defined asGiven a plane, a Given a plane, a quadricquadric Q is defined as Q is defined as
Squared distance of point to plane isSquared distance of point to plane isSquared distance of point to plane isSquared distance of point to plane is
Sum of quadrics represents set of planesSum of quadrics represents set of planesSum of quadrics represents set of planesSum of quadrics represents set of planes
Quadric-Error Metric
Each edge has an associated quadric Each edge has an associated quadric • sum of quadrics for its two verticessum of quadrics for its two vertices
• find a vertex find a vertex vv** minimizing minimizing QQ((vv**))
Each edge has an associated quadric Each edge has an associated quadric • sum of quadrics for its two verticessum of quadrics for its two vertices
• find a vertex find a vertex vv** minimizing minimizing QQ((vv**))
After the edge contraction After the edge contraction • the vertex the vertex vv** accumulates the associated accumulates the associated
quadricsquadrics
After the edge contraction After the edge contraction • the vertex the vertex vv** accumulates the associated accumulates the associated
quadricsquadrics
How to Guide Simplification:Manipulate Quadrics
In the quadric-based algorithmIn the quadric-based algorithm• contraction order and optimal positions are contraction order and optimal positions are
crucialcrucial
• quadrics determine bothquadrics determine both
We manipulate quadrics in two main waysWe manipulate quadrics in two main ways• weighting quadricsweighting quadrics
• adding constraint quadricsadding constraint quadrics
In the quadric-based algorithmIn the quadric-based algorithm• contraction order and optimal positions are contraction order and optimal positions are
crucialcrucial
• quadrics determine bothquadrics determine both
We manipulate quadrics in two main waysWe manipulate quadrics in two main ways• weighting quadricsweighting quadrics
• adding constraint quadricsadding constraint quadrics
Weighting Quadrics:Control Contraction Costs
We weight quadricsWe weight quadricsWe weight quadricsWe weight quadrics
Heavy weights are appliedHeavy weights are applied• on feature areason feature areas
• increase contraction costsincrease contraction costs
Also changes optimal positionsAlso changes optimal positions• a desirable side effecta desirable side effect
Heavy weights are appliedHeavy weights are applied• on feature areason feature areas
• increase contraction costsincrease contraction costs
Also changes optimal positionsAlso changes optimal positions• a desirable side effecta desirable side effect
Feature areas are paintedFeature areas are painted
Constraint Quadrics:Control Optimal Positions
We can define constraint planes We can define constraint planes • add their quadrics to appropriate vertices add their quadrics to appropriate vertices
• bias optimal positionsbias optimal positions
• increase contraction costs -> store separatelyincrease contraction costs -> store separately
We can define constraint planes We can define constraint planes • add their quadrics to appropriate vertices add their quadrics to appropriate vertices
• bias optimal positionsbias optimal positions
• increase contraction costs -> store separatelyincrease contraction costs -> store separately
We Propose Three types ofConstraint Quadrics
Contour ConstraintsContour Constraints Point ConstraintsPoint ConstraintsPlane ConstraintsPlane Constraints
Example : Contour Constraint
Example : Point Constraint
We Need:New Propagation Rules
Users want to freely interact at any levelUsers want to freely interact at any level• affect both simplification and refinement affect both simplification and refinement
processprocess
• vertex tree structures may be changedvertex tree structures may be changed
• constraint quadrics and constraint quadrics and representative representative weightsweights
should be appropriately propagated.should be appropriately propagated.
Users want to freely interact at any levelUsers want to freely interact at any level• affect both simplification and refinement affect both simplification and refinement
processprocess
• vertex tree structures may be changedvertex tree structures may be changed
• constraint quadrics and constraint quadrics and representative representative weightsweights
should be appropriately propagated.should be appropriately propagated.
Propagation:Constraint Quadrics
Propagation:Representative Weight
Error Analysis:Relative Error Distribution
Fully automaticFully automatic User-guidedUser-guided
Conclusion
New interactive simplification systemNew interactive simplification system• extends an existing QSlim algorithmextends an existing QSlim algorithm
• allows user-guidance to improve allows user-guidance to improve approximationsapproximations
• little user effort, still efficientlittle user effort, still efficient
Changes vertex tree structuresChanges vertex tree structures• can be used for further applicationscan be used for further applications
New interactive simplification systemNew interactive simplification system• extends an existing QSlim algorithmextends an existing QSlim algorithm
• allows user-guidance to improve allows user-guidance to improve approximationsapproximations
• little user effort, still efficientlittle user effort, still efficient
Changes vertex tree structuresChanges vertex tree structures• can be used for further applicationscan be used for further applications
Future Work
Better weights selectionBetter weights selection• currently chosen by userscurrently chosen by users
• automatic suggestion would be goodautomatic suggestion would be good
Perceptually based error metricPerceptually based error metric• low-level perception modelslow-level perception models
(Reddy ‘97, (Reddy ‘97, Luebke and Hallen ’01Luebke and Hallen ’01))
• but also high-level : eg. actual feature vs but also high-level : eg. actual feature vs noise noise
• machine learning techniques?machine learning techniques?
Better weights selectionBetter weights selection• currently chosen by userscurrently chosen by users
• automatic suggestion would be goodautomatic suggestion would be good
Perceptually based error metricPerceptually based error metric• low-level perception modelslow-level perception models
(Reddy ‘97, (Reddy ‘97, Luebke and Hallen ’01Luebke and Hallen ’01))
• but also high-level : eg. actual feature vs but also high-level : eg. actual feature vs noise noise
• machine learning techniques?machine learning techniques?
The End
Thanks!Thanks!
Contact InformationContact Information
Youngihn kho Michael GarlandYoungihn kho Michael Garland
[email protected] [email protected]@uiuc.edu [email protected]
Thanks!Thanks!
Contact InformationContact Information
Youngihn kho Michael GarlandYoungihn kho Michael Garland
[email protected] [email protected]@uiuc.edu [email protected]