Discussion of Homework on Subdivision Curves
You showed an impressive effort and interesting results in this assignment,
and I bet you all learned a whole lot in trying to invent your own
subdivision schemes. I am particularly impressed by those of you who added
an extra slider
to study the influence of a parameter on their scheme, or who implemented
the Lagrange interpolation scheme for comparison with your own attempts --
this I consider A+ work !
In some cases I marked your reports A-; this does not mean that I do not
appreciate your effort that you put into this assignment.
(I would typically denote apparent lack of effort with a B or C).
When you see an A-, it indicates that I think you should have been more
critical
of your results and looked for a serious coding error or even a lack of
understanding of the principles of subdivision.
(E.g., in the circle-interpolation scheme, some of you picked the wrong one
of the two arcs over the segment to be subdivided; others did not recompute
the circles on the new subdivision vetices, but continued to use the ones
first computed -- which clearly cannot lead to G1-continuity at the
original vertices.)
Below are some of the checks that you should apply, and warning signs that
may indicate that something is seriously wrong.
- The number of points should increase by a factor >1.0 in each generation.
- The curve should remain connected.
- The curve should become smoother and smoother.
- At interpolating points, you should get at least G1 continuity.
- The curve should not develop additional inflection points after the
first subdivision step.
- The (control-)points along the curve should become more and more evenly
spaced.
Keep these points in mind the next time you invent (or modify) a
subdivision scheme. If any of these points are not satisfied, try to
figure out whether something fundamental to your scheme prevents it from
happening, or whether it may just be an implementation bug.
In general, when you design any methods or systems, explicitly write down
what expectations you should have on your results, and then check your
achievements against those expectations.