3d surfaces - cs.cmu.edu

59
3D Surfaces Adrien Treuille Carnegie Mellon University source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Upload: others

Post on 23-Feb-2022

8 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 3D Surfaces - cs.cmu.edu

3D SurfacesAdrien Treuille

Carnegie Mellon University

source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Page 2: 3D Surfaces - cs.cmu.edu

Outline

• Homework 1

• Height Fields- Normals

• Implicit and Explicit Surfaces- Numerical vs. Analytic- Implicit vs. Explicit- Conversions

• Subdivision Surfaces

source: http://www.cs.umd.edu/class/spring2005/cmsc828v/thumbnails/thMPU.gif

source: http://graphics.cs.lth.se/theses/projects/projgrid/demo11.jpg

source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Page 3: 3D Surfaces - cs.cmu.edu

Outline

• Homework 1

• Height Fields- Normals

• Implicit and Explicit Surfaces- Numerical vs. Analytic- Implicit vs. Explicit- Conversions

• Subdivision Surfaces

source: http://www.cs.umd.edu/class/spring2005/cmsc828v/thumbnails/thMPU.gif

source: http://graphics.cs.lth.se/theses/projects/projgrid/demo11.jpg

source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Page 4: 3D Surfaces - cs.cmu.edu

Homework 1

Due on Thursday.

No late days!

Page 5: 3D Surfaces - cs.cmu.edu

Outline

• Homework 1

• Height Fields

• Normals

• Implicit and Explicit Surfaces- Numerical vs. Analytic- Implicit vs. Explicit- Conversions

• Subdivision Surfaces

source: http://www.cs.umd.edu/class/spring2005/cmsc828v/thumbnails/thMPU.gif

source: http://graphics.cs.lth.se/theses/projects/projgrid/demo11.jpg

source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Page 6: 3D Surfaces - cs.cmu.edu

2D Scalar Field2D Scalar Field

• z = f(x,y)

How do you visualize this function?

!"# <+!!

