cs 523: computer graphics, spring 2011 shape modeling
Post on 12-Jun-2022
1 Views
Preview:
TRANSCRIPT
CS 523: Computer Graphics, Spring 2011
Shape Modeling
Sketch-based Interfaces and
Algorithms for shape creation
and editing
3/29/2011Andrew Nealen, Rutgers, 2011 1
Overview
� Teddy
[Igarashi et al. 1999]
� Sketch based mesh
editing [Nealen et al 2005]
� FiberMesh
[Nealen et al. 2007]
� SilSketch
[Zimmermann et al. 2008]
Andrew Nealen, Rutgers, 2011 3/29/2011 2
Primary Goal
� Find a possible solution to the
human “video out” problem
Machine Human
Video in
Video out ?
3/29/2011 3Andrew Nealen, Rutgers, 2011
The Main Question
� How can we convey a mental model of shape
to a digital computer ?
Machine Human
Video in
Video out ?
3/29/2011 4Andrew Nealen, Rutgers, 2011
MotivationModel Creation
� Digital 3D model creation from scratch is hard
� Common workflow(s)� Create clay model
+ scan� Laser scanner
� Position tracking
� Create coarse 3D model + refine� Subdivision surfaces
� Parametric patches
� Detail maps
3/29/2011 5Andrew Nealen, Rutgers, 2011
Problem
� How to construct 3D surface from 2D sketch?
� Infer the missing depth information
� Construct a discrete surface
� What rule(s) to use?
Andrew Nealen, Rutgers, 2011 3/29/2011 6
Background
� Study on Human perception of 3D shape from
2D drawings [Hoffman 2004]
Andrew Nealen, Rutgers, 2011 3/29/2011 7
Specific Algorithms
� Level-set method [Williams 91]
� Heuristic mesh construction [Igarashi 99]
� Volumetric construction [Owada 03]
� Convolution surface [Alexe 05]
� Blob tree (Implicit surface) [Schmidt 05]
� Mass-spring system [Karpenko 06]
� Optimization [Nealen 07]
Andrew Nealen, Rutgers, 2011 3/29/2011 8
Level-set Method[Williams 91]
� Compute implicit representation of the
contour
Andrew Nealen, Rutgers, 2011 3/29/2011 9
Teddy
Andrew Nealen, Rutgers, 2011 3/29/2011 10
Heuristic Mesh ConstructionTeddy
3/29/2011 11Andrew Nealen, Rutgers, 2011
1. Find axes 2. Elevate axes
3. Wrap polygon and axes
Heuristic Mesh ConstructionTeddy
3/29/2011 12Andrew Nealen, Rutgers, 2011
Input 2D polygon
Heuristic Mesh ConstructionTeddy
3/29/2011 13Andrew Nealen, Rutgers, 2011
Constrained Delaunay Triangulation
Heuristic Mesh ConstructionTeddy
3/29/2011 14Andrew Nealen, Rutgers, 2011
Discrete chordal axis [Prasad 97]
Heuristic Mesh ConstructionTeddy
3/29/2011 15Andrew Nealen, Rutgers, 2011
Before trimming After trimming
Heuristic Mesh ConstructionTeddy
3/29/2011 16Andrew Nealen, Rutgers, 2011
Lift the axes, put quarter ovals on the
internal edges, and generate mesh.
Heuristic Mesh ConstructionTeddy
3/29/2011 17Andrew Nealen, Rutgers, 2011
Teddy
� Results
� Fast and first of its kind
� Meshes are of low quality
Andrew Nealen, Rutgers, 2011 3/29/2011 18
Sketch-based mesh editing
Andrew Nealen, Rutgers, 2011 3/29/2011 19
MotivationModel Modification
� Digital 3D model modification is nontrivial
� Multiresolution mesh editing /w subdivision
3/29/2011 20Andrew Nealen, Rutgers, 2011
MotivationModel Modification
� Digital 3D model modification is nontrivial
� Laplacian / Poisson mesh editing /w handle
Affine Handle
[Sorkine et al. 2004]
[Botsch and Kobbelt 2004]
3/29/2011 21Andrew Nealen, Rutgers, 2011
• A sketch-based interface...
– Feature modification
(object-space silhouettes)
– Feature creation
(sharp features, ridges, ravines)
• ... For detail-preserving mesh editing
– Adjust remaining geometry around the modified/created feature
such that shape characteristics are preserved
Ideas and Contributions
3/29/2011 22Andrew Nealen, Rutgers, 2011
� Silhouette sketching• Feature sketching• Sketching a shape can be interpreted as
inverse Non-Photorealistic Rendering
• A sketch-based
modeling interface
which uses silhouettes
and sketches as input,
and produces contours,
ridges and ravines
Ideas and Contributions
3/29/2011 23Andrew Nealen, Rutgers, 2011
Inspiration and Motivation
� The (affine) handle metaphor
� Used in (almost) every editing tool
� Nice, but can be unintuitive for
specific editing tasks
� Laplacian Mesh Editing
� Preserve local detail after
imposing editing constraints
[Sorkine et al. 04]
[Sorkine et al. 04] [Zhou
et al. 05]
[Botsch and Kobbelt 04]
3/29/2011 24Andrew Nealen, Rutgers, 2011
• Discrete Laplacians
=L x δδδδ
n
δδδδcotangent : wij = cot αij + cot βij
( , )
( , )
1i i ij j
i j Eij
i j E
ww ∈
∈
= − ∑∑
δ x x
Mesh Modeling Framework
Mesh Modeling Framework
� Surface reconstruction
=L x δδδδ
L
L
y
z
x
δδδδz
δδδδy
δδδδxn
δδδδcotangent : wij = cot αij + cot βij
( , )
( , )
1i i ij j
i j Eij
i j E
ww ∈
∈
= − ∑∑
δ x x
3/29/2011 26Andrew Nealen, Rutgers, 2011
Implicitly compute Ti
transformations by comparing 1-
rings of the deformed and non-
deformed mesh
For the details see:
Laplacian Mesh Editing
[Sorkine et al. 04]
δδδδz
δδδδy
δδδδx
0
• Implicit transformations
y
z
xn
=
Ti (Rotation/Scale)
L
L
LL/Ti
L/Ti
L/Ti
Ti
Ti
Mesh Modeling Framework
Mesh Modeling Framework
� Surface reconstruction
y
z
xn
=
c1
1
1
1
fix
L/Ti
L/Ti
L/Ti
Ti
Ti
0
3/29/2011 28Andrew Nealen, Rutgers, 2011
c1
Mesh Modeling Framework
� Editing operations
y
z
xn
=
1
1
1
fixedit
c2
1
1
1
L/Ti
L/Ti
L/Ti
Ti
Ti
0
3/29/2011 29Andrew Nealen, Rutgers, 2011
δδδδz
δδδδy
δδδδx
0
c1
• Least-Squares solution
y
z
xn
=
1
1
1
fixw
1w
1edit
c2
1
1
1w
2w
2
wLi
wLi
L
L
LL/Ti
L/Ti
L/Ti
Ti
Ti
A x = b
ATA x = bAT
(ATA)-1x = bAT
Normal Equations
Mesh Modeling Framework
• Using silhouettes as handles
– Detect object space silhouette
– Project to screen space
and parametrize [0,1]
– Parametrize sketch [0,1]
– Find correspondences
Silhouette Sketching
• Using silhouettes as handles
– Detect object space silhouette
– Project to screen space
and parametrize [0,1]
– Parametrize sketch [0,1]
– Find correspondences
– Use as positional constraints
while retaining depth value
Silhouette Sketching
Silhouette Sketching
� What is a good silhouette?
vie
we
r
3/29/2011 33Andrew Nealen, Rutgers, 2011
Silhouette Sketching
� What is a good silhouette?
vie
we
r
Illustrating Smooth Surfaces
[Hertzmann and Zorin 00]
3/29/2011 34Andrew Nealen, Rutgers, 2011
c1
Silhouette Sketching
� On edge constraints
y
z
xn
=
1
1
1
fixw
1w
1edit
c2
1
1
1w
2w
2
wLi
wLi
edit
λ xi + (1-λ) xj
c3w3
w3
λλλλ 1−λλλλ
λλλλ 1−λλλλ
λλλλ 1−λλλλ
L/Ti
L/Ti
L/Ti
Ti
Ti
0
3/29/2011 35Andrew Nealen, Rutgers, 2011
Silhouette Sketching
� Approximate sketching
� Balance weighting between detail and positional constraints
3/29/2011 36Andrew Nealen, Rutgers, 2011
Silhouette Sketching
� Approximate sketching
� Balance weighting between detail and positional constraints
3/29/2011 37Andrew Nealen, Rutgers, 2011
� We wish to influence (discrete) differential properties of
the mesh for arbitrary sketches
� Possible solution
� Cut existing polygons along the sketch and add new edges
� Our solution
� Adjust mesh geometry to lie under the sketch (as seen from the
camera), while preserving mesh topology and ensuring well
shaped triangles
Feature Sketching
3/29/2011 38Andrew Nealen, Rutgers, 2011
� First: min cost edge path (close to sketch)
� Potentially jaggy appearance
screen
v1
v2
n
Geometry Adjustment
sketch
vO
(orthographic) viewer
(schematic) cross-section
3/29/2011 39Andrew Nealen, Rutgers, 2011
tangent plane
vOC
n
Geometry Adjustment
� Second: projection onto sketch
screensketch
vSvSC
n
v1
v2
vO
(orthographic) viewer
3/29/2011 40Andrew Nealen, Rutgers, 2011
tangent plane
vOC
n
Geometry Adjustment
� Second: projection onto sketch
� Approximates the sketch very well
� Can introduce badly shaped tri‘s
screensketch
vSvSC
n
v1
v2
vO
(orthographic) viewer
3/29/2011 41Andrew Nealen, Rutgers, 2011
� Third: local mesh regularization
� Ask uniformly weighted Laplacian to become cotangent
weighted Laplacian, while fixing path vertices
vOC
n
Geometry Adjustment
v1
v2
screensketch
v´1
v´2
δδδδcotangent
δδδδumbrella
x = δδδδL
fix
=L x δδδδ
3/29/2011 42Andrew Nealen, Rutgers, 2011
� Third: local mesh regularization
� Well shaped triangles and nice piecewise linear approximation
of the users sketch
vOC
n
Geometry Adjustment
screensketch
v´1
v´2
δδδδcotangent
x = δδδδL
fix
=L x δδδδ
3/29/2011 43Andrew Nealen, Rutgers, 2011
� Edit: scale (or add to) Laplacians
vOC
n
Feature Edit
v´1
v´2
δδδδcotangent
3/29/2011 44Andrew Nealen, Rutgers, 2011
Feature Edit
� Edit: scale (or add to) Laplacians
v´1
v´2
δδδδcotangent
n
3/29/2011 45Andrew Nealen, Rutgers, 2011
Feature Edit
v´1
v´2
δδδδcotangent
n
3/29/2011 46Andrew Nealen, Rutgers, 2011
c1
Laplacian Constraints
� Scale (or add to) Laplacians
y
z
xn
=
1
1
1
fixw
1w
1
wLi
wLi
L/Ti
L/Ti
L/Ti
Ti
Ti
0
δδδδz
δδδδy
δδδδx
ATA x = bAT
(ATA)-1x = bAT
Normal Equations
δδδδ
3/29/2011 47Andrew Nealen, Rutgers, 2011
Contour Edit
n nv
nr
radial plane
nr
3/29/2011 48Andrew Nealen, Rutgers, 2011
Contour Edit
n nv
nr
radial plane
nr
3/29/2011 49Andrew Nealen, Rutgers, 2011
Contour Edit
radial curvature
Inflection line
3/29/2011 50Andrew Nealen, Rutgers, 2011
Contour Edit
3/29/2011 51Andrew Nealen, Rutgers, 2011
Editing Session Result
3/29/2011 52Andrew Nealen, Rutgers, 2011
Problem: noisy Surface Silhouette
3/29/2011 53Andrew Nealen, Rutgers, 2011
Discussion…
� The good...
� Intuitive, sketch-based User Interface for silhouette deformation
and feature creation/modification
� Fast model updates after sketch (Iterative Modeling)
� Preserves surface detail as much as possible
� ... and the not so good
� Object-Space sil‘s useless in the presence of heavy noise
� Editing differential properties can take time to learn
3/29/2011 54Andrew Nealen, Rutgers, 2011
FiberMesh
Andrew Nealen, Rutgers, 2011 3/29/2011 55
Problem Statement
� 3D modeling from scratch is difficult
• Sketching
Produces simple,
rough models
• Parametric patches
• Subdivision
surfaces
Initial patch layout
can be tedious
3/29/2011 56Andrew Nealen, Rutgers, 2011
� Curves as the user interface
� The user‘s sketches are persistent, and used as a
modeling handles
� Topologically flexible = add / remove anywhere
� Fast surface construction by (nonlinear)
functional optimization
� Incorporates curve constraints
� Runs at interactive rates
FiberMeshOverview and Contributions
3/29/2011 57Andrew Nealen, Rutgers, 2011
FiberMesh Demo
3/29/2011 58Andrew Nealen, Rutgers, 2011
Algorithm Overview
� 3D curve deformation
� Surface optimization
Handle position Curve geometry
Curve geometry
Surface geometry
Please see paper for
details...
3/29/2011 59Andrew Nealen, Rutgers, 2011
Surface Optimization ?
3/29/2011 60Andrew Nealen, Rutgers, 2011
InspirationsCurve and Surface Optimization
• Minimal energy networks
[Moreton and Sequin1991]
• Functional optimization [Moreton
and Sequin 1992]
• Variational surface modeling
[Welch and Witkin 1992]
• Shape design with triangulated
surfaces [Welch and Witkin 1994]
• What defines „smooth“ ?
0)( =xkL
Surface OptimizationDiscrete Differential Geometry
See work from
Polthier, Desbrun, Meyer, Alliez, Grinspun, Schröder, etc.
vi
vj
αβ
3/29/2011 62Andrew Nealen, Rutgers, 2011
Surface OptimizationDiscrete Differential Geometry
� Laplacian operators
� Uniform Laplacian Lu(vi)
� Cotangent Laplacian Lc(vi)
� Mean curvature normal
vi
vj
α
β
Ai
3/29/2011 63Andrew Nealen, Rutgers, 2011
Surface OptimizationTwo Important Observations !
� Laplacian operators
� Uniform Laplacian Lu(vi)
� Cotangent Laplacian Lc(vi)
� Mean curvature normal
� Cotangent Laplacian = mean curvature normal x vertex area (Ai)
� For nearly equal edge lengths
Uniform ≈ Cotangent
vi
vj
α
β
Ai
3/29/2011 64Andrew Nealen, Rutgers, 2011
Surface OptimizationTwo Important Observations !
� Laplacian operators
� Uniform Laplacian Lu(vi)
� Cotangent Laplacian Lc(vi)
� Mean curvature normal
� Cotangent Laplacian = mean curvature normal x vertex area (Ai)
� For nearly equal edge lengths
Uniform ≈ Cotangent
vi
vj
α
β
Ai
3/29/2011 65Andrew Nealen, Rutgers, 2011
Surface OptimizationLinear- or Nonlinear Optimization ?
� Linear variational methods [Botsch and Sorkine 2007]
� Instead: nonlinear optimization
� Inspired by a discrete fairing algorithm
� Geometric fairing of irregular meshes for free-form surface
design [Schneider and Kobbelt 2002]
result
3/29/2011 66Andrew Nealen, Rutgers, 2011
Ite
rate
ve
rte
x
po
siti
on
s
Surface OptimizationOverview of a Single Step
Current geometry
Current curvatures
(scalar)
Target curvatures
(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Sca
le u
nit
no
rma
l
ve
cto
rs
Resulting geometry
Positional constraints
• Linear system
• But: matrix recomputation
• Iterative procedure not
designed for
interactive response
Unit normals
Target mean
curvature
normals
= c · n
=c 0000Lc
3/29/2011 67Andrew Nealen, Rutgers, 2011
Surface OptimizationOur Optimizations and Approximations
Current geometry
Current curvatures
(scalar)
Target curvatures
(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
• Linear system
• Reuse matrix factorization
Sca
le u
nit
no
rma
l
ve
cto
rs
Ite
rate
ve
rte
x
po
siti
on
s
Target mean
curvature
normals
= c · n
=c 0000Lu
3/29/2011 68Andrew Nealen, Rutgers, 2011
Surface OptimizationOur Optimizations and Approximations
Current geometry
Current curvatures
(scalar)
Target curvatures
(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
• Linear system
• Reuse matrix factorization
So
lve
lea
st
squ
are
s
Sca
le u
nit
no
rma
l
ve
cto
rs
Target mean
curvature
normals
= c · n
=Lu
x ????
=c 0000Lu
3/29/2011 69Andrew Nealen, Rutgers, 2011
Surface OptimizationOur Optimizations and Approximations
Current geometry
Current curvatures
(scalar)
Target curvatures
(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
• Linear system
• Reuse matrix factorization
So
lve
lea
st
squ
are
s
Sca
le u
nit
no
rma
l
ve
cto
rs
=Lu
x δδδδc
Target mean
curvature
normals
= c · n
=c 0000Lu
3/29/2011 70Andrew Nealen, Rutgers, 2011
Surface OptimizationOur Optimizations and Approximations
Current geometry
Current curvatures
(scalar)
Target curvatures
(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
• Linear system
• Reuse matrix factorization
So
lve
lea
st
squ
are
s
Sca
le u
nit
no
rma
l
ve
cto
rs
Target cotan
Laplacians = δδδδc
= c · n · A
=Lu
x δδδδc
=c 0000Lu
3/29/2011 71Andrew Nealen, Rutgers, 2011
vi
vj
α
β
Surface OptimizationRequirements for our Approximations
� We replace Lc with Lu in both steps
� This a viable approximation for:
3/29/2011 72Andrew Nealen, Rutgers, 2011
vi
vj
α
β
� We replace Lc with Lu in both steps
� This a viable approximation for:
� (A) nearly equal edge
lengths (smooth metric)
� (B) nearly equal vertex
areas
Surface OptimizationRequirements for our Approximations
3/29/2011 73Andrew Nealen, Rutgers, 2011
• Setting Lu(x) equal to δδδδc
improves inner fairness
• Smooth the edge lengths
• Constrain edge vectors
Surface OptimizationHow to Enforce (A) and (B)
=Lu
x δδδδc
[Nealen et al. 2006]
3/29/2011 74Andrew Nealen, Rutgers, 2011
Surface OptimizationAdding Edge Vector Constraints to LS
Current geometry
Current curvatures
(scalar)
Target curvatures
(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
So
lve
lea
st
squ
are
s
Sca
le v
ect
ors
Target δδδδc
= c · n · A
Target edge lengths(scalar)
Current edge lengths
(scalar)
Target edge vectors
Unit edge
vectors
3/29/2011 75Andrew Nealen, Rutgers, 2011
Surface OptimizationA Single Step of the Optimization
Current geometry
Current curvatures
(scalar)
Target curvatures
(scalar)
Dif
fusi
on
(sm
oo
thin
g)
Resulting geometry
Positional constraints
So
lve
lea
st
squ
are
s
Sca
le v
ect
ors
Target δδδδc
= c · n · A
Target edge lengths(scalar)
Current edge lengths
(scalar)
Target edge vectors
3/29/2011 76Andrew Nealen, Rutgers, 2011
Results
3/29/2011 77Andrew Nealen, Rutgers, 2011
ResultsNovice User
15 min intructions + 20 minutes tryout3/29/2011 78Andrew Nealen, Rutgers, 2011
Results2D Artist
15 min intructions + 10 minutes tryout3/29/2011 79Andrew Nealen, Rutgers, 2011
Results2D Artist
... + 20 minutes tryout3/29/2011 80Andrew Nealen, Rutgers, 2011
ResultsBase Model Creation
3/29/2011 81Andrew Nealen, Rutgers, 2011
DiscussionTo be Improved...
� Takes a bit to learn the interface operations and their combinations
� Larger meshes would be nice
� Perhaps „freeze“ part of the meshIn general: entire mesh is optimized
� Multigrid / Multiresolution acceleration techniques
� Add more intuitive modeling operations:symmetry, vertex snapping, merging, etc.
3/29/2011 82Andrew Nealen, Rutgers, 2011
SilSketch
Andrew Nealen, Rutgers, 2011 3/29/2011 83
SilSketchDemo
3/29/2011 84Andrew Nealen, Rutgers, 2011
SilSketchAlgorithm Overview
3/29/2011 85Andrew Nealen, Rutgers, 2011
Sil Detection and SegmentationImage Space
3/29/2011 86Andrew Nealen, Rutgers, 2011
Which Lines to Match Against ?
Depth
Discontinuities
Normal
Discontinuities
Combined
Discontinuities
Flat
Shaded
+
We Use
3/29/2011 87Andrew Nealen, Rutgers, 2011
Some Segmentation Results
Resolve depth ambiguity3/29/2011 88Andrew Nealen, Rutgers, 2011
Partial MatchingImage Space
3/29/2011 89Andrew Nealen, Rutgers, 2011
Partial Matching
Input• Silhouette polyline(s)
• User stroke (polyline as well)
Criterions• Proximity
• Shape similarity
Shape Matching• Partial Matching of Polylines under Similarity
Transformations Cohen and Guibas [1997]
3/29/2011 90Andrew Nealen, Rutgers, 2011
Handle deformation and ROIObject Space
3/29/2011 91Andrew Nealen, Rutgers, 2011
Handle VerticesMoving from 2D to 3D
3/29/2011 92Andrew Nealen, Rutgers, 2011
Region of Interest
3/29/2011 93Andrew Nealen, Rutgers, 2011
Results
3/29/2011 94Andrew Nealen, Rutgers, 2011
Editing Sequence (1)
3/29/2011 95Andrew Nealen, Rutgers, 2011
Editing Sequence (2)
3/29/2011 96Andrew Nealen, Rutgers, 2011
Editing Sequence Result
3/29/2011 97Andrew Nealen, Rutgers, 2011
SilSketch Summary
� The human visual system uses silhouettes as the first index into its memory of shapes
� SilSketch leverages this human “shape database“
� This enables the creation of diverse shapes for non professionals
� Extends affine handle transformations to general handle warps
� Was added to the content creation pipeline at Disney Animation Studios
3/29/2011 98Andrew Nealen, Rutgers, 2011
Many other works out there...
� Some research
� SKETCH [Zeleznik et al. 1996]
� Variational implicits [Karpenko et al. 2002]
� ShapeShop [Schmidt et al. 2005]
3/29/2011 99Andrew Nealen, Rutgers, 2011
Conclusions
� Further step(s) towards a human “video out“
3/29/2011 100Andrew Nealen, Rutgers, 2011
top related