PeterB wrote:By the way, re-reading your posts, I'm not sure now what you mean by S-patches. Are S-patches patches with N sides, where N>4 ?

Actually, N>=3. For the case of N=3, the S-patch is identical to the triangular Bezier patch of the same degree. For the case of N=4, the S-patch is very similar to the quadrilateral Bezier patch of the same degree (along both axes).

Aside from determining the barycentric coordinates for the patch, S-patches also require a large number of control points. The number of control points can be calculated by raising the sum (x1 + x2 + ... + xm) to the nth power (where m is the number of sides in the patch and n is the degree of the patch), and combining like terms. One control point is required for each term in the resulting polynomial.

A modeling program that uses S-patches would require a way of algorithmically calculating default control points, and then providing the user with the option of editing individual control points for finer control.

I doubt very much that an S-patch higher than degree 3 would be worthwhile; we've gotten along fine with Catmull-Clark SDS-based models, which for much of the limit surface can be rendered using bicubic quadrilateral Bezier patches. But at degree 3, a 3-sided S-patch has 10 control points, a 4-sider has 20 control points, a 5-sider has 35 control points, and it just gets hairier from there (actual formula: n*(n+1)*(n+2)/6), so a way to automate calculation of the control points is mandatory in order for the user to achieve the level of productivity that an SDS-based modeling app provides.

S-patches do have the advantage of providing C1, C2, up to C-infinite continuity, and also (important to some) the surface passes through the control points that represent the corners of the patch.