Hi!
Recently I found a very helpful paper describing how to make the edge between triangular bezier patches match with the desired level of continuity:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.85.3877&rep=rep1&type=pdf
Basically, to make the normals at the edges match (C1 continuity) we need to make edge “panels” (see the document) coplanar and symmetric.
Well, it does make two surfaces match, indeed. But what if the patch is surrounded by 3 other surfaces? The corner panels seem to pose a problem here as those are common for two edges. Assume that we adjusted panels on one side making one shared edge match. Then we try to adjust another edge’ panels - that means we readjust corner panels again making the first edge disjoint again!
So here is what I thought: what if we shrink the problematic corner panels to a degenerate triangles corresponding to the corner points? Will it break the dependency between edges? Or there is some rule stating that panels must not be a degenerate triangles?
So far I tried that on quintic bezier surfaces (see page 2, figure 1). First, I aligned edge panels to make 2 surfaces match with C1 level. Then I shrunk points P[SUB]140[/SUB],P[SUB]041[/SUB],P[SUB]131[/SUB] of the first surface to the same spot - P[SUB]050[/SUB], so the panel P[SUB]050[/SUB]P[SUB]140[/SUB]P[SUB]041[/SUB] degenerated to a single dot and the panel P[SUB]041[/SUB]P[SUB]131[/SUB]P[SUB]032[/SUB] became a line. I did the similar to the each edge of the surfaces. As the result, surfaces that were matching before, now are C1 continuous only at the corner points, not along the edge.
Is there a chance that with higher degree surfaces this trick will work or it will not work at all no matter what?
[The reason I need to break the dependency between edges is that I want patches to be independent of each other, so a patch can be described as 3 PN points and match another arbitrary patch without any adjustments. Therefore each edge must be defined by two corner PN points only. ]