Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. ·...
Transcript of Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. ·...
![Page 1: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/1.jpg)
Computer Graphics CMU 15-462/15-662
Introduction to Geometry
![Page 2: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/2.jpg)
CMU 15-462/662
Increasing the complexity of our modelsMaterials, lighting, ...GeometryTransformations
![Page 3: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/3.jpg)
A: Geometry is the study of two-column proofs.
CMU 15-462/662
Q: What is geometry?
Ceci n'est pas géométrie.See: Paul Lockhart, “A Mathematician’s Lament “
![Page 4: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/4.jpg)
CMU 15-462/662
What is geometry?
ge•om•et•ry /jēˈämətrē/ n. 1. The study of shapes, sizes, patterns, and positions. 2. The study of spaces where some quantity (lengths, angles, etc.) can be measured.
“Earth” “measure”
Plato: “...the earth is in appearance like one of those balls which have leather coverings in twelve pieces...”
![Page 5: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/5.jpg)
CMU 15-462/662
How can we describe geometry?IMPLICIT EXPLICIT
CURVATURE
LINGUISTIC“unit circle”
SYMMETRICrotate
DYNAMICTOMOGRAPHIC
(constant density)
DISCRETE
n ➞ ∞
![Page 6: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/6.jpg)
CMU 15-462/662
Given all these options, what’s the best way to encode geometry on a computer?
![Page 7: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/7.jpg)
CMU 15-462/662
Examples of geometry
![Page 8: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/8.jpg)
CMU 15-462/662
Examples of geometry
![Page 9: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/9.jpg)
CMU 15-462/662
Examples of geometry
![Page 10: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/10.jpg)
CMU 15-462/662
Examples of geometry
![Page 11: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/11.jpg)
CMU 15-462/662
Examples of geometry
![Page 12: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/12.jpg)
CMU 15-462/662
Examples of geometry
![Page 13: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/13.jpg)
CMU 15-462/662
Examples of geometry
![Page 14: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/14.jpg)
CMU 15-462/662
Examples of geometry
![Page 15: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/15.jpg)
CMU 15-462/662
It’s a Jungle Out There!
![Page 16: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/16.jpg)
CMU 15-462/662
No one “best” choice—geometry is hard!
“I hate meshes. I cannot believe how hard this is. Geometry is hard.”
—David Baraff Senior Research Scientist Pixar Animation Studios
Slide cribbed from Jeff Erickson.
![Page 17: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/17.jpg)
CMU 15-462/662
Many ways to digitally encode geometryEXPLICIT - point cloud - polygon mesh - subdivision, NURBS - ... IMPLICIT - level set - algebraic surface - L-systems - ... Each choice best suited to a different task/type of geometry
![Page 18: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/18.jpg)
CMU 15-462/662
“Implicit” Representations of GeometryPoints aren’t known directly, but satisfy some relationship E.g., unit sphere is all points such that x2+y2+z2=1 More generally, f(x,y,z) = 0
-1
+1f(x,y)
0
f = 0
![Page 19: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/19.jpg)
CMU 15-462/662
Many implicit representations in graphicsalgebraic surfaces constructive solid geometry level set methods blobby surfaces fractals ...
(Will see some of these a bit later.)
![Page 20: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/20.jpg)
CMU 15-462/662
But first, let’s play a game:
I’m thinking of an implicit surface f(x,y,z)=0.
Find any point on it.
![Page 21: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/21.jpg)
CMU 15-462/662
Give up?
y
xz
( 1.23, 0, 0 )
My function was f(x,y,z) = x - 1.23 (a plane):
Observation: implicit surfaces make some tasks hard (like sampling)
![Page 22: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/22.jpg)
CMU 15-462/662
Let’s play another game.
I have a new surface f(x,y,z) = x2 + y2 + z2 - 1.
I want to see if a point is inside it.
![Page 23: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/23.jpg)
CMU 15-462/662
Check if this point is inside the unit sphere
xz
y
Implicit surfaces make other tasks easy (like inside/outside tests).
9/16 + 4/16 + 1/16 = 7/8
7/8 < 1
YES.
How about the point ( 3/4, 1/2, 1/4 )?
( 3/4, 1/2, 1/4 )
![Page 24: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/24.jpg)
CMU 15-462/662
“Explicit” Representations of GeometryAll points are given directly E.g., points on sphere are
More generally:
(Might have a bunch of these maps, e.g., one per triangle!)
![Page 25: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/25.jpg)
CMU 15-462/662
Many explicit representations in graphicstriangle meshes polygon meshes subdivision surfaces NURBS point clouds ...
(Will see some of these a bit later.)
![Page 26: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/26.jpg)
CMU 15-462/662
But first, let’s play a game:
I’ll give you an explicit surface.
You give me some points on it.
![Page 27: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/27.jpg)
CMU 15-462/662
Sampling an explicit surface
y
xz
My surface is f( u, v ) = ( 1.23, u, v ).
Explicit surfaces make some tasks easy (like sampling).
Just plug in any values u, v!
![Page 28: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/28.jpg)
CMU 15-462/662
Let’s play another game.
I have a new surface f(u,v).
I want to see if a point is inside it.
![Page 29: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/29.jpg)
How about the point (1.96, -0.39, 0.9)?
CMU 15-462/662
Check if this point is inside the torus
xz
y
Explicit surfaces make other tasks hard (like inside/outside tests).
My surface is f(u,v) = ( (2+cos u)cos v, (2+cos u)sin v, sin u )
...NO!
![Page 30: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/30.jpg)
CMU 15-462/662
CONCLUSION: Some representations work better
than others—depends on the task!
![Page 31: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/31.jpg)
CMU 15-462/662
Different representations will also be better suited to different types of geometry.
Let’s take a look at some common representations used in computer graphics.
![Page 32: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/32.jpg)
Surface is zero set of a polynomial in x, y, z Examples:
What about more complicated shapes?
Very hard to come up with polynomials! CMU 15-462/662
Algebraic Surfaces (Implicit)
![Page 33: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/33.jpg)
CMU 15-462/662
Constructive Solid Geometry (Implicit)Build more complicated shapes via Boolean operations Basic operations:
Then chain together expressions:
UNION
INTERSECTION
DIFFERENCE
![Page 34: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/34.jpg)
Instead of Booleans, gradually blend surfaces together:
Easier to understand in 2D:
CMU 15-462/662
Blobby Surfaces (Implicit)
(Gaussian centered at p)
f=.5 f=.4 f=.3
(Sum of Gaussians centered at different points)
![Page 35: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/35.jpg)
CMU 15-462/662
Blending Distance Functions (Implicit)A distance function gives distance to closest point on object Can blend any two distance functions d1, d2:
Similar strategy to points, though many possibilities. E.g.,
Appearance depends on how we combine functions
Q: How do we implement a Boolean union of , ?
A: Just take the minimum:
d1(x) d2(x)f(x) = min(d1(x), d2(x))
![Page 36: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/36.jpg)
CMU 15-462/662
Scene of pure distance functions (not easy!)
see http://iquilezles.org/
![Page 37: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/37.jpg)
CMU 15-462/662
Level Set Methods (Implicit)Implicit surfaces have some nice features (e.g., merging/splitting) But, hard to describe complex shapes in closed form Alternative: store a grid of values approximating function
-.45
-.25
-.15
.10
.20
-.35
-.20
-.10
.05
.25
-.30
-.10
.10
.25
.55
-.25
-.10
.15
.35
.60
-.55
-.30
-.20
-.05
.15
Surface is found where interpolated values equal zero Provides much more explicit control over shape (like a texture) Unlike closed-form expressions, run into problems of aliasing!
![Page 38: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/38.jpg)
CMU 15-462/662
Level Sets from Medical Data (CT, MRI, etc.)Level sets encode, e.g., constant tissue density
![Page 39: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/39.jpg)
CMU 15-462/662
Level Sets in Physical SimulationLevel set encodes distance to air-liquid boundary:
see http://physbam.stanford.edu
![Page 40: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/40.jpg)
CMU 15-462/662
Level Set StorageDrawback: storage for 2D surface is now O(n3) Can reduce cost by storing only a narrow band around surface:
![Page 41: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/41.jpg)
CMU 15-462/662
Fractals (Implicit)No precise definition; exhibit self-similarity, detail at all scales New “language” for describing natural phenomena Hard to control shape!
![Page 42: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/42.jpg)
CMU 15-462/662
Mandelbrot Set - DefinitionFor each point in the plane:
- double the angle - square the magnitude
- add the original point
- repeat Complex version:
- Replace with
- repeat
c
c
z z2 + c
If magnitude remains bounded (never goes to ∞), it’s in the Mandelbrot set.
![Page 43: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/43.jpg)
CMU 15-462/662
Mandelbrot Set - Examples
starting point(converges)
(periodic)
(diverges)
![Page 44: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/44.jpg)
CMU 15-462/662
Mandelbrot Set - Zooming In
(Colored according to how quickly each point diverges/converges.)
![Page 45: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/45.jpg)
CMU 15-462/662
Iterated Function Systems
Scott Draves (CMU alumn) - see http://electricsheep.org
![Page 46: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/46.jpg)
CMU 15-462/662
Implicit Representations - Pros & ConsPros: - description can be very compact (e.g., a polynomial) - easy to determine if a point is in our shape (just plug it in!) - other queries may also be easy (e.g., distance to surface) - for simple shapes, exact description/no sampling error - easy to handle changes in topology (e.g., fluid) Cons: - expensive to find all points in the shape (e.g., for drawing) - very difficult to model complex shapes
![Page 47: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/47.jpg)
CMU 15-462/662
What about explicit representations?
![Page 48: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/48.jpg)
CMU 15-462/662
Point Cloud (Explicit)Easiest representation: list of points (x,y,z) Often augmented with normals Easily represent any kind of geometry Easy to draw dense cloud (>>1 point/pixel) Hard to interpolate undersampled regions Hard to do processing / simulation / …
![Page 49: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/49.jpg)
CMU 15-462/662
Polygon Mesh (Explicit)Store vertices and polygons (most often triangles or quads) Easier to do processing/simulation, adaptive sampling More complicated data structures Irregular neighborhoods
(Much more about polygon meshes in upcoming lectures!)
![Page 50: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/50.jpg)
CMU 15-462/662
Triangle Mesh (Explicit)Store vertices as triples of coordinates (x,y,z) Store triangles as triples of indices (i,j,k) E.g., tetrahedron:
0
1
2
3
x y z0: -1 -1 -11: 1 -1 12: 1 1 -13: -1 1 1
VERTICESi j k0 2 10 3 23 0 13 1 2
TRIANGLES
Use barycentric interpolation to define points inside triangles:
(1,0,0)
(0,1,0)
(0,0,1)
![Page 51: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/51.jpg)
CMU 15-462/662
Recall: Linear Interpolation (1D)▪ Interpolate values using linear interpolation; in 1D:
▪ Can think of this as a linear combination of two functions:
▪ Why limit ourselves to linear basis functions?
▪ Can we get more interesting geometry with other bases?
![Page 52: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/52.jpg)
CMU 15-462/662
Bernstein BasisLinear interpolation essentially uses 1st-order polynomials Provide more flexibility by using higher-order polynomials Instead of usual basis (1, x, x2, x3, ...), use Bernstein basis:
“n choose k”
k=0,…,n
degree0≤x≤1
12
1
12
1
![Page 53: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/53.jpg)
A Bézier curve is a curve expressed in the Bernstein basis:
CMU 15-462/662
Bézier Curves (Explicit)
control points
For n=1, just get a line segment! For n=3, get “cubic Bézier”: Important features: 1. interpolates endpoints 2. tangent to end segments 3. contained in convex hull (nice for rasterization)
![Page 54: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/54.jpg)
CMU 15-462/662
Just keep going…?What if we want an even more interesting curve? High-degree Bernstein polynomials don’t interpolate well:
Very hard to control!
![Page 55: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/55.jpg)
CMU 15-462/662
Piecewise Bézier Curves (Explicit)Alternative idea: piece together many Bézier curves Widely-used technique (Illustrator, fonts, SVG, etc.)
Formally, piecewise Bézier curve:piecewise Bézier
single Bézier
![Page 56: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/56.jpg)
CMU 15-462/662
Bézier Curves — tangent continuityTo get “seamless” curves, need points and tangents to line up:
Ok, but how? Each curve is cubic: u3p0 + 3u2(1-u)p1 + 3u(1-u)2p2 + (1-u)3p3
Want endpoints of each segment to meet
Want tangents at endpoints to meet Q: How many constraints vs. degrees of freedom? Q: Could you do this with quadratic Bézier? Linear Bézier?
NONO
YESp0
p1
p2
p3
![Page 57: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/57.jpg)
CMU 15-462/662
Tensor ProductCan use a pair of curves to get a surface Value at any point (u,v) given by product of a curve f at u and a curve g at v (sometimes called the “tensor product”):
uv
![Page 58: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/58.jpg)
CMU 15-462/662
Bézier PatchesBézier patch is sum of (tensor) products of Bernstein bases
12
1
12
1
![Page 59: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/59.jpg)
CMU 15-462/662
Bézier SurfaceJust as we connected Bézier curves, can connect Bézier patches to get a surface:
Q: Can we always get tangent continuity? (Think: how many constraints? How many degrees of freedom?)
Very easy to draw: just dice each patch into regular (u,v) grid!
![Page 60: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/60.jpg)
CMU 15-462/662
Notice anything fishy about the last picture?
![Page 61: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/61.jpg)
CMU 15-462/662
Bézier Patches are Too SimpleNotice that exactly four patches meet around every vertex!
In practice, far too constrained.
To make interesting shapes (with good continuity), we need patches that allow more interesting connectivity...
![Page 62: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/62.jpg)
CMU 15-462/662
Spline patch schemesThere are many alternatives! NURBS, Gregory, Pm, polar… Tradeoffs: - degrees of freedom - continuity - difficulty of editing - cost of evaluation - generality - … As usual: pick the right tool for the job!
![Page 63: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/63.jpg)
CMU 15-462/662
Rational B-Splines (Explicit)Bézier can’t exactly represent conics—not even the circle! Solution: interpolate in homogeneous coordinates, then project back to the plane:
Result is called a rational B-spline.
![Page 64: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/64.jpg)
CMU 15-462/662
NURBS (Explicit)(N)on-(U)niform (R)ational (B)-(S)pline - knots at arbitrary locations (non-uniform) - expressed in homogeneous coordinates (rational) - piecewise polynomial curve (B-Spline) Homogeneous coordinate w controls “strength” of a vertex:
w=2.5
w=1w=.25
![Page 65: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/65.jpg)
CMU 15-462/662
NURBS Surface (Explicit)How do we go from curves to surfaces? Use tensor product of NURBS curves to get a patch:
Multiple NURBS patches form a surface
Pros: easy to evaluate, exact conics, high degree of continuity Cons: Hard to piece together patches / hard to edit (many DOFs)
patch
surface
![Page 66: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/66.jpg)
CMU 15-462/662
SubdivisionAlternative starting point for curves/surfaces: subdivision
Start with “control curve”
Repeatedly split, take weighted average to get new positions
For careful choice of averaging rule, approaches nice limit curve
- Often exact same curve as well-known spline schemes!
Q: Is subdivision an explicit or implicit representation?
![Page 67: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/67.jpg)
One possible scheme: Lane-Riesenfeld
- insert midpoint of each edge
- use row of Pascal’s triangle (normalized to 1) as weights for neighbors
- e.g., , get weights
- limit is B-spline of degree
k
k = 2(1/4,1/2,1/4)
k + 1
Subdivision—Example 1
11 1
31 131 2
k = 3 :
k = 2 :
k = 1 :
k = 0 :
iteration 1 iteration 2 iteration 3 limit curve
1/2
1/41/4
![Page 68: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/68.jpg)
CMU 15-462/662
Subdivision Surfaces (Explicit)Start with coarse polygon mesh (“control cage”) Subdivide each element Update vertices via local averaging Many possible rules: - Catmull-Clark (quads) - Loop (triangles) - ... Common issues: - interpolating or approximating? - continuity at vertices? Easier than splines for modeling; harder to evaluate pointwise Widely used in practice (2019 Academy Awards!)
![Page 69: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/69.jpg)
CMU 15-462/662
Subdivision in Action (Pixar’s “Geri’s Game”)
see: de Rose et al, “Subdivision Surfaces in Character Animation”
![Page 70: Introduction to Geometry15462.courses.cs.cmu.edu/fall2020content/lectures/09... · 2020. 9. 28. · Level Set Methods (Implicit) Implicit surfaces have some nice features (e.g., merging/splitting)](https://reader035.fdocuments.us/reader035/viewer/2022071418/6116c6567c555e31bf47a2a3/html5/thumbnails/70.jpg)
CMU 15-462/662
Next time: Curves, Surfaces, & Meshes