Split&Tweak schemes for Cubic Bspline, four-points, and Jarek subdivisions |

Demo comparing uniform cubic Bspline (red), 4-point (blue), and Jarek (green) subdivisions. Written by Mark Luffel as Project 1 in Prof. Jarek Rossignac's undergraduate graphics class. Click on control vertices and drag to move them. Click near edges and drag to insert new ones. Press c, b, j, or f to show/hide control polygon, B-spline, Jarek, Four-point curves. Press 1 through 5 to set level of subdivision. Press space to reset. Assume that the control polygon has vertices V0, V1,...Vn and that i+1=j=k-1. All 3 schemes perform iterations that each combine a split and a tweak phase. The split phase inserts a new vertex Mij in the middle of each edge between vertex Vi and Vj. The tweak computes for each old vertex Vj a displacement vector Dj=Vi/8+Vk/8-Vj/4. which is the half the displacemetn between Vj and the average of its two new neighbors. For a uniform cubic B-spline, the tweak leaves Mij where they are
and simply moves each old vertex Vj to Vj+Dj. This is equivalent to
moving Vj half-way towards the average of its new neighbors. Repeating this
two phase process converges to the uniform cubic B-spline curve. Notice that
the process shrinks convex parts of the curve.For a f our-point subdivision, the tweak leaves the orriginal vertices
Vj where they are and simply moves each new vertex Mij by -(Di+Dj)/2. Notice
that the four-point iteration is equivalent to first performing a B-spline
iteration and then "expanding" the result by moving the old vertices back
to their place before the iteration and by moving each new verttex by the
average displacement of its two neighbors. Notice that the limit curve
interpolates the original control points but exhibits overshots when a short
edge is adjacent to a long edge at a sharp angle.For Jarek's subdivision make a compromise: Move each Vj by Dj/2 and
each Mij by -(Di+Dj)/4. Notice that the limit curve of Jarek's subdivision
lies between the B-spline and the Four-point curves. It is closer to the control
polygons. Jarek's scheme may be used to smoothen the control polygon,
when preserving the area is important. Also, the original control polygon,
or the results of m Split&Tweak iterations, are a better approximation
for the limit curve for Jarek's subdivision than for the other two.Jarek's subdivision and other examples of teaching concepts of geometry processing are described in the following report, to appear in a special issue of the CAD Journal on CAD Education: "Education-Driven Research in CAD", Jarek Rossignac. June 2003. GVU Tech. Report GIT-GVU-03-26. |

Source code |

Built with Processing |