CMSC427 Parametric surfaces and polygonal meshes Note These - - PowerPoint PPT Presentation

cmsc427 parametric surfaces and polygonal meshes note
SMART_READER_LITE
LIVE PREVIEW

CMSC427 Parametric surfaces and polygonal meshes Note These - - PowerPoint PPT Presentation

CMSC427 Parametric surfaces and polygonal meshes Note These slides are incomplete See accompanying PDF with detailed outline Will develop many equations in class Reading later to supplement Moving to 3D Polygonal meshes


slide-1
SLIDE 1

CMSC427 Parametric surfaces and polygonal meshes

slide-2
SLIDE 2
  • These slides are incomplete
  • See accompanying PDF with detailed outline
  • Will develop many equations in class
  • Reading later to supplement

Note

slide-3
SLIDE 3
  • Polygonal meshes
  • Set of standard shapes

in Blender

  • And how to create them
  • And store them
  • And draw them

Moving to 3D

slide-4
SLIDE 4
  • Blending of four 3D points
  • Ruled surface
  • Swept out by sequence of lines

Bilinear patch

P0 P1 P2 P3

slide-5
SLIDE 5
  • Blend simultaneously along two lines
  • P01 = t(P1-P0) + P0
  • P23 = t(P2-P3) + P3
  • Same t in [0,1]

Bilinear patch

P0 P1 P2 P3 P01 P23

slide-6
SLIDE 6
  • Blend simultaneously along two lines
  • P01 = tP1 + (1-t)P0
  • P23 = tP3 + (1-t)P2
  • Same t in [0,1]
  • Then blend between

the two lines

  • P = sP23 + (1-s)P01
  • P = s(tP1 + (1-t)P0) + (1-s)(tP3 + (1-t)P2)

Bilinear patch

P0 P1 P2 P3 P01 P23 P

slide-7
SLIDE 7
  • Questions
  • What order polynomial?
  • Convex combination?
  • What is drawn if t is constant?
  • What is drawn if s is constant?
  • P = s(tP1 + (1-t)P0) + (1-s)(tP3 + (1-t)P2)

Bilinear patch

P0 P1 P2 P3 P01 P23 P

slide-8
SLIDE 8
  • Questions
  • What order polynomial?
  • Convex combination?
  • What is drawn if t is constant?
  • What is drawn if s is constant?
  • P = s(tP1 + (1-t)P0) + (1-s)(tP3 + (1-t)P2)
  • P = stP1 + s(1-t)P0 + (1-s)tP3 + (1-s)(1-t)P2

Bilinear patch

P0 P1 P2 P3 P01 P23 P

slide-9
SLIDE 9
  • What’s happening in this

surface? Coons patch

slide-10
SLIDE 10
  • What’s happening in this

surface?

  • Blending two arcs
  • Is this a ruled surface?

Coons patch

slide-11
SLIDE 11
  • Blend four arbitrary curves
  • Here C1, C2, D1, D2

Coons patch

slide-12
SLIDE 12

Circle with trig: review

Parametric equation

t

𝑦 = 𝑆 cos (𝑢) 𝑧 = 𝑆 sin (𝑢)

cos (𝑢) sin (𝑢)

0 ≤ 𝑢 ≤ ? ?

slide-13
SLIDE 13

Parametric cone

r h

slide-14
SLIDE 14

Parametric cylinder

r h

slide-15
SLIDE 15

Rendering faces: need location and normal

  • Need distance and orientation

relative to lights to compute reflected light

slide-16
SLIDE 16

Polygonal mesh

  • Simplest mesh: tetrahedron
  • Indexed mesh representation
  • Vertex list
  • Normal list
  • Face list
  • Non-indexed representation
  • List of faces with repeated vertices
slide-17
SLIDE 17

Polygonal mesh

  • Hill’s barn
  • 10 vertices
  • 7 faces
  • 7 normals
slide-18
SLIDE 18

Polygonal mesh

  • Hill’s barn
  • 10 vertices
  • 7 faces
  • 7 normals
  • Solution for one face:
  • Face vertices (CCW):
  • 5 6 7 8 9
  • Face normals:
  • 5 5 5 5 5
  • Alternative: triangulate
  • Face1: 5 6 7, Face2: 5 7 9, Face 3: 7 8 9
slide-19
SLIDE 19

Drawing mesh

  • Draw as points: iterate through points
  • Draw as lines: iterate through adj. pts. in faces
  • Problem?
  • Alternative: add edge list to structure
  • Alternative: better link faces to avoid redundancy
  • Draw as ”solid”: iterate through faces
slide-20
SLIDE 20

File formats

  • STL
  • https://en.wikipedia.org/wiki/STL_(file_format)
  • OBJ
  • https://en.wikipedia.org/wiki/Wavefront_.obj_file
  • Many others
  • Not hard to generate your own STL files
slide-21
SLIDE 21

Meshlab

  • Free viewing software: Meshlab
  • (http://www.meshlab.net)
  • Good for viewing, repairing, decimating meshes
  • Sources of 3D mesh models:
  • SketchFab (https://sketchfab.com)
  • Thingiverse (https://www.thingiverse.com)
  • Stanford repository

(http://graphics.stanford.edu/data/3Dscanrep/)

  • Std Examples: Utah teapot, Stanford bunny
slide-22
SLIDE 22

Generating polygonal mesh from parametric surface

  • Step 1:
  • Sources of 3D mesh models:
  • SketchFab (https://sketchfab.com)
  • Thingiverse (https://www.thingiverse.com)
  • Stanford repository

(http://graphics.stanford.edu/data/3Dscanrep/)

  • Std Examples: Utah teapot, Stanford bunny
slide-23
SLIDE 23

T

  • pological properties of meshes
  • Is a mesh well connected?
  • Any flaws?
  • More later
slide-24
SLIDE 24

Generating mesh from parametric surface

  • Given parametric surface
  • P(u,v) = < x(u,v), y(u,v), z(u,v) >
  • Generate mesh
  • Steps:
  • 1. Set # divisions in

u,v as n, m

  • 2. Generate u,v

in for loops

  • 3. Store in 2D array
  • f 3D points
  • 4. From array

generate faces

i= 0 1 2 3 4 u= u0 u1 u2 u3 u4 j= v= 1 2 3 4 v0 v1 v2 v3 v4 face V0 V1 V2 V=<x,y,z> V3

slide-25
SLIDE 25

Computing normal vectors for mesh

  • Approach 1: Cross product of numeric data
  • Find v1 and v2 from vertices (which?)
  • N = v1 x v2
  • Less arbitrary: Newell’s method
  • Approach 2: Partial derivatives of parametric curve
  • Given vector P(u,v) = < x(u,v), y(u,v), z(u,v)>
  • Derive vectors dU = dP(u,v)/du and dV = dP(u,v)/dv
  • N = dU x dV
  • Approach 3: Gradient vector of implicit surface
  • Given implicit function f(x,y,z)
  • Derive gradient < df/dx, df/dy, df/dz >
slide-26
SLIDE 26

Creating polygonal meshes: summary

  • Fixed shapes.
  • Any shape based on idiosyncratic data, such as the exact

shape of a stone, foot, sculpture, etc. All hard-coded, some from real world data collection

  • Regular polyhedron
  • Cubes, tetrahedrons, icosahedrons, dodecahedrons, ...
  • Operations that create shapes
  • Extrusion
  • Lathing (surfaces of rotation)
  • Surface subdivision
  • Parametric shapes (related to operations)
  • Bilinear patches, quadrics, superellipses, etc.