Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing...

32
Point Set Surface Editing Techniques Point Set Surface Editing Techniques based on Level based on Level - - Sets Sets Xiaohu Guo , Jing Hua , Hong Qin Xiaohu Guo , Jing Hua , Hong Qin Department of Computer Science Department of Computer Science SUNY Stony Brook SUNY Stony Brook

Transcript of Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing...

Page 1: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Point Set Surface Editing Techniques Point Set Surface Editing Techniques based on Levelbased on Level--SetsSets

Xiaohu Guo , Jing Hua , Hong QinXiaohu Guo , Jing Hua , Hong QinDepartment of Computer ScienceDepartment of Computer Science

SUNY Stony BrookSUNY Stony Brook

Page 2: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

OutlineOutline

Introduction and motivationIntroduction and motivationLevelLevel--setset--driven point set surface modelingdriven point set surface modeling

LevelLevel--set formulationset formulationScalarScalar--field freefield free--form deformationform deformationDynamic update and samplingDynamic update and samplingTopology change handlingTopology change handling

Editing toolkits & resultsEditing toolkits & resultsConclusionsConclusions

Page 3: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

OutlineOutline

Introduction and motivationIntroduction and motivationLevelLevel--setset--driven point set surface modelingdriven point set surface modeling

LevelLevel--set formulationset formulationScalarScalar--field freefield free--form deformationform deformationDynamic update and samplingDynamic update and samplingTopology change handlingTopology change handling

Editing toolkits & resultsEditing toolkits & resultsConclusionsConclusions

Page 4: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Point set surfaces are enjoying Point set surfaces are enjoying their renaissancetheir renaissance

PointPoint--based renderingbased rendering[[Rusinkiewicz and Levoy 2000]] [Pfister et al. 2000][Zwicker et al. 2001] [Dachsbacher et al. 2003]……

Oriented particle surfaceOriented particle surface [Szeliski and Tonnesen 1992]

Moving least squares surfaceMoving least squares surface [Alexa et al. 2001]

PointPoint--based appearance editingbased appearance editing [Zwicker et al. 2002]

PointPoint--based shape modelingbased shape modeling [Pauly et al. 2003]

……Free of connectivity concern!Free of connectivity concern!

Page 5: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Interactive shape controlInteractive shape control

The spectrum of surface editing and deformation types is far from enough.It is not easy to handle collision detection and topology changes purely based on point information.Scalar-field-driven implicit representation and level-sets are powerful :

Free of parameterization artifactsCan handle arbitrary topology and complicated geometry easily

Our solution: level-set-driven editing paradigm for point set surfaces.

Page 6: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

System overviewSystem overview

Page 7: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

OutlineOutline

Introduction and motivationIntroduction and motivationLevelLevel--setset--driven point set surface modelingdriven point set surface modeling

LevelLevel--set formulationset formulationScalarScalar--field freefield free--form deformationform deformationDynamic update and samplingDynamic update and samplingTopology change handlingTopology change handling

Editing toolkits & resultsEditing toolkits & resultsConclusionsConclusions

Page 8: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Implicit surface construction Implicit surface construction from point cloudsfrom point clouds

