Title: CS 430/585 Computer Graphics I 3D Surfaces Week 9, Lecture 18
1CS 430/585Computer Graphics I3D Surfaces Week
9, Lecture 18
- David Breen, William Regli and Maxim Peysakhov
- Geometric and Intelligent Computing Laboratory
- Department of Computer Science
- Drexel University
- http//gicl.cs.drexel.edu
2Overview
- Quadratic and super-quadratic surfaces
- Bicubic surfaces
- Bezier surfaces
- Normals to surfaces
- Surface rendering
- Blobby objects
1994 Foley/VanDam/Finer/Huges/Phillips ICG
3Quadratic Surfaces
- Sphere
- Ellipsoid
- Torus
- General form
4Superellipsoid Surfaces
- Obtain from ordinary ellipsoids
- Control parameters s1 and s2
- If s1 s2 1 then regular ellipsoids
- Has an implicit and parametric form
5CSG with Superquadrics
6CSG with Superellipsoids
7Subdivision Surfaces
- Coarse Mesh Subdivision Rule
- Define smooth surface as limit of sequence of
refinements
8Biparametric Surfaces
- Biparametric surfaces
- A generalization of parametric curves
- 2 parameters s, t (or u, v)
- Two parametric functions
9Bicubic Surfaces
- Recall the 2D curve
- G Geometry Matrix
- M Basis Matrix
- S Polynomial Terms s3 s2 s 1
- For 3D, we allow the points in G to vary in 3D
along t as well
10Observations About Bicubic Surfaces
- For a fixed t1, is a curve
- Gradually incrementing t1 to t2, we get a new
curve - The combination of these curves is a surface
- are 3D curves
11Bicubic Surfaces
- Each is , where
- Transposing , we get
12Bicubic Surfaces
- Substituting into ,
we get Q(s, t) - The g11, etc. are the control points for the
Bicubic surface patch
13Bicubic Surfaces
14Plotting Isolines
15Plotting Isolines
16Bézier Surfaces
- Bézier Surfaces(similar definition)
17Bézier Surfaces
- C0 and G0 continuity can be achieved between two
patches by setting the 4 boundary control points
to be equal - G1 continuity achieved when cross-wise CPs are
co-linear
18Bézier Surfaces Example
- Utah Teapot modeled by 32 Bézier Patches with G1
continuity
19Faceting
20Faceting
21B-spline Surfaces
- Representation for B-spline patches
- C2 continuity across boundaries is automatic with
B-splines
22Normals to Surfaces
- Normals used for
- Shading
- Interference detection in robotics
- Calculating offsets for numerically controlled
machining
23Computing the Normals to Surfaces
- For a bicubic surface, first, compute the s
tangent vector
t
24Computing the Normals to Surfaces
- Next, compute the t tangent vector
t
25Computing the Normals to Surfaces
- Since s and t are tangent to the surface, their
cross product is the normal vector to the
surface! - xs - x component of s tangent
- ys - y component of s tangent
- zs - z component of s tangent
26NURBS Surfaces
- Similar to B-spline patches
27Drawing Parametric Surfaces
- Usually done patch by patch
- Two choices
- Draw/render directly from the parametric
description - Approximate the surface with a polygon mesh, then
draw/render the mesh
28Direct Rendering
- Use a scan-line algorithm
- Evaluate pixel by pixel
- Problem How to go from (x,y) screen space to
point on the 3D patch - Easy for a planar polygon where we know max/min
y, equations for edges, screen depth - Not as easy for parametric surfaces
29Issues for Direct Rendering
- Max/Min y coords may not lie on boundaries
- Silhouette edges result from patch bulges
- Need to track both silhouettes and boundaries
- What if they intersect?
- Note patch edges need not be monotonic in x or y
- Idea Scan convert patch plane-by-plane, using
scan planes instead of scan lines
30Direct Scan Conversion of Patches
- Basic idea
- Find intersection of patch with XZ plane
- Producing a planar curve
- Draw the curve
- De Boor, DCasteljeau
- Note if doing rendering, one can compute
pixel-by-pixel color values this way
Patch xX(u,v), yY(u,v), zZ(u,v)
31Direct Scan Conversion of Patches Algorithm
Outline
- Patch xX(u,v), yY(u,v), zZ(u,v)
- u,v range from 0 to 1 this defines 4 bounds
- Intersection of scan line Ys with boundary
32Patch to Polygon Conversion
- Two methods
- Object Space Conversion
- Techniques
- Uniform subdivision
- Non-uniform subdivision
- Resolution depends on object space
- Image Space Conversion
- Resolution depends on pixels and screen
33Object Space Conversion Uniform Subdivision
- Basic Procedure
- Cut parameter space into equal parts
- Find new points on the surface
- Recurse/Repeat until done
- Split squares into triangles
- Render
34Object Space Conversion Non-Uniform Subdivision
- Basic idea
- Facet more in areas of high curvature
- Use change in normals to surface to assess
curvature - More derivatives
- Break patch into sub-patches based on curvature
changes
35Image Space Conversion
- Idea control subdivision based on screen
criteria - Minimum pixel area
- Stop when patch is basically one pixel
- Screen flatness
- Stop when patch converges to a polygon
- Screen flatness of silhouette edges
- Stop when edge is straight or size of pixel
36How do I know if Ive found a silhouette edge?
- If the ray that Im casting is tangent to the
surface at the point it hits the surface! - N L 0
- Where N is the normal at the point where L, the
line of sight, hits the surface
37Blobby Objects
- Do not maintain shape, topology
- Water drops
- Molecules
- Force fields
- But can maintain other properties, like volume
38Gaussian Bumps
- Model object as a sum of Gaussian bumps/blobs
-
- Where and T is a
threshold.
39Metaballs (Blinn Blobbies)
40Ray-traced Metaballs