Advanced Computer Graphics Computer Animation Implicit Surfaces Spring 2002 Professor Brogan Many slides from Brian Wyvill’s online materials at U.

Download Report

Transcript Advanced Computer Graphics Computer Animation Implicit Surfaces Spring 2002 Professor Brogan Many slides from Brian Wyvill’s online materials at U.

Advanced Computer Graphics
Computer Animation
Implicit Surfaces
Spring 2002
Professor Brogan
Many slides from
Brian Wyvill’s online
materials at U. Calgary
Papers for Tuesday
• Spacetime Constraints,
Witkin and Kass
– Siggraph
• Deep-water Animation and Rendering
– Gamasutra.com, Sept 26, 2001
Implicit Surfaces
• Surfaces defined by points that satisfy
– f(P) = 0
Implicit Function
• Example, a circle
– Parametric
• x=r cos(a)
• y=r sin(a)
– Implicit
• x2 + y2 + r2 = 0
Implicit Surface Modeling
• Useful for modeling natural and
smooth/organic synthetic phenomena
– Living forms, liquids, clouds
• Each primitive is represented by a
skeletal element which contributes in
defining a scalar field
– Every point in space is assigned a scalar
value equal to shortest distance to a
skeletal element
Implicit Surface Modeling
• Simplest skeletal element is a point
• A (distance) contour of that point
defines the (surface of the) model
• Ex: two points approach and their
contours blend
Combining Skeletal Primitives
Blending Skeletal Elements
• Define a simple surface as:
– A central point, C
– A radius of influence, R
– A density function, f()
– A threshold value, T
• All points, P, for which dist (P, C) < R
• Implicit surface = f (dist(P, C)) – T = 0
Blending Skeletal Elements
• Example: metaballs
– f(dist) =
Surface drawn
at this radius
Value of T
– Surface drawn where f(dist) – T = 0
Blending Skeletal Elements
• Example: two metaballs
• Surface drawn where:
Do we draw
surface here?
– f(dist1) + f(dist2) – T = 0
r1
r2
r1
r2
Blending Skeletal Elements
• Yes
http://www.lifl.fr/~triquet/implicit/video/blend.mpg
Blending Skeletal Elements
• In general, surface defined by multiple
surface elements is:
F (P)   wi fi (P)  T
Blending Lines
• Lines can bulge when their
ends meet
• Usually not the desired
effect
• Tinkering with density
function and line
separation can fix
Versions of Density Functions
Modeling a Dinosaur (Wyvill)
Modeling Blood
http://www.lifl.fr/~triquet/implicit/video/blood.mpg
Solving Implicit Functions
• Root finding
– Given a function f, we wish to find the set
of x values (1D points) that satisfy f(x)=0
• From calculus, the Intermediate Value
Theorem states: “as x varies
from a to b, the continuous
function f takes on every
value between f(a) and f(b)”
f(x)
f(a)
x
f(b)
a
b
Solving Implicit Functions
• If f(a) and f(b) have opposite signs, the
root is said to be bracketed in the
interval [a, b]
f(x)
f(a)
x
f(b)
a
b
Bracketing the roots
• Uniformly subdivide
space
• Evaluate f( ) for each
boundary
• Transition from + to –
defines bracket
f(x)
+
+
x
a
b
-
Bisection search
• Iteratively subdivide to find exact zero
+
+
+
-
-
a
b
a
b
a
b
2-D Implicit Surfaces
• Surface defined by f(X) = 0; X = (x, y)
• Uniformly subdivide
• Evaluate f( ) at all
points
• Bracket roots
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
2-D Implicit Surfaces
• Find intersection point
along all grid lines with
+/- values at endpoints
• Edge defined by crossing
points
-
-
-
+
2-D: Adaptive Subdivision
• Recursively subdivide
cells containing a
surface crossing down
to a threshold size
• Calculate crossing
values and connect
dots to form polygon
edge
-
-
-
-
+
-
+
+
-
-
-
-
+
-
+
+
-
+
-
+
+
2-D: Continuation Methods
•
•
•
•
•
Overlay fine-grain uniform subdivision
Find start (seed) point that lies on surface
Find cell containing seed point
“Grow” the set of cells across surface
Evaluate adjacent cells to find next surface crossing
cells
Potential Problem #1 :
Bounding the Domain Space
• May not completely contain the object
• May miss disconnected components
• Will result in “clipping”
Potential Problem #2 :
Discretization Error
• Too large uniform cell size:
– May not be able to converge (entirely miss the
surface)
• Too large adaptive threshold cell size:
– Misses small, completely-contained
features
– Coarse resolution model
– Incorrect topology:
• ambiguous cells
• connects or breaks components
• Too small cells sizes are inefficient and more
susceptible to numerical error
Potential Problem #3 :
Disconnected Components
• Uniform cell subdivision may find them,
but inefficiently
• Continuation methods may miss them
– must have a seed pt on each component
• Related to discretization error
Potential Problem #4 :
Ambiguous Surface-Crossing
Cells
• Many cell vertex polarity configurations are
ambiguous
• Possible to polygonize in different arrangements
• May even result in disjoint polygons
• Solutions:
– Detect and recursively subdivide
– Choose a consistent convention (e.g. always join positive pts)
Moving on to 3-D
• Conceptually the same
• Discretize space and find crossing
points on 12 edges of cube
• This can be tricky to connect the
crossing points into a polygon correctly
3-D: Finding cell polygon face
vertices
Algorithmic method:
• Begin with any edge-surface intersection point (1)
• Proceed to negative corner
(white open pts) and then
clockwise about the cube face
(w.r.t outside) until another
intersection point is found (2)
• Repeat for each subsequent
face (34, 45, 51)
3-D: Tetrahedral Decomposition
• Tetrahedra reduce ambiguity and
produce correct meshes, but many
more polygons result
• Diagonal edges cut across cube faces
– Must make sure adjacent cubes have
aligned tetrahedron edges to preserve
topological correctness
3-D Tetrahedral Decomposition
•
Five
Six
3-D Implicit Surface
Evaluation
• Particle Methods
– Turk, Hoppe, Szeliski,
Witkin, Heckbert (cool paper)
– Constrain particles to exist
on isosurface
– Allow particles to split and
join
– Particle seeks to balance
space between neighbors
– A constrained optimization
problem
Collision Detection
• Easy to detect colliding blobbies
– Evaluate sample points from one object in the
implicit equation of another
• Deforming the blobbies is more complex
– Define collision boundary, F1(p) = F2(p)
– Create addition term, G(p) that is added to density
function, F(p) to prevent passing through collision
boundary
– Add terms to G(p) so blobbies preserve volume as
they are retarded by collision boundary
Spacetime Constraints
•
•
•
•
•
Find min of f(x) = y
Find zeros (roots) of derivative function, f’(x)
Newton Raphson Method does this
Find min of f(X) = Y; X and Y vectors
Same method, but find where Jacobian is
equal to zero
Spacetime Constraints
• Null space of a function
– The inputs of a function for which the
function evaluates to zero
• Finite differences
– Approximate derivatives (inverse of Euler
integration)
• Solving for all forces in time
simultaneously