CS 284: CAGD 
Lecture #13b -- Tu 10/10, 2006 -- Assignment B  (to be done individually)

Evaluate Various Surface Subdivision Schemes

Re-read the four papers on subdivision surfaces, and try these schemes and some other variants in a hands-on manner in a demonstration package written by Jordan Smith.

Use the SLIDE filesCS284/CODE/minSubdiv.slf and CS284/CODE/subdivision.slf to test many of the subdivision schemes accessible from the menu that do NOT have the word "SELECTIVE" in their name.
NOTE: Not all methods work with all objects (Some methods in this implementation seem not to work with any objects ... :-)
NOTE: The subdivision module starts up in SLF_SUBDIVISION_SHARP_CATMULL_CLARK  -- even though the label says differently !
!! Exercise the method selection pull-down manu at least once before you start, to know what method you are really running !!

Within this SLIDE program, compare the capabilities of the various schemes to make smooth, evenly rounded objects with as few concavities or undulations as possible for convex starting objects. One of the tougher test objets is "gHexPrism1" because of the many coplanar facets and the sharp edges in the input net.

Do a qualitative examination on three different objects, one of which should be  "gHexPrism1", given in the CS284/CODE/subdivision.slf file.
You can activate different objets by "un-commenting" different instance commands in lines 300-340 in the subdivision.slf file.
Pick a second object of your choice from the given list.
The third test object should be one of your own design; it should be non-convex and of genus >1 -- How does this get handled by the various methods?

Now take a closer look at these methods:

  1. SLF_SUBDIVISION_SHARP_CATMULL_CLARK
    -- Catmull-Clark cubic, anything goes -- including sharp tags.
  2. SLF_SUBDIVISION_DOO_SABIN  --- Ignore: always crashes !
    -- Doo-Sabin quadratic, it must be a closed mesh.
  3. SLF_SUBDIVISION_CORNER_CUTTING  --- Ignore: always vanishes !
    -- All of the CORNER_... schemes generalize the Loop topological split for arbitrary polygons
        by creating a triangle at each corner by connecting the two adjacent edge midpoints.
  4. SLF_SUBDIVISION_CORNER_ROUNDING   --- Not quite right either !
  5. SLF_SUBDIVISION_CORNER_ROUNDING_SHARP_LOOP
    -- Loop quartic scheme (if the input is all triangles), sharp tags are OK.
  6. SLF_SUBDIVISION_CORNER_ROUNDING_BUTTERFLY
    -- Butterfly interpolating scheme, must be a closed object.
  7. SLF_SUBDIVISION_CORNER_ROUNDING_ZORIN
    -- Zorin's enhanced interpolating scheme, must be a closed object.
  8. SLF_SUBDIVISION_TRIANGLE_LOOP    --- Not quite right either !
    -- All of the TRIANGLE_... schemes are the same as the CORNER_... schemes,
        but they insert a vertex in the center of non-triangles to triangulate them in the first step;
        afterwards they run the classic subdivision schemes.
  9. SLF_SUBDIVISION_TRIANGLE_BUTTERFLY
  10. SLF_SUBDIVISION_TRIANGLE_ZORIN

Report your observations on these test runs.

As a second way of focusing on the capabilities of the different schemes -- and using very much what you have learned from the four papers -- consider the following task:
Assume you have given the 20 vertices of a regular dodecahedron and would like to have a very finely tessellated, sphere-like, subdivision surface that interpolates these 20 vertices.
Try to do this with two different subdivision schemes: an interpolating one and an approximating one.
Which two schemes would you use ? -- Why ? -- How ?
Describe the initial control mesh complete with a value for the circum-radius (or scale factor) for each of the chosen schemes. Discuss the trade-offs of the resulting surfaces.
Provide two images that show the control mesh and a (reasonably) smooth version of the surface (i.e., don't push SLIDE to the limit ...).

Bring your reports to class on Tuesday 10/17/2006.



Page Editor: Carlo H. Séquin