=1 if ,1

),(

2222yxyx

yxf 0

Page 7: 3D Surfaces - cs.cmu.edu

Height FieldHeight Field

• Visualizing an explicit function

• Adding contour curves

z = f(x,y)

f(x,y) = c

Page 8: 3D Surfaces - cs.cmu.edu

MeshesMeshes

• Function is sampled (given) at xi, yi, 0 ! i, j ! n

• Assume equally spaced

• Generate quadrilateral or triangular mesh

• [Asst 1]

Page 9: 3D Surfaces - cs.cmu.edu

Height Field Normals

how to compute them?

Page 10: 3D Surfaces - cs.cmu.edu

Outline• Homework 1

• Height Fields

• Normals

• Implicit and Explicit Surfaces

• Numerical vs. Analytic

• Implicit vs. Explicit

• Conversions

• Subdivision Surfaces

source: http://www.cs.umd.edu/class/spring2005/cmsc828v/thumbnails/thMPU.gif

source: http://graphics.cs.lth.se/theses/projects/projgrid/demo11.jpg

source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Page 11: 3D Surfaces - cs.cmu.edu

Outline• Homework 1

• Height Fields

• Normals

• Implicit and Explicit Surfaces

• Numerical vs. Analytic

• Implicit vs. Explicit

• Conversions

• Subdivision Surfaces

source: http://www.cs.umd.edu/class/spring2005/cmsc828v/thumbnails/thMPU.gif

source: http://graphics.cs.lth.se/theses/projects/projgrid/demo11.jpg

source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Page 12: 3D Surfaces - cs.cmu.edu

Outline• Homework 1

• Height Fields

• Normals

• Implicit and Explicit Surfaces

• Numerical vs. Analytic

• Implicit vs. Explicit

• Conversions

• Subdivision Surfaces

source: http://www.cs.umd.edu/class/spring2005/cmsc828v/thumbnails/thMPU.gif

source: http://graphics.cs.lth.se/theses/projects/projgrid/demo11.jpg

source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Page 13: 3D Surfaces - cs.cmu.edu

(Dis)Advantages?• shape matching

• morphing

• implementation in the opengl pipeline

• CSG

• surface reflection

• fluid simulation

Page 14: 3D Surfaces - cs.cmu.edu

Outline• Homework 1

• Height Fields

• Normals

• Implicit and Explicit Surfaces

• Numerical vs. Analytic

• Implicit vs. Explicit

• Conversions

• Subdivision Surfaces

source: http://www.cs.umd.edu/class/spring2005/cmsc828v/thumbnails/thMPU.gif

source: http://graphics.cs.lth.se/theses/projects/projgrid/demo11.jpg

source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Page 15: 3D Surfaces - cs.cmu.edu

Implicit → Explicit 2D(Marching Squares Algorithm)

Page 16: 3D Surfaces - cs.cmu.edu

Marching SquaresMarching Squares

• Sample function f at every grid point xi, yj

• For every point fi j = f(xi, yj) either fi j ! c or fi j > c

Page 17: 3D Surfaces - cs.cmu.edu

Cases for Vertex LabelsCases for Vertex Labels

16 cases for vertex labels

4 unique mod. symmetries

Page 18: 3D Surfaces - cs.cmu.edu

Ambiguities of LabelingsAmbiguities of Labelings

Ambiguous labels

Different resulting

contours

Resolution by subdivision

(where possible)

Page 19: 3D Surfaces - cs.cmu.edu

Marching Squares ExamplesMarching Squares Examples

Can you do better?

Page 20: 3D Surfaces - cs.cmu.edu

Interpolating IntersectionsInterpolating Intersections

• Approximate intersection

– Midpoint between xi, xi+1 and yj, yj+1

– Better: interpolate

• If fi j = a is closer to c than b = fi+1 j then

intersection is closer to (xi, yj):

• Analogous calculation

for y directionfi j = a < c c < b = fi+1 j

xi xi+1x

Page 21: 3D Surfaces - cs.cmu.edu

Marching Squares ExamplesMarching Squares Examples

Page 22: 3D Surfaces - cs.cmu.edu

Marching Squares ExamplesMarching Squares Examples

Adaptive Subdivision

Page 23: 3D Surfaces - cs.cmu.edu

Implicit → Explicit 3D(Marching Cubes Algorithm)

Page 24: 3D Surfaces - cs.cmu.edu

3D Scalar Fields3D Scalar Fields

• Volumetric data sets

• Example: tissue density

• Assume again regularly sampled

• Represent as voxels

• Two rendering methods

–Isosurface rendering

–Direct volume rendering (use all values [next])

Page 25: 3D Surfaces - cs.cmu.edu

IsosurfacesIsosurfaces

• Generalize contour curves to 3D

• Isosurface given by f(x,y,z) = c

– f(x, y, z) < c inside

– f(x, y, z) = c surface

– f(x, y, z) > c outside

Page 26: 3D Surfaces - cs.cmu.edu

Marching CubesMarching Cubes

• Display technique for isosurfaces

• 3D version of marching squares

• How many possible cases?

28 = 256

Page 27: 3D Surfaces - cs.cmu.edu

Marching CubesMarching Cubes

• 14 cube labelings (after elimination symmetries)

Page 28: 3D Surfaces - cs.cmu.edu

Marching Cube TessellationsMarching Cube Tessellations

• Generalize marching squares, just more cases

• Interpolate as in 2D

• Ambiguities similar to 2D

Page 29: 3D Surfaces - cs.cmu.edu

Marching Squares ExamplesMarching Squares Examples

Page 30: 3D Surfaces - cs.cmu.edu

Marching Squares ExamplesMarching Squares Examples

Page 31: 3D Surfaces - cs.cmu.edu

Explicit → Implicit 3D(Fast Marching Algorithm)

Page 32: 3D Surfaces - cs.cmu.edu

Signed Distance Field

Page 33: 3D Surfaces - cs.cmu.edu

What a line’s SDF?

(interior)

(exterior)

+

-

(y = 0)

φ(x, y) = y∇φ = [0, 1]T ||∇φ|| = 1

Page 34: 3D Surfaces - cs.cmu.edu

What a circle’s SDF?

+

-

1

||∇φ|| = 1

φ(x, y) =�

x2 + y2 − 1

∇φ =1�

x2 + y2[x, y]T

Page 35: 3D Surfaces - cs.cmu.edu

What do these cases have in common?

11−1

−1

1

||∇φ|| = 1

Page 36: 3D Surfaces - cs.cmu.edu

What about General Case?

http://www.cse.ohio-state.edu/~chenyis/Markerless_Motion_Capture/

(sorry for change in color scheme)

Page 37: 3D Surfaces - cs.cmu.edu

Fast Marching Algorithm

Page 38: 3D Surfaces - cs.cmu.edu

Fast Marching Algorithm

Page 39: 3D Surfaces - cs.cmu.edu

Start Along the Boundary

Page 40: 3D Surfaces - cs.cmu.edu

Boundary Cases

D. Adalsteinsson, J. A. Sethian. The Fast Construction of Extension Velocities in Level Set Methods. Journal of

Computational Physics (1999)

Page 41: 3D Surfaces - cs.cmu.edu

Push Adjacent Cells

Page 42: 3D Surfaces - cs.cmu.edu

Estimating The Distance||∇φ|| = 1Use:

�φi,j − φi−1,j

h

�2

+�

φi,j − φi,j−1

h

�2

= 1

φi,jφi−1,j

φi,j−1

Page 43: 3D Surfaces - cs.cmu.edu

Pop Nearest Cell

Page 44: 3D Surfaces - cs.cmu.edu

Add It’s Neighbors to the Heap

Page 45: 3D Surfaces - cs.cmu.edu

Continue Propogating...

Page 46: 3D Surfaces - cs.cmu.edu

Further and Further...

Page 47: 3D Surfaces - cs.cmu.edu

Until All Cells Have Been Processed

Page 48: 3D Surfaces - cs.cmu.edu

Reminder: Why would we want to do this?

Page 49: 3D Surfaces - cs.cmu.edu

Outline• Homework 1

• Height Fields

• Normals

• Implicit and Explicit Surfaces

• Numerical vs. Analytic

• Implicit vs. Explicit

• Conversions

• Meshes

source: http://www.cs.umd.edu/class/spring2005/cmsc828v/thumbnails/thMPU.gif

source: http://graphics.cs.lth.se/theses/projects/projgrid/demo11.jpg

source: http://iparla.labri.fr/publications/2007/BS07b/sketch_teaser.jpg

Page 50: 3D Surfaces - cs.cmu.edu

Mesh Representations & Subdivision Surfaces

Tom FunkhouserPrinceton University

COS 426, Spring 2007

Page 51: 3D Surfaces - cs.cmu.edu

Polygon Meshes• How should we represent a mesh in a computer?

oEfficient traversal of topologyoEfficient use of memoryoEfficient updates

• Mesh RepresentationsoIndependent facesoVertex and face tablesoAdjacency listsoWinged-EdgeoHalf-Edgeoetc.

Zorin & Schroeder, SIGGRAPH 99, Course Notes

Page 52: 3D Surfaces - cs.cmu.edu

Independent Faces• Each face lists vertex coordinates

oRedundant verticesoNo adjacency information

Page 53: 3D Surfaces - cs.cmu.edu

Vertex and Face Tables• Each face lists vertex references

oShared verticesoStill no adjacency information

Page 54: 3D Surfaces - cs.cmu.edu

Possible Queries

•Which faces use this vertex?

•Which edges use this vertex?

•Which faces border this edge?

•Which edges border this face?

•Which faces are adjacent to this face?

Page 55: 3D Surfaces - cs.cmu.edu

Adjacency Lists• Store all vertex, edge, and face adjacencies

oEfficient adjacency traversaloExtra storage

Page 56: 3D Surfaces - cs.cmu.edu

Partial Adjacency Lists• Can we store only some adjacency relationships

and derive others?

Page 57: 3D Surfaces - cs.cmu.edu

Winged Edge• Adjacency encoded in edges

oAll adjacencies in O(1) timeoLittle extra storage (fixed records)oArbitrary polygons

Page 58: 3D Surfaces - cs.cmu.edu

Winged Edge• Example:

Page 59: 3D Surfaces - cs.cmu.edu

Half Edge• Adjacency encoded in edges

oAll adjacencies in O(1) timeoLittle extra storage (fixed records)oArbitrary polygons

• Similar to winged-edge,except adjacency encoded in half-edges

e heinv

vbegin

Fleft

henext