Implicit surface:Implicit surface:}),(|)({ kttS == xx φ

Construction from point clouds:Construction from point clouds:[[Hoppe et al. 1992Hoppe et al. 1992], ], [[Frisken et al. 2000Frisken et al. 2000], ], [[Carr et al. 2001Carr et al. 2001], ], [[Turk and OTurk and O’’Brien 2002Brien 2002], ], [[Zhao and Osher 2002Zhao and Osher 2002], ], [[Ohtake et al. 2003Ohtake et al. 2003],],……

Page 9: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

LevelLevel--set formulationset formulation

,...),,( φφφφ∇∇=

∂∂ xF

t

Partial differential equation :Partial differential equation :

Speed function:Speed function:

dtdF xx ⋅

∇∇

−≡∇φφφφ ,...),,(

SparseSparse--field method field method [Whitaker 1998]:[Whitaker 1998]:

Layer 0Layer -1 Layer +1

Page 10: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

FreeFree--form deformationform deformation

Smooth deformation field F:Smooth deformation field F:RR33→→RR33 that warps 3D that warps 3D spacesspaces

[[Sederberg et al. 86], [Coquillart 90], [MacCracken et al. 96], [Singh et al. 98], …

Can be applied to point samplesCan be applied to point samplesMoving least squares surface definition [Moving least squares surface definition [Pauly et al. 2003Pauly et al. 2003]]ScalarScalar--field freefield free--form deformation form deformation –– our approachour approach

(courtesy of Pauly et al.)

Page 11: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

ScalarScalar--field freefield free--form deformation form deformation (SFFD)(SFFD)

OverviewOverview

ssEmbed the entire model or part of the model (represented as poinEmbed the entire model or part of the model (represented as point set t set surfaces) into a surface scalar field sampled on levelsurfaces) into a surface scalar field sampled on level--set grids:set grids:

}0),(|)({ == tstS s xx

Define a tool scalar field used to perform deformations, Define a tool scalar field used to perform deformations, and and tscalculate the tool scalar values at all the vertices of the gridcalculate the tool scalar values at all the vertices of the grids. s.

Constrain the grid vertices on the level sets of the tool scalarConstrain the grid vertices on the level sets of the tool scalar field where field where they originally reside by enforcing vertexthey originally reside by enforcing vertex--flow constraints during the flow constraints during the deformation process.deformation process.

Page 12: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

ScalarScalar--field freefield free--form deformation form deformation (SFFD)(SFFD)

Surface Tool Bending Tool

Velocity FieldVelocity FieldBended Surface

Page 13: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

ScalarScalar--field freefield free--form deformation form deformation (SFFD)(SFFD)

Mathematical expressionMathematical expression

}),(|)({ ctst t =xxThe trajectory of the grid vertex can be represented aThe trajectory of the grid vertex can be represented as:s:)(tx

The derivative of : The derivative of : ),( tst x 0=∂∂

+⋅∇ts

dtds t

tx

Consider general velocity of the grid vertex as : Consider general velocity of the grid vertex as : dtdx ),,( zyx vvv

The objective function : The objective function :

∫ ∇+∂∂

+⋅∇= xvv dtssE t

t22 )()( λ

Page 14: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

ScalarScalar--field freefield free--form deformation form deformation (SFFD)(SFFD)

Mathematical expression (contMathematical expression (cont’’d)d)

21012 LLLLLi UUUU −−∈

To discretize , consider only the grid vertices on the spaTo discretize , consider only the grid vertices on the sparserse--field layers:field layers:E

∑ +=i

isicE ))()(( λ

2))()()(()(tsiv

zsiv

ysiv

xsic t

zt

yt

xt

∂∂

+∂∂

+∂∂

+∂∂

=

[ ]∑∈

−+−+−=iNj

zzyyxxi

jvivjvivjvivN

is 222 ))()(())()(())()((1)(

},|{ 210126 LLLLLjCijjNi UUUU −−∈∈=

Page 15: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

The solution, satisfying The solution, satisfying , ,

can minimize .can minimize .

ScalarScalar--field freefield free--form deformation form deformation (SFFD)(SFFD)

Mathematical expression (contMathematical expression (cont’’d)d)

E

0)(=

∂∂

ivE

x

0)(=

∂∂

ivE

y

0)(=

∂∂

ivE

z

The solution is : The solution is : ΤΤΤ

∂∂

∂∂

∂∂

−= ],,[],,[],,[zs

ys

xsvvvvvv ttt

zyxzyx μ

222 )()()(zs

ys

xs

tsv

zsv

ysv

xs

ttt

tz

ty

tx

t

∂∂

+∂∂

+∂∂

+

∂∂

+∂∂

+∂∂

+∂∂

μ

LevelLevel--set speed function : , to advance tset speed function : , to advance the he surface scalar field.surface scalar field.

v⋅∇∇

−=s

s

ssF

Page 16: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Dynamic update and samplingDynamic update and sampling

UpUp--sampling: Farthest point sampling sampling: Farthest point sampling method in [method in [M. Alexa, et al. 2001M. Alexa, et al. 2001]]

DownDown--sampling: Iterative simplification sampling: Iterative simplification method in [method in [M. Pauly, et al. 2002M. Pauly, et al. 2002].].

Points move in their normal directionPoints move in their normal direction

Page 17: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Topology change handlingTopology change handling

LevelLevel--set contour can change topology set contour can change topology automatically.automatically.The topology of the point set surfaces The topology of the point set surfaces need to be explicitly handled, e.g. deleting need to be explicitly handled, e.g. deleting points in the intersection region.points in the intersection region.Collision detection based on digital Collision detection based on digital topology. [topology. [Bertrand 1994Bertrand 1994] [] [Bischoff and Bischoff and Kobbelt 2003Kobbelt 2003]]

Page 18: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Digital TopologyDigital Topology

1int =n1=extn

0int =n1=extn

1int =n0=extn

1int =n2=extn

2int =n1=extn

))(),((),( *26

266int vNVvNcVvn I=

))((),( *2626 vNVcVvnext I=The number of exterior components : The number of exterior components :

The number of interior components : The number of interior components :

A grid is A grid is simplesimple w.r.t. a grid set (i.e. and have thw.r.t. a grid set (i.e. and have the same e same number of components), if and only if :number of components), if and only if :

v V V }{vV U1),(),(int == VvnVvn ext

Page 19: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Collision detection and handlingCollision detection and handling

vu w

2int ≥nIf , at least two parts of the If , at least two parts of the front are going to collide.front are going to collide.

Delete the point samples residing in Delete the point samples residing in the prescribed vicinity of grid u and w.the prescribed vicinity of grid u and w.

Calculate of the current Calculate of the current advancing grid v.advancing grid v.

intn

Place a tag between v and w.Place a tag between v and w.

Page 20: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

OutlineOutline

Introduction and motivationIntroduction and motivationLevelLevel--setset--driven point set surface modelingdriven point set surface modeling

LevelLevel--set formulationset formulationScalarScalar--field freefield free--form deformationform deformationDynamic update and samplingDynamic update and samplingTopology change handlingTopology change handling

Editing toolkits & resultsEditing toolkits & resultsConclusionsConclusions

Page 21: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Editing toolkitsEditing toolkits

FreeFree--form deformationform deformationShrinking/InflationShrinking/InflationBendingBendingTaperingTapering

SketchSketch--based editingbased editingOther toolsOther tools

Embossing/EngravingEmbossing/EngravingSmoothingSmoothing

Page 22: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

FreeFree--form deformation toolsform deformation tools

Tool scalar field generated as the blending of Tool scalar field generated as the blending of field functions of a set of skeleton elements field functions of a set of skeleton elements (blobs, curves, etc)(blobs, curves, etc)

Enforcing control in two ways:Enforcing control in two ways:Adjusting the coefficients of the implicit functions for each Adjusting the coefficients of the implicit functions for each skeleton elementskeleton elementManipulating or moving the skeleton elementsManipulating or moving the skeleton elements

∑=

=N

iit zyxgzyxs

1),,(),,(

Page 23: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

FreeFree--form deformation toolsform deformation tools

Shrinking/InflationShrinking/Inflation

Page 24: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

FreeFree--form deformation toolsform deformation tools

BendingBending

Page 25: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

FreeFree--form deformation toolsform deformation tools

TaperingTapering

Page 26: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

SketchSketch--based editing toolsbased editing tools

Allowing surfaces to grow/drill along userAllowing surfaces to grow/drill along user’’s s input strokes by defining the speed function:input strokes by defining the speed function:

φφαα

∇∇

⋅∇−+= )1(DF

Page 27: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Other toolsOther tools

Using the speed function proposed by Using the speed function proposed by [[Museth et al. 2002Museth et al. 2002] :] :

)()()( γγ GCdDF q=

Page 28: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

VideoVideo

Page 29: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Time performanceTime performance

Editing toolsEditing tools # Grids# Grids # Points# Points Time (s)Time (s)

Shrinking/InflationShrinking/Inflation 12812833 67,03867,038 4.6524.652

BendingBending 12812833 67,03867,038 3.0093.009

Sketch editingSketch editing 646433 9,3489,348 0.1830.183

EmbossingEmbossing 646433 9,1919,191 0.2140.214

SmoothingSmoothing 646433 9,8269,826 0.5350.535

Implemented on a Microsoft Windows XP PC with dual Intel Xeon 2.Implemented on a Microsoft Windows XP PC with dual Intel Xeon 2.0GHz 0GHz CPUs and 1.5GB RAM.CPUs and 1.5GB RAM.

Page 30: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

ConclusionsConclusions

A new modeling and deformation paradigm for A new modeling and deformation paradigm for point set surfaces based on levelpoint set surfaces based on level--sets.sets.Local and global editing on arbitrary point set Local and global editing on arbitrary point set surfaces of any topological types.surfaces of any topological types.Taking advantages of levelTaking advantages of level--set geometry and set geometry and scalarscalar--field freefield free--form deformation. form deformation. Employ digital topology to handle topological Employ digital topology to handle topological changes during deformation.changes during deformation.Various editing toolkits for user interaction.Various editing toolkits for user interaction.

Page 31: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

AcknowledgementsAcknowledgements

NSF grants IISNSF grants IIS--0082035 and IIS0082035 and IIS--00976460097646Alfred P. Sloan FellowshipAlfred P. Sloan FellowshipColleagues from the Center of Visual Colleagues from the Center of Visual Computing, SUNY Stony Brook.Computing, SUNY Stony Brook.

Page 32: Point Set Surface Editing Techniques based on Level-Setsxxg061000/xguo_CGI04Talk.pdf · Editing tools # Grids # Points Time (s) Shrinking/Inflation 1283 67,03867,038 4.6524.652 Bending

Thank you!